Inherited an app that was built in Marmelade - a cross platform (Android / iOS) framework. C++ codebase.
(Note the following is a criticism of the previous developer - not of Marmelade)
It was the most rinky-dink setup I’ve ever seen - unrepeatable build system that relied on binary files all over the file system (in .config folders, temporary directories, hard coded paths that only existed on devs laptop)
The texture compressor was able to fit all of the sprites into a sprite sheet with literally kb’s of texture memory left over, we couldn’t change a sprite because it would cause the very exact pattern of all of the other sprites to no longer fit together by the packer
Random crashes of the app we’re common, massive libraries would be included only to use a tiny math function within - to do a trivial calculation causing 100,000x slowdowns
Deployment involved manually building a bunch of object files, then copy + pasting them to other folders, then building more and moving them all around, then delete assetX from here, delete assetY from here, run packer manually, copy files here, run linker - none of this was documented
The code was a mess - major over abstractions 10 layers deep that could have been 2 or 3, each intermediate was instantiated seemingly randomly through the class hierarchy, all over the place, no consistency
There were lots of anti patterns throughout the code base - some god objects holding state they shouldn’t have, which led to lots of unreproducable race conditions. Memory leaking common, so steady memory growth until crash.
The dev was a total nut, huge rants over nothing
I laugh looking back at it now, but at the time it was painful