Today I’m going to be talking about Arbalest again. It was on hiatus for a while, as I was putting all of my energy into Shibboleth. I had planned on scrapping Arbalest, but I got a spurt of motivation, so I’m back at it.

The main reason for me revisiting this project is because Microsoft released a bug in their compiler that causes it to crash on many codebases. Because of this, I can’t actually compile my project anymore until a fix is released.

Input

Input is super easy to port, since Unreal Engine 4 has a fully featured input binding system out of the box. Unlike Unity, I have not had to write my own input manager to handle input bindings.

Camera

The only thing I have ported so far is the camera. Current camera functionality is:

  • Keyboard panning
  • Mouse cursor panning (moving cursor to edge of screen)
  • Mouse panning (middle-click + mouse move)
  • Mouse zooming

Nothing terribly complicated, but the beginnings of a simple RTS camera.

Unity Version Dump

I realized that I never posted what I had with the old Unity version before I decided to port over to Unreal. Here’s a small GIF dump of what I had in Unity. Excuse the poor, mismatched GIF sizes.

Summarizing the GIF content, I had a state machine editor and started on the ability to place buildings.

The state machine editor mostly worked, but Unity’s serialization of custom asset types is very jank. It would occasionally nuke my entire file.