![]()
Visiting guest. Why not sign in?
|
|
GameAI in FPS Ideas and oppions for an upcoming project | |
GameAI in FPS
Me and a friend of mine are going to start a 20 week project this summer. Right now we are looking into some interesting AI-technics, that we plan to implement in a FPS-game. The purpose with the project is to create something that demonstrate how well suited a FPS could be to use in military simulation for ground forces. It would be great to hear others opinion what specific AI-technics would be fascinating to look deeper into. What things do you consider weak in game AI today and that would be great to put effort in improving further? We have done some research and found out that Quake III seems to be a good alternative to develop bots for. Lately we finished a project where we developed a bot for Quake II using SOAR (http://ai.eecs.umich.edu/soar/main.html). The drawback with this approach was that we found the path-finding to be quite complicated to implement using SOAR and our intentions is not to use it in this project. Considering available documentation, realism, "easy-to-use", path-finding etc. what game, in your opinion, is the best FPS-game to use? All ideas and opinions are welcome! |
|
Unreal?
QAIII isn't that great to develop AI for since it does not expose all of its AI in the SDK. Note that engines prior to QuakeIII are incapable of handling terrain such as the 'small' McKenna MOUT facilities. Since you aim at military simulation, you may want to look into engines that are being used for military simulations. These include: Other games used for defense simulations include the Delta Force and Rainbow Six series. However, both games features 'closed AI'. Especially Unreal is really open, and exposes almost all its AI. Besides, more and more tooling for Unreal is becoming available since a number of Universities (including CMU) have adopted it as a testbed for their AI development: http://www-2.cs.cmu.edu/~galk/gamebots/ Note that the Moves institute (http://www.movesinstitute.org/, and related to the army game project) lists a number of theses on their site that are relevant for your work. William |
|
Ideas on what to implement
Alright, thanks a lot! Maybe we stick to UT instead. What would be interesting to look further into? Does anybody have some ideas? |
|
Q3 and Options
Björn, welcome to the AI Depot. Quake 3 is a great game & engine, though the quality of the existing bots has deterred people from creating their own. So there's very little source code available, and even less documentation. However, the navigation system is more than fine to build on, and it seems to work reliably on most terrains with adequate preprocessing. You don't get access to it, but that's not a problem if you want to build higher-level AI anyway. I don't like the idea of using UT personally, simply due to the scripting language, Unrealscript. It's a fine language, but it's custom. You can't just plug your C++ stuff in there easily. I'm sure there are ways of getting native code in there, but it'll be a fair bit of work! If you want complete control, possibilities for tweaking the engine and game logic, single player campaigns, great source code support, community tools, then go for Quake 2. Hope that helps! |
|
UT and C++
"You can't just plug your C++ stuff in [UT] easily." Officially, you can and it should not be that difficult. See: http://unreal.epicgames.com/CppObjects.htm Not sure whether the C++ - UnrealScript coupling survived all of Epic's patches. Although you'd expect that functionality still to be present given Epic's licensees. Epic probably used it themselves (for pathfinding). William |
|
AAS
Is there any documentation on AAS to read if you want implement a bot using it? The only thing we've found is the thesis by Jean Paul van Waveren, and it only describe it in quite an abstract manner. Is there any implemented example bots we can look at that use AAS, that you (or anybody else) know of? The Gladiator-bot use it but the sourcecode isn't available, right? Björn & Johan |
|
Bot Library
The code is wrapped up inside a library. You have the interface to it, and it's reasonably documented / self-explanatory. I think the file is bot_lib.h. Indeed, the thesis is from a theoretical, and lower-level point of view. Take a look at the calls made from the Q3 or RCTW source, and that may give you a practical idea of how to use it. |
|