While being an awesome cosy and immersive game, Starbound is known for its bad optimization. This project is aimed to solve those issues, because it is very unlikely that Chucklefish will ever do it themselves.
This patch does not solve all the problems at once, some stuttering is still occuring. At the moment of this writing at least a couple of decent oversights in Starbound rendering process are fixed, adding a good FPS boost in locations rich on different entities. See the demo.
Hope to add more optimizations over time.
Installation:
1) Dowload the latest starbound.exe from "files" section (currently only Windows 64 version is available). The title of the download looks like this: "starbound.exe (Windows, 1.4.4) - 0.1.0". "1.4.4" in parenthesis means what game version is patched, and "0.1.0" is the version of the patch itself.
2) Unzip it and place starbound.exe in your <Starbound>\win64 folder. Make sure to make a backup of a previous executable, as well as your player data just in case (<Starbound>\storage folder).
3) Launch the game as you normally do, either directly launching the executable, or from the launcher (Steam or whatever).
There is a common belief that Starbound lacks performance because it does not utilize GPU-power, but instead does everything (or mostly everything) on the CPU. It turns out to be not true. Or better say, it's not necessarily true. Starbound still does a lot of computations on CPU, but it:
In other words, the GPU is not a magic box that does all computations on its side. It does a huge amount of computations necessary for rendering, especially in 3D games of course. But things like positions/scales/rotations etc, which are needed not for rendering, but for game logic itself, are still done on the CPU (except for some cases when you could indeed utilize GPU in theory, but that is relatively rare), and that is usually not a problem.
As an indirect evidence of that, you can look at debug info in game to realise this:
Here I took a screenshot in a quite intense scene. Update rate, which is essentially the amount of frames the CPU handles, is close to 60. But the render FPS barely reaches 30.
If it was some abstract/unknown game, one may have thought that the GPU is just too slow to render what it is asked. But when you know it's a graphically simple 2D-game, you understand that it just can't be true. And you will be right: the problem is not in the GPU. The problem lies in a non-efficient usage of GPU, or better say - non-efficient communication with GPU.
When it comes to rendering, no matter how powerful you GPU is, there is still a very important aspect of how do you ask it to render the things you want. How well it is prepared beforehand for doing this, etc. And that's where the Starbound performance issue is.
You can roughly compare it to a set of logistic tasks. Imagine you are doing deliveries, you have a courier, and you are most probably interested in doing as much deliveries as possible. Or at least 60 per day :) Ideally, you would like to give your courier a complete list of deliveries for this day, as well as the most optimal routes (the known travelling salesman problem). It is not always the case, but you would still want to give at least optimal batches of deliveries. Obviously, if you give the tasks in a non-efficient way, the courier will just spend a lot of time on overheads, like visiting neighboiring places multiple times, etc. Add to that some other factors (like, the courier needs different vehicles, and/or specific times to deliver), and the problem can become even worse. And istead of planned 60 or even 200 deliveries per day, they will do 30-40 at most, even if they are very fast by themselves and have the best vehicles in world.
Same happens with rendering. And that's what can be optimized in Starbound.
Patched Starbound for Windows. Removed some debug logging leftover.
Patched Starbound executable. This version contains fix Steam integration (mod loading)
Patched starbound executable for version 1.4.4, Windows 64.
Hello, since it seems you have somewhat reverse engineered the game, can I ask if you can change update rate to match the framerate? So we don't get fps related slowdowns and can even use higher framerates without speedups?
Hey, I noticed some bugs while using mods, first bug is with CN More farming: When moving some workstations in inventory, like blenders, or ovens (i tried with primitive oven) game starts to freeze like crazy; Second bug is with Kitsune race: When creating new character, after completing tutorial mission, character becomes somewhat corrupted (what I mean is character hands and clothes not rendering correctly or not rendering at all). Draconis race also having same bug
P.S. Sorry for bad english, not my main language
Thanks for the feedback. I'll have a look soon.
Oh yes, one more thing, bug with clothes is visible only in inventory and menu as far as I know.
I can provide video or screenshots of bugs, if you need
Fixed steam integration (and mod loading from Workshop) in 0.1.1
I'll try to fix mods soon. Currently it does not load mods from steam. But if you put them into "mods" directory, they should work.
So, is there a solution to fix mods not loading?
It seems this causes mods to not be loaded? So... That sucks.
Hey i have a question, none of my mods work after this, i have both workshop mods and mods downloaded outside of the workshop, my character also doesn't load despite saving and loading backups.
Helpp!!