Independent game developers - making Avoyd

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.

Materials are pretty obvious requirements as we plan to make resources and building a large part of Avoyd. Avoyd's voxels are 32bits in size. 8 bits are used to represent the amount of material within the voxel. A further 8 bits are needed for material modifiers as a team or 'culture' can own parts of the environment. So we have 16 bits left for materials, which gives us 65536 or 64k materials, a bit more than the 10 I currently have bound to the keyboard!

Avoyd screenshot - different materials in various colours Testing materials: in future materials will have different physical properties along with texturing.

Multiple voxel models are needed because not only do we plan to have more than one world, we'll also be making the entities in the game from voxel model so as to get maximum re-use from our technology and to allow easy customization for gamers.

Avoyd screenshot - several voxel worlds with independent axes It's now possible to have several voxel worlds in the same universe. Here you can see several voxel worlds where each has its own independent set of axes.

Avoyd screenshot - a voxel world (in yellow) scaled down by a factor of a hundred Voxel models will also be used to represent entities. Here I'm testing this out with by adding a voxel world in yellow scaled down 100 times.


comments powered by Disqus
 › 2017
 › 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
 › 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
 › Web Tech
 › 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
 › 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