Home|Projects|About

Rogue Adjacent 2, C and (90's)Opengl, 3.12.2021

This is honestly the one people think of when they hear rogue adjacent. I had just seen 3DSage's how to make a raycaster video and I decided I would try to follow it along.
It didn't take long before I stopped following the tutorial. To be honest, his videos are entertaining I guess, but as for being actual tutorials? They leave a lot to be desired. He explains very little as to why he is doing the things he does, and what little I did follow ended up creating some very interesting problems which I wasn't a fluent enough programmer to solve at the time.

Unfortunately, most of my dev logging happened in a Discord server I am no longer in, so I can't explain exactly what I was thinking while I made this, BUT I have every video I ever recorded of it, so I can share gifs from its development.

I eventually added textures to the walls, and basic enemies which render in front of the walls they're, well, in front of. This was all much harder than it sounds for me (especially I was more or less freebasing it aside from the most basic wall rendering code)

I eventually added multiple enemies, pathfinding, collision resolution (which was far more robust than it had any right to be, by the way), and I even made my own image format and editor (because I couldn't figure out how to load in a normal format yet lol.)

In fact, I packaged this editor with the game release, so the black tentacle monster was actually made by my friend!
But by far the most interesting aspect of this game was an unintended feature, the far lands

Due to a happy accident, the entire game was loaded on the stack (to being with,) and this meant that if you, say, left the room you spawn in, you could explore the game code itself!
Unfortunately, like I said, most of this is lost to time, but note that me and some friends spent a good 3 hours mapping out different parts of the far lands, even identifying which bits stored which keys were being pressed down, and corrupted the game in specific ways to create novel effects. Somewhat upsetting that that was the most fun aspect of the game, but it is what it is.

I did also eventually add a floor and ceiling, but due to the method I was using to render everything (individual rows of pixels at a time, each with a call to the gpu) this was excruciatingly slow, and was the main reason I stopped working on the project.
If you would like to try it out, here is the last version, and here is a version with intact farlands. They come with their own readmes