Advertisement

NPC AI in RPGs (2)

Started by July 01, 2000 02:42 PM
40 comments, last by Nazrix 24 years, 4 months ago
quote: Original post by Ingenu

Nazrix and dwarfsoft, what about my previous post ?
Which system do you prefer ?


Personally I would go with a TODO list which points out the bare minimum that should be done by the NPC (therefore eliminating any slackers! [like me ]) and then I would put a schdule layer over it. That way the tasks are updated, but there is always a skeleton to fall back on. The TODO would also allow optimisations for NPC''s that aren''t likely to be seen much, they don''t require a high priority Schedule layer.

This is a fairly basic look at a complicated system, but I think the systems that you pointed out are all good, but for different reasons and different purposes.

Maybe we should work on creating a system that will work generically so that it can be of benefit to others. I believe we have the brains here in this forum so benefiting ourselves as well as others might be a way to go.

PS. It was my birthday on Mon, I am now legal! No more waiting for that booze or those clubs


-Chris Bennett ("Insanity" of Dwarfsoft)

Check our site:
http://www.crosswinds.net/~dwarfsoft/
and our eGroup:
http://www.egroups.com/group/dwarfsoft
Messaging system is a requirement.

I think that the Schedule will be the basic behaviour guidelines and the need system will slightly modify the NPC activities.

NPC can be differentiated through modifying their ''reaction'' or needs level.
This may allow a NPC to finich is job before going to lunch, or to be often thirsty

I think that a ''module'' using the schedule/needs system will result in a very good dynamic fake world.

As I already said, I would like to work on that in C++.
This module would be available to anyone contributing to it, and maybe released under GNU licence

dwarfsoft : happy birthday ! (ok late but better late than never)

Still thinkking about it.
I''ll write a list of basic needs.


-* So many things to do, so few time to spend *-
-* So many things to do, so little time to spend. *-
Advertisement
Thanx for the thanx there Ingenu.

I personally prefer C++ and am using VC++ at the moment (however I much prefered Borland.. Bloody M$ is taking over even the most sacred areas ). But I would be very willing to contribute time and code to this module. I can''t possibly stay away from classes at the moment, they just keep becoming more and more useful .

I think that a quite complex model could be achieved using a layering system similar to the protocols for Inet and the DirectX/GDI/Hardware layers that Win uses (or OpenGL/Software Emulation/Hardware for those who like to be compatable ).

A simple model could indeed be achieved through the methods that you describe and I also agree that some quite respectable realism would result.

Goddamn! It is getting late and sleep is affecting my thought, I have forgotten what I was going to say... I''ll post again if I remember .

I have been recruiting other NPC activists from around the internet forums, including Gamasutra, Xgames3d and tdc (as soon as I can bloody well log onto the site!). They all have a link to this forum, so we may be getting some visitors here (hopefully because I like hearing the ideas that come through here!)

Cheers all!

-Chris Bennett ("Insanity" of Dwarfsoft)

Check our site:
http://www.crosswinds.net/~dwarfsoft/
and our eGroup:
http://www.egroups.com/group/dwarfsoft
Here''s alink to a doc about the AIModule.

I don''t have included basic needs now, but would do in two or three hours

I use C++ and I love class.
(In fact I love JAVA )
Layers might be interesting, don''t know how to implement this.


-* So many things to do, so few time to spend *-
-* So many things to do, so little time to spend. *-
Layer system would hold many benefits (ie. you could switch them on or off to optimise certain NPC''s for certain tasks) but it would need to be thoroughly designed to be as efficient as possible (M$ Internet protocol layers were so screwed, that after an overhaul they yeilded 50% faster results ).

I am not truly sure as to how a layering system would work or how to properly implement one, but (based on multiple inheritance) you should be able to create sub-layers with one super-layer that handles them all. Use initialisations with pointers and descriptors of what that layer is, and the layer talks to the super-layer, which distributes appropriate instructions to either the other layers or to the NPC (because I am tired, I haven''t though much on this ).

I realise that this is a very high level and theoretical view of the idea, but it could yeild some benefits


-Chris Bennett ("Insanity" of Dwarfsoft)

Check our site:
http://www.crosswinds.net/~dwarfsoft/
and our eGroup:
http://www.egroups.com/group/dwarfsoft
I''ve been building a little system that i call woh (weird objects handler)

This system lets objects intercommunicate with eachother.
there is .dll''s that are package so files
so inside every .dll there is objects.

Objects can be loaded and unloaded runtime.
I''m planning to implement network routines into woh so that objects can communicate and send messages over the network (great for scaleable server system).

I have designed the system so it''s easy to derive the base system down into subclasses so they match your individually needs.

This system will be the heart in my mmorpg.

Well i like this thread and your ideas.

//Andreas
Advertisement
Ingenu,
I think that there should be a basic schedule that is carried out for each week as you said combined with a need system.

Also, I think there should be a system that controls the direction of the NPCs according certain quests or stories. Like, if the NPC was supposed to meet the player at a certain spot at a certain time according to some sort of quest or story, that schedule would take care of that.

I think the need-based schedule should be the highest priority, then the story-based then the basic schedule would be the lowest priority.

Although, it's possible that the NPC could be thirsty while on the way to following the basic or story-based schedules, and perhaps be late for either of these shedules.

Perhaps, that would even make things more realistic? If the NPC is late for meeting the player somewhere it may be more realistic. It may also just be annoying.

As far as classes in programming go, I haven't really used them much. I haven't made the trasition quite yet.

I understand them, but just never use them. I know that I need to begin using them though.


Happy Birthday, dwarfsoft.
What's the age in Austrailia for drinking?

It's probably 18 in France, Ingenu, isn't it?


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


Edited by - Nazrix on July 5, 2000 12:35:19 PM
Need help? Well, go FAQ yourself. "Just don't look at the hole." -- Unspoken_Magi
dwarfsoft:
I understand the layer programming idea.
Interesting.

Nazrix:
I see that we perfectly agree about all that ''module''
We could implement a trick for a special kind of NPC having to be somewhere after some event.
But thinking that he can be late because he went out of food stock is somthing I found pretty cool

You''ll see OO porgramming isn''t hard.
(In fact I''d no difficulty going this way)

Have you checked the link ?
I have not had the time to write the basic needs, but I''ll do that soon.

Drinking in france: 18 you''re right.
In fact you can drink at 16 if you''re with a 18+ years old people who will take care of you.



-* So many things to do, so little time to spend. *-
-* So many things to do, so little time to spend. *-
Systemia : I did notice your post before but I was thinking og various other stuff.
Yes I know what you're talking about, I've studied socio psuchology, psychology, economics and computer science (and various other things)

dwarfsoft suggest in another thread, that a NPC could help you depending on what you did for him,and how much it'll cost him to help you.
I think a basic system taking psychosociology into account can be written.

Please follow this LINK for a little more explanations.

(edited two times, I think I'm more tired that what I feel)


Edited by - Ingenu on July 5, 2000 3:04:07 PM
-* So many things to do, so little time to spend. *-
Ingenu,

Yeah, I think having the possibility of the NPC being late is a good thing too...more interesting.

I checked the link. Those are all really good ideas.

That''s cool that the drinking age is so low. Europe is so much better about that sort of thing

"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

This topic is closed to new replies.

Advertisement