Astrus

Game Details

Genre: Sandbox
Languages: C++, Blueprints, Javascript, HTML
Tools: Unreal Engine 5.1, Jetbrains Rider, VS Code
Platform: Windows
Timeline: October 2023 - December 2023


Game Brief

A simple game where the main focus was using the WebUI and JsonLibrary plugins which allowed me to add UI with HTML and JavaScript, allowing for more advanced UI.
The main focus of the game is accepting missions in different space stations and then transporting goods and passengers, gathering money and relics and building your ship how you like it, whilst managing fuel resources and looking after your crew who can help increase fuel amount or travel times.


Work

UI

* I must preface this by saying I am no UI artist, not in the slightest.

I decided to venture into HTML UI with this game after a friend mentioned wanting to use Coherent UI, I ended up going with a cheap plugin called WebUI which is pretty similar, if a little more limited. I'd done a bit of basic HTML and JavaScript a few years ago so I jumped right in with making a Ship Editor, making use of the gridstack module which allowed me to have draggable and scalable rooms, however, I ended up leaving them at set sizes for now for simplicity, and added buttons for each room on each right and bottom tile, which can toggle where doors are placed.
Selecting a room brings up its information below, showing a dropdown with the type of room it is, and an unlock button which can turn the red rooms blue. The information is currently limited, but the plan is to add crew and passengers that can get assigned to the bedrooms, and it might show their needs and other info.

Some of the benefits of using Web Pages I've found is the speed at which you can prototype the UI with animations, rounded edges, changing visuals on hover, SVG's etc. Compared to Unreal's default method of building UI, the layering of elements feels much simpler, with altering the size and positioning much more user friendly, however, I have still used Unreal's UI for a build menu as I am used to using their list view components and so I could quickly set it up with custom item icons and data.