
Cara kerja Nexus
Kerumitan datar
Pendekatan klasik terhadap game dibangun di sekitar sistem kaku: setiap mekanik - kode tersendiri, setiap koneksi antar mekanik - kode tambahan lagi. Bahkan sandbox tetap kumpulan sistem terpisah. Keragaman bertambah, tapi arsitektur tidak berubah - dan kerumitan pengembangan tumbuh bersamanya.
Nexus dirancang berbeda. Elemen dasar permainan - atom yang menjadi bahan dasar segalanya. Menambahkan mekanik baru tidak menambah kerumitan arsitektur.
Jutaan elemen, tapi arsitektur tidak bertambah rumit karenanya. Sistem bisa diskalakan - ke mekanik, aturan, dan dunia dengan kerumitan apapun.
Jaringan semantik
Nexus menyimpan data sebagai triplet (fakta) - pernyataan sederhana berformat "subjek → predikat → objek". Dalam satu format yang sama, baik fakta tentang dunia maupun aturan mekanik dideskripsikan:
- Apel → adalah → dapat dimakan (fakta tentang dunia)
- Rusa → adalah → herbivora (fakta tentang dunia)
- Serangan → memberikan damage → 6 (aturan mekanik)
- Racun → mengabaikan armor → ya (modifikasi aturan)
- Rumput → tumbuh → saat kelembapan di atas level tertentu (fakta tentang dunia)
- Sindikat → menguasai → distrik kota (fakta tentang dunia)
Data dan aturan ditulis dalam format yang sama, dalam satu graf. Melalui triplet, semua hal dideskripsikan: objek, properti, kondisi, hubungan, tindakan, teknologi, sihir. Ini perbedaan utama dari pendekatan klasik, di mana data dan logika hidup terpisah.
Dunia bertumpu pada banyak fakta: hewan, teknologi, benda, bangunan, peristiwa sejarah - dari prinsip umum hingga detail spesifik.
Interpreter
Interpreter memproses triplet dan menarik kesimpulan dari fakta:
- Apel → adalah → buah
- Manusia → bisa makan → buah
- Kesimpulan: manusia bisa makan apel
Kesimpulan dibangun dengan mencocokkan fakta. Rantainya bisa panjang. Berikut contoh yang lebih kompleks:
- Goblin → adalah → makhluk
- Makhluk → memiliki → kesehatan
- Kesimpulan: goblin memiliki kesehatan
- Serangan → memberikan → damage
- Damage → mengurangi → kesehatan
- Kesimpulan: serangan bisa melukai goblin
Menambahkan racun dengan predikat damage - racun otomatis bekerja terhadap semua yang memiliki kesehatan.
Interpreter bekerja dengan permintaan terformalkan, bukan bahasa alami.
Graf pengetahuan
Objek dan properti dunia perlu dideskripsikan secara fleksibel, tanpa hardcode.
Fondasinya - entitas: karakter, benda, hewan, organisasi, kapal, tanaman. Setiap entitas dihubungkan dengan fakta melalui predikat.
Setiap predikat mengekspresikan satu koneksi atau satu properti:
- "Adalah" (klasifikasi: goblin → makhluk)
- "Memiliki" (kepemilikan: makhluk memiliki kesehatan)
- "Damage" (dampak: serangan memberikan 6)
- "Biaya" (pengeluaran: serangan memakan 3 mana)
- "Penyerapan" (pertahanan: perisai memblokir 5)
- "Hubungan" (relasi: goblin membenci manusia)
Serangan memiliki predikat Damage = 6. Perisai memiliki predikat Penyerapan = 5. Mesin menyimpulkan: 6 - 5 = 1 masuk ke kesehatan. Satu mekanik untuk sumber damage apapun dan pertahanan apapun - pedang, racun, api, mantra.
Properti membentuk jaringan di mana setiap simpul - satu fakta. Aturan dan interaksi hidup sebagai data, bukan tertanam dalam kode.
Untuk performa, digunakan caching, indeks, dan detailisasi adaptif (LOD).
Aturan sebagai pola
Data dan logika - belum menjadi game. Untuk gameplay dibutuhkan lapisan aturan. Dalam pengembangan klasik, aturan adalah kode: setiap mekanik ditulis oleh programmer. Di Nexus, aturan dideskripsikan dengan triplet yang sama seperti data.
Fondasinya - pola universal yang berlaku untuk semua genre. Dampak: pedang memberikan damage ke kesehatan, karat merusak keawetan, inflasi menggerus daya beli. Pengeluaran: serangan memakan mana, pembangunan memakan kayu, perjalanan memakan bahan bakar. Penyerapan: perisai memblokir damage, kontra-argumen menangkis tuduhan, asuransi menanggung kerugian.
Desainer mendeskripsikan apa yang terjadi, bukan bagaimana caranya. "Serangan memberikan 6 damage" - satu triplet. Mesin sendiri menentukan: damage melewati penyerapan, sisanya masuk ke kesehatan. Rumus tidak ditulis untuk setiap tindakan - ia mengikuti pola.
Pola bisa dikombinasikan secara bebas. Game kartu menggunakan dampak dan penyerapan. Strategi menggunakan pengeluaran dan akumulasi. RPG menggabungkan semuanya.
Game baru - itu entitas baru dan kombinasi pola baru.
Agen
Entitas bisa dideskripsikan sebagai agen - dengan kondisi dan aturan perilaku sendiri. Ini properti opsional. Musuh dalam game kartu memilih tindakan sendiri. Penyerang dalam strategi menyerang saat kondisi memungkinkan. Pedagang dalam RPG berpindah antar kota. Agen:
- Mempersepsi dunia dalam batas pengetahuannya
- Mengevaluasi tindakan yang tersedia
- Mengambil keputusan berdasarkan tujuan dan aturan dunia
Agen dideskripsikan dengan triplet yang sama seperti semua hal lainnya. Pandai besi tahu menempa (fakta), butuh bijih (fakta), bijih ada di tambang (fakta). Dari fakta-fakta ini, interpreter menyimpulkan tindakan: pergi ke tambang, menambang bijih. Tambang kebanjiran - pandai besi tidak bisa menambang bijih - mencari pedagang - membeli. Perilaku muncul dari rantai fakta.
Skala tanpa kehilangan logika
Dalam simulasi mendalam, dunia bisa mengandung proses dalam jumlah besar: dari migrasi hewan dan pertumbuhan kota hingga dinamika sistem bintang. Menghitung ulang semuanya tidak mungkin dan tidak perlu - pemain selalu mempersepsi dunia secara subjektif dan terbatas.
Dunia diorganisasi sebagai peta dari hex. Setiap hex menyimpan properti sesuai skalanya: di level planet - iklim dan sumber daya, di level regional - kota dan jalan. Klik pada hex membuka level berikutnya - di dalamnya peta baru dengan properti yang lebih detail. Algoritma sama di semua level - dari sistem bintang hingga bangunan individual.
Waktu dan ruang
Untuk periode panjang, sistem bisa menggunakan model statistik, bukan perhitungan per langkah. Bisa berpindah waktu tanpa menyimulasikan setiap momen. Misalnya, dalam seribu tahun hutan bisa tumbuh atau menghilang, sungai bisa berubah aliran, pemukiman bisa berkembang atau ditinggalkan. Tren dan koneksi tetap terjaga.
Penskalaan ruang menentukan level entitas dan proses. Pada skala besar - iklim, migrasi, politik. Pada skala lokal - entitas individual dan propertinya. Logika sebab-akibat sama di semua level.
Abstraksi menampung dunia berskala apapun: desa, planet, galaksi. Detail muncul saat menjadi signifikan. Sisanya dideskripsikan secara ringkas, tapi dengan koneksi yang tetap terjaga.
Pemain bisa mendalami susunan dunia, mempelajari entitas dan menelusuri propertinya - mirip navigasi melalui sistem referensi.
Materialisasi dunia
Dunia dibangun seiring eksplorasi. Selama pemain belum mengunjungi lokasi, lokasi itu ada sebagai data dan aturan. Objek muncul saat berinteraksi, bukan disimpan sebelumnya.
Di luar pengamatan, event ditentukan oleh probabilitas, bukan simulasi penuh. Dunia terlihat utuh, meskipun detail diciptakan sesuai permintaan.
Setelah berinteraksi dengan lokasi, kondisinya disimpan dan tidak dihitung ulang.
Pada rentang waktu panjang, tren statistik bekerja. Setelah seribu tahun dari awal, sistem memutuskan berdasarkan probabilitas: spesies mana yang bertahan, bagaimana iklim berubah, di mana pemukiman muncul.
Permainan online
Permainan online bekerja dengan prinsip yang sama. Server menyimpan data, aturan, dan apa yang sudah ditemukan pemain.
Jika beberapa pemain berada di area yang sama - server menghimpun kondisi bersama dan menyinkronkannya di antara mereka.
Di luar area permainan, dunia tetap potensial - aturan dan tren, tanpa detail.
Arsitektur jaringan dasar sudah berfungsi: setiap pemain mendapat sesi terisolasi, yang bisa diikuti pemain lain dengan kode. Tindakan disinkronkan secara real-time.
Arsitektur sebagai bahasa
Data, aturan, antarmuka, dan perilaku agen - satu format. Entitas tidak saling mengetahui, koneksi muncul otomatis melalui predikat bersama.
Bagaimana ini bekerja dalam praktik? Hutan - entitas dengan fakta: memiliki kayu, merupakan tempat berlindung, mudah terbakar. Kapak memiliki predikat Tebang. Tebang bekerja pada kayu. Api bekerja pada benda mudah terbakar. Kekeringan meningkatkan kemudahan terbakar. Setiap fakta - satu baris. Hutan tidak tahu tentang kapak, kapak tidak tahu tentang hutan. Koneksi muncul otomatis melalui predikat bersama. Menambahkan pemotong laser dengan predikat Tebang - ia bekerja terhadap hutan. Menambahkan pengeboman planet dengan predikat Api - hutan terbakar.
Jika situasi permainan bisa dideskripsikan dengan kata-kata - ia berfungsi di Nexus.
