Skip to content

Anatomi mesin gim AI: apa yang sebenarnya ada di balik prompt

Oleh Mariana Muntean, CEO Cinevva

Hal yang paling sering dikatakan orang yang baru mengenal Cinevva adalah bahwa Cinevva hanyalah pembungkus AI. Mereka membuka halaman utama, melihat satu kotak input bertuliskan "Deskripsikan gim Anda", lalu merasa sudah memahami produknya. Yang mereka pahami baru pintu depannya. Produknya adalah segala sesuatu yang tidak Anda lihat saat mengetik kalimat tersebut, ditambah, mulai minggu ini, sebuah dunia terbuka yang dimasuki pemain Anda untuk menemukan gim Anda sejak awal.

Di balik input tersebut terdapat mesin gim lengkap, orkestrator dengan 26 alat bertipe, sekumpulan model generatif, pencarian aset teragregasi dari sebelas penyedia, iframe gim aktif yang dapat dibaca dan ditulisi oleh agen, serta etalase tempat agen yang sama merilis gim Anda yang sudah selesai sebagai reel gameplay yang dapat digeser. Tidak ada satu pun yang eksotis. Semuanya adalah infrastruktur. Pekerjaan yang menarik adalah memutuskan apa yang harus dihubungkan ke mana.

Tulisan ini membahas mesin tersebut dari atas hingga bawah. Inilah penjelasan yang kami berikan kepada investor teknis dan pengembang yang mempertimbangkan untuk berkontribusi. Mereka menginginkan jawaban yang sama.

1. Prompt adalah permukaan, bukan sistemnya

Input prompt Cinevva di halaman utama. Satu kolom teks bertuliskan 'Buat gim tembak-tembakan luar angkasa bernuansa neon dengan asteroid, power-up, dan soundtrack synth.' Di bawahnya terdapat tiga chip saran dan logo Cinevva.

Keputusan desain pertama adalah menyembunyikan semuanya sampai pengguna benar-benar terlibat. Halaman utama hanya memiliki satu tugas, yaitu menerima sebuah kalimat dan mengubahnya menjadi proyek. Kami membagi pengalaman menjadi sisi publik (prompt, etalase karya, feed etalase gim) dan sisi kreator (IDE, alat aset, alur publikasi), agar orang yang hanya ingin bermain tidak perlu melihat kokpitnya.

Itulah sebabnya placeholder berganti-ganti menampilkan teks seperti "Buat gim ular dengan grafis neon" dan "Gim tembak-tembakan zombi dari atas". Itu bukan tutorial. Itu adalah izin untuk berkreasi. Pengguna jadi tahu bahwa "ide arkade yang aneh" merupakan input yang sah.

Saat Anda mengirimkannya, tiga hal terjadi. Sistem membuat proyek gim baru dengan ID tetap. Sistem menyiapkan struktur berkas kosong (index.html, game.js, style.css, assets/, GDD.md). Lalu sistem meneruskan kalimat Anda ke orkestrator dengan jendela konteks proyek yang mengarah ke berkas-berkas kosong tersebut. Mulai dari sini, Anda berbicara dengan agen yang dapat bertindak langsung.

2. Di balik input, sebuah IDE peramban lengkap

IDE kreator Cinevva dalam mode gelap. Tiga panel: struktur berkas di sebelah kiri berisi GDD.md, index.html, game.js, style.css, dan folder assets; editor kode dengan penyorotan sintaks di tengah yang menampilkan konfigurasi renderer Three.js; serta pratinjau gim aktif di sebelah kanan yang menampilkan gim tembak-tembakan luar angkasa neon dari atas dengan HUD SCORE dan LIVES.

Ruang kerja kreator adalah IDE tiga panel yang berjalan sepenuhnya di peramban. Struktur berkas di sebelah kiri, editor kode di tengah, iframe gim aktif di sebelah kanan, dan input obrolan memanjang di sepanjang bagian bawah. Kami sengaja memilih tata letak ini. Orang yang sudah terbiasa menulis kode akan langsung mengenalinya. Orang yang tidak terbiasa dapat mengabaikan panel tengah dan cukup berinteraksi melalui obrolan.

