Posts

Showing posts from June, 2021

Progress Update #28

Image
  Better and Worse at the Same Time     I had two main tasks for this sprint: to transition the celestial body highlights to be world-space widgets, and to implement the ability to add an remove entire celestial bodies from the world.  World-Space Widgets     The reason I wanted to make the widgets world-space (WS) was because of the distortion that happens to objects that are at the edge of your FOV. This distortion made the highlights misalign when at the edge of the screen, even when they were at the perfect position on the center of the screen.  Center of Screen Edge of Screen     The quickest way I could think of remedying this was to put the widgets in the same domain as the planets. This came with lots of unforeseen consequences even though the original problem was fixed.  Problem 1: Input     Now that the widgets were in WS I still needed to be able to interact with them. The solution provided by Epic was to use a Widget Interaction Component . Though I am sure this is useful,

Progress Update #27

Image
  Editing Linear Color Curves in Game     This sprint was focused on creating the ability to change and edit color gradients in-game. Before I started I searched the internet to see if anyone had already done this before but to no avail; I had to create a solution completely from scratch. (Note: I will use the words 'gradient' and 'linear color curve' interchangeably, they describe the same thing) The Idea     The essence of what I wanted to create was a replica of the in-engine color curve editor. This is a rectangle that renders the gradient and a space above it that has smaller elements (which I dubbed "keys") which are positioned at the location of the color and have a small space to show what color is being used. e.g. The Widgets     To replicate this I needed two widgets, one for the gradient, and one to use as a template for the keys. The gradient itself is an image on top of an invisible button because at the time I did not know that images had an &quo

Progress Update #26

Image
  Saving and Loading a Solar System     As per the roadmap, I did a week long sprint implementing a saving system for the game. Attempt #1:       I started out the same way I've done for every Unreal project in the past; making a SaveGame class and shoving all the variables I wanted to save into it. I got trough the player variables, positions and velocities, and orbit visualization settings, but when I looked at the mountain of variables I would need to save for the data assets I began to rethink my approach. Manually writing all those variables would be much too time consuming, so with three days left in the sprint I scrapped the system and started again. Attempt #2 (the real one):     (I will be skipping out on recounting the entire research phase and jump to the solution I used in the interest of brevity)     Because I didn't want to store individual variables in the SaveGame, I looked at how I could save full actors. This rabbit hole lead me to a post on the answerhub  wr

Progress Update #26

Image
  Alpha Bug Fixing     This week I have polishing the alpha. This includes multiple bug fixes, some small new features, and some automation with getting builds of the game uploaded to itch.io. Bug Fixes:     UI Bugs        Most of the bug fixes came in 0.1.3 and had to do with the celestial mode UI. The first of which was an issue that has persisted since the celestial planet highlight was first introduced. The issue in question happened when the focused planet went out of view and the highlight would position itself at 0, 0 on the main canvas. This was fixed simply by reading the return value of the ProjectWorldLocationToWidgetPosition function and if the position wasn't within the player's viewport then the widget is hidden.      The next problem I set out to fix had to do with the curve of the HUD. Because the celestial planet highlight also had this curve applied to it, the further it was from the center of the screen the less accurate the positioning became. My temporary