Explore the portfolio
All work Project 05 / 06

Game development / Strategy

Card Cast!

A card-driven tower defense game set in a low-poly forest. Build, cast, and manage your deck to keep the Horde away from your base.

Created
December 2025
My role
Developer lead · systems architecture
Focus
Strategic defense, one card at a time
Card Cast gameplay: defensive towers in a low-poly forest as an enemy wave approaches
Card Cast! Official Cover

Strategic Defense, One Card at a Time

Card Cast! is a strategic tower defense game set in a stylized low-poly forest world. Players must defend their base from "The Horde" by managing a deck of cards that includes defensive structures and magic spells.

Unique to this game are specialized turrets like the "Chess King" — which summons minions — and the "Catapult," as well as active spells like "Fire Ball" and "Freeze." Players must survive waves of enemies, manage their gold economy, and strategically build their fortress to prevent their HP from reaching zero.

How to Play

1

Draw & Build Phase

At the start of each round, draw cards (Chess King, Basic Turret) and place them strategically on the grid.

2

Enemy Wave Phase

Enemies spawn and march toward your base. Cast Spell Cards — Fire Ball for damage, Freeze to slow — to support your turrets.

3

Shop Phase

Between rounds, spend gold earned from defeated enemies to buy new cards like Missile Launcher or Draw 2 to power up your deck.

4

Objective

Survive all rounds and protect your base HP. Destroy every enemy before they breach your fortress. Survive Round 10 to win!

Game Trailer

In-Game Screenshots

My Role & Contribution

As developer lead, I focused on the game loop, card interactions, enemy pathfinding, and state management in Unity. I helped guide the project from an early deck-building prototype to the final 3D forest environment.

Our modular card effects used polymorphism so the team could add turrets, including the Chess King, and spells such as Fire Ball and Freeze. Leading a team of three also meant coordinating interface, audio, and gameplay work so those pieces felt like one game.

Group Members

Ryann Chandiari

Developer Lead
  • Core Architecture
  • Systems Design
  • Team Management

Nathanael Felix

Systems & Audio Lead
  • Modular Card Systems
  • Audio Management
  • VFX Implementation

M. Naufal Aulia

QA & Support
  • Game testing
  • Main menu code
  • Documentation

Key Improvements (UTS → UAS)

  • Visuals Low-Poly 3D Forest Environment Replaced the flat green plane prototype with a fully realized low-poly 3D forest setting with dramatic lighting, dramatically raising the visual bar from the UTS build.
  • Architecture Persistent Audio System (Singleton + DontDestroyOnLoad) Implemented a scene-aware audio manager that seamlessly transitions music between scenes — menus play one theme, battles another — without restarts or interruptions.
  • Gameplay Wave Loop + Probabilistic Shop Introduced a dynamic round/wave system with RNG-driven shop spawning, giving each run unique pacing and strategic variety.
  • Content Summoner Tower & Spell Phase Lock Added the "Chess King" summoner archetype and enforced strict phase restrictions on spells, deepening tactical decision-making.
  • Code Quality Modular Abstract Effect Classes Refactored card effects using polymorphism and abstract classes, making it trivial to add new effect types without touching the core system.

Blackbox Testing Results

Gameplay and interface checks
# Category Scenario Status
1 Main Menu Click "Play" → Loads Gameplay scene Pass
2 Main Menu Click "Controls" → Shows How to Play screen Pass
3 Main Menu Click "Quit" → Closes the application Pass
4 Gameplay Press W/A/S/D → Camera moves in arena Pass
5 Gameplay Drag Tower Card to grid → Turret spawns Pass
6 Gameplay Click Spell Card on enemy → Enemy takes damage Pass
7 Gameplay Enemy reaches base → Player HP decreases Pass
8 Gameplay Destroy enemy → Money increases Pass
9 Gameplay Press Esc → Shows "Game Paused" menu Pass
10 Gameplay Defeat all enemies in wave → Shop/Reward screen Pass
11 Win/Lose HP reaches 0 → Shows "YOU LOSE!" screen Pass
12 Win/Lose Survive Round 10 → Shows "YOU WIN!" screen Pass