Struktur berkas itu bukan sekadar metafora. Setiap proyek benar-benar merupakan situs statis kecil yang terdiri dari HTML, JS, CSS, gambar yang dihasilkan, model GLB, dan berkas audio, yang disajikan langsung dari R2 melalui Cloudflare Worker. Tidak ada tahap build. Alasannya penting. Ini berarti agen dapat membaca dan menulis berkas yang benar-benar akan Anda rilis, dan artefak yang sama dapat berjalan di iframe, di ponsel yang dibungkus dengan Capacitor, di Steam yang dibungkus dengan Tauri, serta di dalam Discord sebagai Embedded Activity. Satu sistem berkas, enam target distribusi.

Setiap gim yang kami hasilkan wajib mengekspos dua fungsi pada window. getGameState() mengembalikan objek biasa yang mendeskripsikan gim yang sedang berjalan (posisi pemain, skor, nyawa, musuh, timer). setGameState(patch) menerapkan pembaruan parsial kembali ke gim aktif. API kecil itu adalah kontrak yang memungkinkan agen memeriksa dan mengubah gim yang sedang berjalan tanpa memuat ulang. Kita akan kembali membahas alasannya di bagian 6.

3. Orkestrator, tempat mesin yang sebenarnya berada

Diagram orkestrator Cinevva. Node pusat berlabel 'Orchestrator (LLM)' terhubung ke delapan node alat yang tersusun di sekelilingnya: list_game_files, read_files, edit_files, write_files, generate_image (Flux), generate_skybox (Blockade), generate_music (ElevenLabs), dan rig_model (Tripo). Garis putus-putus menghubungkan orkestrator ke node 'Game iframe' berlabel 'screenshots + console.'

Hal yang terlewat ketika orang menyebut ini "pembungkus AI" adalah bahwa AI tidak sekadar menulis kode, melainkan memimpin sebuah orkestra kecil. Orkestratornya merupakan loop pemanggilan alat yang berjalan menggunakan model terdepan, dengan system prompt sepanjang sekitar seribu baris dan permukaan alat bertipe yang terdiri dari 26 fungsi. Definisi alat itulah mesinnya. Model adalah konduktornya.

Ke-26 alat tersebut terbagi menjadi lima kelompok. Alat sistem berkas (list_game_files, read_files, search_game_file, edit_files, write_files, delete_files, rename_files) memungkinkan agen memperlakukan gim Anda seperti basis kode lainnya. Alat proyek (create_new_game, list_games, open_game, ask_user, game_ready) menangani siklus hidup proyek dan penyerahannya kembali kepada manusia. Alat generatif (generate_image, generate_skybox, generate_music, generate_sfx, rig_model, apply_animation, list_animations, list_skybox_styles) memanggil model khusus yang akan kita bahas berikutnya. Alat pengetahuan (search_fonts, list_library_docs, search_library_docs, list_generations) memberi agen sumber kebenaran terindeks yang andal, alih-alih API hasil halusinasi. Sementara itu, alat runtime (read_console_logs, execute_js) memungkinkan agen melihat dan menyentuh gim aktif.

Interaksi pertama yang umum kurang lebih seperti ini. Pengguna mengetik "Buat gim tembak-tembakan luar angkasa neon". Model mengeluarkan panggilan write_files dengan GDD.md yang mendeskripsikan desainnya, lalu memanggil write_files lagi untuk index.html, game.js, dan style.css. Model memanggil generate_music dengan prompt="synthwave space shooter, 120 BPM, driving bassline", yang memulai pekerjaan melalui ElevenLabs Music dan mengembalikan URL MP3 di dalam R2. Model memanggil generate_skybox menggunakan gaya model 3 dari Blockade Labs untuk hamparan bintang. Model memanggil game_ready(title, message) untuk mengalihkan iframe ke build baru, lalu akhirnya memanggil read_console_logs guna memastikan gim dimulai tanpa kesalahan. Jika melihat stack trace, model kembali ke edit_files dan memperbaikinya sebelum pengguna melaporkan apa pun.

Sifat menarik dari desain ini adalah bahwa system prompt dan skema alat merupakan satu-satunya bagian yang khusus untuk produk. Ganti modelnya, dan semuanya tetap berfungsi. Kami telah bermigrasi di antara tiga model terdepan selama setahun terakhir tanpa mengubah permukaannya, karena permukaan itu milik kami.

