genesis//LOG01
Monday, Jun 30, 2025 | 3 minutes read | Update at Monday, Jun 30, 2025
proto//GENESIS - A tactical shooter
After months, even years of procrastination and forgotten projects, I have finally decided to focus on one game. I will try to give weekly updates on the progress. This game is being developed using the Godot Engine version 4.
Story
I’m still working on the story. I have a rough idea and outline of main events, but I will post a refined timeline later.
Progress
I started this project a week ago, and I have been considerable progress in the base mechanics.
External Resources:
- Quality First Person Controller (FPC) by Colormatic Studios. The controller it self has been heavily modified to accomodate extra features.
- Health Hitbox Hurtbox (HHH) by David Clutter Minimally modified to suit my needs Really cool, has built-in damage types and was really easy to use. Check it out!
- Sci-Fi Scanner Pulse (shader) by Watt Interactive on GodotShaders
- Advanced Holographic (shader) by annie on GodotShaders
- Godot Game Template (GGT) by crystal-bit on Github Mostly using the scenee loaders and transitions, also heavily modified
Player
Current feature list includes:
- Classic movement (WASD, crouching, sprinting, etc from FPC)
- Stamina system (stamina drain rate, regeneration rate …)
- Health system (added by HHH)
- Leaning/Peaking (Pressing Q/E leans the player left or right, similar to Rainbow Six Siege)
- 3D HUD (HUD is affected by camera properties, such as fov, rotations and shakes)
- Scanner pulse (currently only visuals, I will make it tag POIs in the future)
- Flashlight
- Weapon system
HUD:
Weapon System
All variables relating to the weapon system is stored in a central
GameVars
script.
The weapon system in GENESIS relies on four ‘classes’ of weapons.
- Melee : Melee weapons, Knives, Swords, Batons etc.
- Sidearms : Small guns, Pistols, Revolvers, etc.
- Primary : Long guns, Rifles, Shotguns, SMGs, etc.
- Specialist : Specialised gear, Healing Pistol, Grenade Launcher, Crossbow, etc.
All projectile weapons have a magazine counter, where a list of available magazines keeps track of the order. For example, a player will see
Pistol
| 10 | 12 9 0
on the HUD when equipping a pistol.
The first number, 10
, is the current amount of bullets in the magazine.
Reloading will shift the 12 to the front and pop the 10 to the back.
This mechanic forces players to think wisely about reloading, making sure that they have sufficient bullets in future magazines.
The weapon system relies on resources with variables such as
- bullet_count
- damage (using HHH)
- spread
- shot_sound
- impact_scene
- and others
When equipping and attacking using a weapon, it’s properties are read and fed into an attack()
function. This function uses a raycast extending from the camera forward to the range of the weapon. Upon detecing a collision with a HurtBox3D
from HHH, it applies a HealthAction
which can either Heal or Damage.
Firing weapons causes the Camera, and subsequently the HUD, to shake, as well as shift simulating recoil.
Level System
The names and identifiers of levels are stored in a central
GameVars
script
GENESIS is played through a series of levels or missions.
A mission is identified by a code such as 00
, 01
, or 37
. The first digit represents the chapter, and the second represents the mission number.
When selecting a level from the selection screen, it loads in the level from levels\{level_code}.scn
.
The level code system is subject to change depending on the number of missions in a chapter
Other
Scenes transitions, loading and such are handled by GGT by crystal-bit on Github. It has been really helpful to have premade scripts to handle all the transitions and loading, and usage has been pretty easy, so I suggest checking it out.
Next update plans
- Adding an armory to swap out weapons
- Adding interactable items (magazines, notes, crates, etc.)