Wednesday, April 5, 2017

Still Here...

It’s been a while since I’ve put anything new on my blogs, and the reason is that I’ve been pursuing a game project—one which seems to have taken on a whole life of its own.

It actually started with an idea for my “Deballing Zone” blog. This was going to involve a story in which the unfortunate inmates of a “deballing world” are forced to play a special game, with the loser paying the kind of forfeit that you would expect!

Next, I got the idea of making this an actual new game with specific rules, and everything kind of expanded from there.  I wanted an abstract strategy board game (like Othello or Connect Four etc, but with a more aggressive “feel” to it) and set about experimenting with different rules. But inventing a game of that kind is not as easy it sounds. The rules have to be just right in order for the gameplay to provide a balanced and interesting contest.

In the course of my experiments, I came across a marvelous piece of software called “Zillions of Games”. This allows you to describe the rules of a game using a custom computer language (similar to Lisp), and then the software can play the game against you (or against itself) using its general purpose game playing AI algorithm. With the aid of Zillions of Games, I managed to develop a game that I was quite pleased with, and then decided I’d like to incorporate it into my own game program, complete with AI.

At first, I thought I might be able to get an “off the shelf” General Game Playing (GGP) AI which I could plug directly into my game program. However, there didn’t seem to be any readily usable options, so I decided to the write the relevant algorithm (I chose “Negamax”) into my program from scratch.

Well, I managed to do that, and the algorithm worked (as in, it came up with the expected game moves). However, the next problem was speed. I really like the game engine that I used, but when it came to the AI calculations the code ran too slowly to be practical. So the answer was (1) to make the algorithm “smarter”, so that it makes some beforehand selections about which moves seem promising, and (2) to rewrite the whole algorithm as a custom C++ module (so that the code runs faster). That meant that I had to learn how to program in C++...

As you can see, it’s been quite a journey, but now I think I’m in the “home straight”! I’ll be rebranding the game as something non-erotic, and intend to try selling it as desktop a PC program (and hopefully an Android app too). I might also release a version that uses the original “Off With His Nuts!” concept, in which case I’ll post a link here on my blog.

No doubt, my game development activities are of limited interest to many of the people reading this. But at least you know I’ve been busy! In any case, I’m getting back to a place where I feel more like producing some LLP stuff again.

And, after all, a change is as good as a rest!


Regards.