FANTASTICULTURE
Game Design Course | 2021 Game Jam [Cultural Heritage]
4 Weeks | Nov. 2021


​01100010 01100101 01100101 01110000
DESCRIPTION
Fantasticulture is a tower defense game made for the 2021 Cultural Heritage Game Jam. It's meant to highlight the importance of protecting cultural heritage from climate change.
​
I was the lead for this project and oversaw a team of nine. We had little time to complete it and I ensured that we remained in scope. Other team members greatly appreciated my efforts to keep the project cycle smooth.
​
Aside from Project Lead, I was also the Lead Programmer. I worked out which systems were needed and distributed those tasks among six programmers. I also helped three newer programmers prepare for working in Unity.
​
Outside of assigning tasks and maintaining the project Github, I also designed and implemented the architecture for the core towers and enemy spawner.
RESPONSIBILITIES
-
Implemented wave system.
-
Implemented towers system.
-
Implemented UI.
-
Taught new programmers.
-
Directed design.
-
Managed GitHub pull requests and merges.
-
Handled scope.
Programming Skills and Practices
-
Abstraction and the Template OOP Pattern.
-
Experimenting with AI and targeting functions.
- Teaching new programmers.
- Maintaining GitHub for a medium sized team.
Design Skills and Practices
-
Designing around core principals.
-
Brainstorming to achieve goals.
-
Iterating on systems.
-
Brainstorming and designing with a team.
Programming
Game State Diagram
-
Using a game state diagram, we were easily able to keep track of our games menus, stats, and how to move between them.
-
It allowed us to sanity check the systems needed before starting to implement them.
-
This was a useful first step for the new programmers as it ensured they knew how states could be entered and exited.

Click to view in a higher resolution

Click to view in a higher resolution
Tower Template Pattern
-
I utilized abstraction and the Template OOP pattern to implement the towers quickly and allowed me to spend more time working on other areas of the project.
-
I knew that selecting enemies, dealing damage and leveling up would need to be handled on a per target basis. Everything else was either needed by all towers or handled by its own tower.
- When global debuff system was added later, another programmer found it easy to implement thanks to this architecture.
Spawner
-
I developed the spawner using a system that allowed us to manually create waves by selecting the types of enemies that could be spawned and the quantity of each one.
-
To add some unpredictability to it, we decided to make it scramble the enemies into a pool to use. This helped make the waves not feel static without needing to expand the system to hand crafted waves, which would've required much more design time and testing.
-
Using the Observer OOP pattern, spawn enemies would subscribe to the spawner. This allowed for easily checking when all enemies were killed and minimized its impact on performance.

Click to view in a higher resolution
Design
Theming
-
The core theme of the Game Jam we were submitting to was Cultural Heritage, with a focus on preserving cultural heritage from natural disasters.
- We wanted to be abstract with the culture we chose and we achieved this by going for a fantasy aesthetic for the player's towers.
- We achieved the goal of protecting cultures from extreme climate by creating a tower defense game where the enemies were elemental slimes.

Click to view in a higher resolution

Click to view in a higher resolution
Disasters
-
Once the core game loop was developed, we felt it needed something to act as a potential negative feedback loop for the later waves and add some volatility to the game state. Thus, we chose to double down with natural disasters.
-
Inspired by XCOM 2's Dark Event system, we offered the player two choices that were detrimental to the player. These were flavored as natural disasters and showcase the worsening state of the global climate.
-
With the choices being strictly negative for the player, they had to choose which set of debuffs they think they could handle, potentially disrupting the player's plan.
Tower Design
-
My favorite part of this project was designing the towers. We originally wanted a total of 5 towers, but our time meant we could only reasonably create 3.
-
The hardest part for the tower AI was making it aim for enemies furthest along the path.
- The Repeater acted as a standard tower that was reliable but nothing special. It would help onboard the player to the game.
- The Beam was a tower that excelled if the player was cleaver with their placement. Additionally, we started it weaker but wanted it to rapidly grow through leveling up.
- The Catapult was a tower that offered more reactionary play to the player. As the aiming was separate from its placement, it let the player change its target destination and modify their strategy mid game. It was the hardest to implement but the most fun to work on as well.

Click to view in a higher resolution