logo enkisoftware
Independent game developer making AVOYD
en  fr

Devlog - Avoyd Game Development

Developing Avoyd, a Voxel Editor able to handle large models and a six degrees of freedom movement Game with editable terrain.

Implementing a GPU Voxel Octree Path Tracer

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.)

Continue reading

Isometric Render of a Minecraft Map in Avoyd Voxel Editor

Doug Binks - Juliette Foucaut - 30 Mar 2022


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.


Continue reading

Importing Minecraft maps in Avoyd Voxel Editor improved

Doug Binks - Juliette Foucaut - 25 Feb 2021


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.


Minecraft maps Greenfield city and Cuirassé DSD-401 by MrBatou imported and combined together in Avoyd voxel editor Minecraft maps Greenfield city and Cuirassé DSD-401 by MrBatou imported and combined together in Avoyd's Voxel Editor.


Continue reading

Boxes in Space: procedural generation of abstract worlds in Avoyd

Juliette Foucaut - Doug Binks - 21 Jun 2019


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.

Procedurally generated zero gravity, abstract voxel world. It features hollowed, coloured boxes grouped in clusters and linked by metal bridges. All boxes are decorated with greeble.

Continue reading

In-game building

Juliette Foucaut - Doug Binks - 25 Mar 2019


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?

Continue reading

Player-deployable turrets in Avoyd

Juliette Foucaut - 26 Jan 2019


We've released a new version of Avoyd, 0.3.4 (download link). The main addition is turrets, which can be seen in action in a short video.

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.

In-game screenshot of Avoyd showing turrets scanning space for enemy drones

Continue reading

Avoyd Game Singleplayer and Coop Multiplayer Test

Doug Binks - 27 Jun 2018


Avoyd version 3.0 - drone fighters attack

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.

Continue reading

Voxel Editor Evolved

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.


Avoyd procedural voxel tree experiment Procedural tree experiment


Continue reading

Multiplayers toxic last hit kill and how to heal it

Doug Binks - 20 Oct 2017


Avoyd multiplayer swarm

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.

Continue reading

Avoyd Editor Prototype

Doug Binks - 03 Feb 2017


Stealth Launch

We've just stealth launched the Avoyd Editor Prototype for download, along with a purchase button for Avoyd.


"Licence Agreement" - Windows - Minimum Specification


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.

Continue reading

Black triangles and Peter Highspot

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!

Peter Highspot is a freelance artist available for music and video sound design. Check out Peter Highspot's portfolio on SoundCloud, contact peter@highspot.fr.


Music and Sound Design by Peter Highspot.
Continue reading

Colour palettes and lighting

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.

Concept art for Avoyd by Rebecca Michalak

Continue reading

Concept art by Rebecca Michalak

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!

Draft concept art by Rebecca Michalak

Continue reading

Feral Vector

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.

Tom Betts handed beach pebbles to illustrate his talk. This one looked like it had a badger's head on it, very appropriate for Feral Vector.

Continue reading

Patterns and spheres

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.

Avoyd - spherical brushes were used to create a 0g tree. Experimenting with patterns on the surfaces. Patterns are affected by specular lighting.(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).

Continue reading

Interview

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.

Black triangles and nervous_testpilot

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.

Continue reading

Playing with material worlds

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.

Avoyd screenshot - voxel world inside a voxel world

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.

Continue reading

Website redesign

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.

Avoyd

Continue reading

First Person Editor

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.

Avoyd screenshot - First Person Editor (FPE), writing in-game If I can write in-game, it's probably an FPE.

Continue reading

First Avoyd tech update video

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.

Continue reading

Multiplayer editing

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.

Avoyd screenshot - multiplayer editing

Continue reading

First screenshots

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.

Avoyd screenshot - large world

Continue reading

Thoughts on gameplay modes

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.

Continue reading

Back in 1999

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.

Old Avoyd logo (Avoyd v1 a.k.a. Avoyd 1999)

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.

Download Avoyd 1999

We've released the original Avoyd, which we'll call Avoyd 1999 from now on, for free.

To install Avoyd 1999 and play:

  1. Download Avoyd 1999 (full version 1.7.1) for Windows.
  2. Unzip.
  3. Run the executable.
  4. Select I am a licensed user.
  5. Follow the instructions on screen.

Avoyd 1999 Press Kit

In-game Screenshots

Continue reading
2023
 › Optimising Voxel Meshes for Games Using Blender
 › Implementing a GPU Voxel Octree Path Tracer
 › Avoyd Release Streams and Minecraft Lit Materials
 › Avoyd Beta Stream
2022
 › Isometric Render of a Minecraft Map in Avoyd Voxel Editor
2021
 › Importing Minecraft maps in Avoyd Voxel Editor improved
2020
 › Runtime Compiled C++ Dear ImGui and DirectX11 Tutorial
2019
 › Boxes in Space: procedural generation of abstract worlds in Avoyd
 › Procedural python word generator: making user names out of 4 syllables
 › In-game building
 › Player-deployable turrets in Avoyd
2018
 › Avoyd Game Singleplayer and Coop Multiplayer Test
 › Voxel Editor Evolved
