Developing Avoyd, an abstract six degrees of freedom First Person Shooter voxel game.
Support our work on Avoyd and open source software through our Patreon
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.
To generate large abstract worlds in our game, Avoyd, out of simple boxes, we use a walk inspired from brownian motion to position the voxel boxes in space and define grouping by colour palettes, box proportions and orientation. We employ random functions to implement local details: hollowing the boxes, colouring them and applying greeble. We use the order of creation to implement features such as bridges between boxes which benefit from overwriting parts of existing structures.
Juliette Foucaut - 05 Apr 2019
I decided to write this post after reading about a very cool procedural NPC name generator and thinking that it might be of interest to show a much more basic example. This post is intended for people who have never used procedural generation and know very little programming. The examples are written in Python. I'll do my best to keep things simple and introduce the complexities progressively.
The algorithm is basic: names are generated by randomly assembling four syllables. First I'll explain how it's built, then the features I added to it to make sure the names are within an arbitrary size range, and more importantly, unique.
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 change log). In this post we'll talk a bit more about the in-game user interface and how the turrets work.