NPCs (La la la)

Started by
22 comments, last by morfe 23 years, 2 months ago
I''m looking forward to seeing how this works, but I have some truly "old school" input:

Anyone ever play Paragon software''s MegaTraveller? Old old game based on Mark Miller RPG. It had relatively large cities filled with NPCs. You could identify normal NPCs from special ones because the special ones were green (hey, it was an EGA game).

The generic NPCs would respond with "I''m too busy" messages (essentially, "I have nothing to say") and it actually got irritating after awhile. Why? Because you ended up searching through a sea of non-interactivity for a few interesting nodes of gameplay. Boring.

Understand, btw, that I''ve been DYING to see New York sized environs filled with NPCs, so I support any step that gets closer.

I really like the idea that any NPC could be a major NPC. What''s wrong with combining both approaches: Distinctive, location based NPCs, like the CEO of a huge multinational, who''s always in his office; and the spontaneous generation of a major NPC some of the time when you talk with minor NPCs, and your generic non-interactive NPC other times.

With this approach, you''d get both story / environment relevent NPCs the player could count on, plus great surprises from time to time.

Waddaya think?


(Oh, btw, I think rather than the "I''m too busy" approach, maybe Fallout''s more environment / story dependent quotes would be better.)

--------------------
Just waiting for the mothership...
--------------------Just waiting for the mothership...
Advertisement
And as a player I just LOVE when loading and saving a game takes 10 minutes.

I''ve gone down this road myself, and man does the disk get hit hard with it.

Yes, the space is available, but in a game? Not sure it''s a good idea.

Not to mention this situation:
Enter a new city
Save game
Walk up to NPC 123
Find out fact ABC
Piss off the city guards and get killed.
Load game
Walk up to NPC 123
Find out fact DEF
HUH? What just happened?

So to protect against this, players can only have one saved game? The instant they made contact the data is saved, then when they...

Load game
Walk up to NPC 123
You get one of two responses:
1) "Hey! It''s good to see you again!"
2) a complete repeat of the conversation

Just some thoughts...

Dustin
Dustin
quote:Original post by Dustin_00

And as a player I just LOVE when loading and saving a game takes 10 minutes.

I''ve gone down this road myself, and man does the disk get hit hard with it.

Yes, the space is available, but in a game? Not sure it''s a good idea.

Not to mention this situation:
Enter a new city
Save game
Walk up to NPC 123
Find out fact ABC
Piss off the city guards and get killed.
Load game
Walk up to NPC 123
Find out fact DEF
HUH? What just happened?

So to protect against this, players can only have one saved game? The instant they made contact the data is saved, then when they...

Load game
Walk up to NPC 123
You get one of two responses:
1) "Hey! It''s good to see you again!"
2) a complete repeat of the conversation


No, not like that at all.



_______________________________
"To understand the horse you'll find that you're going to be working on yourself. The horse will give you the answers and he will question you to see if you are sure or not."
- Ray Hunt, in Think Harmony With Horses
ALU - SHRDLU - WORDNET - CYC - SWALE - AM - CD - J.M. - K.S. | CAA - BCHA - AQHA - APHA - R.H. - T.D. | 395 - SPS - GORDIE - SCMA - R.M. - G.R. - V.C. - C.F.
Ahem.

class Major : public Minor {
...
};

The insinuation is not that Minor NPCs are "intellectually inferior" to Major NPCs, but rather that the intelligence is of a Hive nature, rather than Individual. They are capable of complex thought, however, they act like the Borg, for example.

Just have a class constructor specifically for inheriting from a Minor NPC.
well, actualy, I don''t think that you would want to inheret the stuff for a minor NPC, because you may be storing stuff like where it is in the flock, and minor actions, which the major NPC wouldn''t be using.

ANDREW RUSSELL STUDIOS
Visit Tiberia: it''s bigger, it''s badder, it''s pouyer...
Sorry for the coder speak... but you could use some sort of Proxy object for an NPC that presents an ''intelligent'' interface to the rest of the game, but hides the fact that the NPC might actually have no knowledge yet. Initially, an NPC could just exhibit dumb hive flocking mentality or whatever, but when queried for more detailed information, it would allow the NPC to be dynamically fleshed out as appropriate. And when an NPC has been ignored for long enough, it could ''lose'' the detailed part of its intelligence so that the game data doesn''t just grow and grow. This would allow you to give NPCs a memory for significant things that have happened to them, without necessarily having to distinguish between ''major'' and ''minor'' ones. More interestingly perhaps, an NPC with no set role in the plot would have the capability to feature prominently in certain cases.

Another idea is to take a procedural approach to NPC attributes, generating them as necessary. So, instead of this:
class NPC{int unique_id;int hair_colour;int eye_colour;int home_town;int race;int class;int number_of_beers_can_safely_consume;// etc....} all_npcs[32000]; 

you could do this:
class NPC{int unique_id;int GetHairColour();int GetEyeColour();//etc...} all_npcs[32000]; 

All you have to do is base the results of GetHairColour() and the other functions deterministically on the unique id, and you potentially have totally unique NPCs, that will always ''remember'' their details, and yet never need more than a single integer to store them.

I admit that this system only addresses constants such as description, background, attributes and personality, rather than events that have occurred to that character in the game, but a combination of the 2 approaches could work well to add the appearance of a really detailed and consistent world that doesn''t require a lot of wasted CPU resources.
Dunno if this fits into the current discussion,
but I''d like to see a game (futuristic RPG?) that uses the NPC-technique described by morfe and made with the engine of Syndicate Wars...
I loved this dark cities, but they could be tuned up with more peasants and traffic...whew, this would rock !



quote:you could do this:

class NPC
{
int unique_id;
int GetHairColour();
int GetEyeColour();
//etc...
} all_npcs[32000];


  class Minor_NPC {  unsigned long unique_id; // 2 billion NPCs (max)  unsigned short Appearance; // hair, eye and race/skin color (bitflags)  vector Position;           // where they are in the world  ai_func *Sub_AI;           // Function pointer to their AI subroutine  } all_npcs[MAX_NPCS];  


Of course you would want to add a couple of values for occupation, and perhaps parentage, which would determine social status etc. for you. These values would allow you to calculate almost every other variable you''d need, rather than having to store them in precious memory.

And I''d rather use a list than an array. Much easier to update when NPCs die, or you want to add new ones,
quote:Original post by kabale

Dunno if this fits into the current discussion,
but I''d like to see a game (futuristic RPG?) that uses the NPC-technique described by morfe and made with the engine of Syndicate Wars...
I loved this dark cities, but they could be tuned up with more peasants and traffic...whew, this would rock !



Yeah, I want to see this, too, for a futuristic RPG. But I''d also like a dash of "Grand Theft Auto" thrown so you could operate vehicles, too.



--------------------
Just waiting for the mothership...
--------------------Just waiting for the mothership...
What do you mean? You could control all the vehicles in both Syndicate & Syndicate Wars.

I loved the Battletanks, and the APCs got me through so many tough situations.

This topic is closed to new replies.

Advertisement