4. Sisi aset: penyebaran ke berbagai model

Dasbor pembuatan aset dengan tiga panel. Panel kiri adalah generator musik dengan prompt 'synthwave space shooter, 120 BPM, driving bassline,' penggeser durasi 60 detik, tombol Generate, serta kartu bentuk gelombang yang sedang diputar berjudul 'Asteroid Drift Theme.' Panel tengah adalah generator skybox dengan prompt 'deep space, distant nebula, two moons' dan kisi berisi empat thumbnail lingkungan 360 derajat. Panel kanan menampilkan pratinjau model 3D berputar berupa pesawat luar angkasa ungu low-poly, dengan tombol 'Rig + Walk' serta indikator status bertuliskan 'Rigging... 1m 42s left.'

Agen tidak menghasilkan gambar, musik, suara, atau objek 3D sendiri. Agen memanggil para spesialis. Sisi aset Cinevva menyebarkan pekerjaan ke berbagai model terbaik di kelasnya, yang direkatkan sehingga output dari satu model menjadi input yang valid bagi model berikutnya.

Untuk gambar dan sprite, generate_image memanggil Flux Pro 1.1 dengan lebar dan tinggi yang selalu merupakan kelipatan 32 serta format output yang beralih ke PNG ketika prompt meminta transparansi. Untuk lagu lengkap, agen memanggil ElevenLabs Music dengan prompt gaya dan durasi dalam detik. Untuk efek satu kali, ElevenLabs SFX menghasilkan klip dari teks seperti "laser gun firing, sci-fi blaster" dalam waktu lima hingga lima belas detik. Untuk lingkungan 360 derajat, generate_skybox memanggil Blockade Labs dengan salah satu dari sekitar sembilan puluh gaya, dengan model 3 Digital Painting sebagai default. Untuk karakter 3D, rig_model mengirimkan GLB ke Tripo untuk diberi skin dan rig sebagai makhluk bipedal, berkaki empat, berkaki enam, berkaki delapan, melata seperti ular, atau akuatik. Kemudian apply_animation memutar salah satu dari lima belas preset (diam, berjalan, berlari, melompat, memanjat, menyelam, menebas, menembak, terluka, jatuh, berbalik, ditambah gerakan berjalan untuk karakter non-bipedal).

Masing-masing merupakan pekerjaan, bukan panggilan sinkron. Prosesnya memerlukan waktu beberapa detik hingga beberapa menit. Orkestrator memulainya, segera kembali dengan jobId, lalu saluran terpisah mengirimkan hasilnya kembali ke percakapan ketika aset sudah siap. Hal ini sepenuhnya mengubah pengalaman pengguna. Agen dapat terus membangun logika gim sementara proses rigging model 3D selesai di latar belakang. Pengguna tidak perlu menunggu satu jalur kritis.

Semua artefak berakhir di tempat yang sama. R2, di balik cdn.cinevva.com, dan dapat diakses sebagai URL biasa. Artinya, panggilan write_files agen berikutnya cukup menyematkan <audio src="https://cdn.cinevva.com/audio/abc.mp3">, lalu gim langsung berfungsi. Tanpa SDK, tanpa bundler aset, tanpa manifest.

5. Pencarian aset dari sebelas penyedia

Halaman pencarian aset Cinevva dalam mode gelap. Bilah pencarian di bagian atas berisi kueri 'asteroid rock' dan deretan pil filter penyedia menampilkan All, PolyHaven, Sketchfab, Kenney, Quaternius, AmbientCG, OpenGameArt, Freesound, Smithsonian, Synty, serta Jamendo, dengan Sketchfab disorot. Di bawahnya terdapat kisi empat kolom berisi thumbnail model asteroid. Setiap kartu menampilkan lencana penyedia, label lisensi CC0 atau CC-BY, dan tombol 'Use in game'. Keterangan kecil di sudut kanan atas menampilkan gelembung obrolan bertuliskan 'ChatGPT: one of the best free asset tools for game devs.'

