This is a kind-of autobiographical retelling of the development of LSD: Revamped. Each step is accompanied by a picture of the state of the game at the time.
The project started in October 2011 because I wanted to work on something and I had been watching AzuriteReaction play LSD: Dream Emulator. I didn't know much about game development at that point, and I knew nothing about Unity, the engine that LSD Revamped runs on. At this point the game was called 'LSD: The Remake'.
The project's vision was initially to be a HD, modern version of LSD. I was attempting to make HD versions of all the environments, and teaching myself programming and art along the way.
I added a counter for when development started to the title screen. I used the wrong date. The actual value should be 664 days. If only I knew I'd still be doing it at 3113 days (at time of writing).
To provide some context, when I started in 2011 I was about 14 years old and attending school full time. I was now 16 years old, and still attending school full time. It was difficult to find time to work on the game, but I definitely wasn't doing it as much as I should have. So I decided to set myself a goal to finish it that year! The name also changed to 'LSD Revamped', which it would keep. I think the goal here was to make it more explicit that the game was going to be more modern and not just a remake. I ended up making it look retro anyway, oh well.
I loved using Hammer Editor to make levels for Portal and HL2 when I was younger, so I decided I wanted LSDR to have that too. So, I started making modding tools. This would get scrapped and remade about three times.
Many days and many bugs later, I figure out how to make levels in an open-source version of Hammer Editor (Jackhammer) and load them in-game. I start making all of the levels properly now.
AzuriteReaction, the YouTuber who first introduced me to the game, wants to play the remake. I grind a bunch throughout October to get a special playable demo version ready. It gets played on a livestream, and goes kinda okay. Looking back, it wasn't ready to be played. The dreams are bad knockoffs, Happytown and the Violence District look absolutely nothing like the originals. There was hardly any content. Still, I couldn't believe he was playing it!
On the 21st December, 2014, the game releases to everyone. It was still far from finished. I had one of the busiest days of my life responding to questions, fixing bugs/crashes from reports, and reading feedback. It was amazing. A week after the release, Osamu Sato (the original creator of LSD: Dream Emulator) would post a link to it on his Facebook page. I don't find this out until 2016, but when I do I am beyond excited. I couldn't believe it!
Reitanna Seishin, a fan of the game, makes some awesome vector graphics and lets me use them in the game. I promptly redo the UI to use them, and they're still in use in the game in its current version! Awesome work, Reitanna. Thank you.
It's the summer. I've finished school, and I have nothing but free time before starting University in September. I scrap the mod tools and make a custom dream editor: 'Torii'. I'm fairly okay at programming at this point, and I have a blast learning new stuff and making the editor. My daily routine was essentially: wake up, write code, exercise, write code, sleep. It was awesome.
At home from University on Christmas break, I decide to try to reverse engineer some of the original game's files based on some tips I got from a fan, 'elzo_d'. I ended up being able to extract the tiles that make up the game world. I couldn't figure out how the textures were stored, so I settled for texturing them manually. This would be the start of a series of reverse engineering breakthroughs that allowed me to load complete levels right from the files of the original game.
I'm now extracting tiles from the original game, deduplicating them (they were split across multiple files, with some tiles being in many), manually texturing them, using a Blender script to load them into Blender and arrange them in the layout of the level, exporting them to OBJ, importing them to Torii, then exporting them to be loaded as levels in game. Phew. Don't worry, it gets easier than this as I make more reverse engineering progress.
I'm making more levels with the same process. The Natural World (pictured) is the biggest level in the game. I don't remember how long it took to make it, but it was a long time. Still, it was amazing to see levels from previously unseen angles.
2017 flew by without much progress, University work was becoming more time consuming, and I had an internship over the summer too. At some point I decided to put all my reverse engineering in one place and make a library to load data from the original game. LibLSD and LSDView were born. I can now load full levels with texture information. LibLSD is how LSD: Revamped loads the original game's data files.
Spending ages poring through leaked PS1 developer documentation, I find an incomplete file format specification that describes animation data. I look through LSD's files to see if it happens to use it, and lo and behold I find some embedded in the game's level data. I write some code to load the data and play it, and LSDView can now view animations! Additionally I find a weird dog animation that isn't used in game!
I graduate University, get a job writing software, and start integrating LibLSD into LSD: Revamped. This leads to the 3rd and final rewrite of the game, and it really starts shaping up. I implement graphical effects that look almost exactly like the original, in some cases emulating PS1 hardware to achieve certain effects.
It's 2020 and the pandemic is in full swing. A new version of LSD:R is released which is basically a rewrite incorporating all of the things we'd learned so far. It's the final rewrite and serves as a stable foundation upon which the rest of the game is built.
A couple of years pass with me working various jobs while chipping away at LSD:R progress, mostly laying the groundwork for adding interactive objects, then adding them. In late 2023 0.2 is released, which contains every interactive object in the game.