NPC AI in RPGs (2)

Started by
40 comments, last by Nazrix 23 years, 8 months ago
I started another thread cause that was getting cut off for some reason...at least for me it was dwarfsoft, finally someone is thinking upon the same lines as I do I couldn't agree w/ you more about the fact that NPCs should move around, and have an agenda. In the RPG I'm currently making, I have it so that each NPC has a schedule of where they're supposed to be at different hours of the day. Plus, that schedule can be changed dynamically as the game progresses. So, instead of quests and encounters happening at fixed points (like in Baulder's Gate) they happen more by coincidence as in real life. You may be just walking along and an NPC happens to walk by, and some sort of quest could arise. I like the idea of NPCs sharing information. That would add a lot of realism. Edited by - Nazrix on 7/1/00 2:44:05 PM
Need help? Well, go FAQ yourself. "Just don't look at the hole." -- Unspoken_Magi
Advertisement
I think your post went through into NPC AI in RPGs the first time... Pity you cant read it tho... I would like to see your implementation of this, my RPG is going to be fully based around the NPC''s if I can actually do what I want that is


-Chris Bennett ("Insanity" of Dwarfsoft)

Check our site:
http://www.crosswinds.net/~dwarfsoft/
and our eGroup:
http://www.egroups.com/group/dwarfsoft
Happy to see that I''m not the only one having designed such NPCs.
Implementation not done yet for me

Maybe we could write this NPC engine/calendar all together and use it in our respective projects ?

Tell me if you agree.

You can mail me (check the icon on the top of my post)

(oh... Forget to mention I use C/C++, so I would write this ''module'' in c++. I hope you''re using C++ too.)


-* So many things to do, so few time to spend *-
-* So many things to do, so little time to spend. *-
What exactly do you mean by calendar : goal-driven ? If it is the case, it all goes back to deduction, my friend

Anyway, of course there is a need for passing messages. Since I''m basically a Unix programmer, could anyone summarize me what windows-style message passing means ?

Be reading you,
David
Yeah, I don''t know why I can''t see the rest of that post. I''m at work and I tried 2 different computers to no avail...

Ingenu, that''s a pretty good idea. I use C++, yes. The system I''m using now is pretty crude, but it works.

Every NPC has an x and y value that tells them where to be at each hour. So, once the hour changes it scans through every NPC and compares their current x & y to the x & y they''re supposed to be and moves them there. It holds everything in arrays. If I want to change where they go, I just change the values of those arrays.

Crude, but effective.



"The road of excess leads to the palace of wisdom." --William Blake
Need help? Well, go FAQ yourself. "Just don't look at the hole." -- Unspoken_Magi
Altmann : I mean that a NPC is following a schedule(r?).
Like anyone in the real world, he got things to do.
I don't know what's the meaning of 'windows-style message passing'.


The basic system will provide wandering NPC.
(Unlike in FF where the same people are always at the exact same location doing nothing and repeating the same sentences over and over.)

You define a one week long schedule for each NPC, and it'll follow it, with possible change.

As a second step, I would like to enhance the NPC AI by 'giving' the NPC needs and solutions to 'not need' anymore.

This will lead to a dynamic coherent world.
Need : Food.
Solution : Go to a food shop. Buy some food.
(Pathfinding...)

[Using a need/asnwer system may create a really nice world]

We'll need a bit more thinking and planning about that before working on it
Design is essential.
Happy to see that we'll work together Nazrix.




Edited by - Ingenu on July 3, 2000 12:23:17 PM
-* So many things to do, so little time to spend. *-
Ingenu,
That's an interesting idea to include a need-based schedule as well.

So far, I was mostly thinking about each day the NPC goes to work for a while then goes to the tavern for lunch...that sort of thing. And of course story-based schedules where the schedules changed because of the story

I'm suprised more RPGs don't incorporate this sort of thing as it doesn't seem too hard to do...

It would be nice to work together, Ingenu, and share some ideas

"The road of excess leads to the palace of wisdom." --William Blake

Edited by - Nazrix on July 3, 2000 1:42:47 PM
Need help? Well, go FAQ yourself. "Just don't look at the hole." -- Unspoken_Magi
Ok, got it.
(Windows-style was something written by dwarfsoft on the previous thread)

My goal-driven approach is basically your "need"/"not need" idea.

How do I "not need" eating ?
Either :
* go buy some bread
* go buy some meat
* ...

How do I "go buy" xxx ?
Either :
* if xxx is bread, go to the nearest bread shop
* go to the nearest supermarket

How do I "go to" the nearest yyy ?
Invoke path planner
...

Basically, this is a fuzzy expert system.

P.S. : If anybody is interested, I am mixing C++ and Java.
Altmann, I think that you're welcome if you want to work on the subject with us.

We mustn't be too many cause it become hard to manage many people but a little commity often generate great ideas.

Mixing JAVA and C++ ?
What exactly do you want to do ?
Scripting with JAVA in a C++ program ?

Nazrix : We'll have to design for a while before writting a single line of code.
(Well it's how I work, I hope it's ok)

Conceptual design, problems/solutions, code design (objects...), code programming.




Edited by - Ingenu on July 3, 2000 4:44:52 PM
-* So many things to do, so little time to spend. *-
I use C++, so that would cover that. I am basing my whole game around the NPC''s interaction with each other, and deduction (in my opinion) is not going to be the be-all and end-all of it. Message based (like I said before) is probably going to be enough to cover it. But you may also have to assume that a message could be a visual message like being seen with someone. I am sure that I can get great functionality out of a message based system, provided that I design it right



-Chris Bennett ("Insanity" of Dwarfsoft)

Check our site:
http://www.crosswinds.net/~dwarfsoft/
and our eGroup:
http://www.egroups.com/group/dwarfsoft

This topic is closed to new replies.

Advertisement