Pembuatan aset sangat berguna ketika Anda membutuhkan sesuatu yang spesifik. Pencarian lebih cepat ketika aset tersebut sudah tersedia. Pustaka Aset merupakan pencarian terfederasi dari sebelas penyedia aset gratis dan berlisensi, yang ditampilkan dalam satu feed terurut.

Registri penyedia berada di worker dan menjalankan setiap kueri secara paralel ke PolyHaven, Sketchfab, Freesound, Kenney, AmbientCG, Quaternius, OpenGameArt, koleksi 3D Smithsonian, TurboSquid, Synty, dan Jamendo. Setiap penyedia menerapkan antarmuka umum (search, getMetadata, isBrowsable, getSupportedTypes), sehingga penambahan penyedia baru hanya memerlukan satu berkas TypeScript. Lapisan agregasi menangani paginasi berbasis kursor di berbagai penyedia yang menggunakan metode paginasi berbeda, menghapus duplikasi lisensi, menormalkan jenis aset ke dalam taksonomi umum (model, tekstur, audio, hdri, sprite), serta menandai setiap aset dengan lisensinya agar agen tidak pernah memilih sesuatu yang tidak boleh didistribusikan ulang.

Ketika ChatGPT merekomendasikan alat ini pada kuartal lalu sebagai salah satu pencari aset gratis terbaik bagi pengembang gim, kami membaca rekomendasi tersebut. Rekomendasi itu benar pada bagian yang penting. Intinya bukan bahwa kami memiliki bilah pencarian untuk satu pustaka. Intinya adalah bahwa pengembang indie yang mencari "tekstur dinding batu" mendapatkan hasil dari PolyHaven dan AmbientCG berdampingan dengan versi bergaya dari Kenney serta opsi fotogrametri dari Smithsonian, melalui satu kueri dan dengan metadata lisensi yang konsisten. Agen dapat menggunakan endpoint yang sama dan memilih aset dengan cara yang sama seperti manusia.

Bagian mesin ini sering kali kurang dihargai. Sebagian besar demo AI gim menghasilkan semuanya dari nol dan akhirnya memiliki tampilan seragam, mengilap, dan sedikit janggal. Gim-gim menarik di Cinevva memadukan aset hasil generasi dengan fotogrametri CC0 asli dari Smithsonian dan pohon low-poly buatan tangan dari Quaternius. Orkestrator dapat melakukan semua itu dalam satu interaksi.

6. Agen memainkan gim

Tampilan debugging langsung. Di sebelah kiri, gim tembak-tembakan luar angkasa neon yang sedang berjalan menampilkan pesawat pemain menghindari asteroid dengan SCORE 4820 dan 2 nyawa tersisa. Di sebelah kanan, dua panel bertumpuk: panel execute_js menampilkan panggilan JSON.stringify(getGameState()) dan objek JSON hasilnya yang berisi posisi pemain, kecepatan, health, score, lives, serta jumlah asteroid; dan panel read_console_logs yang menampilkan baris log terbaru, termasuk spawn asteroid, powerup picked, peringatan pemuatan tekstur, serta pembacaan FPS sebesar 58.

Inilah bagian yang paling mengejutkan sebagian besar engineer ketika kami mendemonstrasikannya. Agen tidak hanya menulis kode ke dalam berkas. Agen menjalankan gim di iframe terisolasi, membaca konsolnya, mengambil tangkapan layar yang dipisahkan menjadi lapisan UI dan adegan 3D, serta menjalankan JavaScript di dalam runtime aktif untuk memeriksa atau mengubah status. read_console_logs mengembalikan lima puluh baris terakhir dari console.log, console.warn, console.error, dan pengecualian yang tidak tertangani dari iframe. Setelah setiap pemanggilan game_ready, agen diwajibkan oleh prompt sistem untuk memanggil read_console_logs dan memperbaiki semua galat sebelum menyerahkannya kembali kepada pengguna. Satu aturan itu menghilangkan sebagian besar kegagalan "AI bilang sudah selesai, tetapi layarnya hitam" yang dialami alat lain.

