Return

Scavgame

If you're familiar with Escape From Tarkov, Stalker Anomaly, or ZERO Sievert, then you'll have a pretty good idea what this is. Scavgame (I have ideas for a proper name, I promise) is a singleplayer "extraction shooter" where you go into various procedurally generated maps in search for loot and quest objectives.

I'll refrain from talking about the story or theme, but it will be a type of alternate-earth 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 easiest way to think of this game would be to compare it to Stalker: Call of Pripyat. Compared to it (besides 3D vs 2D), this game is meant to be much more challenging, have mostly procedurally generated maps, and more focus on collecting/managing loot and resources.

I'm hoping to have co-op multiplayer in the end, but it's much too early to be thinking about that. The main focus is singleplayer.

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:

Me learning vector math. This impressive demonstration of a dot product was a milestone I thought was worth sharing (2023-05-04). A vision system that totally works as intended (2023-05-19).

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.

An actually working vision system with walls and entities (2023-05-22). Basically the same thing except using an isometric coordinate conversion which I've done before, also roof sprites (2023-05-22).

Refer to: "which I've done before".

Entity sprites, shooting, and a 2-part field of view cone (2023-05-25).

This is pretty much where I stopped working on the project. I don't remember why, I guess I just got bored of it or something? The next video I have is from 2024-05-23 where I just added trees (which at the time were just NPCs that don't move), but that's not interesting.

First implementation of inventories (2024-05-26). Furniture items, new sprites, switch from tile-based walls to tile-edge-based walls. It's tricky to draw all these things in the correct order without relying on 3D depth buffer trickery (2024-06-09).

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 month, like UI stat bars, bunch of inventory improvements, ability to loot NPCs and furniture, ability to talk to NPCs, ability to travel from map to another, new sprinting mechanic, experiments with fog of war, etc. Nothing too interesting to look at. But here's rain which I added because it was constantly raining in real life:

Rain (2024-06-11).

Current status

Scavgame is starting to resemble a game, but it's definitely nowhere near playable yet. Sometime after returning to this project in 2024, I decided to try out a different approach compared to what I usually do: I'm trying to add the critically important missing features so I can start working on content. I can polish things and add less important features later, but I can't work on gameplay content if I can't for example generate loot inside containers, which is what I'm working on at the time of writing this.

The game is currently completely software rendered (meaning that I write every pixel onto the screen with my own code in CPU-side) because I'm more comfortable that way. It comes with many limitations though, for example I can't easily invert the "field of view" shadow (currently what you can see is drawn as blue, it's supposed to draw what you can't see as dark), I can't rotate or scale down icons well or use fancy shaders, the performance is very very bad even without all these features, etc.