Developing Avoyd, a Voxel Editor able to handle large models and a six degrees of freedom movement Game with editable terrain.
Doug Binks - 23 Aug 2023
Learn from my mistakes as I implement a GPU voxel octree path tracer based on my current CPU implementation in Avoyd. I cover the C++ to C conversion, buffer upload issues and data visualisation, enhancing the shader error logging along with a basic comparison of the performance on CPU and GPU.
One can program modern GPUs in a variety of languages. However only a few of those languages work well on all the main vendors' GPUs and operating systems: essentially the C like HLSL and GLSL shader languages. Since I use OpenGL with GLSL shaders in Avoyd I choose to write the path tracer in GLSL. (Avoyd runs only on Windows currently but I intend to support other operating systems eventually.)
Release 0.13.0 of Avoyd is out. For the first time we're introducing specific builds for each of the full, beta and demo release streams. You can buy Avoyd and download the full and beta releases from our store.
Read about the full release features, how the demo is changing, how to teleport using the camera or Minecraft coordinates, and the workaround for exporting materials to Unreal Engine 5.1.
You may have noticed we've changed our Products page. There is now an Avoyd Beta release stream available to download alongside the Full Avoyd and Avoyd Demo.
We recently released a video tutorial on how to make an isometric render of a Minecraft map in the Avoyd Voxel Editor, and thought it would be useful for those of you who prefer text over video to write up a short overview of the process here.
This tutorial covers: how to make an isometric render of a Minecraft map in Avoyd, using the arcball camera, tweaking the atmosphere and lighting, tips for using the voxel editor, graphics quality and user interface customisation.
Our Avoyd Voxel Editor has come a long way since the last devlog post about it in 2018, and having just released a significant update which enhances the Minecraft import pipeline this seems like as good a time as any to talk about it once again.
The first part of this post describes how we use procedural generation to create environments in our game, Avoyd, out of simple boxes. It is an extension of the 'Boxes in Space' talk Juliette gave at Feral Vector.
The second part shows the trial and error process we went through to create Avoyd's procgen worlds and how we procedurally generate the light and atmosphere.
The third part consists of procedural generation demos, giving complete instructions to create the boxes in space worlds, Menger sponges, trees that avoid obstacles, and how to change the lighting and atmosphere in Avoyd. The worlds created can be saved and used in game.
In-game building is finally here. It's taken us a lot of time to refine and the result seems pretty simple, but we went through a number of iterations for getting in game building working fluidly and intuitively in six degrees of freedom - how do you build a 'floor' when rolling around in space?
Juliette Foucaut - 26 Jan 2019
We've also fixed some visual bugs as well as a problem with the collision system which made it difficult to hit targets (details in the changelog). In this post we'll talk a bit more about the in-game user interface and how the turrets work.
Doug Binks - 27 Jun 2018
With version 0.3.0 of Avoyd we hit a significant milestone in development with the first release of gameplay along with multiplayer coop over Local Area Networks (LAN). Available for download now, this simple test features two enemy types, a drone spawner and drone fighters along with friendly drones. Your task is to destroy enemies to score points, with the large drone spawners scoring significantly more points than the fighters. Take care when the health of the spawners gets low, as they spew out more waves of drone fighters. Watch our gameplay tutorial video for more.
Juliette Foucaut - 06 Feb 2018
An update on our progress with the voxel editor and what we've been working on lately: I'll explain why our voxels are weirdly shaped, all the things you can do with the voxel editor, and what's coming next: the movement system and procedural generation.
Doug Binks - 20 Oct 2017
Last hit kill scoring in multiplayer team based games feeds toxic behaviour by encouraging competition within teams over cooperation. I propose that we take a different approach to scoring where two equal player attacks at the same time do not result in one player arbitrarily reaping all the reward.
Doug Binks - 03 Feb 2017
We've just stealth launched the Avoyd Editor Prototype for download, along with a purchase button for Avoyd.
From now on we'll be releasing new versions of Avoyd periodically, increasing the price as we add functionality. If you activate a purchased license key for Avoyd you'll get all the future updates we post, along with access to the multiplayer services we'll be rolling out. However for quite some time our Avoyd releases will continue to be free.
Juliette Foucaut - 02 Aug 2016 - edited 17 Nov 2016
Return of the black triangles: our friend, musician Peter Highspot, surprised us by producing original music and sound effects for the 2014 in-game fly-through. We couldn't resist sharing the video, and hope you enjoy it as much as we do!
Rebecca Michalak - 26 Jul 2016
[Concept artist Rebecca Michalak explores colours and lighting for Avoyd.]
For the fourth round of concepts I wanted to explore palettes some more, since colour is an important part of Avoyd. This was my biggest challenge, being generally used to doing fairly monotone paintings and letting texture denote form.
I started by gathering a range of colour palettes from various sources (I have a library of about 5000 reference images saved to my computer for when I want to start a new painting or need inspiration) in order to have a starting off point. Working in a more abstract way was unfamiliar to me and difficult when I started the project, but I've found that as long as the basic tenants of any artwork are solid (values, colour schemes, composition) then you can push experimentation much easier and further.
Juliette Foucaut - 27 May 2016
We started working with artist Rebecca Michalak on concept art to help us figure out a general feel for Avoyd, as well as ideas for abstract shapes and colours we could implement in the game. Below is a series of the latest concepts drafts, as well as the preliminary sketches Rebecca drew, enjoy!
If you want to see more of Rebecca Michalak’s art, check out her portfolio!
Juliette Foucaut - 29 Jun 2015
At the end of May, a month ago today, we attended Feral Vector. We saw many projects and met lots of interesting people. Although we hadn’t planned on it, we ended up showing Avoyd for the first time. In light of the nice feedback we got, we think that releasing it sooner, even without gameplay, would probably be a good idea.
Juliette Foucaut - 23 Aug 2014
Doug has recently made some changes to the visuals and the editing tool in Avoyd. On top of performance improvements, he added a spherical brush and started experimenting with procedural texture patterns.
(click to enlarge) Saturated colours in the distance, Spheres and texture patterns. Notice how the patterns are affected by the specular lighting.
We want to use texture patterns to show different properties of the materials in-game, such as health, culture (*), etc. as well as give a better idea of the scale of the world. At the moment we're playing with the patterns' shapes, colours, scale, periodicity and animation.
(* Note: the culture is related to a team's territory / area of influence).
Juliette Foucaut - 06 Jul 2014
Chris Priestman interviewed us and wrote an article about our work a couple of weeks ago on Warpdoor. We went into more depth about our plans than we have so far on our website, so do check it out if you want to find out more about what we're putting into Avoyd.
Juliette Foucaut - 01 Feb 2014
How we started with a bug and ended up with a music video collaboration with the awesome nervous_testpilot:
Music by nervous_testpilot a.k.a. Paul Taylor of Mode 7.
Doug Binks - 30 Oct 2013
It's been a busy couple of months since my last technology update. After being laid low by a viral modification program masquerading as an Autumn cold, I have emerged into my cold weather form with time to spare for a bit of programming.
Some of my work has gone into improvements in the Runtime Compiled C++ I use to help program Avoyd with which you can catch up on over at the RCC++ blog. The rest has been on two fundamental features: materials and multiple voxel models.
Juliette Foucaut - 30 Oct 2013
A couple of months ago, my friend bananako made great suggestions to improve the looks of our website. I started tinkering and I hope the changes do justice to her input. (I recommend checking her blog, her drawings always put me in a happy mood :)
I also finally made a home page about Avoyd. I've been struggling to figure out what to say on that page, but we're happy with the result for now and I can easily change it as the project evolves. I still have to come up with a logo for Avoyd.
Juliette Foucaut - 22 Oct 2013 - edited 07 Oct 2018
I think we should call sandbox first person games First Person Editors (FPE).
I was doodling around in Avoyd looking for inspiration: how do I describe our game? It's an FPS, but there's more to it and I think it's not the only game in that category.
Doug Binks - 30 Aug 2013
Our first technology update video is available on Youtube. I wanted to show how modifying the environment works since I've recently improved this area. The graphics are still in the early prototype phase and I'm only rendering debug colours rather than materials - I find the aesthetic oddly pleasing though.
Doug Binks - 29 May 2013
I've just added networking using RakNet, and implemented level load from a server along with synced editing. This proved to be very simple to add as RakNet has a fairly clean interface. I'll admit to being very tempted to develop further the network code I used for the original Avoyd, but RakNet has a number of features I'd need to implement which aren't trivial.
Doug Binks - 09 May 2013
One of the key features we wanted for the new Avoyd was to support large environments. The old version of the game used a simple three dimensional array for storing the voxel data which restricted the size of the world. So for the new code I've implemented an optimized octree structure, which both helps with data storage limits and the calculation of lower level of detail (LOD) graphics for distant structures.
Doug Binks - 27 Apr 2013
Our plan for the new Avoyd is to expand upon the original free-for-all gameplay with single player, co-op and team vs team. We intend for all modes to use the same ruleset to create a consistent universe.
Competitive games are normally symmetric. This means players on either side have access to capabilities of the same power, though often with different styles. For example, in Quake Arena, every player is equal and has access to the same weapons.
Juliette Foucaut - 11 Apr 2013 - edited 25 Aug 2023
Over 13 years ago, Doug Binks (mainly) and I started working on a shareware-style game called Avoyd.
A first-person shooter set in zero gravity, gamers could play deathmatches against bots or other people on a LAN. To our knowledge, it was the first editable voxel game in which the players could build and destroy the entire environment.
We sold digital copies of Avoyd over the internet for a few pounds, steadily increasing the price as we added more features. After Doug joined a games development company, we slowly stopped development and released the last version, Avoyd 1.7.1, in 2003. At that stage, many features and designs we had in mind had yet to be implemented in the game.
Our current project is based on this game.
We've released the original Avoyd, which we'll call Avoyd 1999 from now on, for free.
To install Avoyd 1999 and play:
I am a licensed user.