execute_js adalah alat yang lebih canggih. Alat ini menjalankan JavaScript arbitrer di dalam lingkup global game. Karena setiap game diwajibkan mengimplementasikan getGameState dan setGameState, agen dapat menjalankan JSON.stringify(getGameState()) untuk membaca seluruh state game yang sedang berjalan, lalu setGameState({player: {x: 500, y: 100}}) untuk memindahkan pemain secara instan, setGameState({lives: 99}) untuk memberikan kekebalan, atau setGameState({level: 3}) untuk melompat ke level berikutnya. Agen juga dapat memeriksa lapisan yang lebih rendah, seperti scene.children.map(c => c.type) untuk menginspeksi scene graph Three.js atau document.querySelectorAll('canvas').length untuk memastikan renderer sudah terpasang.

Anda bisa melihat mengapa hal ini penting. Ketika pengguna berkata, "pemain tersangkut di dinding pada level dua", agen tidak perlu menebak. Agen membuka level dua, menjalankan getGameState(), memeriksa data collision, menjalankan patch execute_js untuk menguji perbaikan, dan baru kemudian menulis perbaikannya ke disk. Agen melakukan debugging seperti Anda melakukan debugging. Kami memperlakukan iframe sebagai rekan, bukan target.

7. Dokumentasi pustaka, sumber kebenaran yang membosankan

Kami mengindeks dokumentasi resmi untuk pustaka yang benar-benar digunakan oleh game (Three.js, Tone.js, Cannon, dan terus bertambah) ke dalam penyimpanan JSON terstruktur yang dapat dicari. Agen menggunakan search_library_docs("threejs", "Mesh") sebelum beralih ke web terbuka. Ini lebih cepat, memiliki versi yang jelas, dan tidak pernah mengarang metode yang namanya sudah diubah dua rilis minor lalu.

Ini memang tidak glamor. Namun, inilah perbedaan antara AI yang menghasilkan kode berfungsi dan AI yang menghasilkan kode yang tampak meyakinkan tetapi mengalami crash pada baris keempat puluh. Sebagian besar kualitas yang terlihat dari game buatan Cinevva berasal dari satu keputusan ini.

8. Dari dapat dimainkan menjadi dapat ditemukan: reel dan etalase

Etalase reel gameplay berdurasi pendek. Di tengah, sebuah kartu berbentuk ponsel memutar video vertikal tentang penembak luar angkasa neon di tengah pertempuran, dengan ikon UI sosial bertumpuk di sisi kanan (hati dengan 14 ribu, gelembung chat dengan 3,2 ribu, panah bagikan dengan 1,8 ribu, dan tombol 'Mainkan Sekarang'). Label reel di bagian bawah bertuliskan 'Asteroid Drift • oleh @indiedev • 3,1 juta tayangan.' Di sebelah kiri, cuplikan chat kecil berjudul 'Dari chat kreator' menampilkan pesan asisten 'Game sudah tayang. Reel otomatis dipublikasikan ke etalase Anda.' Di sebelah kanan, panel Etalase mencantumkan tiga game yang sedang tren: Asteroid Drift, Roadhawk Runner, dan Birb Clicker, masing-masing dengan jumlah tayangan dan label 'Sedang Tren'.

Game yang tidak dimainkan siapa pun hanyalah hobi pribadi. Masalah tersulit yang belum terpecahkan dalam pengembangan indie bukan lagi membuat game. Masalahnya adalah distribusi. Karena itu, engine tidak berhenti pada "dapat dimainkan". Engine berhenti pada "berada di hadapan pemain".

Setiap proyek di Cinevva memiliki URL berbagi stabil seperti play.cinevva.com/{game-id} yang membuka build terbaru game dalam iframe sepenuh halaman dengan overlay kecil untuk suka dan bagikan. Ketika agen memanggil game_ready, agen tidak hanya mengaktifkan pratinjau di dalam IDE. Agen juga menawarkan untuk memublikasikan reel gameplay berdurasi 15 detik ke etalase Cinevva. Reel tersebut adalah rekaman nyata dari game yang sedang dimainkan, direkam langsung dari iframe (kami menyertakan skrip perekam kecil yang disuntikkan agen ke runtime game), sehingga yang dilewati penonton saat menggulir adalah gameplay sungguhan, bukan hasil edit pemasaran.

