Posted November 17, 2025 by Christian Wulff-Nilsen
Dear all,
The conversion from C++ to Rust is finally done! It "only" took close to 11 months. My own estimate before I started the conversion was 4-5 months but things always tend to take longer than expected. The new version of the game has been uploaded today.
Since I use safe Rust, a whole range of potential memory-related bugs have been eliminated. This should hopefully make the game less likely to crash. However, other types of bugs may have crept in during the conversion. I did my best to avoid them by testing the new version quite extensively. I will do further testing in the coming days and weeks.
Since I coded the game from scratch in Rust, I decided to rethink the design of the code in order to improve performance. One of the main changes is that I no longer use smart pointers but instead something similar to ECS (Entity-Component-System). This has lead to substantially lower CPU and memory usage which should be noticeable when you play the game.
Due to this improvement, I decided to introduce a "Huge" map size in the "Customize World" settings which is 4 times larger than the previously largest map size. If you have an older computer, you probably want to stick to smaller map sizes though.
In addition to improving performance, I fixed a few bugs and some balancing issues that I encountered during the conversion. Here are some of the main changes and improvements:
The new Rust noise generator that I use for map generation is slightly different from the earlier C++ version. I actually think it gives more interesting islands so I will keep using it.
Please note that the game is now run from the main XSurvivor folder, not a sub-folder (run xsurvivor.sh in Linux and xsurvivor.bat in Windows).
Expect more regular updates to the game from now on.
As always, let me know by e-mail (cwulnil@gmail.com) or in a thread in here if you encounter issues with the game.
Best regards,
Christian
P.S. To Mac users: unfortunately, I am currently only able to build the game for Linux and Windows. This is due to a package that I rely on which won't compile for the Mac version. You can always play the latest version of the game via Windows emulation using Wine as well as the last uploaded Mac version from a few weeks ago. If there is sufficient interest, I will see if I can get the Mac version to build.