Version 0.2.0

<
>
October 24, 2022

Major Font Rendering Improvements

I spent a lot of time on improving the font render quality and also switched to a new font (Roboto Mono).
Below a before and after picture (OLD | NEW):

Belt Corners

Belts are now rendered as corners if they are placed in such a way. This looks way nicer than before and also makes it easier to understand the factory’s layout.
Below an image comparing the new and old belt rendering (OLD | NEW):

Drag Place

It’s now possible to drag place Structures by holding the right mouse button.
This is incredibly useful especially when placing lines of Belts or Arms.

Performance Improvements

This version contains several, major performance improvements.

No More Duplicate Simulation

Up until now there was an ‘offline server’ running when playing Factor Y.
This server was also running the full simulation, doubling the CPU usage of the simulation.
Now there’s still some ‘server like’ logic running, but it doesn’t have to simulate the entire game anymore, removing the overhead.

Improved Add/Remove/Rotate Performance

I spent a lot of time on improving the performance of user interactions.
At 250k Structures all user interactions are now pretty much instant for me, while some of them were unusable with 0.1.0.

Seperate Render & Simulation Threads

Both the simulation and rendering now run on seperate threads.
I also greatly improved the logic regarding how the seperate threads interact.
The general user interaction (zooming, moving the view, …) is now performing even better.

Dynamic Simulation Speed

Up until now the simulation was running at a fixed speed.
This was problematic if your computer wasn’t able to achieve this speed anymore, causing no frames to be rendered, essentially freezing the game.
This is now all fixed by having the simulation speed dynamically adjust in case your machine can’t keep up.

Tech Tree Improvements

There have been multiple UI improvements to the tech tree:

  • When hovering a technology, others related to it are now also highlighted, making it easier to see dependencies
  • The Infobox will now also list the dependencies of the hovered technology

There have also been improvements to technologies and dependencies in general:

  • The tech tree is now way ‘deeper’, having more levels of unlocks
  • There are more and more granular technologies now
  • There are now technologies that require titanium
  • The Space and Colonization technology were merged into one
  • Renamed PlanetExpansion to FarInfluence

Below an image showing the new, more complex tech tree including the dependency highlight and Infobox improvements:
(The last technology is being hovered in this image)

Improvements to Modules

There have been several, Module related improvements.

  • The logic generating Modules was changed to generally produce Modules that tick faster.
    They’ll e.g. tick 4 times faster but also only produce 1/4th.
  • A Module‘s duration is now also displayed in the InfoBox.
  • Module icons have been updated
  • There’s now also a notification when starting to generate a Module
  • Sinks are now allowed to change their Item without requiring the user to replace the Sink
  • Ensure no duplicate modules are allowed even if their names differ

Savegame Improvements

There have been multiple improvements to both the UI and logic in general:

  • It is now possible to delete the selected game
  • Autosaves are now ordered from recent to old, avoiding unnecessary scrolling
  • All actions with confirmation dialog now have the savegame name attached to them instead of being applied to the currently selected game. This prevents issues when a player would select another game while the confirmation dialog was open.
  • The names of games are now rendered left-aligned
  • There’s now no autosaving if nothing has been placed yet
  • A rendering issue was fixed where game names could overlap UI elements such as the Hotbar
  • Improved error reporting on load failure

Below an image showing some of the improvements:

Persisted User Settings

Factor Y now stores all ‘user’ settings in a file.
The file combine_and_conquer_user_cfg.toml will be written on shutdown and read on game start.
It persists the sound volume and all render settings.

Clickable Confirmation Dialog

Up until now the confirmation dialog required keyboard interaction. I reworked it to be a clickable dialog.

Linux Build Changes

I updated some dependencies that required me to now build the Linux version on Ubuntu 18.04 instead of 16.04.
Please let me know if you run into any issues because of that.

Dynamic Hotbar Size

The Hotbar now dynamically resizes to ensure that all its buttons fit into the window.

Chest New Texture

I updated the texture of the Chest.

Other, Minor Improvements

There have been several, minor improvements:

  • The way Labs accept research tokens has been improved. This prevents Labs from being ‘blocked’.
  • Presence is now rendered with transparency. Its color was also changed.
  • Assembler is now correctly rendered with the expected, high resolution
  • When out of power, there’s now a frequently logged warning
  • The Snow and Ice tiles are now less bright
  • The cursor behavior on Structure delete has been improved, making it easier to delete multiple Structures in a row
  • There’s now a notification if a landing zone was removed while a ship was flying to it
  • Notification errors are now used less often (migrated to warnings)
  • Both the initial game volume and the Assembler‘s volume have been reduced
  • The InfoBox now shows information when hovering the power UI or current technology UI
  • Arms are now cheaper to craft

Bugfixes

There have been several bugfixes:

  • In some cases recipes weren’t rendered with the expected transparency. This is now fixed.
  • Fix a render issue where Items held in Arms would be rendered below other Structures
  • Fix a render issue with the cursor text where it might be displayed below other elements
  • Fix the wording of the ‘Nothing placed yet’ message