31 Jan 13

Global Game Jam 2013

Some of you will be familiar with the Global Game Jam, an annual 48-hour event which packs groups of willing and able game developers into tiny little boxes and ships them off to special venues around the world to make games around a super-special theme.

QCF Design takes part in this competition every year, our closest Jam venue being the University of Cape Town. Last weekend, we rocked out in their computer science lab, consuming clinically unsafe amounts of pizza, sugar and caffeine while succumbing to the occasional exhaustion-induced reality detachment.

You know, fun.


The background music here is a confused mix of FTL and power metal.


25 Jan 13

Spiked Spikes and Slashy Swords

Hokay, so this week is another update for the player’s end: a whole bunch of small front-end adjustments and balance tweaks to chew on for a bit. They’re mostly item-related, but there’s one or two other adjustments hiding amidst the inventory cloggers.

Taurog is sporting some spiffy new arms and armour — courtesy of our newest artist — and if you check out our mid-week blog post you can find more details on the overall Kingdom prettification process and the technical behind-the-scenes work needed to make our end goal a reality. And stuff.

We’ve fixed one or two issues related to the Cursed Oasis, which is appropriate because we’re sending you there this week: a quick new class victory quest to add the (revised) Dragon Soul to the player’s overall item pool. Slime Pits should be similarly adjusted next week.

If you’re looking for a cool playthrough video, check out this Vicious Namtar run from one of our more advanced players, fully commented. It’s, like, an hour long. Hectic! Changelog follows:


  • Hard Gaan-Telet is no longer in the burning dungeon pool.
  • Dragon Soul item properties changed to 15% chance of free glyph cast.
  • Fixed a crash in combat prediction when having stoneskin, but no physical resistance.
  • Fixed a bug where poison was only half effective in cursed oasis.
  • Fixed a bug where burning damage on other enemy was breaking prediction on current enemy.
  • Changed prediction text so that out-of-order damage is no longer a problem (e.g Sorcerer’s Mana Shield)
  • Changed poison description when no regen can occur, tiles now reads 999.
  • Taurog item graphics updated.
  • Fixed a rare crash when dragging items to a locker slot.
  • Explorer’s Guild refreshes puzzle completion properly
  • Tutorial Puzzle 1 now completes upon character death
  • Balanced Dagger bonus is now 3 XP
  • Naga Cauldron bugfix, now permits overheal
  • Non-level XP bonuses apply to Slayer Wand (learning, petrification, etc)
  • Orb of Zot effect now effective vs hidden monsters, buffs player while in inventory
  • Crystal Ball starts off charged when bought from shops
  • Crystal Ball increases in cost per use
  • Transmuter now replenishes mana before triggering Spirit Sword
  • Strength potion damage adjusted
  • Strength potion and Spirit Sword will prioritise instance with highest damage
  • Strength effect: adds +1 damage per character level
  • Blink-related crash fix
  • Hint signs fixed on Halfling puzzles
23 Jan 13

The Layerset Editor

One of the core elements of the Desktop Dungeons metagame is the idea of building up a Kingdom over time, that the titular desktop is that of a behind-the-scenes administrator (you) on which a representation of your city grows as you play. Lurk’s initial concept art set the bar incredibly high with intricate miniature buildings in a lush green field rising magically up out of an open book. We took that as a challenge to make the rest of the Kingdom screen look as good.

Building that juicy Kingdom piece by piece has proved rather time-consuming. After all, the game has had a functionally working Kingdom since just before GDC 2011, the Kingdom works as it is – it just doesn’t look as good as we want it to. The main problem is that replacing simple buttons with multi-state artwork that changes as you make choices doesn’t make your life easy. Firstly, every single button needs custom graphics for each state it could be in: You need mouseovers for every building, selection patterns, etc. Then every single one of those images needs to play nice with the other images around it, buttons are usually graphically separate items that you can pretty much put anywhere you like over a background. On top of that, you have to allow for Kingdom states in which different parts might be at different progression levels, one player might have a lvl 2 Blacksmith and no Church at all, another player might have 3 level 1 buildings but no Blacksmith – all the paths, doodads and elements that make those buildings believable have to work no matter what the player chooses to upgrade and when. Sometimes that means even more artwork, this time with conditional rules as to when it’s displayed.

