Category Archives: Programming

People are not wearing enough hats

Hats preview

This week I have been mostly adding; various hats.


I had a lovely holiday wandering (and wondering) about the Cotswolds entirely disconnected from computers and the internet. Those times are past now though so its back into the rat race of game development which as everybody now knows is 50-75% based on the creation of hats. You can see a couple of the new hats above, they don’t do that much in the game really, maybe add a little bit of protection here and there, but mainly they are just to add a bit of individual style to your little squad of mercenaries. I’ve made six different hats so far adding a tricorn, wizard hat and another hornless half helm to the three you can see above. I’d like to make it to a nice round number of hats and helms (like say 10) so if you have any hat suggestions that I’ve not already covered then feel free to slide those slices of brain genius into the letterbox of this posts comment box below.

I fiddled about with the UI a little bit too, but its been pretty much hats all through the week. Hat code, hat inventory icons, hat models, hat textures, wearing hats, looking at pictures of hats and striking the soft gently yielding fabric of hats. Hats, hats, hats, HAAAAAAAAAAATS.



Variety is the spice of games

Surrounded by rats


One of the consumer selling points of randomly generated content is the infinite variety of potential situations it promises and that’s something I’m hoping to start to capture for the first alpha release of Free Company. Since last time I’ve been working on getting the existing content to be more data and randomly driven. The contract/mission generator now picks between available location layouts, picks a themed set of monster encounters to place there, then passes that information over to the renderer to load the correct tilesets and monsters needed for that mission. All of this is now almost completely data driven so I can dictate new tileset layouts and monster encounter setups with a couple of xml files and then they can just feed straight into the generator. Lovely.


It’s not all the way there yet though, while there is variety in the actors and the scenery so far the script for these martial plays is always following the same outline; namely ‘kill everyone’. I hope to gradually introduce the potential for new objectives by expanding what the mercenaries can do in the world and then have the generator setup more interesting situations than just indiscriminate murder.


At a lower level  of the game I’ve also been introducing variety by the barebones of a generic skill system to the game with a few starter skills to test it out. I’m hoping that I can eventually give each of the monster types a couple of interesting and unique skills (and the wits to use them correctly). I started with the rats pictured above; giving them the ability to greatly improve their ‘to hit’ percentages by attacking en masse (this is actually a generic rule across the game now but the rats skill makes them extra good at exploiting it). I haven’t given them any special AI routines, but combined with using the new encounter system to increase the average number of rats spawning in a room they now present a formidable challenge if you let them surround you.

Those were the main tasks but I’ve also added a bunch more items into the game that I built, mainly for the new monsters, so that the mercenaries can use them as well and hopefully fixed a few niggling bugs that were interrupting the flow of the game.


Off on holiday next week so it’ll probably be two weeks until I blog again. Try to keep going without me.

Monsters, but ingame

Been a little unwell this week which has slowed my coding plans down considerably. However I have recovered enough to chuck the new monsters from the last few weeks into the game (albeit in the most basic way). I’ve also added a new item of furniture to the room layouts and improved the per room tagging (so it now actually works) this means that each room in a level can have it’s own set of descriptive tags to go along with the overall level ones which then feeds into how the generator chooses the objects to place in each room. Anyway, right now its mostly just making a fancier high backed chair more likely to appear in the warehouse office than in its kitchen.

I’m also including some random screenshots of the new monsters (and that desk) but now; in the game.

Here you are:

Convex Hull – 1, Physics United – 0

Physics Boxes

Look at that lovely pair of convex hulls!

Work on Free Company continues through the Summer Holidays down here in the shed. I’ve been learning about exciting topics like convex decomposition as I bring the game’s physics implementation up to scratch. It’s been tough going, mostly as I haven’t had any real experience fiddling about with physics in this kind of depth before. It seems that the moment you want to go beyond knocking over piles of boxes things get a little more complicated. Bah.

I’ve managed to wrap pretty much every object in the game in some kind of physics representation now, using a mix of hand crafted and auto-generated convex hulls. This means for a start that the ragdoll dead bodies now no longer clip embarrassingly through walls, it also means that I can click directly on the arch shaped doors in the game to interact with them. I wanted to have a some kind of video of me finally cracking open doors with wild abandon as the mercenaries wander freely about the levels. Unfortunately, I’ve run out of time this week to get the easier non-physicsy parts of it working properly yet so it’d probably just look a bit daft to the casual observer. Expect it next time instead.

It’s also been ludicrously hot here in London, so I’m amazed my brain even managed to do anything other than melt. Good work brain.

Upcoming (if it cools down a bit):

  • Finally working useable doors!
  • Super clever cover calculations using raytests!
  • Stripping out old crappy physics code!
  • Finally not having to think about physics for a while!

