Author Archives: Dan Lawrence

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.

The infinite novelty engine

Dwarf Fortress Story

From Bronzemurder

Entertainment generally, and therefore games specifically, create a lot of their enjoyment through surprise and novelty. Rewatching a movie is usually less exciting than seeing the first time round as your memory is busy ruining the surprises for you. There isn’t much the movie makers can do about this, the film is what it is – you can bundle some special features on the DVD but if you want to recapture the magic of the first watch you generally have to just watch a different movie or get some kind of invasive brain surgery. Bad luck movies (and books); but what about games?

Games are often designed so that the same content can be repeatedly played – they can substitute for the lack of new things to see by introducing unpredictable elements like other human players. Team Fortress 2 is a great example, the arrangement of polygons and physics shapes on the map ‘2fort’ hasn’t changed in years but it can still provide new experiences or at the very least a chaotic new arrangement of old satisfying experiences. However, even with a timeless map like ‘2fort’ one can eventually tire of its rhythms; the possibility space is only so large and the human players are only unpredictable to a certain level taken en-masse. In the end players also want new maps.

Thus even in multi-player games, the demand for new content is near infinite and the capable creators of it in short supply. This is an especially acute situation if you are an indie game developer; the number of creators of new content for your games may be very small indeed. So the arrived upon solution is procedural generation, content generally obeys a set of rules which can be identified, codified and iterated until we have a machine that can generate new content for us quickly and tirelessly. It’s like the industrial revolution all over again, a future containing out of work artists and level designers but satisfied consumers – problem solved.

Or is it? Even with procedurally generated content we see players identifying patterns enormously quickly. The rules are quickly pinned down, the wizard behind the curtain identified and the glorious future of infinite novelties lies in tatters before it had even begun. The same problem occurs with the game mechanics, the content might be randomised but the rules of the game itself remain static – there are infinite corridors but you can only walk down them one way.

So, astute readers are now thinking, what we need to do is procedurally generate the rules themselves; the content generation rules and the game rules too. Tear open the possibility space so wide that a player can be continuously surprised every time they play. For each player and each game session it would be like playing a brand new game each time. Of course this time we’d put the designers themselves out of jobs, and probably ruin the entire industry as new game sales collapsed and what we are studiously ignoring is the enormously impossible scale of the task itself.

So if it’s so impossible, why consider it at all? Simply, because it is, in some respects, the ideal form of a game. Its something to reach towards, grab a sliver of, and continually fail to achieve in glorious style. When you play Zelda and you get a new dungeon item that suddenly allows you to lift previously immovable boulders you are seeing the merest glimpse of this platonic game form. When you play Deus Ex you see the power of even a moderately opened possibility space. I wonder when we will see the first, truly indistinguishable from hand-crafted, procedural story? Dwarf Fortress is already steadily progressing down that path, prompting some players to fill in the remaining gaps.

Anyway, enough rambling speculating and theorising. On Free Company I’m just beginning the first round of a test-to-changes-to-test iteration cycle on the tactical battle gameplay with some testing assistance from my ever helpful brother. Almost all the gameplay systems are still in flux right now, I have the roughest idea of how I want it to feel but I’m trying not to get attached to any particular systematic specifics for fear they’ll impede producing something that’s fun. I’ll post more details on the results of this process once I have them.


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