RSSAmplifier

Blog

Avoyd devlog

Developing Avoyd voxel editor and renderer, and the technology we create in the process.

enkisoftware.comRSS feed ↗51 posts

Latest posts

Export Voxels to Optimised glTF Mesh for Unreal Nanite

This post covers the specifities of exporting voxel assets for Unreal Nanite and how Avoyd optimises meshes for games.

Avoyd Voxel Editor new Licences and Independent Store

We've introduced a new PRO licence for the voxel editor together with a new payment system using Paddle on our independent store. In order to concentrate on the voxel editor we've put the game development on hold.

Rapid Development with Runtime Compiled C++ Talk

A good introduction to the Runtime Compiled C++ (RCC++) technique, the video, transcript and slides of the talk Doug Binks and Matthew Jack gave at the 2012 Develop in Brighton conference.

Voxel GPU Rendering in Avoyd 0.21

We've added a GPU accelerated path tracer to Avoyd Voxel Editor for faster renders. I outline the renderer development, cover performance data, and our plans.

Moving from FastSpring to Itch.io as a Payment Provider

We've been selling Avoyd on the internet since 2001 using payment providers WorldPay then FastSpring. A recent event with FastSpring has pushed us to investigate store front Itch.io. In this post we describe how we've moved from FastSpring to Itch.io and what we think about it.

Optimising Voxel Meshes for Games Using Blender

Reducing the number of polygons in 3D objects helps improve a game's performance. In this tutorial you export a voxel model to mesh, clean it up in Blender and export to game engines like Unreal, Godot, Unity.

Implementing a GPU Voxel Octree Path Tracer

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.

Avoyd Release Streams and Minecraft Lit Materials

Avoyd 0.13.0 is out. We're introducing the full, beta and demo release streams. Read about the full release including Minecraft lit blocks, how the demo is changing, how to teleport using the camera, and the workaround for exporting materials to Unreal Engine 5.1.

Avoyd Beta Stream

Introducing the new Avoyd Beta stream: fixes, updates and in-development features to download almost daily. Compare the 3 Avoyd streams Beta, Full and Demo. The free Avoyd demo will start to fall behind the full version.

Isometric Render of a Minecraft Map in Avoyd Voxel Editor

Tutorial: how to make an isometric voxel render of a Minecraft map in Avoyd voxel editor, arcball camera, atmosphere and lighting, graphics quality and UI customisation

Importing Minecraft maps in Avoyd Voxel Editor improved

Minecraft maps import faster and have specular lighting, technical details about the data structure and starter guide for opening, exploring, editing in Avoyd.

Runtime Compiled C++ Dear ImGui and DirectX11 Tutorial

This tutorial takes a small DirectX11 project, the Dear ImGui Example, and adds Runtime Compiled C++ to it for live editing.

Boxes in Space: procedural generation of abstract worlds in Avoyd

How we use procedural generation to create large abstract worlds from simple boxe shapes in our game and voxel editor, Avoyd.

Procedural python word generator: making user names out of 4 syllables

A procedural word generation and python tutorial using four simple building block: the four syllables of the 'Shadok' language.

In-game building

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?

Player-deployable turrets in Avoyd

The main addition to Avoyd 0.3.4 is in-game turrets. In this post we take a look at how the turrets work and how to deploy them, the new in-game tool selector user interface, and a brief overview of turrets AI, networking and HUD tech choices.

Avoyd Game Singleplayer and Coop Multiplayer Test

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. We have also simplified the movement modes to mitigate motion sickness. Watch our gameplay…

Voxel Editor Evolved

Why Avoyd's 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.

Speeding up Runtime Compiled C++ compile times in MSVC with d2cgsummary

Speeding up compile times for Runtime Compiled C++ up to 10x using the internal Microsoft Visual Studio C++ compiler flag d2cgsummary for compilation timing.

Multiplayers toxic last hit kill and how to heal it

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. As a multiplayer cooperative game, Avoyd is likely going to suffer from problematic player…

Avoyd Editor Prototype

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

Black triangles and Peter Highspot

Musician and sound designer 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, contact: peter@highspot.fr.

Colour palettes and lighting

Concept artist Rebecca Michalak explores colour palettes and lighting for Avoyd.

Concept art by Rebecca Michalak

Working with artist Rebecca Michalak on concept art for Avoyd.

