5 Maret 2026 · Mikhail Vasiliev

Devlog Nexus: prototipe mesin

Watch on YouTube

Satu setengah bulan lalu saya memublikasikan rencana studio di situs - tentang mesin Nexus: apa itu dan proyek apa saja yang akan kami buat di atasnya, sampai ke strategi dan kelanjutan seri Mesir kami. Di sana juga ada peta jalannya. Mesinnya rumit, dan untuk menekan risiko saya ingin merakitnya sedikit demi sedikit. Tapi para pemain berkata terus terang di kolom komentar: merakit yang seperti ini mustahil. Karena itu saya memutuskan mulai dari prototipe - untuk menunjukkan bahwa mesin seperti itu ternyata bisa dirakit. Itulah yang akan saya tunjukkan.

Menu prototipe: mesin menawarkan untuk memilih satu dari empat simulasi - Stone Age, Slay the Spire, generator sistem bintang, dan Oregon Trail

Beginilah tampilan mesinnya saat ini. Sekilas ini cuma aplikasi konsol yang cukup sederhana. Tapi ia menunjukkan hal yang paling penting dengan baik - bahwa mekanik yang berbeda-beda berjalan pada satu mesin universal.

Saat ini ada empat simulasi yang berjalan di atasnya. Yang pertama Stone Age, game studio yang paling pertama, dari tahun 2013. Tiga sisanya dibuat berdasarkan proyek orang lain. Saya tidak bermaksud menyalin atau merilisnya, semuanya ada di sini hanya untuk menunjukkan bahwa mekanik game yang benar-benar berbeda bisa berjalan pada satu mesin.

Stone Age

Stone Age direproduksi di mesin secara utuh. Karakteristik, tahun dan giliran, populasi, wilayah, semuanya sama. Pekerja kamu kirim ke hutan, mereka mengumpulkan makanan, populasi bertambah, teknologi pun bermunculan - kamu meneliti teknologinya, membuka bangunan dan pohon evolusi, dari Australopitekus ke Homo habilis dan seterusnya. Peristiwa, akhir cerita - semua dari versi aslinya ada di sini.

Konsol prototipe: Stone Age - karakteristik suku, wilayah, menu teknologi dan evolusi

Slay the Spire

Berikutnya Slay the Spire, roguelike kartu yang bagus, sebagian dari kamu pasti pernah memainkannya. Di mesin ini cuma bagian pertarungannya: pemain punya kartu, energi, dan nyawa, sedangkan musuh punya niatnya sendiri. Strike (Serang) memukul, Defend (Bertahan) memasang blok. Kamu memakai energi, mengakhiri giliran, dan begitu seterusnya bergantian sampai ada yang menang.

Konsol yang sama menjalankan Slay the Spire - nyawa, energi, niat musuh, dan kartu di tangan

GURPS

Simulasi ketiga adalah GURPS, sebuah sistem permainan meja yang cukup rumit. Dari situ saya hanya mengambil satu modul, yaitu generator sistem bintang. Menariknya, modul ini sendiri sama sekali bukan game, melainkan sebuah generator yang rumit. Ia merakit sebuah sistem dengan satu bintang dan segudang properti: sepuluh orbit, dengan berbagai dunia di atasnya. Yang pertama, kecil dan berbatu, mirip Merkurius - lengkap dengan massa, tekanan atmosfer, dan sisanya. Secara keseluruhan, simulasi ini memuat lebih dari enam ribu fakta. Ini uji beban yang baik: kelihatan seberapa banyak data yang sanggup ditangani mesin.

Sistem bintang yang dibuat di modul GURPS - bintang, orbit, dan properti dunia pertama

Oregon Trail

Yang keempat Oregon Trail, klasik tahun 1971 dan salah satu game komputer paling awal. Ini soal perjalanan para perintis melintasi Amerika dengan gerobak: sebelum berangkat kamu membeli persediaan - lembu, makanan, peluru, pakaian - lalu kamu berburu, membagi jatah makan, dan menangani berbagai peristiwa. Nah, kami baru saja diserang. Dan begitu seterusnya sampai akhir perjalanan.

Oregon Trail di konsol yang sama: persediaan - makanan, peluru, pakaian, uang - dan pilihan tindakan saat bertemu para penunggang kuda

Keempat game ini berjalan pada satu mesin, dan tidak satu pun yang perlu ditulis kodenya.

Mengubah saat berjalan

Tapi mesin ini tidak cuma menjalankan game-game tersebut - kamu bisa mengubahnya langsung saat berjalan, tanpa menyentuh kode. Ambil contoh Slay the Spire.

Giliran pembuka Slay the Spire di mesin: nyawa, energi, musuh, dan lima kartu di tangan - damage Strike (Serang) masih 6

Saya akan mengubah damage kartu Strike (Serang), saya setel jadi 100:

/set Strike.CalcDamage Value 100

Propertinya langsung berubah pada kedua kartu itu, karena keduanya satu kelas.

Dua kartu Strike (Serang) di tangan, keduanya kini berdamage 100 - propertinya berubah sekaligus pada semua kartu sekelas itu

