Liana Pigeot: Portfolio and articles

Writing about things

article-hero

Prototyping a multiplayer roguelike realtime chess game in Unreal Engine 5 C++

Liana Pigeot

Published on April 25, 2025

I have been prototyping a multiplayer roguelike realtime chess game (yes I’m aware it sounds silly). This is mostly a very early side project (only a few hours spent on it yet), but I plan to update this article later as I spend more time on it.

The pitch is something like that:

Imagine a chess game where the players are magicians that can possess chess pieces. Two teams of players face in a real-time chess match, using their mana to possess chess pieces and control them directly. Each chess piece has its own abilities inspired from chess, but adapted for a more realtime action gameplay.

As players beat other pieces and as rounds progress, they can choose upgrades for their pieces, which can be stat increases (damage, movement speed, rotation speed…), or whole new abilities.

For example, a pawn can only move one tile at a time and rotate 90 degrees. A rook starts with a charge attack which rushes forward and does damage when it hits something. The knight starts with a jump ability that goes over enemy pieces, and the queen can rotate in 45 degrees increments and use charge.

My main reason to make this was to learn more about Unreal’s Gameplay Ability System. I also used that as an excuse to try out UMG Viewmodel, which is a feature in preview with a lot of potential. I should write an article/tutorial about UMG Viewmodel as it was interesting to setup, and there is barely anything about it online at the moment. I had to do a lot of trial and error digging to make it work!

I am building this game to be fully functional as a multiplayer online game where players can join teams and fight in realtime.

For now, most of the work I’ve done was learning how to use GAS and setting up all my code for both players and chess pieces to have stats and abilities, and so a player can walk to a chess piece and possess it. I also built very quick editor tools to generate the board (it’s an instanced mesh with a material using custom stencil to color the tiles). I made the first “charge” ability as a test, and I have basic huds: a shared HUD that’s always active, a player HUD that’s active when controlling the player, and a chess piece hud that’s active when controlling a chess piece.

All code is being written using Unreal’s replication system (which GAS is great at)



© 2025 Liana P, Built with Gatsby