NPC AI in RPG's

Started by
58 comments, last by dwarfsoft 22 years, 9 months ago
Just out of curiosity, are we trying to create realistic AI or effective, intelligent AI that is still fast?
Advertisement
quote:Original post by KaneBlackflame
A Neural Web is my attempted improvment upon a NN. There are no "hidden" layers in webs, as I create them node by node by hand with a SDK I built.....


hmmm....
so does each and every player/bot in the game have a seperate NWeb then?
or is it just a huge NWeb controling everything?
how do you handle each frame of AI?
do you compute the lot each frame or split over frames?

quote:Original post by KaneBlackflame
I would love to post a site, but I don''t have the time, and the only content I can provide is thesis statements, technical notes, and LOT''s of logs. I would rather wait till I have my demo working again before I post a zip file of my stuff. I would love to hear your comments and thoughts for improvement.


hahaha
fair enough.
I know exactly what you mean about not having the time

Keep us informed about the status of your latest demo.
I''d be interested!



"Bad Day... F**K it!" -Stephen Baldwin (Usual Suspects)
"Bad Day... F**K it!" -Stephen Baldwin (Usual Suspects)
Neural Webs are made for each AI and mine are made up of a few hundred nodes with each node making 1 to about 50 connections per node. Each NWeb must be run at intervals depending on the need for the applications...FPS''s would run the Web with each frame...large RPG''s would run local NWebs at a high interval while non-local Webs could be approximated, under normal circumstances, perhaps assuming they complete their daily routine with success. They are very flexible as I see it, but take more work to produce than a normal NN with hidden layers.
"Victims...aren't we all?" -Brandon Lee, the Crow
HAPPY BIRTHDAY!
---------------

To you too, dwarf

------------------
It''s me again!
Best wishes from me too, Dwarf!
(better second than last)

Boby Dimitrov
boby@shararagames.com
Sharara Games Team
Boby Dimitrovhttp://forums.rpgbg.netBulgarian RPG Community
Just a thought,

How about having permanent death to NPC AI''s. Once killed, they are dead and thus clearing out the db in reference to them. The new character (hired guard for the city ect) would spawn with a random AI start-up and start the learning process all over again. Differnt name, graphic, AI. LVL(to prevent camping), ect.

Also, with an assigned personality factor, you could have likes and dislikes to determine if an NPC cares about any information they are subjected to. Thus, allowing them to disregard anything related to fish. Maybe he/she likes chicken.

Timing implementation should be added as well. As years go by information should definately be erased to prevent saturation in case other methods don''t hold up.

re-assignment and or npc leveling could be a benefit as well. After some time in service, guard Noci gets re-assigned to another outpost on the other side of the world. More chance of being killed there perhaps? maybe....or the great wizard Alysa firenight reaches a lvl too high for the area she''s in and decides to head to another, to continue her study of the arcane.

Making chars like this is no simple task, but it would indeed be a great addition to rpg computer based games. It would get us at least a little closer to pen and paper =)

Mykrul d''Agra
Necromancer


quote:Original post by Myrkrul
How about having permanent death to NPC AI''s. Once killed, they are dead and thus clearing out the db in reference to them.


Trouble with completely purging the db of a dead character is when you want other characters to react to the death.

Admittedly there are work arounds for that, but in essense you''d want some sort of reaction, eg wives and children to remember that the Guard Noki was their husband/father and was killed by Darkmane the Thief etc. Which would give the AI more flexability and realism. That, however, means you''d still have some space used by other characters in terms of their "memories" of that character.

but, of course, if you did a purge of the db then you wouldhave a round robin method of keeping memory requirements to a strict limit, a bit like particle systems in gfx.

"Bad Day... F**K it!" -Stephen Baldwin (Usual Suspects)
Doesn''t anybody use Cognitive Modelling Language (CML) to do a lot of these operations?
Hmm, I came out as anonymous so I''ll repost as me....

Doesn''t anybody use Cognitive Modeling Lamguage to do these operations that are being discussed on this forum?

Do a search for CML + Funge and you should uncover the papers etc by John Funge on the subject. See also his book "AI for Games and Animation" ISBN 1-56881-103-9 which I recommend as a starting point.

Paul
Hello, I seem to have joined this conversation quite late
anyway as I was reading the first posts an Idea came to my mind, seems like it came to duarfsoft mind too (great minds think alike ) since he posted about this computer conversation thing.

anyway I remembered that Debian Linux came with an Artificial Inteligence Package that did that, talked with the user, and I thought it could be used for what we are discussing here, I did a search for it, I found it and I really believe it can do more that what we think for us, its name is MegaHAL check it out here it is open source, and it can be "taught" whatever you want, they have a demo were they taught it to be "bishop" in Aliens, the source package is about 180 kb, I think it may be posible to make changes to it so you can encapsulate it in a CBrain C++ object and add it to your CNPC object in your game, it may need changes so it will generate questions rather than only answers, so we could make it even able to interact with other NPC''s, this will surelly save us a lot of dev time making the exact same thing, why reinvent the wheel.

there is another problem I might have an idea on how to solve though, and that is, while PC is in city B, what happens in city A? certainly you wont be doing all the AI for chars in every city as the PC plays in only one city, so I thought, you can have a timer for each city, or a timestamp so when there is a global time, the time the PC will see in the GUI, when he enters a city characters start doing their AI in realtime, they talk to each other, learn, etc, then, when the PC goes out a timestamp of the moment he lefts is recoreded for that city, and the city frezzes in time, the same moment the player comes back current player time is checked agains the city timestamp like so (timeelapsed=currenttime-timestamp) then you run a loop (with nothing but data processing, no animation,) on the AI for the time elapsed on the city (I can see a status bar saying loading map . . . ), and then start the realtime AI,
tell me what you think, and if you have improvements, post!!!.

see ya

This topic is closed to new replies.

Advertisement