Bisa juga menambahkan kartu yang benar-benar baru, Fireball (Bola Api):

/add Fireball Is DirectDamage
/set Fireball.CostEnergy Value 2
/add Fireball Has CalcDamage
/set Fireball.CalcDamage Value 20
/add Fireball Has ApplyDamage
/add Fireball.ExecutionEffects Has CostEnergy
/add Fireball.ExecutionEffects Has CalcDamage
/add Fireball.ExecutionEffects Has ApplyDamage

Tadinya tidak ada, dan sekarang sudah ada di game - berada di tangan, bisa dimainkan, memberi 20 damage, lalu masuk ke tumpukan buangan, seperti kartu biasa:

Setelah diubah: kedua kartu Strike (Serang) kini berdamage 100, dan di tangan muncul kartu baru Fireball (Bola Api) berdamage 20

Aturannya sendiri juga bisa diubah, cukup satu perintah. Saya akan menghapus aturan yang membuat kartu yang sudah dimainkan masuk ke tumpukan buangan.

/remove PlayCard Has MovePlayedCard

Sekarang kartunya tetap di tangan. Saya memainkan Defend (Bertahan): bloknya terpasang, energinya terpakai, tapi kartunya tetap tinggal.

Setelah aturan diubah: Defend (Bertahan) sudah dimainkan - energi 0/3, blok 5 - tapi semua kartu yang dimainkan tetap di tangan, ditandai [X]

Pada game biasa yang ditulis dengan bahasa pemrograman, untuk ini kamu harus masuk ke kode dan merakit ulang proyeknya. Di sini hal itu tidak perlu.

Dengan cara yang sama, ke dalam game bisa ditambahkan hal yang sebelumnya sama sekali tidak ada. Misalnya emas - saya akan membuatnya dan menjelaskan bagaimana ia dipakai:

/set Player.Gold Value 100
/add CostGold Output Owner.Gold
/add CostGold Math.Subtract.Apply true

Muncul sebuah karakteristik yang tadinya tidak ada - emas, dan langsung seratus penuh.

Di baris status muncul emas - langsung seratus - sebuah karakteristik yang tadinya tidak ada di game

Dengan emas itu bisa dibuat juga tindakan baru - Bribe (Suap). Tindakan ini tidak memakai energi, melainkan emas:

/add Bribe Is DirectDamage
/set Bribe.CostEnergy Value 0
/set Bribe.CostGold Value 30
/add Bribe Has CalcDamage
/set Bribe.CalcDamage Value 15
/add Bribe Has ApplyDamage
/add Bribe Has CostGold
/add Bribe.ExecutionEffects Has CostGold
/add Bribe.ExecutionEffects Has CalcDamage
/add Bribe.ExecutionEffects Has ApplyDamage
/create Bribe Player.Hand

Bribe (Suap) berbiaya tiga puluh emas dan memberi lima belas damage - dan langsung berfungsi.

Di tangan muncul tindakan baru, Bribe (Suap): nol energi, tiga puluh emas, dan lima belas damage

Mungkin kelihatannya ini cheat dan mengetik perintah seperti ini merepotkan. Tapi ini bukan cheat. Ini adalah penyuntingan fakta logis dan data yang menjadi tumpuan seluruh game - objek, properti, dan mekaniknya. Pada dasarnya ini adalah bahasa tempat game itu ditulis.

Mempelajari bahasa ini tidak wajib. Kamu bisa meminta AI menerjemahkan kalimat biasa menjadi perintah yang dipahami Nexus. Misalnya:

give 999 gold

Diterjemahkan, ini cuma berarti "Tambahkan 999 emas".

Permintaan ke AI dengan kata-kata biasa - "give 999 gold". Mesin sendiri yang akan memilih perintah yang tepat dan menjalankannya

AI-nya berpikir, menemukan perintah yang tepat, lalu menjalankannya, dan emas kita pun jadi 999.

Bisa juga diungkapkan dengan cara lain, "emas 100" - juga berfungsi. "Jadikan aku dewa" - AI memberi kekebalan. Mengakhiri giliran, menyerang, menyembuhkan diri - semua itu bisa dilakukan dengan kata-kata, mesinnya paham. Dan tidak ada satu pun dari ini yang diskrip, semuanya berjalan sungguhan.

Rencana

Saya ingin menyederhanakan perintah-perintahnya. Saat ini, untuk membuat Fireball (Bola Api) yang tadi saja perlu sekitar delapan perintah, dan saya berpikir untuk memangkasnya jadi tiga atau empat. Lalu di video berikutnya saya akan berusaha menunjukkan sesuatu yang lebih nyata - render 2D.

Selengkapnya tentang mesin ini dan rencananya ada di bagian Nexus.

Disclaimer: Stone Age adalah game studio. Slay the Spire, GURPS, dan Oregon Trail adalah milik pemegang haknya masing-masing dan ditampilkan hanya sebagai demonstrasi mesin - build ini tidak didistribusikan di mana pun.