How to make NPC's "gossip"

Started by
66 comments, last by Gollum 21 years, 2 months ago
This is the most interesting thread I''ve read on Gamedev and I thought of a few things to add. One was the truth value being stored as an int allowing any positive values to be true and negative to be false. 0 could be not entirely sure also anything say from 1 to 128 has a smaller chance of being true than 255. Sorry if I explained this wrong.

Another one is I thought of NPCs lieing to others to make them selves look better. For example some random guy could come into town and say that he killed 20 Orcs by himself blah. Some daft guy might beleive him and spread the tale and so people actually think this guy is hard as. Then u go and kill him and either people think your the hardest guy ever or that the guy was lyeing all this time.

Advertisement
My question is how the heck did you dig the thread up? The search feature has been offline for ages and I''d really like to know of a way of search through past threads as I''m going to be needing this pretty soon!
Thanks



<Fish>{
<Fish>{
quote:Original post by TonyFish
My question is how the heck did you dig the thread up? The search feature has been offline for ages and I''d really like to know of a way of search through past threads as I''m going to be needing this pretty soon!
Thanks
{


I am the ultimate necromancer! Muhahahaha!

No but seroiusly, I knew part of the name who started it, did a wildcarded search for the peices of their name I knew, and found the thread in their profile.

Hi guys this is my first post, and i have to say i work with a 3d engine called 3dgamestudio. i am currently trying to make the same kind of game with these features, and if any of you can give me a hand with modeling, or textures, or c-script programming (The engines language) i would much apreciate it. its amazing how you guys do this stuff, and i am soon expecting to learn C++, and will start making some more advanced things like you guys.
cya
~+AnTiLiFe+~
A little idea: if you keep your world in form of nav-points graph, and when NPCs are far enough that player cannot see them, they moving only by nav-points, without using collision detection (memory-conuming physical representation not required to be stored in the memory for all world locations, only for location in which player is)...
But it is a great optimization too, because NPC "jumps" between nav-points, then frreezes (goes to the list of passive objects), according his speed and traveling distance between nav-points...

Let''s calculate: if average distance between nav-points is about 5 meters, and NPC speed is about one meter per second, and game makes 50 physical ticks per second... then NPC will be in active state (i.e. when he decides where to walk further, communicates with others, etc...) just one tick out of 250!.. Now imagine, how many NPCs could be in your game... I want to make RPG with about 100000 of them, if minimum system requirements (128Mb RAM) will allow. And only about 100 NPCs will think in each game tick (because smith or peasant most of the time resides at his workplace, and in such case his state is passive - I need only to calculate amount of goods produced, resources spent, and time of work - and then freeze the worker until time passes or player comes near enough to see him...

What do you think, people?..
This is cool. I was just kind of randomly wandering through Gamedev, which I hadn''t done in forever, when I see one of MY old threads resurrected!

I still hafta say, even with the recent opinions, that I think a system like I described earlier would be great for a game. I''m in grad. school now, and wish I had the time to learn enough C++ to write it. Interestingly, I''m taking a class on data mining, so I''m learning about Bayesian networks, which is how real-world inference engines are built. Which gives me lots of other ideas. What I really need is some expert coders to implement my ideas as I have them (but that''s what we all need, right?).

I should say that I think there is a certain amount of "cheating" in all RPG games. In fact, it''s silly to call it "cheating," because a game simply cannot, nor should it, reproduce the real world. Where one stands on the issue is more based upon what you think is important. In other words, given a computer with X power (and the amount doesn''t matter that much, because computers are always getting faster), what percentage of your processing power (per frame, say) would you spend on graphics? On AI? On simulating world economics? Etc. etc.

Now, my beef with most games is that they:
1. Are too linear.
2. Are so unrealistic as to be irritating and absurd.
3. Don''t give me a sense that _I_ have an effect on the world, or at least any different from every other player who plays the game.

I''ve already described my ideal game, but let me give you an example. Pretty much every single game out there these days has tremendous graphics. I don''t need much more from a graphics engine than what exists now. But even with all of that power to spend on graphics, they don''t check for simple things. In most every RPG, I can walk into a person''s home, rob them blind, then go talk to them like we are old friends. I can walk around (toward the end of the game) as a world-famous all-powerful bada$$ hero, armed to the hilt, and nobody treats me any differently than when I started out as a little unknown wimpy guy. Everywhere I go, the monsters are perfectly tuned, so that they always match my power, no matter what "level" I am, and so on. I know, there are some games that are better at stuff like this (Fallout, Gothic, and Morrowind come to mind), but by and large, these games have gaping holes in their believability, and I play RPG''s as an extension of my ego into a believable world. I don''t want to believe that I am following some predetermined loop of kill->level->equip->kill->level->equip, until I finish the game and start another that does the same thing.

The gossip thing is not the main point, just a means to an end. I like the idea because I imagine it could be done pretty faithfully with not that much processing involved. And of course, with a "living world," much of the work would be in fine tuning it so there is a balance. In some places, yes, you would "cheat". Maybe in the example of a great battle where no one survives, you propagate the knowledge of the battle without worrying about someone to report it. Those things would be worked out as testing goes on. But I am pretty sure that anything that starts out as random is going to look random, no matter how many ways you try to bandage it. And if much of the RPG genre is based on FOLLOWING quests and rumors around, doesn''t it make sense for those very same pieces of knowledge to be travelling? Otherwise, what are you following?

Anyway, I''m rambling. But it''s good to see people talking about this. Maybe one day a great coder will pick it up and I can play my dream game, eh?

- Gollum
Yeah, this was a great thread, pity I couldn''t contribute more to it. I''m actually looking at postgrad research projects at the moment, and I''m thinking about putting together a proposal based on the type of system being discussed here. Not my usual area, but could be very interesting. The head honcho around here is big into cognitive modelling, neuro computation, that kind of thing, so I might be able to pitch something along those lines.

With that in mind, anyone have any suggestions for research based off the concepts tossed round in this thread? As in, how to actually turn this into a reasonably substantial research project? I have a few ideas myself, but I''d be very interested in hearing any suggestions.
quote:Original post by JinJo
This is the most interesting thread I''ve read on Gamedev and I thought of a few things to add. One was the truth value being stored as an int allowing any positive values to be true and negative to be false. 0 could be not entirely sure also anything say from 1 to 128 has a smaller chance of being true than 255. Sorry if I explained this wrong.

Think of it in terms of probability or approximations of the truth. It makes sense to go from 0 for zero probability/absolutely untrue to 1 for certain/absolutely true, and it makes determination of inference a fairly straightforward normalized product. With negative numbers then you have all sorts of artifacts springing up when attempting to infer "facts."

Say NPC A trusts NPC about 30%, while NPC B trust NPC C about 80%. If NPC B communicates a report received from C to A with appropriate stress, A assigns that "fact" 30% of 80% = 24%. If NPC A is unaware that the fact comes from C, who is largely but not completely trusted by B (ie, A believes the fact comes from B directly, the fact gets a rating of 30%). Try that with negative numbers (0 = 50%).

quote:Another one is I thought of NPCs lieing to others to make them selves look better. For example some random guy could come into town and say that he killed 20 Orcs by himself blah. Some daft guy might beleive him and spread the tale and so people actually think this guy is hard as. Then u go and kill him and either people think your the hardest guy ever or that the guy was lyeing all this time.

Good idea. Check this out, ignoring the (mini-)flamewar *blush*. You might find it useful.

This topic is closed to new replies.

Advertisement