2017
 › Speeding up Runtime Compiled C++ compile times in MSVC with d2cgsummary
 › Multiplayers toxic last hit kill and how to heal it
 › Avoyd Editor Prototype
2016
 › Black triangles and Peter Highspot
 › Colour palettes and lighting
 › Concept art by Rebecca Michalak
2015
 › Internals of a lightweight task scheduler
 › Implementing a lightweight task scheduler
 › Feral Vector
 › Normal generation in the pixel shader
2014
 › Python Google App Engine debugging with PyCharm CE
 › Lighting voxel octrees and procedural texturing
 › Patterns and spheres
 › Python Google App Engine debugging with PyTools
 › Interview
 › Domain masking using Google App Engine
 › Octree streaming - part 4
 › Black triangles and nervous_testpilot
 › Presskit for Google App Engine
 › Octree streaming - part 3
 › Octree streaming - part 2
 › Octree streaming
2013
 › LAN discovery with multiple adapters
 › Playing with material worlds
 › Developer Diary archive
 › Website redesign
 › First Person Editor
 › First Avoyd tech update video
 › Implementing a static website in Google App Engine
 › Multiplayer editing
 › First screenshots
 › Thoughts on gameplay modes
 › Back in 1999
2002
 › ECTS 2002
 › Avoyd Version 1.6.1 out
 › Avoyd Version 1.6 out
2001
 › Biting the bullet
 › Avoyd version 1.5 out
 › Monday Mayhem
 › Avoyd version 1.5 alpha 1 out
 › Avoyd version 1.4 out
 › ECTS 2001
 › Fun with Greek letters
 › Closer just a little closer
 › Back already
 › Artificial Humanity
 › Products and promises
 › Ecommerce
 › Explosions galore
 › Spring fixes
 › Open source and ports to other operating systems
 › Avoyd LAN Demo Version 1.1 is out
 › Thanks for the support
 › Avoyd LAN Demo Ready
 › Game Tech
 › Optimising Voxel Meshes for Games Using Blender
 › Implementing a GPU Voxel Octree Path Tracer
 › Importing Minecraft maps in Avoyd Voxel Editor improved
 › Runtime Compiled C++ Dear ImGui and DirectX11 Tutorial
 › Boxes in Space: procedural generation of abstract worlds in Avoyd
 › Procedural python word generator: making user names out of 4 syllables
 › Speeding up Runtime Compiled C++ compile times in MSVC with d2cgsummary
 › Internals of a lightweight task scheduler
 › Implementing a lightweight task scheduler
 › Normal generation in the pixel shader
 › Lighting voxel octrees and procedural texturing
 › Octree streaming - part 4
 › Octree streaming - part 3
 › Octree streaming - part 2
 › Octree streaming
 › LAN discovery with multiple adapters
 › enkiTS
 › Internals of a lightweight task scheduler
 › Implementing a lightweight task scheduler
 › RCC++
 › Runtime Compiled C++ Dear ImGui and DirectX11 Tutorial
 › Speeding up Runtime Compiled C++ compile times in MSVC with d2cgsummary
 › Web Tech
 › Procedural python word generator: making user names out of 4 syllables
 › Python Google App Engine debugging with PyCharm CE
 › Python Google App Engine debugging with PyTools
 › Domain masking using Google App Engine
 › Presskit for Google App Engine
 › Implementing a static website in Google App Engine
 ›› Avoyd 
 › Implementing a GPU Voxel Octree Path Tracer
 › Avoyd Release Streams and Minecraft Lit Materials
 › Avoyd Beta Stream
 › Isometric Render of a Minecraft Map in Avoyd Voxel Editor
 › Importing Minecraft maps in Avoyd Voxel Editor improved
 › Boxes in Space: procedural generation of abstract worlds in Avoyd
 › In-game building
 › Player-deployable turrets in Avoyd
 › Avoyd Game Singleplayer and Coop Multiplayer Test
 › Voxel Editor Evolved
 › Multiplayers toxic last hit kill and how to heal it
 › Avoyd Editor Prototype
 › Black triangles and Peter Highspot
 › Colour palettes and lighting
 › Concept art by Rebecca Michalak
 › Feral Vector
 › Patterns and spheres
 › Interview
 › Black triangles and nervous_testpilot
 › Playing with material worlds
 › Website redesign
 › First Person Editor
 › First Avoyd tech update video
 › Multiplayer editing
 › First screenshots
 › Thoughts on gameplay modes
 › Back in 1999
 › Avoyd 1999
 › Developer Diary archive
 › Back in 1999
 › ECTS 2002
 › Avoyd Version 1.6.1 out
 › Avoyd Version 1.6 out
 › Biting the bullet
 › Avoyd version 1.5 out
 › Monday Mayhem
 › Avoyd version 1.5 alpha 1 out
 › Avoyd version 1.4 out
 › ECTS 2001
 › Fun with Greek letters
 › Closer just a little closer
 › Back already
 › Artificial Humanity
 › Products and promises
 › Ecommerce
 › Explosions galore
 › Spring fixes
 › Open source and ports to other operating systems
 › Avoyd LAN Demo Version 1.1 is out
 › Thanks for the support
 › Avoyd LAN Demo Ready