Derek Baert | Game Designer and Programmer

-
RolesAI and Tools Programmer
-
ToolsUnreal Engine, Unreal Blueprints, AnimToTexture Plugin, VR, Perforce
-
Team Size9 (2 programmers, 7 artists)
-
Development Time6 Weeks
-
GenreReal Time Strategy
-
PlatformPC
Zecromancer is a VR RTS game in which you play a Necromancer trying to control a horde of Zombies. This game was developed in 6 weeks in a team of two programmers and seven artists. I was able to gain a lot of experience with coding AI, and building a tool to help improve performance for the animations.
-
Programmed AI behaviours, including Zombie NPC behaviour which could be influenced by player inputs.
-
Created development tools to automate workflow of converting animations to vertex animations using Unreal's AnimToTexture plugin.
-
Programmed system to change animations of NPCs which used vertex animations in place of skeletal animations.
Read on for more detailed information on these contributions!
In order to render a large crowd of zombies and enemy soldiers at once without sacrificing frame rate, we used Unreal's experimental AnimToTexture plugin to extract skeletal animation data into textures used by the zombie models.
Automation Tool
Since this plugin is experimental, the workflow was not artist or designer friendly, so a tool was needed to automate the process. A designer friendly tool was first developed by Trash Praxis for Unreal 5.1, but due to changes with the plugin after this version, the tool no longer worked. By digging through the code for this tool, as well as the plugin files, I was able to remake the tool to work with version 5.3. A more in depth explanation and a look at the code can be found in the following documents:
Code Breakdown
Animation Controls
Unreal's systems are build assuming the use of Skeletal Animation, so a new system was needed to change the animations of the zombies. When the animations are extracted and stored in the Zombie's textures, they play in a sequence. For example, if we extracted data for a running and idle animation, the running animation would play to completion, then the idle animation would play, before looping back to the running animation again. As part of the extraction process, a Data Asset is used to store references to all of the information used, including the original skeletal animation as well as the start and end frames for each animation. The material made from these textures has material parameters for the start and end frames, so by referencing the original animations in this data asset to set these parameters, we are able to limit the vertex animation being played. A more in depth explanation and a look at the code can be found in the following documents:
Code Breakdown
As the game revolved around controlling a horde of zombies, I developed an AI system that would respond to the player's commands. When the player performed a gesture to command the zombies, each zombie's state would be updated to reflect the new command, which would then inform their behaviour tree.
Code Breakdown

Write-up for feature

Write-up for feature
Code Snippet