Legacy System Devlog 1

7/12/26



Legacy System


Legacy system is a game where you interact with LithOS, an obscure 1-bit operating system made by a mysterious programmer. As you play the included minigames you discover a deeply encoded mystery.


I've been working on this game for about five months of nights and weekends.


I originally wanted to make a game like Golden Idol but on a computer. The player had text documents on their system with information and they had to sort through it to solve mysteries. There was also a mechanic where the player could use files to decrypt other files. Once I'd finished the proof of concept I felt like this version wasn't very fun. It was like a worse version of Case of the Golden Idol where you had to do more work to find clues.


The game also had minesweeper. I just thought it would be fun to add. Once I had minesweeper in it opened up some ideas in my head. What if there are different classic operating system minigames, but each game teaches the player some rules that they can use to solve the main game's mystery. This ended up being the direction the game has taken.


Tech


This game is made in a custom engine in C# based on Monogame. I personally enjoy a more coding-heavy dev environment over using Unity or Godot, especially for 2d games. I made an engine in C++ with Vulkan for my last game and it was a nightmare. I learned some C and C++ in school, but I'd never done a big project in it. There were three parts of that engine that made me never want to make an engine again. The build system, memory management, and Vulkan. Eventually I realized that there are libraries that take care of this for you, and I decided to try to make something with Monogame. I've really enjoyed it.


I've worked on several different prototypes with this engine and here are the main features it has:
* Basic collision detection, ray casting, and swept box casting.
* An entity system composed of components similar to Unity (not an ECS)
* Infinite Tilemap + Collision
* Developer console
* Custom UI system
* Basic 3D scene support with lightmapping
* Fluid simulation
* Several post-processing effects and a system for applying them


Style


I decided to try out a 1-bit effect for this game similar to Return of the Obra Dinn. I really like how old 1-bit operating systems looked. Typically when a game is 1-bit it's also low res, but I decided to keep the game 1920x1080 (again, because I like how it looks).


It took me a while to settle on the algorithm I used. Initially I used bayesian pattern dithering, but I felt like it was harder to read in certain situations and just generally more boring. I got the idea to use error diffusion from Lucas Pope's Return of the Obra Dinn devlog. I didn't have to do everything he did, the straightforward error diffusion implementation worked fine for my purposes.


I tried a lot of different effects to sell the CRT look, but over time I've turned them all down so much that they're barely noticeable. The only remaining one is a scanline effect that makes the screen have alternating rows of slightly lighter or slightly darker pixels.


The Alphabet





Alien Alphabet



At the core of this game is an alien alphabet. The alphabet is organized in a pyramid. The top tier has only one symbol, the next row has two, all the way down to a row with 5 symbols. Instead of having a regular alphabetic order, there are two rules that determine how symbols interact.


Each symbol has a tier (top level is tier 1, etc) and a "sidedness". Sidedness refers to whether the symbol shows up on the left side of the pyramid, the right, or in the middle.


Minefield





Minefield



This game is basically just minesweeper, but instead of showing numbers the player sees symbols. When you see a symbol with left sidedness of tier 2, that means there are two adjacent mines and they are both to the left.


I had a lot of fun making this. It has the hallmarks of regular minesweeper, but the added sidedness information leads to interesting situations.


Solitaire





Solitaire Basic Setup




Solitaire Late Game



I actually hadn't played solitaire before making this game. I fucking love solitaire now. The Zachtronics Solitaire collection heavily inspired the version of solitaire that I made for this game.


It took a lot of trial and error to get to a point where the game wasn't either super easy or literally impossible. I built a solver that just greedily picks moves to see if theres a way to win. This made it easier to see when I changed a rule in a way that made the game actually unbeatable.


The rules I settled on are that the player is trying to stack all columns in descending tier order and alternating color. If two cards have the same sidedness and tier, they can stack on top of eachother (regardless of color), but then you can't stack anything below them. This allows the player to build temporary holding zones for certain tiers.


There are free slots that the player can use. I think you start with two, but that might not be right and by the time the game comes out that might change. I made it so that you get an additional free slot every time you complete a row because you really need them at that point.


Powergrid





Powergrid



I'm calling this one minigame powergrid because it's based off a game I made for a game jam a few years ago. In that game you are presented with a graph of directionally connected nodes, and you can place power tokens on to the nodes. I always liked this game, but it was pretty limited in terms of the puzzles you could create with it. I reexamined that game and ended up with a game where you are trying to fill out the nodes in a graph in a way that obeys the rules of the alphabet. No two neighbors can be the same symbol, and adjacent symbols need to either be 1 tier apart or the same tier but a different sidedness.


This is much better for puzzles than powergrid was, but many puzzles end up feeling like the same thing.


Other Experiments


There are a few other minigames that I can't tell if I'm going to keep pursuing. I really want to make a pinball game, but as it turns out, it's pretty hard to simulate pinball in a way that feels good. I built a pinball engine that handles collision and also has support for things like ramps which you need in pinball. I also want to make the pinball render in 3D just to add some variety to this game. The problem I've faced is that my basic physics are too janky to support a fun pinball game. I plan to revisit this though soon. Also unfortunately the pinball game is harder to integrate with the alphabet mechanics. I haven't figured out exactly how to do that yet.


Another minigame is a trading card game. I have been rewatching the old Yugioh GX anime that I used to watch when I was a kid and have been really interested in trading card games. The idea for this game is that each card is made up of one or more symbols. Players can fuse cards together, but every card in your deck is just one symbol. Fused cards have to be of the same sidedness. Each player has 3 life cards that they draw at the beginning of the game, and your goal is to destroy all 3 of your opponent's. When two cards battle the higher tiered card wins. Each time cards battle the result it that the loser loses one symbol. There are more rules but they're fairly complicated. I also want the player to be able to build an 'extra deck' of specialty cards they can fuse to create that have special effects. The problem with this game is that its pretty ambitious design-wise, and would take a lot of time to get right. So I haven't decided if I want to continue with it.


There is also a web browser in the game that I just haven't been able to work on much yet.


At some point I thought I was going to have 3d scenes, so there is a 3d scene viewer in the game as well. I'm not sure if this will make it to the final game, but it was pretty cool to mess around with.


Conclusion


So there you have it, the thing I've been working on lately. I plan to keep working on the minigames until I feel like I've got a good set of them, then show the demo around to some friends to see how they react to it. I have lots of ideas for story and how the larger game plays out, but the biggest unanswered question is how all of this ties together. I'm sure I'll figure something out, but for now the question remains open.