Penguin Card Master

Penguin Card Master

-
completed
1
1 month
Unity/C#
May 2023
Game Procedural Generation IA Game Design 2D Unity Unity EditorScripting Tools SAE C-Sharp

Context

This project was carried out during a course module on procedural generation and IAs at SAE Institut Geneva in the 1st year of the Games Programming bachelor’s degree.

The constraints on which we were noted were:

  • Create a rogue lite game
  • Create a procedural dungeon generation tool in the Unity inspector
  • Create IAs
  • Maintain a GDD

For the game, I decided to make a rogue lite deck builder with turn-based combat inspired by tactical RPG games like Fire Emblem.

Showcase

Here is a gameplay video of my game:

Procedural Generation

My procedural generation algorithm is inspired by the one of “The Binding of Isaac”, which takes the form of the dungeons in the 2D Zelda games. In short, it’s a set of square rooms that connect to each other. Several rooms are special - there’s always a shop and a boss on each floor, and a few other special rooms are also chosen at random.

To understand and implement the algorithm for the Binding of Isaac game I took inspiration from the blog post by ‘BorisTheBrave’: Read it here

Here is a short showcase video of my procedural dungeon generation tool in the Unity inspector:

IAs

For the behaviour of my AIs, I chose to code behaviour trees because this is a mathematical model widely used in the behaviour of AIs in the video game industry. What’s more, this type of model adapts very well to the turn-based combat gameplay of my game. The behaviour tree was coded 100% by myself in C# with the help of my teacher Sébastien Albert.

Diagram of the parent behaviour tree for my IAs.
Each AI inherits this behaviour tree and can override each leaf node function or add nodes if necessary, like the ‘Spawner’ enemy which adds a ‘SpawnEnnemy’ leaf node.

For the pathfinding algorithm I’ve coded an A-Star because it’s one of the most popular and efficient pathfinding algorithms.

Here’s a short video showing the behaviour of several AIs in combat:

GDD

You can read the GDD I wrote for my game with Google Slide here.

Screenshot of a diagram I made in my GDD to explain the gameplay of combat in the game.

What did I learn ?

  • Several procedural generation algorithms are currently in use, such as:
    • Binary Space Partitioning
    • Markov Chain
    • ‘The Binding of Isaac’ like dungeon generation (the one I implemtented)
  • How the mathematical model behind graphs and trees works
  • How a Behaviour Tree works and is implemented from scratch
  • Several pathfinding algorithms seen in class:
    • BFS
    • Dijkstra
    • A* (the one I implemented)
  • Unity Editor Scripting to create tools
  • The usefulness of ScriptableObjects
  • Avoiding dependencies between game objects
  • Using Managers and Controllers
  • Creating a card and deck building system
  • Create a turn-based combat system on a grid
© 2025 Pachoud Olivier