Hello World!

I guess the best place to start is an introduction. I've always loved making computer games. I started in the early 1980s, writing games in Basic on a Video Genie (the thinking man's TRS-80). Although actually like many others at the time I learnt to program by typing games out of a magazine.

By the end of the 80s though this was harder to do - the Video Genie became an Amstrad CPC 464 which became an Atari ST, and by then magazines had long since dropped printed games. At some point I did send in a couple of my own games to magazines. One came close to being published - a Q*Bert style game called Pyramid Man (cleverly pinching the music from Chariots of Fire as the theme tune), but the magazine in question went bust and sent me a copy of Ghostbusters for the Spectrum by way of apology.

Fast forwarding 20 years or so, and tools like Unity have really opened up the opportunity to make games again. In 2013 I wrote and published an initial game called "Critical Mass" as a test to see what would happen, and created Bookmark Games as the name of the company to publish it under. Since then I've made a few other games, and most recently I've been working on Undaunted Normandy.

This doesn't pay the mortgage though, so like a lot of indie developers all of the coding is done in the evening and weekends. And like a lot of indie developers I also do the marketing, publishing, finances, etc. But if I didn't love it I wouldn't do it.

The idea of this blog then is just to talk about some of these things from time to time. Probably mostly the programming stuff. I'm currently spending most of my time tuning the AI in Undaunted Normandy. Really this (and any) AI is just a very large decision engine. I'll call it an AI anyway. Each time the AI needs to take a turn it has a look around the board to see what the key objectives are. It considers this in conjunction with the cards it has in hand - after all, there's no point setting an objective if there's nothing you can do about it immediately. It also considers the game state from the point of view of the (human) player - are they about to win for example? And then it makes a decision.

The trick of course is getting the decision right. As I said it's largely a rules engine with a bit of randomness thrown in for fun. Each time a card is played a number of options are available. For a scout for example should it move or attack? If it's going to move, where should it move to? What I've found is the best way to do this is to start with a set of basic rules. For example, move to the highest unscouted victory location or shoot at the enemy rifleman that could potentially capture a victory point this turn. Then I spend lots (and lots) of time playtesting the game and picking out when the AI makes a dumb choice. Then I quit the game, go back to the decision engine rules and refine them to make a better decision, and replay the game again. It's actually much easier to do it this way than it is to try and write down all of the possibilities from the word go.

I'll stop there for now. I'll try and write here reasonably frequently but if I don't then I'll apologise now!

9 views0 comments