Internals of a lightweight task scheduler

This is the second in a series of posts describing the implementation of the task scheduler along with its design goals and tradeoffs. Following on from implementing the interface to a lightweight lock free task scheduler in C++ I describe the internal workings. covering the task thread function, running tasks and task waiting.

Implementing a lightweight task scheduler

First in a series of posts describing the implementation of the open source multithreading task scheduler enkiTS along with its design goals and tradeoffs.

Feral Vector

Feral Vector took place in Hebden Bridge in May. This is a writeup about some of the many game we saw and played there. We hadn't planned to but we ended up showing Avoyd for the first time during the festival. We received nice feedback from people who played our prototype, which makes us think that releasing it sooner, even without gameplay, could be a good idea.

Normal generation in the pixel shader

Precision issues when generating face normals in the pixel shader using the derivatives of position fixed by using eye relative position instead of world space.

Python Google App Engine debugging with PyCharm CE

How to configure the free PyCharm Community Edition to debug Google App Engine python projects, enable smart code navigation and completion, and use path variables.

Lighting voxel octrees and procedural texturing

Adding shadows, AO and AA procedural texturing to the game Avoyd. Use of voxel octree data to generate lighting and AO using ray casts and 3D textures.

Patterns and spheres

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. We want to use those 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.

Python Google App Engine debugging with PyTools

When using PyTools to debug python for GAE, breakpoints don't work due to a known issue. A workaround is to configure PyTools to use the old GAE dev_appserver.

Interview

Chris Priestman interviewed us and wrote an article about our work a couple of weeks ago. We went into more details 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.

Domain masking using Google App Engine

How to use Google App Engine to masked redirect a URL to a desired domain. Our proposed method of URL redirection involves a python script using the webapp2 framework running server-side on GAE. As a result of this setup, you can have visitors requesting content from one domain, say www.new-url.com, see content which is hosted on another such as www.old-url.com. This is particularly useful if you…

Octree streaming - part 4

Avoyd now uses voxel octree streaming from the server to clients in order to get rapidly loaded large environments with long view distances. This is part 4 of the series on Octree streaming. Getting rapid movement to work well without framerate hitches required a few optimizations to the client side octree streaming system, which I've detailed in this post.

Black triangles and nervous_testpilot

How we started with a bug and ended up with a music video collaboration with the awesome nervous_testpilot. This post is also a retrospective of the last few months: loads of screenshots of Avoyd in various states of evolution and bugginess.

Presskit for Google App Engine

presskit() is a free, open-source tool that enables game studios to present information to the press in a unified format. If you would like to use presskit() on GAE, I explain in this post how to download and install our implementation as well as give an overview of the changes we made.

Octree streaming - part 3

Avoyd now uses voxel octree streaming from the server to clients in order to get rapidly loaded large environments with long view distances. This is part 3 of the series on Octree streaming

Octree streaming - part 2

Avoyd now uses voxel octree streaming from the server to clients in order to get rapidly loaded large environments with long view distances. This is part 2 of the series on Octree streaming

Octree streaming

Avoyd now uses voxel octree streaming from the server to clients in order to get rapidly loaded large environments with long view distances.

LAN discovery with multiple adapters

Solving LAN network discovery issues on machines with multiple ethernet adapters.

Playing with material worlds

New features in Avoyd: materials and multiple voxel models

Developer Diary archive

The entire archive of the Developer's Diary Doug wrote in 2001-2002 when he was working on the first version of Avoyd is back on our website

Website redesign

Our website is updated with a new front page about Avoyd, and is now generated using a Python script

First Person Editor

Suggesting a name for sandbox first person games like Avoyd: First Person Editors, or FPE. List of FPE games and links to their websites.

First Avoyd tech update video

First video: editing the environment

Implementing a static website in Google App Engine

How to host a static site on Google App Engine. This tutorial covers basic html, css for the looks, configuring app.yaml, how to handle a custom 404 - page not found, Disqus integration and a list of useful links and tools. No programming knowledge is required.

Multiplayer editing

Networking using Raknet and multiplayer environment editing

First screenshots

First images of the rebuilding of Avoyd. The new optimized voxel octree structure enables large environments. The view distance is now around 2km with a voxel size of 1m.

Thoughts on gameplay modes

Single and multiplayer gameplay modes and the role of AI