Hal itu mengubah siklus kerja seorang developer. Siklus lama adalah menulis kode, membuat build, mengemas, mengunggah, menulis halaman Steam, bertarung melawan algoritme, lalu mengamati penghitung wishlist. Siklus baru adalah mengetik satu kalimat, melihat agen membangun, menekan publikasikan, lalu melihat game Anda muncul dalam feed geser yang sama bersama semua game lainnya. Penemuan terjadi di produk yang sama dengan tempat proses pembuatan berlangsung, pada URL yang sama, dengan login yang sama.

Bagi pembaca dari komunitas developer, inilah bagian yang perlu dicermati. Distribusi selalu menjadi benteng pertahanan yang tidak disertakan bersama game engine. Unity menyediakan editor, lalu Anda merilis game di Steam. Unreal menyediakan editor, lalu Anda merilisnya di Epic Store. Cinevva menyediakan keduanya. Engine dan etalase saling berkomunikasi melalui orkestrator yang sama dengan yang membangun game.

9. Top Performers: flywheel penemuan

Peringkat Top Performers Cinevva. Tiga tab di bagian atas bertuliskan Sedang Tren, Terbaru, dan Teratas, dengan Teratas dipilih. Di bawahnya terdapat baris podium berisi tiga game unggulan: nomor satu The Breaker Belt dengan 42,1 ribu permainan, nomor dua Roadhawk Runner dengan 27,7 ribu permainan, dan nomor tiga Asteroid Drift dengan 37,1 ribu permainan. Di bawah podium terdapat grid yang lebih padat berisi enam kartu game lebih kecil, termasuk Pixel Platformer, Zombie Shooter, Fruit Ninja Clone, Tower Defense, Card Battler, dan Zombie Builder, masing-masing dengan gambar mini, nama pengguna kreator, dan jumlah permainan.

Feed reel adalah separuh dari flywheel. Separuh lainnya adalah peringkat Top Performers. Peringkat ini menyusun game berdasarkan yang sedang tren, terbaru, dan teratas sepanjang masa, dengan bobot berdasarkan tingkat penyelesaian (apakah pemain menyelesaikan satu sesi), bukan sekadar klik mentah. Tingkat penyelesaian lebih sulit dimanipulasi daripada jumlah instalasi. Game yang mampu mempertahankan perhatian selama enam puluh detik mengalahkan game yang hanya dibuka lalu ditutup.

Setiap sinyal menjadi masukan bagi giliran orkestrator berikutnya. Ketika agen berkata, "mari tambahkan power-up", agen tidak mengambilnya dari pustaka pola yang tetap. Agen mengambilnya dari model yang telah mengamati mekanik apa saja yang benar-benar mempertahankan pemain di Cinevva bulan ini. Flywheel bukan sekadar grafik di bagian bawah halaman. Flywheel adalah sinyal pelatihan bagi seluruh engine.

Bagi investor, inilah benteng datanya. Kami tidak hanya memiliki game yang dihasilkan. Kami memiliki game yang dihasilkan beserta metrik engagement nyata pada tingkat sesi, yang terhubung dengan prompt yang menghasilkannya, terhubung dengan pilihan aset yang dibuat agen, dan terhubung dengan pemain yang menyukainya. Setiap siklus memperkuat siklus berikutnya.

10. Engine menjadi sebuah game

Inilah bagian yang sudah saya isyaratkan di media sosial selama berbulan-bulan. Semua yang dijelaskan pada bagian 1 hingga 9 menggambarkan sistem yang membangun game. Hal yang lebih sulit dijelaskan, sampai Anda melihatnya sendiri, adalah apa yang terjadi ketika sistem tersebut menjadi sebuah tempat.

Membuat game adalah pekerjaan berat, bahkan dengan semua yang telah kami hadirkan. Jika Anda belum pernah membuat game, mendadak Anda bertanggung jawab atas plot, karakter, dunia, mekanik, siapa melakukan apa dan kapan, bagaimana cahaya berperilaku, bagaimana lapisan efek khusus disusun, musik, efek suara, dan pergerakan kamera. Itu banyak sekali. Di atas semua itu, Anda ingin hasilnya terasa seperti milik Anda, bukan seperti template yang dimuntahkan alat milik orang lain. Prompt dan orkestrator menangani sebagian besar pekerjaan mekanis untuk Anda. Hal yang tidak dapat mereka lakukan sendiri adalah memberikan panggung bagi karya Anda yang sudah selesai, dengan orang lain menyaksikannya.

