semla

Today is Shrove Tuesday! Or, if you’re from the UK or Australia, pancake day. In Sweden – though neither Juha nor myself live there at the moment – we eat semla . But I digress.

Rather than talk about a specific piece of tech today, I wanted to briefly talk about a random selection of things we have worked on during the last couple of months. Because I want to keep it real and definitely not because I don’t want to paint more pictures.

Most of the work we have been doing has been related to the level design, we have gotten to a place where we have a very good idea of the scope of the game although some puzzles still need to be tuned. In some cases this means we remove them completely, in some places we increase the difficulty and in some places we introduce simpler puzzles to help you grasp the concepts of more advanced ones – but the size of the gamespace is pretty close to where we want it.

Doing a lot of detailwork exposes inconvenient workflows in the editor – while I haven’t been adding a lot of new functionality for the design changes lately, I have created more intuitive ways for changing the sort order, managing object groups and manipulating different kinds of paths. It is easy – especially if you are not a software engineer – to see the tools as something you need to accept and work around rather than something malleable, so I try to be vigilant about workflows that can be automated. Juha is very good at asking for changes too.

Another thing we have done is to extend the common properties of objects into common properties of different kinds of Backworlds – all of the different settings making up both our discarded concepts and the ones we ended up using were stored per-level so theoretically you could have every single level have completely different physics and gameplay behavior. While this is fun to play around with, we want to keep to a few worlds with distinct mechanics since we want to provide deep and interesting puzzles rather than a parade of gimmicks, so we have defined our worlds as sets of attributes that the levels refer to. We’ve also tied certain basic visual objects to these world definitions to simplify creating new levels and maintaining the style of a world.

Design-wise, one of our goals lately has been to purge the level reset switches – Backworlds does not have a global level reset-switch as we strive for it to be impossible to put a level in a fail state, but a few puzzles we designed before reaching this conclusion so they come with a button to reset the level. We want to provide interesting logic challenges, but if you do not know when a puzzle has turned unsolvable it can really add to the frustration so we have been working to redesign these puzzles in ways that are less frustrating.

Finally, in an effort that turned out to be very large for the small change in functionality it meant, I purged the code of the fixed function pipeline. A remnant of early graphics APIs, we used it for a lot of tools and debug rendering that had to be rewritten. Ultimately it made the renderer much cleaner and more portable so even if we did not immediately see a large gain from it it is going to make the game easier to work with going forward, or port to different platforms should we want that.

Tomorrow is the Independent Games Festival finals! Hyper Light Drifter and INSIDE with an impressive number of nominations, and I much enjoyed them both. Also, Event[0] although that game is still on my wishlist. Shoutouts to the bizarrely inspiring Oiκοςpiel and the aforementioned Elsinore for the design honorable mention. And basically everyone else, as always there are many gems among the IGF finalists.