SSDs die

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.

Little King’s Porting Story

I was contacted by Ken at XSEED back in 2016 concerning their troubled port of Little King’s Story to PC. You can now read up on the results in this blog entry.

I got to leverage my skills, learned a lot of things, and gained quite some insight into “real world” game code working on this. Never mind getting paid too! Thanks to Ken and XSEED as a whole for the opportunity.

After this experience, I’m now curious about what the market is like for port consulting, improvements, and/or from-the-ground-up ports of niche- to mid-end games. If you work for a company interested in these things, please do contact me and let me know about your case – I’m trying to decide whether to pursue this full-time in the future.