Backworlds

Development Blog by Anders Ekermo and Juha Kangas

Shifting Hues

00_quad

The kind of work we do can be very sporadic in that we wear many different hats as developers and without any strong deadlines we are free to experiment with things we may want to add further down the line. While being detrimental to progress (and, to be honest, maybe the biggest reason why we’ve spent so long on this), it does mean we are free to work on what we like. Enthusiasm is important too.

One of the things that we have been experimenting with is player customization – I personally have been torn on what to do with that, as we did not want to give the impression that your loadout somehow affected your ability to solve puzzles, and I did not want to make vanity items that could be confused with free-to-play moneysinks. In the end though, personal expression is meaningful and with the simplicity of our art customization is a pretty quick thing to do. One of the things we’ve created for customization is the ability for the player to change the avatar color with this hue wheel.

01_huewheel

In technical terms, the wheel allows the player to change the hue to any value with floating-point precision, or basically fine-tune the color of the avatar. Since we already had hue manipulation as part of our HSVE graphics objects, this did not require a lot of new technology.

02_pieces

The character art in Backworlds is made up of these pieces – we animate these separately but all main character images fall into one of these groups. We are very concerned about keeping the shader count low and our pipeline does not support doing HSVE manipulation in arbitrary shaders, but since we’re not rendering more than one avatar object at a time we can simply store the hue offset value the player wants and use the original HSVE-shader with the individual textures. We then override the player textures in memory with the modified ones and can use the original rendering without modification.

Note that this only works since the Backworlds avatar only really uses a single color, and we are only changing the hue. If we changed the value (or, in fact, lightness) it would also affect the outline so this would require a more complex shader, we could theoretically change the saturation but this would essentially only allow the player to make the avatar gray so we have not bothered with it yet. Experiments aside, we try not to add every bell and whistle onto every new feature, but only develop things when we need them.

03_boundingbox

With all animation frames, there are a lot of avatar textures and it is not feasible to re-render them every frame when the player is in the process of using the hue wheel. Since we can’t change the avatar shaders, the simple thing to do would be to render it to a separate texture, use the HSVE shader to process this in real time and then render it back to screen – a slight performance sink compared to just rendering the player normally, but nothing too problematic since it’s only active while the player is on the hue wheel.

… Only, there is an even simpler way – since I am in full control of the art, I made the hue wheel complete desaturated in areas where the avatar could cover it. This removed the need for a custom path altogether and we can simply grab and modify a chunk of the main render target. Obviously this does not work if we ever decide to add value or saturation modifiers, but we can always change it later if we need it. Not only does this save us work now, but as a general rule removing complexity from code is a lot more difficult than adding it so I keep it simple when I can.

Story process

readWe have talked briefly about the story and narrative for Backworlds on previous occasions but I thought I would try to further extend our thoughts in this post. The most impactful decision we have made regarding this topic is that the story and narrative structure completely takes a backseat to our gameplay.

Continue reading

Art Machine

00_head

We have mentioned and shown a couple of times that our basic level art is mainly made out of small chunks corresponding to pieces of geometry – flats and corners with different sizes and decorations. With colored outlines and world-mapped patterns this makes it relatively quick to add basic art to a level, but depending on the complexity of the geometry it can still take the better part of an hour.

Since we are only two people with limited time, a while back we added functionality to automate the placement of these pieces – removing the mundane tasks of giving the level shape and readability to allow us to focus on the creative side of making each level look distinct.

Continue reading

Some players will not like our game and that’s ok

polarchr

Something that I’ve always agreed with is the sentiment that if you try to please everybody, you end up pleasing nobody. Perhaps this applies to many things but specifically within games it something I often hear and read, mostly voiced by developers and enthusiasts.

Those are mostly opinions but I would like to share how I came to find it applies to Backworlds.

Continue reading

Brush Technique

avatar_painterThe brush is one of the central pieces of input in Backworlds – we have gone over a few iterations on how it works and we will probably go over some more, but these are some of the steps we have taken to get us where we are. Continue reading

No Paint Design

Another design talk video entry for the blog, following up Demo Design from a couple of months ago. This one is about one of our scrapped mechanics, called “no paint”.

Music: Donkey Kong Country 3 – Aquatic Transformations OC Remix by halc and Level 99

Hashing strings

kiss_header

Most of our data in Backworlds is stored in either XML or plain text. There are a lot of benefits to using human-readable data, it is usually trivial to add or remove information to the format without destroying backwards-compatibility and it is easy to make changes even before any tools have been written. That said, it is a lot less efficient than storing things in ready-made binary chunks and to reduce the performance loss we use a lot of hashing. Continue reading

Demo Design

I thought I’d try something new for the blog so I recorded a video where I talk about Backworlds design while playing it rather than just write about it. The test case for this is our demo levels, I hope the format works!

Note: I have some issues with framerate while recording, sorry about that. Also the coloring for the levels are off, sorry again!

Puzzling platformers

A “puzzle” in a game can mean different things – in games focused on them, a puzzle is traditional – a discrete set of game objects and figuring out how they fit together creates the challenge in the game. In action-oriented games they usually consist of more immediately apparent solutions and serve as a change of pace rather than a challenge in itself. In the former, the goal is to make the player feel smart, in the latter it is to give her respite. In my humble opinion, this causes some genre confusion as a lot of games are being dubbed “Puzzle platformers” without actually being about the puzzles. Also, a lot of people express – professionally and privately – their resentment over the genre citing its ubiquity when I think it’s more about lumping different games together based on superficial similarities. Continue reading

Art to HSLE

Time for another art creation video! Here we are showing the process of creating a HSLE art asset, a pattern and finally it’s implementation in the game. If you’ve seen our previous videos or blog entries you might be familiar with the HSLE-object, if not you will hopefully understand by the end of the video.

Music: Super Mario Bros. Jazz Plumber Trio OC Remix

« Older posts

© 2014 Backworlds

Theme by Anders NorenUp ↑