Chitin Update 7: 22 Hours

Sorry, I meant to update at 20 hours and it just didn’t kind of happen.

So what’s new? Check the screenshots!

20 hours:


22 hours:


So! What’s in?

All three unit types – the Brute, the Speeder and the Spitter – are in.

The base Colony unit that produces your units is in.

The Mite Nest unit that processes dead bodies into ichor for you or the AI is in. (You can see the flies that swarm around it in the screenshot above.) You can drop a mite nest anywhere to clean up the resources of dead units – of course, so can the AI. (In theory. Once I code that.)

The basic UI is in; press the button for each unit type to make one near your colony, press the + button next to a unit type to upgrade all units of that type (upgrades their armor by 1).

On the status line at the top, you can see your current ichor level and ichor drain (ichor drain doesn’t yet affect players). The green units on the minimap are the creeps; you must kill them to harvest their ichor (still a fun word to say) so you can beef up your army. You can harvest dead creeps; you can also harvest dead units belonging to you or the enemy.

I wanted basic gameplay done by 20 hours; I think I’ve mostly done that. Now, in the 18 hours left, I need to get an AI in, make a real map, balance it, add sound effects and add music (in that order of priority).

Still pretty sure I’ll get at least the first three things in.

Chitin Update 6: 14 Hours

Units can now fight each other (some of the units in the upper-left corner are dead, that’s why they’re upside-down).

We now have fog of war in.

I made graphics for the other two unit types, but I haven’t started using them yet.

Screenshot-Starter Project

All in all, I’m disappointed in how little I got done this weekend. Three kids and all, yes, but I also fired up Dishonored for the first time “just to see what it was all about”. That was a mistake.

Soooo…I won’t have something to submit for #7DRTS. But that’s okay – by Wednesday I knew that Chitin wouldn’t be ready in time for that anyway; my wife was right when she said that Ludum Dares are for “single guys with no kids”.

I will be continuing the Chitin project as a 40-hour game, and I fully intend to finish.

Chitin Update 5: 10 Hours

Ten hours in and we can now select and direct our units. We’ve also got a (really ugly) minimap.

Screenshot-Starter Project-1

I’m pretty happy with what I’ve done in ten hours. I want the game basically functional at 20-25 hours so I can then polish it up and add content after that. The next two things I need are unit combat and resource collection; if I can get those in before hour 20 I’ll be pretty sure I can finish the game in my 40 hours. But I know I won’t get all the time I need to work on this over the weekend, even if I crunch (which is almost impossible with three kids). So what I submit to #7DRTS isn’t going to be the “final” version of the game. That’s a little sad, but not unexpected. Still happy with where the project is heading.

Chitin Update 3: 2 Hours

Got a little stuff done last night. Discovered the art I’m going to use; I mentioned it a long time ago on this blog but it’s worth a repeat: Oryx’s Lo-Fi Fantasy Sprites. Here’s a taste.


Aren’t they precious? They were originally made for a game competition called Assemblee about four years ago; since then they’ve become mainstays of the indie scene. Oryx sells an expanded commercial set so I contacted him and asked him if it were okay to use these for a non-commercial project; fortunately he was fine with that.

But I didn’t have time to get them integrated, so what you’re getting today is Colored Squaresville:


To come – um…everything. I’ve got the design nailed and it’s simple enough to do in the time allotted. I have the graphics I want. I’ve got the skillz from writing my bigger game, Planitia. Let’s get it done.

And by let’s, I mean me. I have to get it done.

Chitin Update 2: Um…0 Hours

That’s right, I got nothing done from a coding perspective yesterday. Turns out my engine was having problems that needed fixing and that sucked up all my coding time.

But, I did some design work, so I’ll present that. First, my requirements:


* Map
* Buildings that either produce units or resources
* The ability to gather resources with units.
* The ability for units to fight each other.
* The ability to control units with band-selection and target specification.
* The ability to win the game by destroying all enemy structures
* Graphics for each unit, building and map
* A basic AI.


* Map with different terrain types: blocking, slowing and normal squares
* Better graphics
* Sound effects
* Improved GUI
* Improved AI


* Multiplayer. Possible in seven days?
* Artist-done art (find one on IRC?)

