Tagged: ai

Monarch Black Video Blog: April ’16

I’ve done a lot of new work on the game! Going to GDC for Unity was very inspiring. I saw a lot of great projects and met a lot of great people and came back with a fresh energy to work on the game, and to make big improvements. I went to a party at GameNest, a great game focused coworking space and met Daniel Cook, one of the game designers at Spry Fox. We had a great conversation about design, prototyping and iteration and I had a few minutes to show him Monarch Black. He gave me some great critical feedback (mainly that my steering was kinda sucky) and that gave me a nice kick in the pants to come back and tear out a bunch of old work and improve things.  Once I got a new steering and aiming system in I was feeling like the overall moment to moment gameplay was a little linear and stale. This lead to me doing a total overhaul on the enemy unit’s AI. I actually used a model that I taught in a live training session for Unity, which you can find here. Funnily enough I had designed and taught this system (with the help of my programmer co-worker James, who is a much better coder than me) but hadn’t integrated it into MB. In the process of trying to add some new behavior to my enemies I was running into the limitations of the terrible old code that was driving their behavior so I decided to rip it all out and re-do it using the state pattern / interface model from that training. I’m pleased to say that it works really well!

At GDC I went to the book release party for Derek Yu’s ‘Spelunky’. He read from the book and the section he read is actually one of my favorite parts of the book. He is talking about Legend of Zelda, and about how at times the game can feel indifferent to you, and how this feeling of indifference can allow the world to feel more alive, since it’s not all  centered on and focused around the player.  This is in contrast to the more theme park style approach of later Zelda games in which every moment feels carefully designed to guide and entertain the player.

Part of the feeling I want to create in Monarch Black is of being in these alien, sublime environments. I don’t want the player to feel like the sole, god-like entity in this environment, but instead one of many actors.  Another thing which Yu mentions in his book is the idea that in roguelike games, the player and the enemies should live by the same rules and be able to interact with things in the same or similar ways. This concept really rung true for me and lead to a lot of my thinking about refactoring the AI in Monarch Black. Now, when a sphere plant explodes and the pollen grains fly out, the player and the enemies have to scramble to collect them all, and if the enemies get there first, they’ll take them from the player! This adds an amazing, dynamic moment to the game where suddenly the player has to respond to changes in the game that they may not have instigated.

Getting to this moment of the player and the enemies following similar rules and behaving required massive refactoring of the existing systems and I had to throw out a lot of old code. Happily, the new code is much cleaner and has opened up whole new sets of creative possibilities in the game that have given me a fresh burst of motivation for working on it.

I recorded a video of me playing the latest version of the game, which is full of bugs. I said I recorded the video to avoid writing a long blog post about my recent work but now apparently I’ve done both. ¯\_(ツ)_/¯