Scavgame (temporary name) is a singleplayer "extraction"-style game where you go into various maps in search for loot and quest objectives. Inspiration from Escape From Tarkov, Stalker Anomaly, ZERO Sievert.
The story and theme is a type of alternate-earth (there's parallels to real life, but the world and countries are fictional) science fiction.
There will be some key NPCs that give you story quests, procedurally generated tasks, allow you to trade, give you useful information, and hopefully play a part in the world outside of shops too.
The most similar existing game I can think of is probably Stalker: Call of Pripyat. Compared to it (besides 3D vs 2D), this game is meant to be much more challenging, be more focused on collecting/managing loot and resources, have a more interactable world, and possibly have some amount of procedurally generated content.
Boring history
This project technically started somewhere around 2017-2019 or perhaps even earlier. I've had various ideas about a game that revolves around the scarcity of resources. To me the most fun part of many games is at the beginning when you have nothing, you have very few things and every item that you obtain matters. I wanted to capture that into a whole videogame.
I had 2 or 3 separate but vaguely related ideas, one was to make a survival game based in some kind of dilapidated crime-ridden shanty town of Africa where every bullet is precious, another was some kind of Project Zomboid-like game where you defend and upgrade a walking mech that functions as your home base, another was an open-ended Fallout-like sci-fi RPG located in a dark forest. I never had a very clear vision for any of these ideas though so they remained in the back of my mind for a long time.
After playing ZERO Sievert somewhere around 2023, it finally clicked: I had been too focused on the idea of exploring a single world, one of the game ideas above even had the idea of carrying a teleporter that allows you to connect back to your base, but what I was truly missing was the idea of having a "home" map and going directly in and out of other maps from it.
Here's an abridged development history made possible by my habit of posting what I'm working on to imageboards:
What I'm implementing here is this vision algorithm. I'm not looking at any example code though, so it's my own implementation based on the explanation. It helps me truly understand it.
This is more or less where I stopped working on the project. I don't remember why, maybe I got too much into the weeds testing alternate ways to implement weapon recoil and aiming mechanics and not making much progress as a result (the following screenshots/videos go up to 2023-06-09 and they're all about recoil and aiming). Anyway, the next video I have is from 2024-05-23 where I added trees (which at the time were just NPCs that don't move), but that's not interesting.
In order to draw all the objects in the correct order without 3D depth buffer tricks, I had to use the same vertical slicing technique that I've described here. It's slightly easier here though because the ground is flat, so I can just draw all the floor graphics first.
A bunch of other things happened in the following months: UI stat bars, a lot of inventory improvements, ability to loot NPCs and furniture along with a random loot drop table system, ability to talk to NPCs, ability to travel from map to another, new sprinting mechanic, experiments with fog of war, floor decals, etc. Nothing too interesting to look at. But here's rain which I added because it was constantly raining in real life:
The last video I have from that time is about improving item manipulation and inventories, 2024-08-13.
Why "from that time"? Well, everything so far has been software-rendered by writing pixels manually, which is extremely slow and I don't have a good way to scale or rotate graphics or do any kind of special effects. I really started needing a proper renderer, so I decided that it's time to move to the GPU. However, making GPU renderers has always been the bane of my existence, and that's what caused me to stop working on this project again.
In 2025-03-31 I found the inspiration to give the rendering of this project another shot.
Although the game is now rendered with OpenGL, I immediately began to second-guess my approach since it is limited in many ways. At this point the bottleneck is mostly my knowledge about renderers, not my dislike of graphics APIs. Currently every sprite in the game is mostly drawn linearly and I'm not using a depth buffer. I have no good way to use different shaders and models for different objects (for example grass would need a separate vertex model with weights for movement in the wind) or separate opaque objects from transparent ones. I need to figure out how to organize the buffers and OpenGL commands to give me more flexibility, but I've never seen a renderer that does this so I have no reference point to learn from.
Current status
Scavgame is starting to resemble a game, but it's definitely nowhere near playable yet.