Robert Ďurica

Blog ·

Postavil som si drift hru cez AI. Takto vznikala.

Event Car Game (pôvodne Event Car Drift) je 3D hra, ktorú som si s AI postavil v prehliadači: parkovisko, dve auta, dovoz, offroad až na vrchol hory. Tu je, ako presne vznikala, na čo sme prišli a čo som z nej vyhodil. Hrať sa dá priamo v mojom robOS.

AIhryvibecodingrobOS

Screenshot hry Event Car Drift: čierna dodávka v drifte na parkovisku, za ňou dym a stopy po gumách

Hru si môžeš zahrať hneď. Otvor môj robOS, ťukni na appku Car Game a jazdi. Funguje na mobile aj na počítači a nič neinštaluješ. Ak ju chceš na celú obrazovku, je aj samostatná.

Programátor nie som. Celú hru postavila AI a ja som jej hovoril, čo chcem, čo sa mi páči a čo nie. Tento článok je presný denník toho, ako sme to robili.

Začalo sa parkoviskom

Najprv len veľké parkovisko a jedno auto. Cieľ bol jediný: aby sa auto dobre driftovalo. Fyzika je „arkádová“, nie simulátor. Auto sa dá ľahko rozhýbať, šmyk je ľúbivý a dym a stopy po gumách ti hneď ukážu, čo robíš.

Celé to beží v prehliadači v jednom súbore. Používa knižnicu three.js na 3D, takže sa dá pustiť odkiaľkoľvek, bez inštalácie.

Drift na parkovisku v hre Event Car Drift: dym spoza kolies, stopy po pneumatikách a v pozadí zaparkované druhé auto
Drift na parkoviskudym, stopy a zaparkovaná Sugga v pozadí

Dve autá, dva charaktery

Autá som nechcel kreslené z kociek. Chcel som, aby vyzerali ako tie skutočné, s ktorými jazdím v práci. Modely som nechal vygenerovať AI z fotiek a Claude ich potom vložil do hry. Každé auto má vlastné správanie:

  • Zuborobrnená dodávka, V8 400 koní, 3,4 t. Pomalší rozjazd, ale dlhé a ladné šmyky.
  • Suggavintage 4×4 diesel. Ľahšia, obratná a stvorená na offroad.
  • ZvukV8 má vlastný zvuk motora a štart. Pre Suggu ešte hľadám diesel.

Na Sugge sme ladili najviac. Sugge sme napríklad pridali 7 % výkonu. Pri takýchto veciach AI nevie, aký má byť „správny pocit“ z jazdy. To musím odjazdiť ja a povedať jej to.

Model dodávky Zubor vyrenderovaný z hry na bielom pozadí
Zubormodel vyrenderovaný priamo z hry

Menu, ktoré vyzerá ako garáž

Prvé menu bolo len zoznam tlačidiel. Napísal som, že chcem niečo lepšie, a AI navrhla nový vzhľad: karty s autami a siluetami, karty s režimami, tabuľku s menom auta a veľké tlačidlo ŠTART, ktoré ti hneď hovorí, čo spustíš. Auto vidíš živé za menu a prepínaš ho šípkami.

Menu hry Event Car Drift s vybraným autom Zubor
Menu s Zuboromvýber auta aj režimu na jednom mieste
Menu hry Event Car Drift s vybranou Suggou a režimom Offroad
Menu so Suggouoffroad režim zvýrazní zelenou

Parkovisko plné srandy

Keď bol drift dobrý, parkovisko mi pripadalo prázdne. Povedal som, že tam chcem veci, ktoré si človek užije. Pribudlo:

  • pyramída zo sudov, ktorú sa oplatí rozbiť,
  • veľké plážové lopty, ktoré môžeš tlačiť autom,
  • radar, ktorý ti zmeria rýchlosť a zapamätá si najlepší výsledok,
  • zaparkované druhé auto. Keď jazdíš na Zuborovi, na parkovisku stojí Sugga. A naopak: na offroade na štarte stojí Zubor.
Zubor a zaparkovaná Sugga na parkovisku, vľavo plážová lopta
Sugga čaká na parkovisku
Radar na parkovisku a kužele okolo auta
Radarmeria rýchlosť a drží rekord
Auto pri modrom kontajneri a pyramíde zo sudov
Kontajner a sudy
Plážová lopta, pneumatiky a bránka na parkovisku
Lopty a pneumatiky

Dym, ktorého bolo moc

Prvý dym vyzeral dobre na obrázku, ale v hre ho bolo príliš. Napísal som jej presne to: že je tam podľa mňa veľa dymu. AI ho zmenšila a zredukovala. Aktuálny dym sú mäkké gule, ktoré sa vždy otáčajú ku kamere a vznikajú za pneumatikami a mimo nich, nie na nich. Takto vyzerá ako skutočný šmyk, nie ako hmla okolo auta.

DOVOZ: úlohy v neónovom meste