Jadi, kami membangun panggungnya. Hampir sepanjang tahun ini, Oleg dan tim engine telah memublikasikan pekerjaan tersebut dalam seri 14 bagian tentang menghadirkan open world di browser. Medan pahatan yang dapat Anda ukir secara real time. Bioma yang otomatis mengecat dirinya sendiri menjadi batu atau rumput berdasarkan kemiringan dan ketinggian. 80.000 helai rumput yang melentur tertiup angin di atas medan hasil komputasi. Karakter yang berjalan, berlari cepat, melompat, dan melayang melintasi medan heightmap dan volumetrik dalam langkah yang sama. Semua itu bukanlah demo teknologi demi demo itu sendiri. Semua itu adalah fondasi untuk ini.

Kini open world tersebut sudah tayang dalam bentuk awal. Anda mengenakan avatar dan masuk ke dalamnya. Game yang Anda publikasikan muncul sebagai ruang yang dapat dikunjungi di sekitar Anda, seperti reel etalase dan peringkat Top Performers menampilkannya sekarang, tetapi Anda tiba dengan berjalan kaki alih-alih menggeser layar. Anda dapat masuk ke game milik orang asing langsung dari dunia tersebut tanpa meninggalkan dunia itu. Anda dapat berdiri di samping orang yang membuat karya yang baru saja Anda mainkan dan memberi tahu mereka apa yang akan Anda tambahkan selanjutnya. Anda dapat memahat sebidang medan bersama seseorang yang baru Anda temui dan mengubahnya menjadi benih proyek baru. Penemuan tidak lagi berupa feed. Penemuan menjadi sebuah perjalanan.

Engine kami selalu merupakan game engine dalam arti teknis. Kini engine tersebut juga menjadi game dalam arti harfiah. Sesuatu yang membangun game Anda kini menjadi game itu sendiri, dan orkestrator yang sama dari bagian 3, jalur aset yang sama dari bagian 4, kontrak getGameState yang sama dari bagian 6, reel yang sama dari bagian 8, serta peringkat yang sama dari bagian 9, semuanya berpadu menjadi satu tempat tempat para pemain Anda berjalan-jalan. Batas antara membuat dan bermain sejak awal memang artifisial. Kini batas itu telah hilang.

Hal-hal yang menurut kami berhasil kami lakukan dengan benar

Hal pertama yang kami lakukan dengan benar adalah memperlakukan prompt sebagai kemudahan UI, bukan sebagai produk. Produknya adalah orkestrator, permukaan alat, jalur aset, dan etalase. Prompt adalah cara termurah untuk membawa pengguna masuk ke dalam sistem.

Hal kedua adalah bersikeras menggunakan filesystem datar yang native bagi browser tanpa langkah build. Itulah sebabnya satu game Cinevva dapat dirilis ke perangkat seluler, desktop, Steam, dan Discord dari satu sumber kebenaran. Itulah sebabnya agen dapat membaca apa yang ditulisnya.

Hal ketiga adalah kontrak bahwa setiap game yang dihasilkan mengimplementasikan getGameState dan setGameState. Satu baris dalam prompt sistem itu membuat agen terasa seperti kolaborator, bukan generator kode. Agen dapat bermain, dan sistem yang dapat bermain juga dapat melakukan debugging.

Hal keempat adalah menghubungkan etalase ke dalam siklus yang sama dengan engine. Kami tidak akan menang hanya dari kualitas model mentah. Tidak ada keunggulan yang dapat dipertahankan hanya dengan berada dua bulan di depan generator open-weights. Kami menang ketika agen yang sama yang membangun game Anda juga memublikasikannya, mengukurnya, dan belajar dari cara orang asing memainkannya.

Jika Anda ingin melihat seluruh mesin ini bergerak, prompt di halaman beranda tetap menjadi pintu masuknya. Ketik satu kalimat. Lihat apa yang terjadi di baliknya. Lalu kembali ke sini dan beri tahu kami bagian engine mana yang perlu kami ulas berikutnya.