• Home
  • About
    • Biography
    • Contact Info
  • Projects
    • 2D Map Editor
    • Dodge and Destroy
    • Intruder's Run
    • Procedural Terrain
    • Jim Bob's Jam
Nickpdevelop.net

Self-adjusting AI in Dodge and Destroy 03/02/2012 at 15:34

So although I didn’t plan on updating Dodge and Destroy anymore, the one thing that really bothered me about the project was how the AI was spawned, and how every game would end up with the same patterns. I decided to solve this problem really quickly by allowing the SpawnController object to self adjust what types of AI to spawn!

I do this simply by polling statistics from the player every level to adjust the AI in the next level. The AI types that I have in the game basically fulfilled the purpose of either forcing the player to move around(Green AI agents), or constricting their movement(Blue AI agents), while the Red Agents did some of both. So I basically decided, “lets keep track of how mobile the player is and spawn agents accordingly!”. After every level based on how mobile the player is, the SpawnController adjusts percentages of which AI types to spawn. I also decided to have the Red agents always have a 50% chance to spawn as they fulfill the purpose of both constricting movement as well as forcing the player to move. And after playing it a lot, it works very well, and is fairly balanced!

In other news I still have to make some changes to the Map Editor regarding resource management, been busy working on job searching and haven’t gotten to it much. Also I thought about my XNA co-op game I was making earlier; I think that right now the best thing would be to prototype the game in a 2D isometric layout instead of trying to do that with the 3D graphics in order to design the game much quicker. And with that decision I may start working on the isometric mode for the Map Editor, I just gotta do some more reading on the subject to ensure that data is stored right in the isometric format. Anyway that’s about it for now!



« Editor resource problem! EEPS Busy, but back to coding! »