SCRATCH: Caketron 3000
Byte-Sized Bakery: Building a Nostalgic Cake-Making Game
-
The foundation of this project stems from a nostalgia for childhood gaming experiences, particularly those centered around cooking and creation. Through my growing interest in coding, I discovered an opportunity to transform these memories into a digital reality. What began as curiosity about programming's possibilities evolved into a focused project combining nostalgic gameplay elements with modern development techniques.
-
My ideation process focused on thoughtfully combining key elements from both Pizzatron 3000 and Cooking Mama into a cohesive new experience. The core components were broken down into:
Interactive Elements:Created selectable toppings, frostings, and cake bases inspired by Pizzatron's ingredient counter
Developed a component system allowing for precise placement and combination of elements
Visual Design:
Implemented a retro kitchen aesthetic drawing from Cooking Mama's warm, inviting environment
Integrated a personalized touch by animating my own headshot as the main character
Game Mechanics:
Adapted Pizzatron's time-based order fulfillment system
Incorporated increasing difficulty through progressively complex cake orders
-
The development process followed a systematic approach:
Asset Development:Identified required visual components: custom avatar, kitchen backdrop, cake components, and packaging
Generated initial assets using ChatGPT's image-generation capabilities
Refined all visuals through Canva, with a focus on clean backgrounds and consistent sizing
Game Structure Implementation:
Created an engaging introduction sequence with music integration
Developed player information collection system
Built a dynamic order generation system using control blocks to manage the timing
Implemented a 60-second gameplay timer with appropriate end-state handling
Technical Integration:
Utilized control blocks to manage menu item rotation timing
Created a variable system to track and display customer requests
Implemented game state management for the intro, gameplay, and completion phases
-
Test: The testing phase focused on three critical gameplay segments:
Initial Phase (0-30 seconds):
Verified limited component options (2 choices each for bases, frostings, and toppings)
Confirmed 3-second order display intervals
Tested basic order submission mechanics
Advanced Phase (30-60 seconds):
Validated expanded component options (3-4 choices)
Verified accelerated 2-second order intervals
Tested increased difficulty progression
Order Fulfillment System:
Confirmed box selection in corner triggers order submission
Tested counter increment functionality
Verified proper order clearing after submission
-
Through testing, several critical issues were identified and resolved:
Component Movement:
Initial Bug: Components either remained static or moved too rapidly
Solution: Adjusted timing variables and implemented smoother transition controls
Result: Achieved balanced component movement speed
Variable Display:
Initial Bug: Incomplete display of add/replace variables
Solution: Restructured variable initialization and display logic
Result: Ensured consistent display of all component options
Visual Alignment:
Initial Bug: Cake components appeared misaligned
Solution: Implemented precise coordinate system for component placement
Result: Achieved visually coherent cake assembly appearance
Difficulty Progression:
Initial Bug: Inconsistent transition between difficulty levels
Solution: Created separate control structures for each difficulty phase
Result: Smooth progression from basic to advanced gameplay
Counter Functionality:
Initial Bug: Score counter not incrementing with boxed orders
-
Introduction and Game Start Actions:
Backdrop and Initial Setup
Switch Backdrop: switch backdrop to [Baking Kitchen]
Show/Hide Sprites: show and hide
Go to Position: go to x: [ ] y: [ ]
Places sprites in the correct starting position on the screen.
Game Variables and Lists
Set Variables: set [Timer] to [60] and set [New Order] to [ ]
Initializes game variables (Timer, New Order).
Pick Random Numbers: pick random [1] to [3]
Randomly generates order components (e.g., cake, frosting, topping).
Game Loops
Repeat Loops: repeat until [condition]
Wait: wait [ ] seconds
Interactive Player Prompts
Ask and Wait: ask [What's your name?] and wait
Say: say [Welcome to the game, <name>] for [2] seconds
Displays personalized text on the screen.
Gameplay Instructions
Broadcast and Wait: broadcast [New Order] and wait
Sends a signal to start generating a new order.
Feedback and Tips
Conditional Checks: if [condition] then
Checks if the player’s selection matches the order requirements.
Play Sound: play sound [correct] until done
Plays sound effects to provide feedback.
Game Over Mechanism
Switch Backdrop: switch backdrop to [Game Over]
Hide Variables/Lists: hide variable [Timer] and hide list [New Order]
Cleans up the interface by hiding unnecessary elements.
Timer and Order Completion Counter
Set Timer: set [Timer] to [60]
Set Variable: set [Completed Orders] to [0]
Resets the count of completed orders.
Change Variable: change [Completed Orders] by [1]
Increments the count each time the player completes an order.
Specific Actions for Cake Assembly
Select the Cake Base
Check User Input: if [Selected Cake] = [New Order]
Verifies if the player selected the correct cake base.
Add Frosting
Conditional Logic: if [Selected Frosting] = [New Order]
Ensures the frosting selection matches the order.
Add Topping
Compare Values: if [Selected Topping] = [New Order]
Verifies the player’s topping selection.
Box the Completed Order
Broadcast and Wait: broadcast [Order Up!] and wait
Signals that the current order is ready for assembly
Change Variable: change [Completed Orders] by [1]