Minecraft
Adding Mac support is not that hard. Building on a Mac is not hard either. Cross-building is another story, which we will soon discover.
Continuing with CI by cross-compiling for Windows. Rather quickly going through how easy it actually was.
Releasing the project after the latest binary drops. Some information about release and build process.
Releasing a project to the world is not that easy as one may think. We need to make sure that the end user will have an easy interaction when installing our program.
Tests are used to determine a semi-validity of your implementation. However, it is useful to ensure that parts of your program does what it is supposed to, and that the whole program actually does things as expected. The biggest problem is how to test. The rest is just making sure it actually tests the right things.
Sometimes it is good to port algorithms from older code bases. And while it could be fun, if they are not compatible it might result in weird ad-hoc code. Refactoring to reduce duplication is necessary.
Optimize a complete algorithm is harder than it sounds, but with the right tools and correct mindset, it is possible to achieve noticeable improvements. In this case, memory handling is the most obvious fix.
I realized that I missed to add support for certain features in Minecraft save format, so I spent a couple of hours doing so. All of this adds better compatibility with Minecraft.
Optimizing your program can be tricky, but sometimes you can blame on the libraries you use, and look for alternatives that could help you.
Making applications that works over several platforms is hard, but in this case it was more related to the build system. There are some practices regarding the build system that should be taken into consideration, especially regarding dependencies.