Second, the design notes (I present these as-is, they are kind of free-associating):

Chitin is about two colonies of bugs fighting over resources. There will be buildings, workers and combat units.

Workers: Mite swarm. This is a swarm of very small units (basically dots) that will harvest any resources near their nest. Mites can’t be killed, so there’s no way to stop someone from harvesting. Mite nests can be built near resources and they’ll strip the resources bare in no time; think army ants. There’s no “owning” a resource; if two colonies build a mite nest near a resource then both colonies will harvest it (depleting it twice as fast).

Combat units: Three of various sizes. Dead combat units can be harvested by mites so it’s best to fight away from mite nests you don’t own. Classic rock-paper-scissors setup. We’ll have spitters, armored melee and fast melee. Spitters beat armored melee because they’ll wear them down before they get into range. Fast melee beat spitters because they get into range quickly and spitters are relatively weak. Armored melee beats fast melee because fast melee has no armor.

Plus, how about a big gargantuan unit, like a beetle? Slow, hard to destroy, but spits powerful acid a long way and can kill a colony all by itself if left unattended. Worth a lot resources if it can be killed and harvested, so it’s a risk/reward thing for the player that tries it.

Direct control of combat units?

Hmmm…how about a slow but steady drain on – YES. You win the game not by destroying the enemy whatever, but by making your enemy run out of ichor. Ichor is the resource of Chitin and will be used for everything. Ichor will have a +- marker next to it just like a resource in Total Annihilation, so you can see if your ichor income is rising or falling. You start with a slow ichor drain and every unit and building you make increases this drain, so you need to get out there and use your units to explore (which means there must be fog of war).

Creeps. That’s it, I think. There will be other insects on the map, you use your combat units to kill them for food then plant mites next to them to gather their resources. As you do, your ichor goes up meaning you can make new units (and maybe upgrade them?) But if you have no bugs to harvest, your ichor level will drop based on how many units you have in the field; when it gets to zero, you lose the game (your colony is untenable).

Creeps are also of the three different types; use the right bug on the right kind of creep – but be aware that you could get ganked by an enemy bug army that can counter yours.

The player can directly control all units except the mites. There won’t be any pathfinding on the units – after all, they’re drones. It’s your job to get them where you want them to go.

The player will end up with mite nests all over the place but I don’t think that’s a bad thing. A smart player might lure a creep towards a mite nest before killing it.

So far I’ve got two buildings (colony and mite nest) and four units (spitters, speeders, brutes and the big bug) and one resource (ichor). That seems doable in seven days.

That’s all I’ve got for now. Feedback welcome!

40-Hour RTS Update 1: 0 Hours

Again, like with the 40-Hour RPG, time spent just thinking about the game does not count, nor does time spent adding new features to my framework. Only coding time specific to the game counts.

So, here’s what I’m thinking. I’m thinking about two things, an old game and an old computer.

First, the old game. Once upon a time, a long time ago, a designer named Howard Thompson came up with a novel wargame idea – a game set on an alien planet, inhabited by huge, semi-sentient hive-minded insects. He called this game Hymenoptera, and unfortunately a complete version never saw the light of day.

It also had the word “hymen” in its name, which caused everyone who heard it to snicker.

As Hymenoptera languished in development hell, Thompson’s company, Metagaming, decided to focus on small, simpler, easily portable and playable games that they called microgames. This strategy proved successful, and Thompson decided to create a microgame set in the Hymenpotera universe. He called it Chitin: I – The Harvest Wars.

I know that killer bugs have kind of been done to death in the RTS space, what with the Zerg and the Tyranids, but I think I’m going to do it anyway.

Now, on to the old computer. I’ve talked about Daniel Remar rather a lot on this blog, and I’ve mentioned his game Hero Core many times, too. Now, the interesting thing about Hero Core is that its native resolution is 200×180, which means that it could easily be replicated on the ZX Spectrum, which had a native resolution of 256×192. In fact, I always thought that Hero Core felt like a ZX Spectrum game – austere but imminently playable.

And then there was the Easter egg in Startopia that presented the game almost as if it were on a ZX Spectrum – and the game was still playable! The only real problem was that the text became unreadable, but you could still build and manage your aliens due to the use of very clear icons.

