Gameplay programming internship

Veil of Ashes

Veil of Ashes is an unreleased UE5 real-time tactics game by Greifenmaer, currently in internal testing. During my five-month internship I worked on gameplay features for the vertical slice, mostly in Blueprints, with some C++. A lot of the work touched Unreal's Gameplay Ability System and multiplayer replication, which made even simple-looking features more involved than normal single-player UE work.

  • Unreal Engine 5
  • Blueprints
  • GAS
  • Multiplayer
  • Gameplay programming
  • SteamPipe
Veil of Ashes key art with soldiers and a tank in a battlefield
Key art

Project

Project
Veil of Ashes
Role
Gameplay programmer intern
Status
Internship

Game

Studio
Greifenmaer
Engine
Unreal Engine 5
Status
Internal testing

Internship

Duration
5 months
Focus
GAS, gameplay systems, replication

Context

Funding
370k EUR Games BW / MFG
Steam
20k+ wishlists

Project note

The main thing I took from the internship was working inside a larger existing UE5 project: understanding unfamiliar systems first, then making changes that fit the GAS architecture and survive multiplayer testing.

Process timeline

Process

  1. Vertical slice work

    Working inside an existing UE5 project

    Most of the work happened in Blueprints, with some C++. The project used Unreal's Gameplay Ability System heavily for client-server gameplay flow. GAS is powerful, but not especially friendly to learn from documentation alone, so a lot of the work involved tracing existing abilities, understanding authority boundaries, and testing behavior in multiplayer builds.

    The internship was good practice in reading existing game code, making scoped changes, and debugging multiplayer behavior in a larger UE5 project.

    In-game Veil of Ashes battlefield screenshot
    In-game screenshot.
  2. Gameplay systems

    Sectors instead of isolated control points

    One major task was replacing the old control-point setup with larger sectors. The goal was to support clearer front lines instead of scattered single vehicles moving across the map toward isolated points. Since ownership and score data are gameplay-critical, the sector state had to be server-authoritative and replicated cleanly to clients.

    The system was implemented in a separate Experience so it could be tested against the old mode without breaking the existing setup, while still using the project's normal replication path.

    Veil of Ashes sector and control point UI screenshot
    Sector/control-point UI (WIP)
  3. Feature implementation

    Unit ordering and delivery

    The sector work enabled a new unit delivery flow. Instead of spawning units immediately, players build a list of requested units, can still remove them, and then send the order to the server for validation and delivery. This had to preserve responsive client feedback while keeping the actual spawn/delivery logic authoritative.

    The feature combined UI, GAS abilities, server validation, replication debugging, VFX, and iteration from PvP playtests.

    Unit ordering and delivery flow.
  4. Internship scope

    Other gameplay and project tasks

    Alongside the sector and delivery work, I also implemented or reworked smaller features: camera controls, a cheat menu, destructible objects, vehicle terrain deformation, scoring changes, and some VFX. I also helped with internal tests and their evaluation.

    The work was a mix of programming, debugging, internal testing, and the practical setup needed around preparing a Steam game.

    Veil of Ashes Steam page setup screenshot
    Steam page/build setup material