Reviving PartStacker
in C++
Braden Ganetsky
CppNorth 2025 Lightning Talk
"Braden what have you been up to in 2025?"
Reviving PartStacker
in C++
Braden Ganetsky
CppNorth 2025 Lightning Talk
Thank you!
Braden Ganetsky
GitHub @k3DW
https://github.com/PartStackerCommunity/PartStacker
https://tomvanderzanden.nl/partstacker
## This talk * Compiling old XNA code * Recovering lost features * Rewriting in C++ * Current work
Old XNA code
## XNA * .NET video game development * E.g. graphics libraries * Discontinued in January 2013
## Community implementations of XNA * MonoGame * FNA
## Ultimately it worked * Except for a few deprecated APIs * Like C# `BinaryFormatter` serialization * I just commented that stuff out
Recovering lost features
Sinterbox
What happened to the feature?
I have no idea
## Method * Someone in the community had the executable with the feature * He decompiled it, sent me the decompiled C# * I matched it up, line-by-line, to the real code I had * I manually reimplemented the feature
Rewriting in C++
## Rewriting in C++ * wxWidgets with wxGLCanvas * Learning to write shaders, transformations * Un-fixing the UI widgets * Modularizing the code, 6 total CMake targets * Compiling on Mac!! * (with GitHub Actions)
https://github.com/PartStackerCommunity/PartStacker/releases
Current work
## Recent work * Save and compare results * Use vcpkg instead of pure submodules
## Current work * Optimize the packing algorithm * Save/load entire workspace to a file * Implement other feature requests
Thank you!
Braden Ganetsky
GitHub @k3DW
https://github.com/PartStackerCommunity/PartStacker