Alla projekt

Laga. Utforska. Leverera.

Wilderness Chef

Ett experiment med AI-assisterad 2D-grafik blev ett publikt matlagningsspel med tidsbegränsade beställningar, sparat världstillstånd och en avslutande skogsfest.

Jag var speldesigner och huvudprogrammerare med ansvar för system, UX, innehållsintegration, speltest, trailerproduktion och publicering på itch.io.

Unity 6C#SystemdesignPublik beta på itch.io
Fallstudie i spelutvecklingEvion Studios2025
Nyckelbild för Wilderness Chef med kocken, köket, en ko och en höna i en ljus skog

Roll

Skapare, speldesigner och huvudprogrammerare

System, UX, innehåll och publicering

Utveckling

April–augusti 2025

Publik beta i juni

Plattform

Windows

Publik beta på itch.io

Motor

Unity 6 + C#

2D-projekt i URP

Omfattning

10 ranker i den publika versionen

Samlande, beställningar och en slutfest

Den första begränsningen

Utforskning och matlagning löste varandras problem

Den 7 april 2025 började jag testa om genererade bilder kunde bära ett sammanhållet 2D-spel. Planen var en spelmekanik, en inspelning och sedan gå vidare.

Två dagar senare gav en väns förslag på ett matlagningsspel experimentet en riktning. Den 10 april slog jag ihop idén med Gather & Grow, en prototyp för samlande i naturen som jag redan hade påbörjat. Samlandet gav matlagningen en värld; matlagningen gav samlandet ett syfte.

Den spelbara loopen

Målen efter riktningsbytet

Spelarlöfte

01

Hitta råvaror i naturen och gör sedan något användbart av dem

Utforskning och matlagning behövde vara beroende av varandra, inte ligga bredvid varandra som separata spelmekaniker.

Produktionsbegränsning

02

Bygg en sammanhållen 2D-värld utan ett traditionellt grafikflöde

Grafiken behövde hålla ihop i UI, föremål, stationer, djur och en växande karta.

Mållinje

03

Gör en öppen prototyp till ett publikt spel

En tydlig början och ett tydligt slut, fungerande sparning, en trailer och en nedladdningsbar version betydde mer än en ändlös funktionslista.

Spelarlöftet

Spelloopen gav varje ingrediens en anledning att finnas

När spelet hade omkring 25 ingredienser fanns det mycket att samla men ingen stark anledning att fortsätta. Jag pausade innehållsarbetet och ställde en enklare fråga: vad gör spelaren, och varför ska det spela roll?

01

Samla

Utforska omgivningen och hitta förnybara ingredienser från växter, djur och fiskeplatser.

02

Förbered

Skär, blanda, koka, baka eller stek ingredienser vid särskilda stationer.

03

Lägg upp

Kombinera förädlade råvaror till en måltid som matchar en aktiv beställning.

04

Leverera

Servera innan tiden går ut för att tjäna mynt och närma dig nästa rank.

05

Lås upp

Ranker öppnar recept, stationer, fler beställningar och nya delar av vildmarken.

06

Fira

Nå rank 10 och laga den meny som skogens djur önskar till festen.

Beställningar gör recepten till val. Ranker ger beställningarna riktning. Festen ger progressionen ett slut.

Recept på ett spel

Sex beslut från experiment till lansering

Planen ändrades varje gång en version blottade nästa problem. Tidslinjen visar vad jag valde och vad som förändrades.

Välj en utvecklingsfas

7 april 2025

Börja innan planen blir tung

Utgångsläge

Ett grafikexperiment på en eller två dagar med en mekanik, en scen och en video i slutet.

Beslutet

Håll frågan tillräckligt smal för att besvara genom att bygga, inte genom att planera ett större projekt.

Resultat

En karaktär, en uppsättning föremål och en prototyp för samlande fanns inom några dagar, vilket gjorde nästa idé billig att testa.

Designbeslut

Fyra val som höll projektet fokuserat

Tydligare progression och feedback förbättrade ofta spelet mer än ännu en funktion.

Ge ingredienserna ett syfte

01
Avvägning
AI-genererad grafik gjorde varje ny ingrediens snabb att illustrera. Det blottade det verkliga problemet: fler föremål gav variation, men ingen anledning att använda dem.
Beslut
Sluta lägga till ingredienser, koppla ihop beställningar, ranker och områdesupplåsningar och gör sedan festen till slutmålet.
Varför det fungerade
Nya recept kunde knytas till en rank och ett tydligt nästa mål i stället för att bli fristående samlarobjekt.

