Advertisement

What AI structure?

Started by October 07, 2007 12:55 AM
11 comments, last by Anowrexiya 17 years, 1 month ago
I have attempted to answer my problem with the search function and the available resources, but to no avail. However, if I missed something obvious, I apologize and would be grateful for guidance to said obvious information. Thanks. I am making a full conversion mod of UT2k4 (and hopefully UT3) which will be a twitchy FPS. I had settled on player-trained Neural Networks, but wanted to run this by y'all in case I should be using a different paradigm completely. The only way I can do this is to send the NN information from the engine similar to what it would send any bot, and to have my output sent back to the engine just like the input it would receive from a player. I understand the difficulty inherent in developing real-time evolving NNs, and am willing and determined. However, before I spend all this time doing so, I was wondering if there was a better way to go about it, such as case-based reasoning, or something else. My secondary question was as to whether or not Scheme is the right language to use? If both of these are the right way to go, could someone please link me to good, free tutorials for them? I am a college student, and as such have no money to spend on learning materials. Sorry for the wordy post, but I really would appreciate the help. Thanks.
UT2k4 supports Scheme? I thought they used UnrealScript only?

Beginner in Game Development?  Read here. And read here.

 

Advertisement
No, I would have my AI engine running parallel to the Unreal Engine, receiving input and giving output to it as illustrated above.
Quote: Original post by Lykaios
The only way I can do this is to send the NN information from the engine similar to what it would send any bot, and to have my output sent back to the engine just like the input it would receive from a player.


If you want a bot that can challenge players then no, I dont think it is a good idea, its a common pitfall. By having the output of the learning machine the same as a player input, rather than higher-level actions, you exponentially increase the complexity of the problem, severely limiting the chances that it will settle on an acceptable solution, and it makes it most certain of seeing a lot of idiotic behavior.

Quote: Original post by Lykaios
My secondary question was as to whether or not Scheme is the right language to use?


Well, I love scheme, but apart from performance concerns, I wonder if a weakly-typed functional language great for manipulating symbols is the right choice to implement a method that is essentially numerical (NN).
Something similar was done with Quake 2, and I'm absolutely certain a neural bot was developed for the original Unreal Tournament, but I can't seem to find the page anymore. Perhaps this site will help you instead.

GDNet+. It's only $5 a month. You know you want it.

Quote: Original post by Steadtler

If you want a bot that can challenge players then no, I dont think it is a good idea, its a common pitfall. By having the output of the learning machine the same as a player input, rather than higher-level actions, you exponentially increase the complexity of the problem, severely limiting the chances that it will settle on an acceptable solution, and it makes it most certain of seeing a lot of idiotic behavior.


I'm not sure that I explained it correctly. The NNs would output high-level decisions. However the Unreal engine would not be able to take in those raw decisions, so I would have to couch it in terms the engine would understand.

Maybe my big issue is the Unreal engine in the first place.

Quote: Original post by Steadtler
Well, I love scheme, but apart from performance concerns, I wonder if a weakly-typed functional language great for manipulating symbols is the right choice to implement a method that is essentially numerical (NN).


I was under the impression that running NNs in C++ or Java would be completely inefficient. Every person in a position to know has told me that LISP is the only way to go. Thank god someone at least questioned this idea before I wasted time attempting this.
Advertisement
Scheme, and pretty much any other dynamic language, is a bad idea for implementing a NN. You need a statically compiled language at the very least (C/C++), and if possible, a nicely optimized library to do the work for you :-)

I've had good experiences with the Fast Artificial Neural Network library:
http://leenissen.dk/fann/

It has bindings for dynamic languages if you take the time to figure out a few little problems here and there.

Join us in Vienna for the nucl.ai Conference 2015, on July 20-22... Don't miss it!

wow, thanks!

I am in tight with my CS department (I'm a CS major) and the only information that I got from my professors and fellow students was "uhh, well LISP is THE A.I. language, so uhh, like use that dude!"

I am so much more comfortable with C++, and this will make it so much easier to interface with most engines that I could use.

thanks again, I love the advice.
Quote: Original post by Lykaios
wow, thanks!

I am in tight with my CS department (I'm a CS major) and the only information that I got from my professors and fellow students was "uhh, well LISP is THE A.I. language, so uhh, like use that dude!"

I am so much more comfortable with C++, and this will make it so much easier to interface with most engines that I could use.

thanks again, I love the advice.


LISP is indeed a favorite of AI departements around the world. Its just fantastic for coding things like expert systems, planners, solvers and the like. Which doesnt mean that you should use it blindly for anything, just like you shouldnt blindly use NN for anything, without considering the particularities of your search space, and the usability of the system.
Right. Doing anything blindly is a big no-no in my book, which is why I'm asking these questions.

Thanks again for the advice folks. Were I not "studying" for a data structures midterm right now, I would post more meaningful discussion, but that will have to wait for later tonight.

Lykaios

This topic is closed to new replies.

Advertisement