- Gameplay Systems
- In development
Lizard Wizard
A whimsical 3D puzzle-platformer: build speed across the dunes, carry it through jumps, and deliver water to thirsty critters before you run out. I set up the production structure the five of us work in, and I'm building the predators' sensing AI.
- My role
- Production setup lead and predator AI programmer on a five-person team
- Team
- Ibrahim Shaheed, Vivian, Xavier McIntosh, Diego Santiago-Rodriguez and me
- Built with
- Unity 6 (URP), new Input System, GitHub feature-branch workflow
- Status
- In development as our senior capstone (fall 2026)
The game
You play a lizard wizard whose hat is also a water reservoir. Water drains over time, spills when you fall or get hit, and is the only thing keeping desert critters alive. Movement is the core: sliding down dunes and carrying momentum, with references like HASTE, Alto's Odyssey, Titanfall 2 and Sonic Frontiers. Predators and weather add pressure to your route.
Terrain generation, player physics and the water UI belong to teammates. The sections below cover only my part.
Production foundation
Five-person project structure
I laid out the shared Unity hierarchy for art, audio, data, scripts, scenes and docs, and gave each teammate a personal sandbox scene. Features get built and tested there before anything touches a production scene, which keeps merge conflicts down.Team rules and reference
I wrote a folder cheat sheet and working rules: coordinate before editing production scenes, branch per feature, keep files where they belong. I also set up the Trello board and a shared PureRef reference board.Repository recovery
When a terrain asset was corrupted by line-ending conversion, I restored the working version and updated the Git attributes so Unity binary assets are never treated as text again.
Predator sensing AI
The first predator is a desert spider. I kept its state machine to three states (Idle, Pounce, Retreat) and put the effort into how it notices you, plus a little randomness so it doesn't feel scripted.
Vision
Checks distance and view angle first. Only if both pass does it spend a raycast on line of sight. It runs a few times per second, not every frame.Hearing
A radius around the spider receives noise events from the player. If the noise lands inside the radius, the spider has heard the player.One shared reaction
Both senses call the same ChooseReaction method. The spider rolls once: 75% pounce, 25% retreat. It never re-rolls every frame, so it can’t flicker between states.Readable in the editor
Gizmos draw the vision cone and hearing sphere, and every state change is logged, so designers can tune ranges without reading the code.
Production blog
The team posts weekly progress on a public production blog. My first post covers the movement research and the project structure above.