Skip to content

Game Development Tools

In this section, I showcase several projects that were built to help building video games, serious games or real-time experiences. While the first one was built as part of my contributions to Altheria, the others were built on my free time, as learning or side projects.

Altheria Practice

In a nutshell

  • Role: Software engineer (2018-2020), Technical advisor (2021-2023)
  • Technologies used: Unity, C#, Python
  • Learnings: 3D asset pipelines, UI design and implementation, building tools on top of Unity
  • Repository: Closed source

Description

Altheria Practice is a visual editor that allows users to build Virtual Reality trainings without writing a single line of code. 3D models can be imported into a scene, and pre-defined behaviors can be assigned to these models. Combined by a node editor that allows for a conditional flow of scenarios, this is a powerful and flexible tool that has been successfully used for and by industrial customers. More information can be found on the Altheria website.

My contributions were focused on building the automation of the asset pipeline, ie. allowing users to import their models into the scene in a single click. From 2020 onwards, I have acted as a technical advisor, helping to improve the asset pipeline using convex decomposition and providing insights into the addition of networking features. Prototyping was started in 2018, first customer contracts were signed in 2020, and the product entered a more active phase of promotion in 2022.

Here is a recent trailer and some screenshots.

Below is a tweet that shows the user flow.

Many screenshots can be found in the documentation I initially designed and wrote in 2020 (in French).

M3D Viewer

In a nutshell

Description

This tool is a M3D viewer. M3D (Model 3D) is an application and engine neutral, universal 3D model format to store CAD models, meshes, skeletal animations and voxel images - it is notably used by the popular videogame framework raylib. It allows for the embedding of animations and textures.

This project started as an initiative to get more familiar with DirectX12 using the DirectX12 toolkit. Upon stumbling on the M3D format, I also decided to get more familiar with how skeletal animations are processed at the GPU level. Towards the end of the project, I also included a minimal UI built with Dear ImGui. At the time of writing, the viewer supports geometry, (non-embedded) textures, vertex colors and animations.

Source code snippets selection

The M3D loader can be found here. The animations are applied to the model in the following function. C++ classes are used to provide a level of abstraction through the project.

Birdsong

In a nutshell

Description

Birdsong is a dialogue box system for the Bevy game engine. It initially started as an entry for Ludum Dare 52, then devolved into a fully fledged tool. What started as a simple dialogue box is now a simple interpreter that allows Bevy users to build narrative games.

The following demo shows how the tool generates a game from a fairly straightforward script.

Source code snippets selection

Most of the logic of Birdsong is mostly contained in the following file.

LogiaChem

In a nutshell

  • Role: Programmer, designer.
  • Technologies used: Unity, Javascript, Firebase
  • Learnings: Cloud key-value storage, serialization, HTML5 user interfaces
  • Repository: https://github.com/jlvoiseux/LogiaChem

Description

LogiaChem is a molecule drawing and visualization tool. It is composed of a web app which serves as a molecule editor, and of an Android app which allows the user to observe the molecule in VR. It is composed of an editor and an Android app.

This prototype was built with :

  • JSME : a Javascript molecular editor by Peter Ertl and Bruno Bienfait
  • Jmol : an interactive viewer for three-dimensional chemical structures

The VR part is rendered using Unity, while user data and molecules are stored in Google Firebase.

Source code snippets selection

Here is the VR molecule drawer and here is the editor UI.