This was not something that we felt we could set up easily in Unity’s editing suite, mainly because we wanted our artists to be able to build up the Kingdom without constant programmer interference (limited Unity licenses also played a part). The success of our Tileset editing program and the neat stuff that Dorianne managed to pull off with it encouraged the building of another tool – which we promptly called the Layerset editor. Because we’re great with names like that…

A layerset’s job is to take a Kingdom state (or a map screen state) and display a series of transparent layers one over the other, building up the Kingdom screen element by element. When you mouse-over a building, the layerset updates the Kingdom state and the displayed layers change accordingly. Thankfully we were able to build the state management into the Layerset editor as well, which made adding new layers (and the corresponding states to control their visibility) much easier. To illustrate the level of complexity that this “simple menu replacement” is at: The latest Kingdom uses 91 flags to control its state and selectively displays 189 separate layers; The layers themselves are pulled from 4 sets of 1024×1024 textures using custom built meshes in the editor.

While this particular editor has proven much more complex to work on than any of the other DD-supporting tools we’ve built so far (and generated its own fair share of headaches), it has meant that we could spend programmer time on getting the game feature complete while letting Dorianne really get her teeth into making the Kingdom look great. Integrating everything into Unity is proving a lot easier than we expected and the best part is that once we’ve done it once – updating the Kingdom becomes a no-hassle process. It’s also meant that we could make some much-needed changes to the flow of the game – the tutorial dungeons are now part of the main Kingdom screen as areas the player “clears out” so that the city can grow, instead of forcing new players to navigate a largely irrelevant map before they’ve grokked what the game’s about.

It still blows my mind to see what talented artists can come up with when you give them tools instead of briefs.

18 Jan 13

Extra pixels

This week, we’ve been patching up a couple of bugs, inserting some new graphics (elves actually have female sprites now, as if anyone could even tell the difference with those pointy-eared hippies) and hitting a little more behind-the-scenes stuff with the Codex and transferring text to an external file (the how and why of this has been mentioned in some recent blog posts on this site).

If you notice any text irregularities popping up, do let us know so we can fix them (our forums and contact page are always a good start). It’s a big system change and hunting down all the exceptions has been difficult.

We’ve started putting in a merciful hint system for some puzzles, too, so that players can get access to the critical item unlocked without banging their heads too severely against any walls. Failing some puzzles several times in a row should yield a helpful dungeon sign.

Remember: in addition to our news updates on this site, we’ll now be attempting to post weekly updates on this site with technical, creative or behind-the-scenes info on the stuff we’ve been wrestling with in the most recent work cycle. Check it out if you’re curious! Changelog follows: More…

17 Jan 13

\\ and \, the harbingers of doom

So here’s a fun fact: Managing text in games is a massive headache. There are a number of problems that you are likely to encounter, they start out small, and then grow over time. First you just have the text you want displayed sitting in the code files … but then you realise you might need to localise your game for other countries, so you make some changes. Soon you have a TextManager class, holding all your text. Each piece of text is allocated with a key, and you only reference the keys in code. This way, when you need to translate, you can just have a translator go through all the keys and you don’t have to change any of the code! Brilliant!

Then the trouble starts.

Your text library has gotten so large that  it can’t be paged around memory properly, and causes weird and wonderful crashes. So you split it into two .. no three … wait … four dictionaries? Surely there must be a better way to do this … let’s see what other people on the net have done! Oh right … they split text into “interface” and “per scene” libraries, which doesn’t work for a game like DD. So let’s see if we can pull text from a file only as we need it. First thing we need is to do is move the text from the TextManager to an external file (this is a good idea for localisation anyway, so not a bad time to do it). You make every dictionary entry a new line in the text file, so far so good.

Then you look at some text in the game … and instead of new lines, you see \n everywhere.

So some background on characters: When defining strings in code, a backslash is a special character. The compiler reads it and the next character, and does something special with it. This is where \n comes in, since it means ‘make a new line’. As far as ASCII is concerned, \n is one character, not two.