Låt gränsen höra hemma i världen

02
Avvägning
Röda boxar blockerade låsta områden tydligt, men de såg ut som debuggeometri och bröt vildmarkskänslan.
Beslut
Ersätt dem med dimbankar som skingras när spelaren når rätt rank.
Varför det fungerade
Gränsen är fortfarande tydlig, samtidigt som upplåsningen känns som att landskapet öppnar sig.

Uppgradera där resultatet syns

03
Avvägning
En kartbaserad meny för husuppgraderingar skilde valet från den fysiska plats som skulle förändras.
Beslut
Slopa menyn och flytta husuppgraderingar till en station i spelvärlden.
Varför det fungerade
Spelaren ser huset, köper uppgraderingen och ser förändringen på samma plats.

Animera inom grafikens begränsningar

04
Avvägning
AI-assisterade sprites höll ihop som stillbilder men gick inte att animera tillförlitligt bildruta för bildruta.
Beslut
Använd en kontrollerad guppande rörelse för karaktärer och djur, och lägg animationsarbetet på partiklar, stationsfeedback och mellansekvenser.
Varför det fungerade
Grafiken förblir konsekvent samtidigt som animationen används där den ger tydligast feedback.

Under kokboken

Dussintals rätter, gemensamma regler

ScriptableObjects definierar föremål, recept, måltider och stationer. Matlagning, fiske och beställningar lägger körtidstillstånd ovanpå den gemensamma innehållsmodellen.

63

föremålsdefinitioner

32

receptdefinitioner

57

måltidsdefinitioner

9

stationsdefinitioner

Antalen kommer från det nuvarande Unity-projektet; de är inte en verifierad inventering av den nedladdningsbara augustiversionen.

Från ingrediensdata till spelarmål

  1. Skörda

    En förnybar källa producerar ett föremål.

  2. ItemSO

    Regler för stackstorlek, hållbarhetstid, bränning och uppläggning.

  3. RecipeSO

    Station, indata, utdata och tid.

  4. Station

    Väntar, tillagar, färdig eller bränd.

  5. Plate + MealSO

    Förberedda föremål kontrolleras mot en måltid.

  6. Beställning

    En timer gör måltiden till en aktiv uppgift.

  7. Rank

    Slutförda beställningar låser upp nästa lager.

  8. Fest

    Måltiderna som djuren önskar avslutar progressionen.

ScriptableObjects

Lägg till innehåll utan att ändra kärnkoden

Föremålsdata anger stackstorlek, hållbarhetstid, bränning och uppläggningsregler. Receptdata anger station, indata, utdata och tillagningstid. Måltidsdata listar ingredienserna som godkänns.

Tillstånd + sparning

Spara delarna som rör sig

Easy Save 3 är lagringslagret; varje delsystem återställer sitt eget stationsinnehåll, aktiva recept, timers, ranker och festplatser.

70 % aktuell rank-pool

Låt nya upplåsningar synas snabbt

I 70 procent av fallen väljer ordergenereringen från måltidspoolen för aktuell rank; annars väljer den bland alla upplåsta måltider, så äldre recept stannar i rotation.

Den publika versionen

Från vildmark till leverans

Gränssnittet håller kedjan synlig genom aktuella beställningar, inventariet, stationerna i närheten, kokboken och kartan.

Utanför utvecklarens huvud

Systemet fungerade. Förklaringen gjorde det inte.

Jag hade testat hållbarhetstimern tills den kändes självklar. En vän som såg systemet för första gången trodde att maten ruttnade nästan direkt.

Korrekt logik är bara halva jobbet

Timern betedde sig som koden angav, men en ny spelare kunde inte förutse den. Jag använde externa tester för att kontrollera tidsgränser, ikonernas tydlighet och interaktionsregler innan jag lade till mer finputsning.

En testares fråga
Varför ruttnar min mat direkt?

Tidigare tester visade också

  • Svårlästa sprites och animationer
  • Tidsgränser och press i beställningar
  • Begränsat inventarie och otydliga tallriksregler
  • Svag ljud- och interaktionsfeedback

Bakom spelet

Experimentet som vägrade förbli litet

Making-of-videon visar varför jag bytte riktning, var omfattningen växte och hur jag bestämde mig för att avsluta.

Fallstudie i spelutveckling

En publik version, från första test till sista fest.

Utforska ett annat projekt
Elmer Almer Ershagen© 2026