So for a while I’ve been wondering what an RTS on the Spectrum might have looked like. And I’ve already mentioned that by limiting himself to a small resolution and monochrome palette, Daniel was able to get effective graphics for Hero Core in a short amount of time.

So I’m following suit. my 40-hour RTS will use a low native resolution to make it easier to do the graphics (I’ll scale the final graphics so the window will be larger on the screen, I promise) and it will be about bugs fighting over various resources they need.

And I’m going to call it Chitin, after the original microgame.

Return of the Mack

“I just wanted to let you know that you did a great job fixing that bug. It was really tough and you did a great job on it, and because you got it done on time we shipped the project on time. This was a really big deal for us. I’m glad we hired you. Why don’t you take Friday off?”

— My Current Boss

Yeah. I think things are getting better.

So it’s time to come back out of my shell. Let’s do something fun and blog about it! Let’s see, let’s see…

Oh. Oh, yes. This is it. The next Mini Ludum Dare’s theme is…7 Day RTS.

That I can do. But I won’t be doing it quite as straight as they are because I do have a full-time job. Instead, I’ll be doing it as a 40-hour game. I’m still going to try to get it done by the deadline on the 29th, which means I’ll have two weekends to work on it. That should be sufficient. It’ll also mean more blogging!

Now I need some decent free graphics. I’ll be making sounds with SFXR/Musagi, of course.

Okay, back to work.

(Not to work-work; I can’t go back to that until I’m cleared by my doctor and I’ve no idea when that might happen. I mean Planitia-work.)

One of the things I want to get done (and get done quickly) is to create a playable alpha version of Planitia, as well as create a trailer. That will make my funding and marketing push more effective.

“But Anthony!” I hear you say. “You already have a playable alpha! I remember you posting it on your blog! With source code, even! Here, even!

This is true. But that version has a terrible bug in it that I just cannot seem to track down – after about ninety seconds of play, the frame rate instantly drops from 60 to 30 and then descends from there. All my attempts at profiling have met with failure.

Basically, I fought code entropy and code entropy won. I’m pretty sure that my framework, which I’ve been using for years, has some rather terrible bug in it and the code is just too overgrown to track it down. Of course, that was the first game framework I ever wrote, so of course it was krep. Before you say anything, It’s not just Planitia that is making me think this, there are parts of Inaria that bog down as well. Both of these games are so damn simple that they should run at about a thousand frames a second on a TI-99/4A, for crying out loud.

I talked to my friend Jari Komppa about this (who was recently called a god of the indie demo scene, by the way) and he had this advice:

“Code like it’s 1999.”

I also stole his base code, which you can find on his site here.

So how were we coding in 1999? Well, procedurally, for one thing. OOP hadn’t really penetrated game development yet. Game engines were usually just collections of functions rather than interlocking game objects. Classes were rare, and inheritance non-existent. Very much KISS territory (the design/programming philosophy, not the metal band that saved Santa).

Jari’s code is just like that. There are no classes. There is no inheritance. There’s just a bunch of functions – all in one source file, even – that do practically anything you might want to do in a 2D game, and lot of the stuff you’d want to do in a 3D one.

So I started over. While I do sort my functions into different source files, they’re now standalone functions rather than class methods. I added code I needed from my own framework (configuration file reading, logging, industrial-grade RNG, etc) but I only made objects out of things that there can be multiple instances of, like fonts and game objects.

This took me about eight hours worth of work. I now have a framework that’s just as functional as my current one but with (let me count) about 1/4 the lines of code.

I’m actually kind of eager to see how quickly I can recreate the gameplay of Planitia using the new engine. It could turn out to be a mere 40-hour project.

Updates to follow.

Getting it Together

I’ve been away because a) my job-job has been heating up and b) I’m re-assessing my indie situation. That’s not to say I’m giving up; far from it. I’m just looking at what I’m doing and figuring out how I can do it faster and more efficiently.

I’m probably going to switch away from ClanDestiny to Star Kittens. I believe Star Kittens could be a really big game for me. Plus, my daughter bugs me about it every night. So expect to see some Star Kittens stuff both here and at very soon.