Backworlds

Development Blog by Anders Ekermo and Juha Kangas

Category: Technology (page 1 of 2)

Effective Effects

As we are working more and more on production-quality art the work we do on tools tends to get more pragmatic – it is mostly fixing bugs and any new features are carefully considered in terms of how much they will improve our workflows and/or visual quality. Not that we didn’t do that before, but as we are finalizing the visuals in spaces it gets easier to tell what could be an improvement and what would be cool, but ultimately unused.

One thing I wanted to touch on was our effects – we had some pretty good particle systems supported as I mentioned in the post about curves, but they were tied to specific game objects and required a good amount of setup to add and edit. This made them somewhat useful for environment animation, but not as useful for situational events – things that you want to use effects for. With that in mind, it felt like a good idea to revisit the system before we started to ramp up on effects and I’m going to briefly go over the process and goals here.

Continue reading

A few notes on Parallax Scrolling

01_perspective

“Parallax” is, quite simply, the name for the visual effects where objects seem to move differently depending on the viewpoint – in media we typically refer to parallax scrolling as a way to add depth to a flat scene by having several layers of background that we move at different speeds. It has been used in animated movies more or less since the beginning and in videogames since the early 1980s. While 3D rendering removes the need to take specific steps to create parallax effects it is still used heavily in most 2D side-scrolling games.

Parallax scrolling existed in the Backworlds engine even before we started working on the original prototype, but I’ve recently had to change the workflow a bit to make production more streamlined so I thought I’d talk a bit about how it works today.

Continue reading

Hardly working

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.

Continue reading

A few thoughts on physics

As I’m finishing this up, the Summer Games Done Quick event of 2016 has just started – you should watch it.

I’ve dealt with some physics simulation issues lately that I wanted to talk about – this is probably going to be less coherent than usual since it is essentially a multitude of solutions to a problem that good system design would have prevented in the first place, but it has been a big enough deal for Backworlds development that it feels worth discussing.

Continue reading

Some notes on content optimization

01_header

There are plenty of ways in which content – specifically textures in this case – can be optimized for memory and performance. While on a small team every developer should have a good idea of what kind of impact their craft has on others and be able to account for that in their work, it is also important that preemptively optimizing content does not take up time that could be better spent working on its quality.

On Backworlds, we accept any kind of format textures and when memory or performance is a concern we optimize them in a build step – normally I would save this kind of work until late in the project but since we have already released a prototype, a demo and run playtest builds the build system has grown to be pretty big. Read on for some of the things we do to automatically optimize textures.

Continue reading

On Curves

00_header

Keeping the trend of “things that have been disproportionately helpful” from my last technology posts, today I am going to talk a bit about why curves are awesome. I am a bit late to the party on this one so if you have been working with particle effects during the last five years or at all with animations then chances are this post will not give you a lot of new insights. Sorry!

Continue reading

Ad-hoc Usability

build_header

The Backworlds editor is, as we’ve previously mentioned, a set of menus in the game itself allowing us to make changes to the levels as they are being played – rather than being built from the ground up as a level building instrument it has been patched together over time as tool for manipulating game data within the context of the game. While this has the advantage of really short iteration times, it has the disadvantage of being slightly inconsistent and with a quirkier workflow than an actual level editor. I am no expert in either usability or data mangling, but for a small project such as ours I have noted a few small changes that had a big effect on workflow.

Continue reading

Don’t blink, or you’ll mess up the Mersenne Twister

desync_head Apologies for missing last month’s update – this was partly due to a personal hardship, lack of time due to day jobs and other obligations and – to be quite honest – a lack of things to write about. We have been refining designs for some time now and while it can certainly be interesting to look at individual puzzles and see how we changed them in response to playtest feedback, doing so now would be premature as we are not done with them. Also, it would spoil the puzzles themselves.

This month, I am going to tell you an anecdote about a bug hunt that was somewhat amusing as it illustrates the cascading effects small changes can have on a codebase.

Continue reading

Duct-tape and a Prayer

01_shanty

One of the things I am currently working on is an architectural change to the engine- previously, our most basic graphic object would be rendered with a 2-component vector designating position (translation in OpenGL terms) and another 2-component vector designating orientation, or rotation and scale. This has worked fine for us so far, but it means we have to modify the vertex geometry of the object if we want to do nonuniform scaling or shearing. Petri and Martin talked about “juice” in a great GDC talk from a few years back, and in order to make the game more juicy I thought about the 12 principles of animation – more specifically squash/stretch – which meant we needed more options. Thus, the basic graphic transformation is now described by a 2×3 matrix just like fixed-function pipeline uses 3×4 (4×4 actually, usually only the first three columns are relevant for world transform)  to give us more options.

Now, I normally do not like to talk about features that are in such early stages of development – there is simply nothing here to look at, and if it doesn’t pan out there’s not much to learn from it. We do a lot of experiments in code as well as in design, and a good chunk of that work will never see the light of day. Doing this change, however, gives me an opportunity to talk a little bit about the history of the engine and the KISS principle which, when I have interviewed and evaluated engineers in the past, has been a common problem for inexperienced software engineers.

Continue reading

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.

Continue reading

Older posts

© 2017 Backworlds

Theme by Anders NorenUp ↑