 |
|
|
 |
We have 1 guest and 0 members online
You are an anonymous user. You can register for free by clicking here
|
|
|
 |
|
|
 |
I'm working on a new project I call Alive! It's a sandbox for learning about artificial intelligence and game programming. My main motivation for Alive! to take similar concepts than FEAR (targeted towards programmers), but make them accessible to anyone. The FEAR codebase has always been clean and well commented by most standards, but beginners always struggle to get started -- despite the documentation. And that's what I want to fix with Alive!
The new architecture is based on experience from my work on the AI system at Rockstar, which in turn was derived from experience with FEAR. Things have changed a lot for the better, and particularly benefited from being written in a dynamic language like Python. The Alive! package is now a fully self-contained environment that you can launch in one click -- although there's not much to do after that yet!
Alive! has been in the works for a few months only, but I've been working on it full time. It's very likely I'll get some funding to keep this going full-time in the near future... As you can imagine, there are lots of cool things to work on in the project; see the screencast for more information. If you want to get involved, drop by in the IRC channel #alive on irc.freenode.net, or send me an email directly with the subject "Alive!".
|
 |
| (6478 Reads) |
15 Comments  |
|
 |
 |
|
|
 |
Preparing my seminar at IPAB and thinking about my imminent re-entry back into the heart of the games industry, I've been reconsidering the future of the project. What makes FEAR useful for education and research is the fact that it is integrated with a game simulation, and the world representation is accessible via simple interfaces. What makes FEAR useful for professional game programmers is that many AI techniques are already implemented (decision trees, neural networks, fuzzy logic, rule-based system, finite state machine, etc.). I've always considered FEAR as both a research and development project, and these two different views make that clear.
Development -- I'm very happy with the C++ code for the AI techniques; it's been developed and tested over the past few months/years. The code is written to be intuitive, with lots of comments -- mainly for educational purposes. I would use the majority of the code in a production environment, but there are a few details that make it unattractive. First, the code is writen to expose a virtual interface, which requires two more classes (c.f. pimpl paradigm). Second, the implementation is written with many assumptions in mind, and is mainly customized by editing the code (e.g. if you want to use 'double' instead of 'float' weights in the NN).
Research -- Regarding the interfaces and the framework that glues the whole thing together with the Quake 2 platform. The XML models for code generation have proven useful, but they are a bit clunky and not very intuitive. (The new tutorial series makes a point of not using XML to model the brains of the animats, to show there's no dependency on it.) As for the interfaces themselves, they suffer from a simplistic object system. Coming up with a formalised model for objects in the world is quite a challenge, but I think it's essential to develop good AI. Given the progress of related initiatives, I expect this to take a bit of time.
So, short term goals are to reimplement the AI techniques using generic C++ programming. This will make the code like Boost or the STL, but for AI in realtime games. (There's a demand for this in the game AI industry.) I'll be using test driven development from the start, which should make the codebase ideal for professional AI coders. The documentation will be extracted from the litterate C++ code, and the tests will be used directly as examples. In the long term, I hope to do more research with the model-driven object/component representations -- but that's temporarily on hold.
|
 |
| (53157 Reads) |
69 Comments  |
|
 |
 |
|
|
 |
I've put up a new issue of Exercises in Game AI Programming. This issue covers neural networks and how to get them to learn deathmatch behaviours. Specifically, the tutorial goes through the methodology to get a perceptron to solve a practical problem. The results are pretty impressive in the end -- if I may say so myself.
As usual, there was a new release, version 0.3.8 which you can find on the project site. Apart from a new neural network animat called Onno, and a refactoring of code in the first two tutorials, there are a couple minor changes.
- I've changed the definition of the interface import procedure, so it now returns boolean value. This indicates success of the procedure to import interfaces. If the interface doesn't match in name and version, Import() should return false. But if the interface matches and the import fails for technical reasons, an exception should be thrown.
- I've added a new mechanism for sending messages to any component. This is a very powerful concept, and part of the plan to make the FEAR components smarter and more autonomous (in preparation of the 0.4 branch). This new function is not used extensively yet, but I expect it will be as there are quite a few valid uses for it in the current codebase.
On an admin note, the CVS repository will be in an invalid state for a few days while I fix a few problems. The CVS LOG mechanism should work after the clean-up, and many of the modules and files have been reorganised. Once the SF staff make those changes go live, I'll update the build scripts to make the repository consistent again. Stay tuned!
|
 |
| (43315 Reads) |
127 Comments  |
|
 |
|
|
 |
|
|
 |
· Separation of Concerns
(May 12, 2004)
· Preparing the 0.4 Branch
(Apr 08, 2004)
· Neural Network Tutorial
(Apr 02, 2004)
· FEAR 0.3.7 SDK Release
(Mar 24, 2004)
· Rule-Based System Tutorial
(Mar 16, 2004)
· FEAR 0.3.5 SDK Release
(Mar 02, 2004)
· Library Manual
(Feb 24, 2004)
· FEAR 0.3.4 Release
(Feb 10, 2004)
· Object Systems
(Feb 02, 2004)
· FEAR 0.3.3 Base Release
(Jan 22, 2004)
|
 |
|
|
 |
| Tuesday, February 24 |
| · | Library Manual (40) |
| Tuesday, February 10 |
| · | FEAR 0.3.4 Release (72) |
| Monday, February 02 |
| · | Object Systems (35) |
| Thursday, January 22 |
| · | FEAR 0.3.3 Base Release (44) |
| Tuesday, December 30 |
| · | FEAR 0.3.2 SDK Released (0) |
| Monday, December 08 |
| · | New Docbook Documentation (0) |
| Monday, October 27 |
| · | Next Release (0) |
| Thursday, August 21 |
| · | Packages Merged (23) |
| Sunday, June 15 |
| · | Design Review (0) |
| Wednesday, June 11 |
| · | Sleepless Designers (1) |
| | Older Articles |
|
|