Developing games takes up quite a bit of my time these days, now that it’s a full-time job for me. Despite that, I’m still working on a game in my spare time, although not as much as I used to do. Fortunately, programming isn’t my only hobby. I still had an old, almost-finished Half-Life 2: Deathmatch level gathering dust on my HD, so I thought, why not finish it for real this time?
So that’s what I’ve been working on the past few days. I’ve fixed up the last few details, with feedback coming from some friends, so here I present you:
dm_mudanchee (.rar, 6.8 MB)!
I intended to release AI Wars last week, but some things got in the way. Some people have been asking me about it recently though, so I contacted my friend Inky for the latest version of his AI client and wrapped it all up in a .rar file:
AI Wars download (210 kB)
The package contains the server and an AI client, written by Inky. Startup instructions can be found in the readme.txt file. If you’re interested in writing your own AI clients, contact me on this blog or through my portfolio’s contact page and I’ll settle some documentation and code.
Thanks to Mark, who worked with me on the AI Wars server, and Siebe, who built the AI client. And thanks to Jaco and Vassili for their emotional support, of course. Hehe.
Anyway, enjoy, and please let me know what you think of AI Wars.
I recently stumbled across Neko Media Engine, a SDL wrapper for haXe. I decided to port one of my Flash games to NME, to make it a stand-alone application. I got it up and running after modifying my framework for a few hours. It turns out that, with relatively few changes, my framework can be used for ‘normal’ games just as well. I’m starting to like haXe more and more now, especially with such libraries around.
The developer of NME, Lee Sylvester, has recently teamed up with Hugh Sanderson to create Neash: a Neko library that provides the Flash API for Neko applications. In other words, we’ll be able to use (almost) the same haXe code for both Flash and Neko applications… That sounds interesting!
Last week I started with my final internship. It’s, again, at Triangle Studios. This time, there’s no mobile games to work on though, but Nintendo DS titles. I’m working on something pretty interesting, but for now that’s about as much as I can tell.
As for spare-time development, I plan to release AI Wars next week after some minor fix-ups. I’m then going to continue work on the surprize I mentioned last month. After that, I’ll either do another small project in-between or I’ll immediatly take up work on Aural Fighter.
The framework I’ve been building for Aural Fighter has been tweaked and refactored all the way through AI Wars, the surprize project and a few other prototypes. I recently streamlined the rendering system: animated sprites are now simply a matter of creating a single sprite sheet and writing an animation data text file, rather than creating multiple numbered files. At compile-time, this animation data is compiled into the .swf file. The sprite loading process then attaches that data to the loaded sprite. There are still a few things I’m working on, such as color remapping and fading filters, but the framework is steadily moving towards a point where creating new games doesn’t require me to add new functionality anymore. Which means I can focus more on the actual games and less on the technology behind them. Which is good.
AI Wars is done
It’s finished. The Flash frontend and Neko backend are done, and my classmates have produced a nice AI client for demonstration purposes. The whole package is roughly 0.5 MB.
To make things a little easier, I’ve written a batch file that starts both the backend and the frontend. All that’s left then is connecting the AI clients and starting the game.
Continue reading “AI Wars is looking for AI agents!”
Recently there have been some threads about ‘how to get inspiration’ on the Gamedev.net forums. Sometimes it feels as if every good idea is already taken, and that every addition or twist you come up with turns out wrong.
That was written in a game design board, but I’ve also seen it come up many times on level-design forums. Take Counter-Strike for example: so many custom maps have been created that there’s virtually no original setting left. Or Half-Life 2: try to come up with an original physics-based puzzle for once. That’s harder than it looks.
Here’s how I handle it
Continue reading “How to get inspiration”
Here’s a small image hinting at the surprize I wrote about in my last post. It’s a puzzle game, it’s almost completely finished and it includes an editor. I’ll post more info about it later, once it’s fully playable and polished.
Meanwhile, I’m finishing up AI Wars – it’s almost done now, except for a few communication issues. I’ve also written a few additional Python tools. Since I’m painting quite a few tilemaps for Aural Fighter, I figured a few tools wouldn’t hurt. Today I added one that takes an image, asks for the desired tilesize, and outputs a serie of unique tiles as separate images. It’s using Python Imaging Library (PIL) to load, compare and save the images. It then optimizes them, using PngOptimizerCL, the command line version of PngOptimizer. The tool took me about an hour or two to create, and it’s less than 100 lines of code. And, except for the optimization phase, it’s quite fast, too.