top of page
  • Group 2
  • Group 3

Project Zombert (2025)

Project info

Role: 

Game Designer / Game Programmer

Engine:

Unreal Engine

Teamsize:

1

Genre:

TPS

Duration:

Ongoing

Platform:

PC

About

This game is a third-person survival shooter featuring inventory management and a world overrun by various types of zombies and powerful zombie bosses. The player’s goal is to survive, gather resources, and collect key items that unlock access to new areas and opportunities for exploration.

Screenshot 2025-10-22 112135.png

Introduction

I am very early in development in this project and my main focus is on learning C++ whilst having fun building out various systems. 
The key systems I want to build: 

--- Character Movement

- Combat 

- Weapon Customization

- Build System

- Spatial Inventory

- AI and Boss AI

- Driving vehicles

Player Movement

I began by recreating Unreal’s third-person character template from scratch in its own class and then added crouch and sprint functionality. Starting with a clear goal helped me learn the syntax and structure my code in a more organized way.

Initially, the Player Character class handled all input, but it became difficult to maintain as the project expanded. I refactored the system by introducing a Base Controller class, improving scalability, maintainability, and future-proofing the codebase for continued development.

The player movement system is still in an early stage, with the core functionality and animations working together, but there’s room for refinement and polish.

Code Snippets

Base Player Controller

Base Character Class

Begin Play & Tick

Movement Functions

Combat Functions

Combat

I started by implementing aiming, shooting, and weapon swap mechanics. The player uses a holster socket and a hand socket, when picking up a weapon, the system checks which socket is available. If both are occupied, the player will eventually be able to swap and drop the current weapon.

 

Aiming down sights (ADS) currently works as intended. I experimented with aiming from the weapon barrel when not ADS, but it felt very hard to control and made it difficult to aim even at static objects. To secure that the players experience is as smooth as possible my next step is to adjust hip-fire aiming so the player rotates and shoots toward the crosshair, ensuring consistent aiming behaviour in both ADS and non-ADS modes.

My current focus on the combat system includes developing data assets for the weapons, implementing modular components for customizable weapon parts, and establishing a parent weapon class to serve as the foundation for all weapon types. The attached image outlines the current design structure and planned workflow at this stage in the development.

Code Snippets

Combat Component

Weapon Master

Animations

For this project, I chose to use Synty Assets because their visual style fits perfectly with the game’s tone.
The Synty character skeleton differs from Unreal’s default skeleton so I had to retarget the rig, which took some time to get right. It was a valuable learning experience that helped me understand the IK Retargeter for future projects.
 

To manage animations, I kept the original Manny mesh active in the editor, while the Synty Character retargets Manny’s animations at runtime. The Manny mesh remains hidden during gameplay.

For aiming, the character’s spine bones adjust based on the pitch rotation to create natural up-and-down movement.

Currently, the weapon alignment with the left hand is slightly off, as IK for the left hand has not yet been implemented.

Screenshot 2025-10-22 112154.png

Upcoming

The next things I need to work in: 

- IK for left hand

- Shooting while not ADS

- Stat component

- Modular weapon parts

- Weapon Data Assets

- Weapon Class

© 2025 by Isabelle Höljer Heiskanen

bottom of page