top of page

Spooky Tycoon

Silly Goose Studios

ROLE

Lead Programmer

DESCRIPTION

Spooky Tycoon was a 1 month long project created by 7 people. I worked on AI state management and backend systems for the rides to work.

DURATION

October 2024 - November 2024

GENRE

Casual Tycoon

ENGINE

Unity

CreditsScene.PNG
Spooky Tycoon Credits Background
Spooky Tycoon AI Gameplay

AI State Management

The AI Ghosts in Spooky Tycoon use a state machine in order to make decisions about what to do. They will always start on the EnterPark state and after riding at least one ride they will have the option to enter the LeavePark state. The states for each ghost are stored in a public enum. The AI's currentState is stored and a switch case is used to determine what action should be taken. The AI use the Unity AI Navigation system to move around.
Shows how AI decide lines to wait in
image_2024-11-11_203403716.png
image_2024-11-11_203544341.png
SpookyTycoonDecide.png

Ride & Line Management System

Each ride is derived from the class LineManager where it stores the information per ride. The ghost AI will communicate with the RideLineManager which is the central hub for all the LineManagers. This allows the AI to get information for each ride by only needing to reference one other script itself rather than eight others. 

The LineManager is a dynamic script which allows for each ride to have their own number of line spots, different costs, different amount of seats, etc. LineManagers will also keep track of how many AI and what AI are in its line. 

Depending on what upgrade stage the ride is on, it will have a different game object, number of seats, cost for the next upgrade, and price to ride the ride.
image_2024-11-11_212429468.png
RideInspectorExample.png

Reflection

This was my first project dealing with AI state management and I sure learned a whole lot from it. There were many iterations of the NPC state machine and many issues I had learning how to get the states to work the way I wanted. In the end I was very happy with the amount of variation I had with all the NPCs and how that interconnected with the ride systems I implemented. 
bottom of page