Developer Log SPACE ALPHA

Why create a game about climate change?

Growing up with the Amiga Commodore in the late 80s, playing games like Dungeon Master, or The Fairy Tale Adventure made me realize early on that I wanted to transform my own game ideas. As I grew older I thought to make something which had some deeper context, a combination of e-sport aspects and real world issues would fit best. However, as computer capabilities increased, so did the workload for games, unless you wanted to make something simple, and that was never really an option for me.

Meanwhile during the 2010s my interest was caught by the growing threat of climate change, so I started a YouTube channel, covering the spectrum of topics surrounding climate science. While I was still an avid computer game enthusiast I begun to lose interest in the games I used to play. It felt to me like games stagnated, the memories of my first Doom sessions in a Lan with friends or playing Starcraft with 8 players still felt far more fun compared to the sequels.

To this day there are still only a few games designed about climate change. Like Hollywood blockbusters (movies such as The Day After Tomorrow by Roland Emmerich do not count), this topic has not entered any of the themes by the major game development studios, such as Blizzard, EA, Bethesda etc. Maybe Fortnite tried something with the slogan Save the World, but failed short too, catering to the Royale Battle game mode, okay.

However, finally, in the late 2010s game engines became viable for Indie developers, namely Unity and Unreal Engine. While still working heavily with video productions for my climate change video channel I thought it would be nice to get some distraction when making a fantasy themed game, and Legends of Epica was born. Though the game is designed as a multiplayer game and it became clear that the amount of work was just too much.

Working on YouTube was always a struggle, sometimes videos were demonetized sometimes not, sometimes they got lots of views sometimes not. And then you have constant copyright claims, even if you own the rights. It was basically a very unforgiving full-time job. Then in late 2018 I decided that it was time to shift focus on making a game about climate change.

The difficulty about making a game about climate change is how to depict climate disruption and at the same time have a great game experience, which basically comes down to exploration, discovery, and fast paced combat scenes, including character development and engaging stories.

Space Alpha aims to merge a great game experience with the lingering effects of climate change. The main narrative is that there are forces who think that climate change may be an opportunity to sort the world order anew, while ignoring the destruction of Earth’s million old life sustaining ecosystems. Otherwise why would someone with the insights, spent millions of dollars to cast doubt on the sciences?

With climate change an ever present plot, potential players may discover something new, or it helps them to imagine a future world, raising climate awareness in the gameplay process.

The game will start in a not too far future, a time when parts of Miami are inundated, a time when you can’t stay outside in parts of the Middle East for prolonged durations, a time when all over the world, huge amounts of people become climate refugees.

As a Climate State Patreon you will be invited to the beta test phase.

Developer Log SPACE ALPHA

Cinematic Snapshot Miami Beach

Working on cinematics, a prototype of flooded Miami Beach we are working on is now available.

Developer Log SPACE ALPHA


The coastal beach region of Miami, part of the Climate State game we working on. CS: Space Alpha, work in progress. Follow us for the chance to get invited for the beta. YouTube Twitter Facebook

Developer Log SPACE ALPHA

Sneak peak of the Traffic System

A brief video showcasing city traffic at nights.

This is still heavily worked on, for instance different car drivers, or things like tweaking the lights. In the final game the player can drive to an airport, and can make use of vehicles during active missions.

Developer Log

Soldiers, Fighter Jets and the Inventory

Quick demo of some of the newly added game content.
Developer Log

Dev Log #1

Player Characters

Upon leveling through completing missions, objectives, or through exploration, the player can assign skill points to increase his research or combat power.

Global Rankings

The global ranking board introduces a competitive layer to the game.

Progress Data

Created player characters, unlocked levels, or items, are stored on a server. This helps to preserve game progress, and eventually may be extended with game features such as a spectator mode, or to join up with another player. However, multiplayer functionality will not be included in the initial game version.

Developer Log

How to setup Advanced Locomotion V3 “Foot IK” with Character Creator 3 Skeleton (No IK Bones)

Basically my intention to use Advanced Locomotion V3 was to get the IK out of it, even though the Unreal Documentation provides a basic setup. But because AL basically also provides a convenient approach for embedding and handling custom movement modes. The setup also makes use of the Post Process Anim Instance node for character meshes. However in my opinion AL is to nested, and overly specific when relying on the Epic Skeleton with it’s IK bones. That is not a bad thing when you start a fresh project but can become a tedious learning curve when you try to adjust settings to existing blueprint code.

The Final Result

Generally what we want is a single character mesh for all game characters. Hence, using a single Post Process Anim Instance helps to fast prototype new characters.

As AL users know there is a video tutorial on how to adjust characters without IK bones, so in theory this should be a straight forward task when working with Character Creator 3 skeletons, which however yet have to include IK bones. But, we can actually import these characters into our “main” Epic skeleton upon import, it just shows the IK bones all grayed out for those Character Creator 3 characters.

Character Creator 3 skeleton imported into the Epic Skeleton, notice the grayed out IK bones (inactive).

Adding Advanced Locomotion IK Foot functionality

The first thing you want to do is creating two new enums, one for Stance (Crouching and Standing), and the other one for MovementModes (Grounded, Falling, Swimming, Ragdoll).

Next we add these to our “main” AI Master Blueprint, and Player Character Blueprint, create a new enum variable for Stance and MovementMode. Now we can update the default MovementMode from our CharacterComponent and parse this value into our custom MovementMode, we do this on EventTick.

Your project should use a Interface Blueprint, for convenient communication between your Anim – and Character Instances.

Added the new custom Event SetMovementMode to EventTick.
SetMovementMode Event parses the default MovementMode into our new custom MovementMode and communicates into to our BlueprintInterface.

For convenience we added a pure function to get the current Post Process Anim Instance.

