Category Archives: Programming

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.