One of my SSDs died yesterday. Working perfectly with no S.M.A.R.T. abnormalities in one second, completely gone in the next.
I didn’t lose anything crucial in that (because if it was crucial it wouldn’t be just on one drive), but it still stings. What’s gone (that I know about so far):
- Unpublished local changes to both GeDoSaTo and PtBI. They weren’t great or done, otherwise I’d have merged them into master and pushed them to Github, but still quite a bit of work there.
- A ton of game screenshots and some older save games without Steam cloud support.
- A lot of smaller development projects I worked on in the timeframe from 2011 to around 2015.
The last point is the one that truly matters. It included the final project that I wanted to post about in my “Graveyard of Forgotten Projects” series. It was a tile-based dungeon crawler I developed for my Galaxy S2 phone a few months after I got that, so in mid- to late 2011. If I hadn’t procrastinated so much with writing that, at least something of that game would still exist now. Well, something more than these two very short youtube videos of amusing bugs I uploaded (because of the amusing bugs):
The working title was “Sorceressry” (as in Wizardry), and the most interesting things I lost were:
- An engine written from scratch in OpenGL ES. Which is of course stupid to do, but was fun. Featured a custom occlusion and visibility culling system for tile-based dungeon crawlers that worked really well and which I was proud of.
- An “optimized” Java codebase which really showed that, at least at that point, trying to reach solid 60 FPS meant that garbage collection was more of a curse than a help. Basically, I remember going from 50 FPS with sporadic drops to 20 to 60 FPS by never doing any dynamic heap allocations and putting everything in manually managed static re-use arrays.
- A full level editor written in C#, which allowed putting together maps with tilesets including corridors, rooms, torches, clutter and decoration parts. You could then designate zones with encounter percentages, BGM choices and so on.
- A ruby script which automatically generated LOD meshes for the corridors using a basic (and really slow, but easily sufficient) recursive polygon reduction algorithm.
- All the assets I made for it, including a complete cave tileset and various icons and UI elements.
- A stupidly complex stat system, with 3 physical damage types, 6 magical damage types, and complex interactions between those and various stats. That’s probably the reason why I dropped the project when it came to implementing the battle system.
- It featured the “look around in-game by moving your phone and using it as a window” feature in 2011 before it got cool.
Well, this sucks even more after I wrote it down like that. At least I showed it to some co-workers who can confirm that it existed and had these things :/
Moral of the story: keep backups even of non-essential stuff, and don’t trust SSDs. Personally, what I’ll do in the future is push stuff to GitHub even more often and early, and when I have something local that isn’t ready but significant enough that I really wouldn’t want to redo it I’ll put it in a branch.
Also, procrastination can bite you.