Download it at http://www.cs.ucla.edu/~billyh/AIFighter.zip
Source code available at http://www.cs.ucla.edu/~billyh/AIFighterCode.zip
To play you need a PC, the XNA framework that you can download here
No longer needs Xbox controllers!
Major Changes from the last version
I enabled the keyboard so that users without XBox controllers could play. Many people outside the class asked for this. Additionally, I fixed the crash bugs that occurred in the demo last Thursday. I also fixed some of the font bugs that were visible in the demo.
What worked on this Project?
I really enjoyed working with an artist rather than working by myself, and I feel our game was much better for it. One decision we made early on in the game-creation process was to use source control, and that clearly paid huge dividends, as it was easy to pass work between the two of us, easy for me to develop on multiple machines, and easy to merge our work. We used free project hosting on google-code (with Turtle-Subversion as our source-control client), and I would highly recommend this for anyone starting up a project with more than one person. Even with one person, it forces you to check your checkins and it’s a great way to back up your work.
As far as the game itself, I’m very proud of how it turned out. Most people, on hearing the game pitch, didn’t feel like we would make a fun game or thought that our AI couldn’t be implemented in the short time frame we had, but everything worked very well. There was enough time at the end of the project to add additional modes like AI vs. AI, player vs. player, or single player training AI. Most people that played the game enjoyed it a great deal and got very competitive. I’m convinced that our project was one of the most ambitious and novel games in the class and for the most part we pulled it off well.
What could have gone better?
There were a couple of problems we had working as a team. One of them was that it was difficult pulling everything together for demos or deadlines. For example, my partner checked in art at 6:15am on the final day, but he was unable to test the code changes he made to get the art to work because he only had one controller. Later that day I attempted to fix the two player bugs that had been introduced, but I missed one that occurred in our final demo (in certain types of two player game, we would crash if player 1 won). This was frustrating because I had spent a long time bug searching, but immediately before class I was still trying to integrate artwork rather than bug hunting. I recommend to any team that you get everything checked in a day before the deadline so that you can spend time integrating and looking for bugs in the integrated version.
I’m not convinced the “teacher” mode is the best design element for this game. Some users had trouble using it to train their AIs. On the other hand, I’m not sure what could replace it. There haven’t been many other games like this (Black and White had creature training, and Virtua Fighter 4 had some combat training), so we were in new design space where there weren’t established guidelines.
What about the Future? What’s next?
I would like to get this game running on the XBox in time for the release of free Xbox games. I’ve fixed the problems that I know about, but I need an XBox360 to test it. There’s two things that would make a huge improvement to our game (for both Xbox and for PC); networking and proper save/load. Our current save/load has a number of “slots” or specific files where it saves AI. There should be a way to easily get this to work on the Xbox and (if on a PC) to open a normal “save file to disk” window like a normal windows application, but I haven’t been able to find it. Ideally the game could be networked as well, so one could fight other players on the internet (or XBox Live), as well as downloading/uploading cool AIs that players have created, but I haven’t been able to find good examples of this. These are problems that the Xbox/XNA community has to solve, as I have no desire to write my own networking or save/load GUI software (besides the game dependent parts).
Besides releasing the game on the Xbox360, I might submit it to something like the independent games festival or GDC. With just one programmer (me) and one artist (Erik), its not a incredibly developed game, but I feel like there’s an interest in AI for video games that goes beyond state machines.