
Scare Crow
Game Designer (Enemy AI)
Project Overview
On this stealth-tower-defense game, I was the Enemy AI Designer, where I:
-
Designed 3 enemies and 7+ behaviors using Unity, C#, and Behavior Trees
-
Implemented 5+ enemy waves across 2 levels, pathing them through obstacles, determining what enemies spawn, and when they spawn
Scare Crow is a stealth-driven tower defense game where you play as Casey, a crow trying to stop squirrels from stealing her birdseed. Ambush enemies and set traps to scare squirrels away!
Features:
-
Fly across your backyard as Casey the crow to defend your birdseed
-
Throw acorns to lure squirrels into various traps
-
Scare squirrels away by sneaking behind them and popping out of bushes
This project had 35+ team members and 3 total designers (including me). The game released on Steam with a Positive reception and 94% rating.

Gameplay footage
My Contributions: Enemy AI

Big Fella squirrel takes 2 scares to eliminate

Picky Eater squirrel is harder to catch
I designed and implemented 3 enemies and their 7+ behaviors using behavior trees, including universal and unique behaviors to each enemy. I also taught 4 teammates how to author behavior trees to create their features. Finally, I implemented 5+ enemy waves across 2 levels.
Process I established for my design work:
-
Determine design goals and constraints for enemy AI
-
Wrote documentation and tested implementation
-
Iterated and polished based on playtest feedback
My design goals and constraints for enemy AI:
-
Enemy reactions should be outlandish to emphasize a cartoonish world
-
Enemies should have a single goal: steal as much birdseed as possible
-
Players should feel smart when scaring enemies and setting traps
MY IMPLEMENTED FEATURES BREAKDOWN
Universal AI Behaviors
-
Perception: Sight and sound detection, scent sense for acorn lures
-
Scent: Attracts squirrels to acorns, luring them away from the feeders
-
-
Invasion: Move on preset paths towards bird feeders
-
Confused: Pause slightly when the player is detected
-
Taunting: If the player is detected for too long, a squirrel will laugh at them
-
Scared: Scares the squirrel away for some time, or makes them run off the map entirely with the use of a trap
Enemy Types and Unique Behaviors
-
Basic Squirrel: Runs along path towards bird feeder
-
Big Fella: Requires 2 scares to eliminate completely
-
Top, Video: Big Fella squirrel not getting scared easily
-
-
Picky Eater: Speedily zig zags along the path
-
Bottom, Video: Picky Eater's erratic pathfinding
-
Design Case Study: Enemy Pathfinding
The most significant challenge I faced on Scare Crow involved enemy pathfinding behavior. I worked with the level designer to iterate on this system. Here's a breakdown of the problems and the actions I took to solve them:
PROBLEM 1: PATH READABILITY
-
My Task: Create a pathfinding system that gives players enough time to scare enemies away from a bird feeder
-
Initial Idea: Enemies select waypoints on their way to the target feeder
-
Top, Video: waypoint-based pathfinding
-
-
Situation: Players did not understand where enemies were going
Actions I took:
-
Designed a path-based system where enemies would follow preset splines placed in the level, snaking around level obstacles
-
Placed 4+ paths for enemies in 2 levels
PROBLEM 2: FEEDER SWARMING
-
My Task: Give preset paths enough locations for players to scare enemies
-
Initial Idea: Place extremely long paths alongside traps
-
Situation: Player's birdseed sometimes dropped quickly due to enemies swarming bird feeders intermittently, creating a sentiment of unfairness
Actions I took:
-
Shortened paths and created more of them -- placed 10+ paths in 2 levels
-
Iterated on the pathfinding system to split squirrels across bird feeders
-
Iterated on the wave system that allowed the player to set up traps before enemies spawned in; staggered enemy spawns in 5 waves
RESULTS FROM THESE ACTIONS
-
Players understood how enemies moved and where to set traps accordingly
-
Bottom, Video: path-based pathfinding with intersections
-
-
Enemies traveled to bird feeders more gradually, reducing difficulty

Pre-alpha pathfinding system (waypoints)

Final pathfinding system (preset paths)

1) Preliminary pathfinding sketch I made on the level geometry

2) Initial implementation of preset path in engine

3) Slightly shorter paths for a wave in Level 1

4) Final game version of pathing in a wave for Level 2
Project Takeaways

Pre-alpha behavior tree for Basic Squirrel
Because of my previous experience in AI Design, I left Scare Crow with a few improvements in my technical and design skills:
IMPROVEMENT 1: Behavior Tree readability -- they should have enough nodes, fields, and variables to change conditions and actions for fast iteration.
-
Image: Pre-alpha Basic Squirrel behavior tree I implemented
IMPROVEMENT 2: Orthogonal Design added to my process -- different enemies should have functional changes to feel different. (Orthogonal Design, Steve Lee)
IMPROVEMENT 3: Context-dependent design -- ideas that worked on previous games cannot be brought into new ones without understanding why they work.
Due to these improvements, I better understood my design process and how to iterate under time constraints.