RSSAmplifier

Blog

Voxagon Blog

A game technology blog by Dennis Gustafsson

blog.voxagon.seRSS feed ↗10 posts

Latest posts

The unlikely story of Teardown Multiplayer

Multiplayer has been the single most requested feature for Teardown ever since before its initial release. Synchronizing physics over the network is already known to be hard, and on top of that we have a completely dynamic, destructible world with full modding support. For a long time, we considered the whole idea unrealistic.

Thoughts on ECS

I mentioned in my year summary that I have a lot to say about ECS, and got several requests to write more about it, so I’ll do an attempt to write up my thoughts here.

Year summary

As the year concludes I wanted to give a small update on what I’ve been working on. From a technology perspecitve this has been one of the most intense years in a long time! I’ve had the opportunity to spend most of my time researching new technologies and algorithms for our next voxel engine. Here’s a summary:

Streaming containers

This blog post is about an issue I’ve run into several times, but still unsure how to solve in a nice way. Consider this more of an “organize-my-thoughts” type post, rather than a solution to the problem.

My journey into game development

I often get the question how I got into game development and if I have any tips for beginners. Here’s my story and thoughts about getting into game development.

The Spraycan

Teardown uses an 8-bit color palette for voxel materials, so any voxel volume can have up to 255 different materials and the representation per voxel is then just a single byte to save memory. A material specifies not only the color, but also things such as roughness, emissiveness, reflectivity and physical material type (wood, metal, foliage, etc). Each object can have a unique palette, but a lot…

Teardown quicksave

Saving the complete state of a game at any time and then restoring to that state is hard for any game, but in a fully dynamic voxel world that constantly changes, controlled by dozens of lua scripts, all with their own internal state, implementing this was quite a challenge.

Teardown design notes

Teardown started as a technology experiment and it’s one of those games where gameplay was designed to fit the technology, rather than the other way around. It’s not the first time I’ve been involved in such projects (Sprinkle, Smash Hit), and probably not the last, but Teardown was by far the most frustrating experience yet.

The importance of good noise

There are many articles to read about noise functions in computer graphics, especially now that a lot of people recently got interested in ray tracing, but it took me a long time to fully understood why noise characteristics are so important and I didn’t find a good resource on the Internet explaining it, so I’ll give it a shot.

From screen space to voxel space

There has been quite a few changes to my rendering pipeline over the last couple of months. The biggest being that I now do full raytracing in voxel space instead of the screen space counterpart.