Development Journey

Creating "I Want Donuts!" as a solo developer presented unique challenges that pushed my skills in game design, programming, and creative problem-solving. Here's a look at the key development milestones.

Main Challenges

As a solo project, I handled every aspect of development from concept to completion. While I used the Synthy City Asset pack for environmental elements, all gameplay systems, mechanics, and logic were built from scratch.

Obstacle System

The core challenge system uses a trigger-based approach where obstacles kill the player upon contact. Some obstacles have safe and unsafe variants - for example, only smoking variants are deadly.

Lined up Obstacles

When triggered, the player first looks at the obstacle before dying, with each obstacle type featuring multiple death messages for variety. The game includes 40 obstacles across 4 different types:

  • Animation: Obstacles with animated elements
  • Explosion: Spawns an explosion at an object
  • Gas: Pipes burst and spray deadly gas
  • Car: Spawns a car that hits the player

Level Generation System

The main challenge for level generation was ensuring every level is playable while maintaining variety. My solution divides the world into 6 areas, each containing multiple sections.

Level Sections

Each section has 5-15 random obstacle layouts that always provide at least one possible path. Since sections are designed to connect seamlessly, we can randomly select each section while guaranteeing a playable level.

With almost infinite possible level layouts, the chance of repeats is near zero, keeping the gameplay fresh and unpredictable.

Daily & Monthly Challenges Without Backend

I wanted to implement automatically updating daily and monthly seeds without hosting a backend or incurring additional costs.

The solution uses GitHub Actions to randomize seeds and make them available to clients, with cronjobs.org ensuring precise timing for seed changes. A simple JSON file in the repository contains the monthly and daily seeds, which clients fetch directly.

This approach also automatically maintains a history of past seeds in the repository for tracking purposes.

Rainbow Donuts Collectibles

Rainbow Donuts are special collectibles that unlock a secret ending when all 9 are collected. They're strategically hidden throughout the map.

Some donuts are cleverly hidden, while others are in plain sight but require complex paths to reach. Crucially, every Rainbow Donut is collectible on every attempt, regardless of the level layout.

To make the Rainbow Donuts stand out and feel desirable, I implemented several visual enhancements:

  • Bright, lit materials for high visibility
  • Custom rainbow outline shader
  • Dynamic rainbow particle effects
  • Rainbow-colored lighting
  • Distinctive collection sounds
I Want Donuts! Game Cover

I Want Donuts!

Play Now

Overview

A 3D browser game with randomized seeded levels where your goal is to reach the Donut Shop down the road alive. Features secret collectibles, daily and monthly challenges, and various hidden elements to discover.

Used Skills/Tools

Icon

Unity Engine

Primary game development engine

Icon

C# Programming

Game logic and systems

Icon

Shader Graph

Visual effects and materials

Icon

GitHub Actions

Automated seed generation

Year 2025
Team Size Solo Project
Studio Perian Development
Type Browser Game
Status Released