Superstructure supplement extension!

Wood & plaster tileset

Click to enlarge

So this week, I’ve created some new walls, floors and their related structural tiles to form a second architectural tileset for Free Company’s mission generator to make use of. This one, as you can see above, looks less of a dungeon and more like a moderately well appointed house. I was getting a little tired of staring at those stone walls all of the time. The ’tile’ based structure of the game makes it pretty easy to drop new sets of walls into the existing mission generator and have them ‘just work’. Hopefully, once the game is out, the relative ease of adding new tiles might inspire some enterprising modders to do just that. I started out making games through modding and love how modders can take a game and extend it’s lifespan for years. As a result I have been trying to make the game’s systems as open to modification as I have time for and I plan to make some of my dev tools available at around the same time as the game as well.

Other than tiles, I’ve been working to replace my old physics library with a new one and improve the game’s use of physics along the way. The plan is this will eventually;

  • Stop ragdoll enemies falling through walls and other objects.
  • Make for much better ray-casted cover calculations.
  • Allow more natural interaction with doors and any other interactive objects.
  • Improve performance & reduce bloaty code
  • Make physics objects fit much better to their objects & make it much easier to debug them

I’ve also;

  • Added a really simple blood splat almost decal-like effect. Doing these properly looks like a lot of work for little return, at least when viewed from an isometric perspective.
  • Fixed a bunch of bugs & performance problems interfering with playtesting.
  • Created a fireplace object.
  • Read A Dance with Dragons. 
That last one was definitely important research. Definitely. There were mercenaries in it.

To Do: Still Lots

click to enlarge

Development continues steadily on Free Company here in the Shed. I’ve been doing a lot of fiddly bits that don’t particularly lend themselves well to individual highlighting. So here’s a little sampling of my recent to do list:

  • I’ve fixed up the shadow mapping a lot better so it now works properly when you scroll about the world and interacts better with the point lights (orthographic projection, once I figured out not to divide by the far clip anymore, was the key).
  • I’ve added little notification numbers that float up above enemies and the player’s mercs when they take damage or are healed.
  • I’ve started to build up the enemy variety by adding three differently armed variants of the bare-chested barbarian you can see above.
  • Improved the tooltips for all the items so they give details on the item’s stats.
  • Changed the font to a smaller variant and tweaked all the font colours to be less garish.
  • Boosted the light level on all the interactive objects to make them stand out a bit more from the background.
  • Properly cleaned up render targets when the fancy effects are disabled.
  • Added a modular system for useable items, like health potions and made the health potion drinkable as an example.
  • Added chainmail armour and made body armour variants visually swappable and have an impact on the player’s stats.
  • Added the capability for head variants and beheading to humanoid enemies.
  • Tweaked enemy stats and added more scope for variance in stats generally, hopefully to increase difficulty and tactical variety.
  • Now possible to edit mercenary nick names and compare their stats in the campaign screens.
  • Fixed some loading state bugs.
Outside of working on the game, I went to London Indies for the first time this week and slightly nervously introduced myself to some lovely people while sipping on a beer. Other braver (crazier?) people apparently made out like ninjas in the street outside. It was fun and I’m sure I’ll go again.
I also succeeded in repairing my long serving monitor in true hardcore indie developer style, using nothing but a soldering iron and some capacitors I ordered off the internet. Total cost £18. I was pretty pleased with myself when it actually worked. This is not the kind of madcap thing I usually have any success with.

If I had a hammer…

Free Company with highlight lights

Click to enlarge

The development of Free Company continues this week with the addition of  lighting themes to the procedural tactical battle generator. In the shot above you can see my first stab at the ubiquitous ‘orange & teal’ theme that has become so popular in Hollywood. The basic principle is to help increase the variation that players see between levels in a simple, asset cheap, way. As the generator progresses I’m intending to tie the lighting colour theme to other aspects of the contract to help enhance whatever mood suits that particular contract. Right now though it’s just a completely random pick.

I grabbed a couple more shots of it in action so you can better see to what I am referring:

More light theme examples

I call them "Sandy" and "Red-ish"

I also spent some time since the last update finishing the first pass on the ‘overgame’ campaign code and UI. A player can now successfully navigate between the overgame layer and a series of tactical battles while retaining the same set of mercenaries. Right now the main tie between the two layers is whether the mercenaries died, whether they completed the contract and what weapons they bought from the campaign shop. As development progresses I’m going to try and increase the amount of interdependency between the two game states to help keep them feeling like a cohesive whole. Exactly how is going to depend on playtesting.

Finally I added a really big hammer.

Hammer time

Thor would be proud