Voľná jazda ťa po čase omrzí. Tak vznikol režim DOVOZ: s dodávkou prechádzaš bránami s úlohami (slalom, kyvadlá, kruhy) a hľadáš presnosť. Svet je neónový a farebný. Na jednom mieste tu pôvodne stáli obrovské huby. Vyzerali zaujímavo, ale pri jazde mi zakrývali celý výhľad. Povedal som, aby šli preč, a nahradili ich ružové stĺpiky na neónový slalom.

Neónový svet režimu DOVOZ: fialová dráha s ružovými múrmi
Neónová dráha
Dodávka prechádza cez neónový kruh v režime DOVOZ
Brána s kruhom

OFFROAD: z lúky až na vrchol

Najväčšia časť hry je offroad so Suggou. Je to jedna dlhá trasa s 25 bránami a šiestimi svetmi za sebou. Začína sa na lúke, ide cez močiar, kaňon a zamrznuté jazero, potom hore zasneženým svahom až na vrchol. V každej zóne sa mení povrch, takže sa auto správa inak na bahne, ľade a v hlbokom snehu.

Offroad: Sugga na lúke medzi stromami a drevenými prekážkami
A: lúka
Offroad: Sugga v blate pri jazierku
B: močiar
Offroad: Sugga v kaňone pod tmavou skalnou stenou
C: kaňon
Offroad: Sugga na ľade pri zamrznutom jazere
D: ľadové jazero

Vrchol, ktorý som dal prerobiť celý

Najviac som sa naučil na poslednej zóne. Pôvodne to bol „uletený svet“ s plávajúcimi ostrovmi, UFO a neónmi. Keď som tam prvýkrát došiel so Suggou, auto sa zasekávalo, vtlačilo ma do steny a nebolo nič vidieť. Napísal som, že toto nemôžeme nechať takto a že to musí byť stále realistické.

AI to celé zmazala a postavila nanovo ako reálny horský vrchol: štrková cesta, skaly, sneh, slalom medzi balvanmi, horská chata, kríž a kamenná mohyla, vysielač a veterná turbína. Na konci je cieľový oblúk s vlajkou. Potom prešiel celú trasu skriptovaný virtuálny šofér a kontroloval, že sa dá prejsť bez nárazu až do cieľa.

Zasnežený hrebeň s cieľovým oblúkom v diaľke
Hrebeň
Cieľový oblúk na vrchole s drevenou plošinou a vlajkou
Vrcholcieľ s vlajkou

Ako sme sa rozhodovali

Rovnako ako pri iných mojich projektoch: technické veci rozhoduje Claude, pri hernom a kreatívnom rozhodujem ja. Ja som hru jazdil, hovoril, čo mi vadí, a on to opravil. Moje správy boli typu „veľa dymu“, „nič tam nevidím“ alebo „toto treba prerobiť úplne“. Nikdy som nehovoril, ako to naprogramovať.

  • Hra mala 25 verzií. Po každej som si ju zahral a povedal, čo sa mi páči a čo nie.
  • Vyhadzovať je rovnako dôležité ako pridávať. Huby, plávajúce ostrovy aj UFO šli preč, keď prekážali.
  • Najprv jedna vec, potom ďalšia. Parkovisko, auto, menu, módy, offroad. Nikdy nie všetko naraz.

Z hry do robOS

Hra pôvodne žila ako jedna stránka. Keď som ju vyhlásil za hotovú, spravili sme z nej appku v mojom robOS, malom telefóne priamo na tomto webe. Pribudla do neho ikona v rovnakom štýle ako Event Hub a hra sa otvorí vnútri telefónu.

robOS: domovská obrazovka telefónu s novou appkou Car Game
Nová appkaCar Game v robOS
Hra Event Car Drift otvorená vnútri telefónu v robOS
Hra vnútri telefónumenu hneď po otvorení
Ikona appky Car Game v štýle Event Hub: nápis Event Car Game a čierne auto
Ikonav štýle Event Hub v2

Aktualizácia: z driftu je tréning

Deň po zverejnení som hru otočil. Drift na parkovisku ostal, ale jadrom je teraz TRÉNING: 27 levelov od rozjazdu a brzdenia cez slalomy, cúvanie a osmičku až po mesto a divočinu. Jedna hviezda odomkne ďalší level, tri sú za rýchly a čistý prejazd.

Prerobil som aj fyziku. Zubor má 3,5 tony a vysoké ťažisko, tak sa teraz podľa toho aj správa: dlho brzdí a pri brzdení ide nosom dole, v zákrute sa celá karoséria nakloní a keď ho pri rýchlosti rozkývaš vľavo-vpravo, zdvihne kolesá a prevráti sa na bok. Kto brzdí v zákrute, tomu ide zadok von. Presne to, čo s ním zažívam v práci, len v arkádovej verzii.

Čo ešte príde

  • vlastná hudba ku každému autu a zvuk dieselu pre Suggu
  • režim Tokyo Drift
  • ďalšie srandy na parkovisku a nové trasy

Autá v hre vyzerajú ako tie, s ktorými jazdím v práci. Je to moja vlastná zábava a nič na nej nezarábam. Ak by to niekomu prekážalo, autá z hry vyberiem.

Chceš si niečo také vyskúšať sám? Na 3-hodinovej session ťa to naučím na tvojich vlastných veciach.

15 min hovor zadarmo