Arnas Puidokas

Graphics Programmer Portfolio

🏠 Home ⭐ Best Project 📁 All Projects 👤 About Me

Junior Collaborative Development

by

Overview

This project focused on developing a shippable game within an industry setting. This was done by collaborating within a multidisciplinary team across Stoke-on-Trent and London to develop Echoes of Imagination, a tile-based puzzle game. My role was gameplay programmer, and I was tasked with implementing core mechanics using Unreal Engine 5 Blueprints.

Using the mechanics designed by the design team, I developed them into fundamental gameplay systems, including tile-based movement with grid-based positioning and turn-based mechanics with turn handling, as well as additional mechanics and bug fixes. I also worked closely with the team to make sure the design and project goals were met.

Project Highlights

- Collaborated within a multidisciplinary team of 15+ members, contributing as one of the few programmers on gameplay systems.

- Developed gameplay mechanics using Unreal Engine 5 Blueprints (visual scripting).

- Implemented tile-based, turn-based movement systems, including grid-based positioning and turn logic.

Technical Breakdown

Tile-Based Movement

The tile-based movement was a core gameplay mechanic in Echoes of Imaginiation, creating the foundation of player interaction through grid-based positioning and movement logic. In the video it showcases exactly that through an early prototype.

At the beginning it was very simple in how it would work. Depending on what key was pressed, it would output a certain distance (vector) that it would be used for the timeline and setting the actor location. Setting the actor location was done through lerping between the start location (current position) and end location (the vector from the key press). Using that with the timeline, it would smoothly move over. However, while this provided smooth movement, there was a need for tile detection to check whether it could move there. If true, it would move as before, and if false, it wouldn't go anywhere. The first update to this was checking for overlapping actors at all times due to the fact it would move off the tiles if tricked. Later on, this got changed to enhanced input by another programmer in the team but still had the same foundation I laid out.

Turn Logic System

The turn-based logic was a necessary feature of the game since we wanted to have the player move and the enemy move at similar times without one outpacing the other. For this I created a function library so I can use the functions in whatever blueprint needed. Inside it had sets and gets for a global index for turn value. Initially it was used in the player blueprint to increment when the player started moving, this being done to have smoother gameplay. Using this global increment in the enemy parent blueprint to check whether it can move. With the child blueprints having the final check for it.

The logic later on was expanded so that the player also checks if the enemy has finished their turn. This was done again through the function library, which had booleans checking if the player can move, with these booleans being set in the parent of all objects. Turning true or false if it's done the turn or not. Lastly, this boolean was checked in the player blueprint to see if it can move. This created a cycle of each other checking if they could move, creating coherent smooth gameplay for a turn-based game without one or the other out-pacing the other.