top of page

CubeTac (Working Title)

Project Overview

CubeTac is a competitive, multiplayer, grid-based strategy game. Each player begins the game by placing a portal on a custom-generated map. The portal allows them to create units, which can then be used to overwhelm and destroy the enemy players' portals.

CubeTac is an incomplete product in ongoing development. As such, there is still content to be created, polish to be added and bugs to be fixed.

This project runs on Unreal Engine 4 and predominantly uses C++, with a small amount of blueprint scripting for user interface elements.

Current State

The priority when developing CubeTac was to get the most fundamental aspects of the game's functionality in place first. As a result, the key gameplay mechanics are in place. Players are able to host and join game sessions using the Steam API. Once connected, the host can use various settings to generate a battlefield to suit them, both in terms of the shape of the map and its appearance. Once satisfied, they can start the game.

Players take turns, in the order in which they joined the game, to place their own portal by clicking on an open tile. Once they are satisfied with its placement, they may end their turn. After this, the portal may not be moved. Once all players have placed their portal, the turn order resets and the battle begins.

From here, the objective is to be the last player standing. Players can use their portals to create units of various types. While units can attack each other, their primary targets are the enemy portals, as once a player loses their portal, they are eliminated. The player with the last remaining portal is declared the victor.

The game's core implementation is in place, though in a very basic form. Only three units exist in the game at this point and all are subject to changes and balancing.

The spawnling is the first general purpose unit and is currently the only unit to have its own unique model and texture. It has the ability to attack, heal and place an obstruction on an empty tile. The variety in these abilities comes from testing setups and is not indicative of the role the spawnling is intended to have in the final game.

The webber appears as a dark, squat version of the spawnling. It is currently the most complete unit in regards to its moveset. It has no directly offensive abilities and is instead built for control of the map. It has a low movement speed, but has a jump ability which allows it to cover larger distances - including over gaps - at the expense of its other abilities for one turn. Its other two abilities allow it to place and destroy webs, which slow down most units moving through them. Webbers themselves are immune to the slowing effects of these webs.

The final unit currently in the game is the upholder, appearing as a tall, shiny blue spawnling. The upholder acts mostly as a placeholder for a tank unit. It is slower than the spawnling, has more health and a single offensive melee ability. 

Future Plans

CubeTac is still a work in progress and I have many more planned additions for the game.

While the game is playable, it is greatly lacking in content. I have plans for a total of fifteen units for the game. These units would each be one of five different roles (general, damage, tank, team support and control support), split across three progression tiers. Players would be able to unlock these tiers by spending portal energy. As portal energy is such a valuable resource, I also plan to add ways of increasing the amount of energy a player's portal gains each turn, by having other objectives scattered about the battlefield that the players can fight over and control.

Other plans include game rule variants, such as Total Elimination. Activating Total Elimination in the game lobby would mean that destroying a player's portal is no longer enough to remove them from the game. All of their units must also be annihilated.

Outside of gameplay, I am planning to migrate all of the code that governs multiplayer sessions from Unreal Engine Blueprints into C++. Work on this has already begun. By running this in C++, I hope to be able to do more complex processes with servers, such as being able to give them custom names and make them able to be secured behind a password.

bottom of page