top of page

ARCHIVE, 2026


Role [Solo Developer]
Software [Unreal Engine]
Framework [C++]
Duration [-]
Date [
Summer 2026 - Now]
Team size [1]
Type [First-person multiplayer game]

​

 

 

OVERVIEW

I’m actively developing Archive. This is a short summary of what I’ve built so far, and I’ll update it as the project grows. The source code isn’t public yet: the game is still early and changing a lot, so I’d rather share it once it’s in a more finished state.

​

Archive is a first-person multiplayer game for 4-8 players in two teams. Both teams work in the same building at the same time, racing to finish a chain of physical tasks: finding fuses, carrying batteries, restarting a generator. The first team to finish wins, not the team with the most kills.

​

The game is built around one rule: you can only hold one object at a time. Fuses, tools, boxes and guns all go in the same hand, and picking something up drops what you were carrying. Every pickup is a choice between carrying the part your team needs and grabbing a weapon to protect it. Anything you can hold can be used to hit someone. A hit knocks the object out of their hand, and anyone can grab it, including the other team. You can’t steal straight from someone’s hand; you have to make them drop it first.

​

Matches alternate between two phases. In the work phase, hits do no damage, so the conflict is about shoving, disarming and stealing. When the alarm sounds, the purge phase starts and fights become deadly. Players who die go to a jail for a while instead of being out of the match, and their team keeps all the progress it has made. Talking is part of the game too: voice chat only reaches nearby players, so the other team can overhear your plans. Jailed players can watch the map on security cameras and speak through loudspeakers around the building to warn their team, or to bluff and distract the enemy.

​

​

MY PROGRAMMING WORK (C++) SO FAR
  • Multiplayer where the server decides everything: item pickups, hits, deaths, tasks and match state are all decided by the server and replicated to the players. I use replicated properties with update callbacks and Server, Client and NetMulticast RPCs. Players who join late still see the right state; for example, deaths are time-stamped on the server so a late joiner can tell an old death from one happening now.

  • The one-hand item system: one hand slot for every item, with swapping when you pick something up and items dropped when you take damage. Guns and items are defined in data assets (grip, melee stats, fire type), so new items need no new code.

  • Teams and match flow: players are automatically placed on the smaller team, the match phase replicates to everyone, and each player’s character is tinted in their team colour.

  • Co-op tasks: for example, a generator that needs every fuse in place and all key switches turned within the same short time window. That only works if players coordinate. The task’s state drives lamps, sound and screen shake on every machine.

  • Character built from components: sprint, crouch, slide, jump, aiming, melee, health and stamina, and interaction are separate components on top of a custom movement component.

  • First-person feel: weapon sway, walk bob, recoil that recovers toward the player’s own aim, and holster/draw transitions, all calculated in code and layered on top of the authored animations. Also aim assist, hit markers and a kill camera that keeps following your killer even after they respawn.

  • Making interactable objects easy to read: an outline drawn with a post-process effect (custom depth/stencil), a glow on the object you’re looking at, and on-screen prompts. This only runs on your own machine.

  • HUD written in C++ (UMG): crosshairs that change shape and fade, ammo, health and stamina, weapon name, death screen.​​​

bottom of page