If you do not yet have a Blueprint Interface create one add it under Class Settings – Interfaces, then add the following function to that Interface.

Set MovementMode function inside our Interface.

You have to do above steps for your main Character and AI blueprint, except for the Interface, which we can share among our two master character blueprints.

The Post Process Anim Instance and making it work with Character Creator 3 Skeleton (No IK bones)

Create a new Anim Blueprint based on your “single, main” Skeleton and basically copy the contents from Advanced Locomotion V3, Mannequin_IK_AnimBP into it.

Event Graph

Since we have now the new Interface function for communicating the movement states to our Post Process Instance, we add the Interface Event to it.

Here we created an extra graph inside our Post Process Anim Instance, and added the Interface event for updating our character MovementMode.

Because we use two different character blueprints the Event Graph otherwise looks like this.

Event Graph with switch for current character blueprint and updating MovementMode.

Virtual Bones

Create the following virtual bones inside your Skeleton:

  • For “thigh_r” (thigh_r_calf_r)
  • For “thigh_l” (thigh_l_calf_l)
  • For the “root” bone, call it ik_root.
  • For “foot_l”, call it ik_root_foot_l
  • For “foot_r”, call it ik_root_foot_r
Notice the Virtual Bones in blue color.


Oni: When playing back an animation on a character, Unreal Engine can either use or ignore the translation data included in the animation.

To use the translation data means to place the joints according to the animation, i.e., in our case, based on the proportions on the male skeleton – this setting of “Translation Retargeting” is called “Animation” and is the most rigid of the available settings.

To ignore the translation data of the animation means to place the joints according to the mesh itself, or rather to its own internal skeleton – that is, the bone structure you see in the Mesh editor (if you enable the display of bones), and not to be confused with the Skeleton Asset (in our case, the male Mannequin’s skeleton). By setting “Translation Retargeting” to the not-so-intuitive “Skeleton” value, the engine is told to take only rotation data from the animation and, as for relative translations, the engine will look them up in the internal skeleton of the mesh (and not in the Skeleton asset).

Thus, to make a female character look OK in ALS3 (or any other character with custom proportions), you will need to modify the “Translation Retargeting” value and set it to “Skeleton” for all non-IK bones.

We will actually use the Character Creator 3 Foot Bones for IK (otherwise it won’t work), hence click on the Skeleton Options Panel, enable Show Retargeting Options for your Skeleton, then set foot_r and foot_l to Animation!

Anim Graph

We are now done editing the skeleton, and can continue with changing the default Advanced Locomotion blueprint code.

Editing Advanced Locomotion IK values for Character Creator 3 Skeleton

Notice some or all steps of this chapter, may be different, depending on your Skeleton setup. Here we use a Character Creator 3 Skeleton, imported with the Reallusion Unreal Plugin to our Epic Skeleton.

Basically if your Skeleton without IK Bones is not retargeting the feets to the floor beneath, do the first check, add a PrintString node into the FootIK function, which is part of the AL Post Process Instance.

To test the default values of ALV3 with your Skeleton without IK Bones check if we get any output.

If there is no ouput it probably means that the Character Creator 3 foot bones are differently setup. However we can fix this! Just edit the ClampOffsets function as follows.

The modified ClampOffsets function

Next we adjust our AnimGraph!

Oni: If you want to replace or complement ALS’s locomotion animations with your own, and do not want to follow the convention of animated IK bones (ALS expects locomotion animations to have motion tracks for the IK bones that exactly replicate the motion of the actual foot_l and foot_r), you need to modify the animation blueprint (either Mannequin_PostProcess_AnimBP for ALS2, or Mannequin_IK_AnimBP for ALS3), as described HERE.

After applying above hack and connecting the two extra AnimGraph nodes, it should look like this:

The following changes were made to the AnimGraph Nodes:

The Copy Bone Nodes Settings

Node 1

  • Source Bone = foot_l
  • Target Bone = VB ik_root_foot_l

Node 2

  • Source Bone = foot_r
  • Target Bone = VB ik_root_foot_r

The Transform (Modify) Bone Nodes

Node 1 Bone VB ik_root_foot_l

  • Bone to Modify = VB ik_root_foot_l

Node 2 Bone VB ik_root_foot_r

  • Bone to Modify = VB ik_root_foot_r

The two Transform (Modify) Bone nodes which per default have only a Translation Y value assigned to the virtual bones, VB thigh_l_calf_l and VB thigh_r_calf_r bone. These settings may be tweaked to account for your custom mesh, which means they may or may not be required. Basically it narrows legs, heightens walk angle of the calf bones etc. So you might skip this step.

Node 3 Bone node VB thigh_l_calf_l

  • Translation Z  = 3

Node 4 Bone node VB thigh_l_calf_l

  • Translation Z  = -3

The Two Bone IK Nodes

Node 1 Bone foot_l

  • Effector Location Space = VB ik_root_foot_l
  • Joint target Location Space = VB thigh_l_calf_l

Node 1 Bone foot_l

  • Effector Location Space = VB ik_root_foot_r
  • Joint target Location Space = VB thigh_l_calf_r

In my example I set a Pelvis Offset of 1, which seems to have taken care of slightly out-of-place animations. 

The last step is to add the Post Process Instance to each of our Character meshes, that’s it!

Additional Notes

The main differences to the AL default version is that we use a pure default foot bone Z value, and only marginal clamp (switch pitch) of the traced results. 

Because we do not have IK bones in our Character Creator 3 skeleton we created those based on our root bone, from that added two virtual foot bones as replacement.

The Skeleton Translation Retargeting, for the most part you only need the root, pelvis, foot_l, and foot_r set to Animation.

When working on this I noticed that the AnimGraph nodes no longer showed the connected animation, which can be fixed when restarting the Unreal Editor.