So now you go back to your newly minted text file. When you read in \n from the file, what you’re actually reading in, is two characters: \\ and n. You’d think the way to solve this would be to go through the file replacing the \\ with \ … but you can’t, because \ on its own is not a valid character. Once again, we turn to the internet to help us. Surely someone else has figured out a way to solve this! Nope … every solution is either naive, or does a custom job of inserting all known special characters when it comes across the \\ + special char combo.

Eventually you realise that most of the special characters can be saved correctly in the text file without breaking your importer (things like tabs and quotation marks), all it takes is a few good ‘search and replace’ calls. Except \n. If you were to store a new line as a real new line, you wouldn’t know whether you’d gotten to the end of an entry, or just a new line in the text block. In the end it’s ok, you just code it to replace \\n with \n while importing, and move onto something else, because this text stuff has already take up way too much time …

11 Jan 13


Heyooo, it’s a new year and a new DD update! Our changes prior to the holiday break were pretty radical compared to the usual fare, and it’s been great to see all the enthusiasm and feedback on the new systems we have in place.

A quick apology, though, to players who suffered crash bugs from use of the WONAFYT glyph over the vacation — we returned to work this week to find a rather scary number of reports about that on our logging system. The problem has been resolved now, and you shouldn’t have any further grief with spellcasting. Summon away.

Poison in its new incarnation is something we have faith in, and this week we tweaked some of those values to make it “click” properly. Everything we messed with in this area has been carefully labelled in the changelog below. And nope, wizard definitely can’t infini-create potions using the new class buff. Sorry!

We also included a few interface and player convenience tweaks in this first update of the year, while migrating more of the news and dev updates here instead of just the game site (hopefully, this one is a resolution we’ll manage to keep).

Concept art this week comes from our new pixellator, Shamie. He’s been throwing together a bunch of, uh, charming pics for items and whatnot. They’re pretty beadass. Okay, these jokes are awful. Welcome, Shamie. Changelog: More…

09 Jan 13


Games with solid, narrative-driven progress are always a treat, but sometimes story elements need to take a back seat and be a little more subtle — educating the player with hints and whispers instead of hitting them over the head with a thick cardboard sign reading “EXPOSITION”.

Spoonfeeding an entire game history to your audience is the narrative equivalent of forcing them to play in permanent Tutorial Mode. It’s safe, tepid and unengaging. And if the core of any good gaming experience is the way it challenges you — dextrously, mentally, perhaps even emotionally — then does it not follow that a full plot exposition should challenge players in a similar way? Forcing them to think and theorise and fill in the blanks and come to their own conclusions? Implicit storytelling like this is already used well in games like Dark Souls, The Binding of Isaac and even seemingly story-void titles like Dungeon Crawl.

The way that Desktop Dungeons is narratively structured right now encourages two streams of storytelling. One is the explicit, shallow version: outlining stuff like the main plot, which bad guys need to be killed and what you’ll have to do next to keep your fledgling Kingdom from falling into doom and iniquity. Text pop-ups about important events will be visible to players throughout the game, hopefully without being too obtrusive (DD is, after all, supposed to be a romp first and foremost).

But we’ve been working on the “deeper” storytelling layer from time to time, as well. A lot of information exists in special dialogue, semi-rare subdungeons and unconventional item descriptions to help shape and unify the seemingly disparate events, locations and civilisations found in Desktop Dungeons. Ideally, none of this gets in the way of the gamers who just want to go and kick warlocks in the face. The players who are inclined to investigate, however, can go on entirely new emotional journeys as they get closer to the truth of how our crazy, monster-chopping world really works.

Or something like that. In theory. Storytelling is a skill, after all, and narrative prowess isn’t really what made DD popular in the first place. But there’s no harm in trying!

The image above is a random dev shot of the upcoming Codex — a place to store all of your accumulated knowledge about the Desktop Dungeons world, whether practical or flavorful. The system is really not safe for general consumption yet (as you may have guessed), but after cleaning out the rest of the stray LOREM IPSUM paragraphs and finalising the layout for each type of panel, it should be a pretty sweet addition to the game.

Copyright © 2024 QCF Design
Powered by WordPress, theme based on one from Themelab.com