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 Structure
s by holding the right mouse button.
This is incredibly useful especially when placing lines of Belt
s or Arm
s.
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 Structure
s 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
andColonization
technology were merged into one -
Renamed
PlanetExpansion
toFarInfluence
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
Module
s was changed to generally produceModule
s 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
-
Sink
s are now allowed to change theirItem
without requiring the user to replace theSink
- 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
Lab
s accept research tokens has been improved. This preventsLab
s 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
andIce
tiles are now less bright -
The cursor behavior on
Structure
delete has been improved, making it easier to delete multipleStructure
s 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
Item
s held inArm
s would be rendered below otherStructure
s - 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