5
\$\begingroup\$

I have thought about this while thinking about a game concept, but it should be applicable to many game types.

Imagine an RPG or something else with an open-world. Normally you would want to populate your world to make it feel alive and allow for interaction with NPCs in any form (talk, steal from, kill.. whatever).

Now, what if you don't have the option to fill it with NPCs or similar. My example would be a procedural generated RPG world where you want to enter a house filled with people or even a city. It would be strange for none of the NPCs to talk to you.

Another example might be a space station your ship is docking to. There might be only one or two NPCs you are able to talk to, but the space station could be steaming with other people, but you might not acces them somehow.

Sure, one possibility would be to have procedural generate NPCs with random messages as well, but depending on the size of the city and/or the amount of NPCs you would need a lot of NPCs with different messages. And then it would be easily possible to have to NPCs with identical messages. The other problem would be that you would end up with to many NPCs, that make the place feel overfilled instead of just crowded. I image that a hard number or relation for space to NPCs is impossible to pinpoint, but you surely get my point.

So, my question is, what other possibilities are there to make a city / place feel crowded? Maybe with NPCs, or maybe even without?

\$\endgroup\$
  • 8
    \$\begingroup\$ A neat direction I learned about recently (but probably too over-engineered for your needs) is something called Alibi Generation. Here you fill a world with randomized NPCs as usual, then if the player interacts with one, you retroactively generate a reason for them to be there. It flips the problem from "How do I generate a place full of meaningful characters" to "Given a character in a place, how do I attach meaning?" The paper discusses this primarily in terms of navigation, but it can be extended to other actions. \$\endgroup\$ – DMGregory Oct 9 '17 at 15:43
  • 2
    \$\begingroup\$ This is just amazing! Would actually be worth a whole answer if you ask me! \$\endgroup\$ – PSquall Oct 9 '17 at 23:37
  • 1
    \$\begingroup\$ Unfortunately I don't know much about how to apply it in practice. I wanted to share the link in case it helped spark ideas for yourself or other users, but I don't have enough to make a complete answer of it. \$\endgroup\$ – DMGregory Oct 10 '17 at 0:11
6
\$\begingroup\$

If you don't have people in your city it's going to feel deserted. I don't think there's anything else which will substitute for having NPCs but games have used the types of NPC behaviours you've excluded so I don't think those are things you should worry about too much.

In GTA there is no option for the player to talk to 'unnamed' NPCs. In Elder Scrolls games NPCs have a few lines which are picked randomly. Both these allow for relatively simple NPCs to populate the world and make it feel more alive than not having them would.

\$\endgroup\$
  • \$\begingroup\$ Yeah, the city might be an extreme example, but maybe what about a space station your are docking to? I will add that example to my question. \$\endgroup\$ – PSquall Oct 8 '17 at 22:11
  • \$\begingroup\$ @PSquall Then wouldn't you populate it with 'staff' or other 'visitors'? \$\endgroup\$ – aytimothy Oct 9 '17 at 3:43
  • \$\begingroup\$ @aytimothy sure, staff should be possible, but visitors are basically regulare folk and would be generated. \$\endgroup\$ – PSquall Oct 9 '17 at 10:12
  • \$\begingroup\$ @PSquall that's probably easier in that you can have ships arriving and leaving, and the player doesn't have to be able to interact with them. Look at the landing scenes in Wing Commander: Privateer for a very old example of this. You could also have announcements over an intercom talking about the next arrival/departure to suggest activity that doesn't actually exist in the game. \$\endgroup\$ – Fulby Oct 10 '17 at 8:48
5
\$\begingroup\$

If you want a city's population to exist, but not talk to you: Have them speak a different language. Granted, it would still be weird to not speak the language, but it would be better than a town/city/station without NPCs. The language would have to fit in to the story. Another option would be to use actions. NPCs smile, frown, growl, etc.

\$\endgroup\$
  • \$\begingroup\$ Agreed, a Sims-like language would make the place feel alive but it wouldn't have to be meaningful. \$\endgroup\$ – John Hamilton Oct 9 '17 at 10:45
4
\$\begingroup\$

A place doesn't feel crowded from everyone just standing around. Places feel busier when there is more movement and interaction. Rather than focusing on generating lots of NPCs all with unique messages, maybe focus more on creating a handful of NPCs with uniques stats that affect behavior. A few examples of traits that could be randomized:

  • A regular path. This could be some footpath loop that the NPC would default to when there are no factors affecting it. Giving them somewhere to go, even if it is a circle, creates the illusion of purpose.
  • Level of friendliness. Friendly NPCs are more likely to stop other nearby NPCs to talk to them. Unfriendly NPCs are more likely to distance themselves from other NPCs, adjusting their paths to avoid others.
  • Walking speed. Having different speeds for different NPCs makes them seem less robotic and more likely to interact with each other as they pass each other up.

These factors, when they vary from one NPC to another, give the impression that these are people, each with different personalities and goals. It adds just enough chaos to create a crowd without requiring any real story.

\$\endgroup\$
1
\$\begingroup\$

You could stay by generating "areas" such as a market, brothel, trading post, etc. Each area could contain specific building blocks. For example the market may have stalls with vendors while the brothel or tavern could have rooms. When you first create a town/city you could have a variety of sizes defined. Outpost, town, city, etc.

Next i would define a range for the population of an area. For example: 3-7 stalls in a market for a city.

Then i would generate the vendors for the stalls from a predefined list of vendor types.

You could expand on this concept to cover a wide variety of points of interest in a town.

\$\endgroup\$
1
\$\begingroup\$

If a NPC just impedes the player's movement that is enough for the player to acknowledge their existence. Something on the level of GTA is enough.

Bonus points if the crowds are useful for the player like blending in in Assassin's Creed.

We don't really think about strangers too deeply in the real world either, they are just background and obstacles to us.

\$\endgroup\$
0
\$\begingroup\$

Maybe you could try to make a more visual indication whether npc's have dialogue or not. You could try blending their colours more to fit the direct enviroment, while npc's with dialogue have more vibrant colours that pop out more. This helps making npc's stand out, and also trains the players to disregard more blended characters.

Also, it could also be an option to have npc's in unreachable places for players. Just having some npc's sitting on a balcony, talking on the other side of a river or looking for stuff on a supply cart can add life to your city where natural borders will prevent players from accessing certain npc's without dialogue

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.