Kata pengantar penerjemah: "BOLT adalah mesin game rantai penuh yang dikembangkan oleh tim Magicblock untuk ekosistem Solana. Artikel ini disusun dari presentasi kedua pendiri Magicblock di event Breakpoint 2023. "
Halo semuanya, ini adalah pidato terakhir sebelum Halloween, dan saya harap isi pidatonya menarik bagi semua orang. Nama saya Andrea dan saya adalah salah satu pendiri saya, Gabriele. Hari ini, kami akan memperkenalkan kerangka kerja game rantai penuh baru (mesin).
**01.Mengapa Anda membutuhkan permainan rantai penuh **
Saya akan mulai dengan dasar-dasarnya, itulah sebabnya repot-repot membangun game rantai penuh dengan state dan logika on-chain, dan berurusan dengan semua kompleksitas yang menyertainya. Alasan sederhananya adalah untuk mendapatkan fitur yang tidak dimiliki infrastruktur game tradisional.
Fitur pertama adalah mod tanpa izin. Ini berarti bahwa semua pemain dan pengembang dapat menyesuaikan komponen apa pun dalam game, termasuk memperkenalkan plugin atau mod, mulai dari klien tingkat lanjut. Bahkan logika yang mendasari permainan dapat diperluas melalui kontrak pintar. Pada dasarnya, ini adalah mode baru di mana setiap game adalah platform baru secara default, dan Anda dapat menjadi Content Powerhouse tidak peduli seberapa kecil tim Anda.
Karakteristik kedua adalah Persistency. Dunia otonom dan fakta bahwa pengalaman virtual ini dapat ada selamanya telah menyebabkan banyak dampak. Karena tidak ada server yang dapat disensor atau dimatikan, pengalaman ini benar-benar memperkenalkan makna yang sama sekali baru. Game telah menjadi platform bagi pemain untuk bermain, bersosialisasi, dan melakukan perdagangan global, yang lebih universal daripada platform game tradisional.
Fitur terakhir adalah ekonomi terbuka. Game dapat memanfaatkan sistem pembayaran global tanpa gesekan terbuka blockchain, terutama pembayaran mikro di ekosistem kami, dan menggunakan kembali infrastruktur on-chain yang ada seperti DEX atau pasar NFT.
02.Solusi yang Sudah Ada
Masalah saat ini dengan game omnichain adalah bahwa pengalaman pengembangannya sangat buruk, dan kami melihat solusi di pasar dan menemukan bahwa ada beberapa kerangka kerja pengembangan yang mencoba menyederhanakan pengalaman pengembang.
Beberapa dari mereka sangat menarik karena mereka mencoba mengulangi sesi yang dapat dibuktikan, di mana Anda dapat melakukan perhitungan off-chain dan membuktikan integritas komputasi on-chain. Atau perkenalkan runtime berbasis peristiwa yang lebih cocok untuk mesin game blockchain, daripada runtime berbasis loop.
Tetapi semua kerangka kerja ini membutuhkan trade-off antara kinerja dan komposabilitas untuk mencapai kinerja yang lebih tinggi dan TPS yang lebih tinggi. Biasanya, Anda akan membuat isolasi atau memperkenalkan runtime yang berbeda dengan pecahan.
Tapi kami tidak senang dengan trade-off itu. Kami bertanya pada diri sendiri, bagaimana jika ada kerangka kerja yang dapat mendukung TPS yang kami butuhkan? Ketika game Anda berhasil, Anda tidak perlu mengorbankan pengalaman pengguna mereka, bahkan dengan jutaan pemain, karena perang gas tidak akan terjadi. Dan kerangka kerjanya tidak memerlukan sharding dan fragmentasi, sehingga Anda dapat menggunakan sesi permainan yang dapat dibuktikan dan bahkan mensimulasikan berlalunya waktu tanpa membayar biaya gas. Tidak perlu memecah sistem atau menggunakan Layer 3 sama sekali.
03.Mesin pengembangan game rantai penuh di Solana: BOLT
Itulah sebabnya kami sangat senang memperkenalkan BOLT, kerangka kerja pengembangan game rantai penuh berkinerja tinggi, dapat disusun, berdasarkan SVM.
BOLT bersifat modular dan composable, memungkinkannya untuk menggunakan semua infrastruktur yang ada di Solana. Dia bekerja dengan fasilitas on-chain kami yang ada seperti identitas on-chain, API tanpa gas, kunci sesi, serta kerangka kerja pengembangan Anchor yang ada dan semua program yang ada di Solana. Keduanya dapat menskalakan pada urutan besaran yang lebih tinggi berkat Ephemeral Rollups, yang merupakan sesi permainan yang dibuka dan ditutup sesuai permintaan pengguna, dan diskalakan sesuai kebutuhan.
BOLT secepat kilat, dan kami dapat mencapai tingkat kinerja yang sama dengan mesin game tradisional sebelum menggunakan runtime khusus ini untuk mempercepat operasi tertentu.
Ini adalah tampilan panorama bingkai BOLT. Dia jelas dibuat untuk Solana, tetapi dia dapat menggunakannya pada platform apa pun yang kompatibel dengan SVM, seperti Layer 2 yang kompatibel dengan SVM. BOLT memiliki dua tujuan utama, komposabilitas dan skalabilitas.
Sistem ECS (Komponen Entitas) adalah salah satu cara kami menyederhanakan penggunaan komponen on-chain. Yang lainnya adalah Ephemeral Rollup, yang telah disebutkan secara singkat sebelumnya, dan saya akan menyelami kedua teknologi ini sebentar lagi.
Bolt telah terintegrasi dengan mesin game lawas yang paling umum digunakan, seperti Unity, yang sering berfungsi sebagai front-end game. Tentu saja, ini juga termasuk mesin game open-source dan tercinta lainnya seperti Godot dan Phaser. Kami bahkan bekerja dengan klien game yang diperbarui, Turbo, yang berfokus pada peningkatan pengalaman bagi pengembang indie dan memfasilitasi pembuatan game yang cepat. Mungkin ada lebih banyak mitra di masa depan.
Saya akan mulai di sini dan terus menjelaskan mengapa kita membutuhkan sistem komponen entitas ECS. Jawabannya sederhana, karena ia memungkinkan komposabilitas maksimum, yang berarti kita dapat membuat dan menggunakan kembali komponen yang sudah jadi.
Seperti namanya, ECS dibangun menjadi tiga elemen utama: entitas, yang pada dasarnya adalah pengidentifikasi yang terdaftar ke instance dunia permainan yang terpisah, komponen, yang mendefinisikan struktur data sehingga pada dasarnya mereka adalah data yang terkait dengan entitas, dan akhirnya sistem, yang merupakan logika yang memanipulasi komponen yang melekat pada entitas.
Keuntungan dari arsitektur ini adalah bahwa semua sistem dan komponen dapat digunakan kembali. Mereka dapat dipublikasikan di registri publik, dan pengembang dapat dengan mudah berkontribusi, membangun, menemukan, dan mengintegrasikan semua jenis komponen, sehingga Anda tidak perlu menulis satu baris kode dari awal lagi, tetapi dapat menggunakan kembali semua komponen yang ada dan akhirnya berkontribusi pada mereka. Misalnya, kita dapat memiliki struktur data grid (seperti labirin atau medan perang), sistem bergerak, atau sistem bukti tanpa pengetahuan untuk kabut perang.
04.Praktik Pemrograman ECS Mesin BOLT
** (Catatan penerjemah: Bagian ini disarankan bagi pengembang untuk menonton video asli, non-pengembang dapat melewati bagian ini) **
SEKARANG, SAYA AKAN BERALIH KE IDE SAYA DAN MENUNJUKKAN CONTOH PERMAINAN SEDERHANA MENGGUNAKAN MESIN BOLT ECS.
Kita akan mendefinisikan beberapa entitas, komponen lokasi, dan dua sistem yang akan memanipulasi dan mengubah data untuk komponen lokasi ini. Jadi, titik masuk pertama adalah berinteraksi dengan Program Dunia. Program Dunia adalah bagian dari kerangka kerja BOLT dan memaparkan beberapa ekstraksi yang memungkinkan Anda mendaftarkan Instans Dunia baru.
Anda dapat menambahkan entitas ke Instans Dunia Anda, dan Anda dapat mendaftarkan komponen dengan entitas yang baru saja Anda tentukan, yang pada dasarnya ditentukan oleh program komponen. Program komponen berisi dua arahan, yang pertama adalah menginisialisasi, membuat, dan mengalokasikan ruang untuk menyimpan baris data yang akan digunakan dalam komponen Anda. Dalam contoh sederhana ini, kita mendefinisikan komponen lokasi, dan jika kita melihat konteks direktif inisialisasi, kita dapat melihat bahwa kita memiliki data komponen, dan data komponen hanya mendefinisikan struktur dengan koordinat XYZ yang dapat menyimpan misalnya lokasi pemain.
Sekarang, arahan kedua mungkin yang paling menarik, ini adalah titik masuk yang memungkinkan kita untuk mengeksekusi logika apa pun. Dia akan menerima komponen dan sistem sewenang-wenang kami sebagai input, dan menjalankan logika yang didefinisikan secara internal dalam sistem dengan mengeksekusi di seluruh lokasi pemrograman. Sekarang, jika Anda melihat baris 15, kita memiliki panggilan CPI (Common Programming Interface) kita, yang akan mengeksekusi logika yang didefinisikan secara internal melalui CPI. Dia akan melakukan semua perhitungan yang ditentukan oleh sistem dan kemudian kembali ke lokasi kita, di mana program komponen akan mengambil dan mengaturnya kembali ke data kita.
Sekarang, mari kita coba melihat konteks fungsi apply kita, di mana kita dapat melihat bahwa pada dasarnya kita hanya memiliki dua akun. Yang pertama adalah akun yang berisi data komponen kami, dan yang kedua adalah program sistem. Akibatnya, program sistem sekarang menjadi antarmuka daripada program tunggal. Oleh karena itu, program apa pun yang mematuhi antarmuka sistem BOLT kami dapat dijalankan melalui aplikasi ini.
** 05.Signifikansi sistem ECS **
Pada dasarnya, ini mengubah cara Anda merancang logika permainan Anda dan mengubah proses tradisional di kepalanya. Sebelumnya, jika Anda ingin membuat atau merangkum beberapa logika dalam program Anda, Anda biasanya akan menambahkan fitur terlebih dahulu, yang masing-masing merupakan arahan dalam program, dan akhirnya pada titik tertentu, Anda akan mengunci program game yang Anda kembangkan.
Namun, dengan model ECS, kita dapat memiliki program yang tidak dapat diubah sejak awal, dan kemudian dengan mekanisme proxy ini, kita dapat menambahkan sistem yang dibangun sendiri atau oleh siapa saja, sehingga kita dapat memiliki permainan yang dapat berjalan selamanya, terukur, dan siapa pun dapat benar-benar mengubah logika permainan.
Mereka dapat menyebarkan sistem baru yang akan beroperasi pada komponen-komponen tersebut. Sekarang, antarmuka juga memungkinkan Anda untuk melakukan beberapa pemeriksaan, sehingga kami dapat merancang mekanik game yang membuatnya tanpa izin untuk menambahkan sistem baru yang dapat memodifikasi data komponen.
Atau kita dapat mengatur antarmuka untuk memeriksa apakah sistem memungkinkan eksekusi pada komponen. Misalnya, Anda dapat merancang sistem tata kelola di mana jika seseorang mengusulkan logika baru, dan logika itu disetujui, maka semua pemain dapat menggunakan logika itu dalam permainan.
Ini bahkan dapat menyebabkan percabangan di dunia game (Kontrak Dunia). Di dunia, Anda memiliki sistem penerbangan. Dan di dunia lain, jika sistem tidak disetujui, dimungkinkan untuk memiliki aturan yang berbeda dan setiap orang masih dapat berkontribusi pada versi dunia mereka sendiri.
Sekarang mari kita lihat bagaimana membangun sistem yang dapat memodifikasi komponen itu. Sistem pada dasarnya hanyalah sebuah program di Solana yang mendefinisikan instruksi eksekusi, dan instruksi eksekusi adalah yang kita panggil dari program komponen di CPI (Common Programming Interface). Di sini, ia hanya merangkum logika yang sangat sederhana di mana ia menerima arah input, menghitung delta, dan kemudian mengubah posisi X dan Y komponen.
Jadi mari kita lihat sistem lain yang bisa digunakan oleh orang lain, bahkan setelah kami merilis game. Berikut adalah contoh lain dari sistem yang mengimplementasikan ute. Di sini, posisi Z meningkat 1, jadi seseorang mencoba menambahkan sistem mengapit, yang bisa menjadi antarmuka dengan lapisan berbeda di atas permainan Anda.
Jadi, idenya sekarang adalah bahwa semua sistem ini, semua komponen ini benar-benar dapat disusun, pengguna game bukan lagi pengguna sederhana, game telah menjadi platform yang terbuka, terukur, dan persisten. Jadi saya akan mencoba menjalankan tes unit yang saya siapkan dalam contoh ini, dan saya akan menggunakan BOLT CLI, yang dibangun di atas Anchor, kerangka kontrak pintar untuk Solana, jadi jika Anda sudah terbiasa dengan Solana, Anda tidak perlu mempelajari sesuatu yang baru.
Sekarang, Anda dapat mengembangkan program di Solana, cukup kembangkan program, program uji, jadi di sini saya menjalankan bolt build dan bolt test, dan di sini saya menyebarkan program kami, dan kemudian saya melakukan tes tipe yang telah saya siapkan di sini.
Jadi, di sini tesnya mengirim transaksi untuk menginisialisasi dunia baru. Kami mendaftarkan beberapa entitas, kami melampirkan komponen lokasi ke beberapa di antaranya, dan kemudian mungkin bagian yang menarik adalah melakukan beberapa sistem di sini. Jadi, di sini kita memanggil fungsi apply, dan kemudian kita menggunakan salah satu sistem tersebut. Jadi, inilah hanya sistem default.
Di sini kita menyebut langkah sederhana, dan kemudian kita terbang bergerak di sini. Nah, sekarang, jika kita melihat log tes, pada perdagangan pertama, di sini kita menggunakan sistem bergerak dengan arah ke atas, meningkatkan posisi Y sebesar 1. Dalam transaksi kedua, kami menggunakan sistem yang sama untuk bergerak ke kanan, dan akhirnya, kami menjalankan sistem penerbangan, yang melakukan sebaliknya, meningkatkan posisi Z kami sebesar 1. Ini hanya contoh sederhana, tetapi ia menawarkan mekanik yang sangat kuat yang memungkinkan siapa saja untuk mengembangkan, memperluas, dan berpotensi membuat permainan Anda menyenangkan.
06.Pembatalan singkat
Sekarang kita akan kembali ke slide, saya akan menjelaskan aspek menarik kedua dari kerangka kerja BOLT, yang merupakan solusi skalabilitas kami, yang kami sebut Ephemeral Rollup.
Secara umum diasumsikan bahwa Solana sudah sangat cepat dan murah, dan saat ini menghasilkan blok setiap 400 milidetik dan dapat memproses ribuan transaksi, jadi sebenarnya siap untuk membangun game rantai penuh. Namun, jika Anda memiliki rantai logis lama untuk multipemain, pembaruan lokasi akan terlalu lambat.
Jadi kita dapat membangun lapisan akselerasi berumur pendek yang sepenuhnya kompatibel dengan waktu berjalan Solana. Waktu yang digunakan adalah opsional, ia dapat berfungsi sebagai akselerasi nyata dari operasi tertentu, sementara sebagian besar logika masih dijalankan pada rantai utama, jadi ia mengandalkan fitur bahwa semua status di Solana disimpan di akun.
Biasanya, Anda akan memiliki program permainan yang mendefinisikan logika, dan kemudian semua status akan disimpan di akun ini, sehingga kami dapat mendelegasikan beberapa akun tersebut ke lapisan fana ini yang menggunakan mesin BOLT.
Dalam contoh ini, ada dua akun resmi yang menyimpan lokasi pemain, dan penyedia secara aktif mendengarkan permintaan delegasi dan permintaan provisi. Dia akan memulai run time baru sesuai kebutuhan, yang cepat, dapat disesuaikan, tidak dapat memiliki transaksi gas atau kutu, dan memungkinkan kita untuk benar-benar melakukan transaksi di bawah 50ms, dan mungkin skala dengan memiliki beberapa runtime khusus.
Sekarang, bagian menarik lainnya adalah bahwa semua kompleksitas ini dapat diabstraksikan jauh dari pengguna. Kami memiliki router RPC, yang pada dasarnya mirip dengan router RPC tradisional. Klien RPC dapat berinteraksi langsung dengan RPC untuk mengirim transaksi. Karena di Solana, semua transaksi telah dideklarasikan sebelumnya untuk semua akun yang dapat diubah dan dibaca, router RPC pada dasarnya dapat merutekan transaksi, kueri data, dan pengambilan ke tingkat yang benar.
Kemudian pada titik tertentu, lapisan Ephemeral (seperti namanya) akan ditutup dan semua status akan diselesaikan di lapisan dasar Solana, yang merupakan tanggung jawab sequencer, yang melacak semua akun.
Cara lain untuk melihat mekanisme ini adalah bahwa kita memiliki dua lapisan, dan mereka melakukan transaksi secara paralel. Kami telah mendelegasikan akun yang memungkinkan kami memperbarui dengan latensi lebih rendah tanpa menggunakan throughput rantai utama. Dan kemudian kami memiliki akun lain, yang tidak didelegasikan, dan dieksekusi pada rantai utama.
Sekarang, hal yang sangat menarik adalah bahwa program, alat, kerangka kerja, dan infrastruktur semuanya ada di rantai utama. Anda tidak perlu menyebarkan program Anda di Rollup, meskipun ini umum di banyak arsitektur lainnya. Semuanya berada di lapisan yang sama, semuanya dapat disusun, dan seperti yang kami sebutkan, runtime khusus ini juga dapat diperluas dan dapat benar-benar disesuaikan.
Sekarang, ini membuka kategori permainan yang sama sekali baru, yang ia bangun di blockchain dan latensi rendah. Sama seperti yang Anda lakukan dengan server multipemain tradisional, tetapi masih dapat menggabungkan dengan semua yang tersedia di ekosistem Layer 1.
Anda mendapatkan akses ke likuiditas yang ada, Anda dapat mengirim pesan melalui protokol, mencetak NFT, menggunakan abstraksi akun, kunci sesi, papan peringkat, dan ekosistem terpadu, semua orang memperkaya ekosistem yang sama.
Terima kasih banyak telah mendengarkan. Anda dapat mendaftar untuk akses awal ke kerangka kerja kami menggunakan kode QR dan memeriksa repositori. Anda sudah dapat menemukan dokumentasi dan kertas putih yang kuat yang menjelaskan secara rinci kerangka kerja yang baru saja kami perkenalkan. Terima kasih banyak.
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
BOLT: Mesin game rantai penuh ECS berbasis Solana
Tautan Video:
Pembicara: Andrea, Gabriele, Co-Founder Magicblock
演讲标题:KERANGKA KERJA UNTUK GAME ON-CHAIN
Kata pengantar penerjemah: "BOLT adalah mesin game rantai penuh yang dikembangkan oleh tim Magicblock untuk ekosistem Solana. Artikel ini disusun dari presentasi kedua pendiri Magicblock di event Breakpoint 2023. "
Halo semuanya, ini adalah pidato terakhir sebelum Halloween, dan saya harap isi pidatonya menarik bagi semua orang. Nama saya Andrea dan saya adalah salah satu pendiri saya, Gabriele. Hari ini, kami akan memperkenalkan kerangka kerja game rantai penuh baru (mesin).
**01.Mengapa Anda membutuhkan permainan rantai penuh **
Saya akan mulai dengan dasar-dasarnya, itulah sebabnya repot-repot membangun game rantai penuh dengan state dan logika on-chain, dan berurusan dengan semua kompleksitas yang menyertainya. Alasan sederhananya adalah untuk mendapatkan fitur yang tidak dimiliki infrastruktur game tradisional.
Fitur pertama adalah mod tanpa izin. Ini berarti bahwa semua pemain dan pengembang dapat menyesuaikan komponen apa pun dalam game, termasuk memperkenalkan plugin atau mod, mulai dari klien tingkat lanjut. Bahkan logika yang mendasari permainan dapat diperluas melalui kontrak pintar. Pada dasarnya, ini adalah mode baru di mana setiap game adalah platform baru secara default, dan Anda dapat menjadi Content Powerhouse tidak peduli seberapa kecil tim Anda.
Karakteristik kedua adalah Persistency. Dunia otonom dan fakta bahwa pengalaman virtual ini dapat ada selamanya telah menyebabkan banyak dampak. Karena tidak ada server yang dapat disensor atau dimatikan, pengalaman ini benar-benar memperkenalkan makna yang sama sekali baru. Game telah menjadi platform bagi pemain untuk bermain, bersosialisasi, dan melakukan perdagangan global, yang lebih universal daripada platform game tradisional.
Fitur terakhir adalah ekonomi terbuka. Game dapat memanfaatkan sistem pembayaran global tanpa gesekan terbuka blockchain, terutama pembayaran mikro di ekosistem kami, dan menggunakan kembali infrastruktur on-chain yang ada seperti DEX atau pasar NFT.
02.Solusi yang Sudah Ada
Masalah saat ini dengan game omnichain adalah bahwa pengalaman pengembangannya sangat buruk, dan kami melihat solusi di pasar dan menemukan bahwa ada beberapa kerangka kerja pengembangan yang mencoba menyederhanakan pengalaman pengembang.
Beberapa dari mereka sangat menarik karena mereka mencoba mengulangi sesi yang dapat dibuktikan, di mana Anda dapat melakukan perhitungan off-chain dan membuktikan integritas komputasi on-chain. Atau perkenalkan runtime berbasis peristiwa yang lebih cocok untuk mesin game blockchain, daripada runtime berbasis loop.
Tetapi semua kerangka kerja ini membutuhkan trade-off antara kinerja dan komposabilitas untuk mencapai kinerja yang lebih tinggi dan TPS yang lebih tinggi. Biasanya, Anda akan membuat isolasi atau memperkenalkan runtime yang berbeda dengan pecahan.
Tapi kami tidak senang dengan trade-off itu. Kami bertanya pada diri sendiri, bagaimana jika ada kerangka kerja yang dapat mendukung TPS yang kami butuhkan? Ketika game Anda berhasil, Anda tidak perlu mengorbankan pengalaman pengguna mereka, bahkan dengan jutaan pemain, karena perang gas tidak akan terjadi. Dan kerangka kerjanya tidak memerlukan sharding dan fragmentasi, sehingga Anda dapat menggunakan sesi permainan yang dapat dibuktikan dan bahkan mensimulasikan berlalunya waktu tanpa membayar biaya gas. Tidak perlu memecah sistem atau menggunakan Layer 3 sama sekali.
03.Mesin pengembangan game rantai penuh di Solana: BOLT
Itulah sebabnya kami sangat senang memperkenalkan BOLT, kerangka kerja pengembangan game rantai penuh berkinerja tinggi, dapat disusun, berdasarkan SVM.
BOLT bersifat modular dan composable, memungkinkannya untuk menggunakan semua infrastruktur yang ada di Solana. Dia bekerja dengan fasilitas on-chain kami yang ada seperti identitas on-chain, API tanpa gas, kunci sesi, serta kerangka kerja pengembangan Anchor yang ada dan semua program yang ada di Solana. Keduanya dapat menskalakan pada urutan besaran yang lebih tinggi berkat Ephemeral Rollups, yang merupakan sesi permainan yang dibuka dan ditutup sesuai permintaan pengguna, dan diskalakan sesuai kebutuhan.
BOLT secepat kilat, dan kami dapat mencapai tingkat kinerja yang sama dengan mesin game tradisional sebelum menggunakan runtime khusus ini untuk mempercepat operasi tertentu.
Ini adalah tampilan panorama bingkai BOLT. Dia jelas dibuat untuk Solana, tetapi dia dapat menggunakannya pada platform apa pun yang kompatibel dengan SVM, seperti Layer 2 yang kompatibel dengan SVM. BOLT memiliki dua tujuan utama, komposabilitas dan skalabilitas.
Sistem ECS (Komponen Entitas) adalah salah satu cara kami menyederhanakan penggunaan komponen on-chain. Yang lainnya adalah Ephemeral Rollup, yang telah disebutkan secara singkat sebelumnya, dan saya akan menyelami kedua teknologi ini sebentar lagi.
Bolt telah terintegrasi dengan mesin game lawas yang paling umum digunakan, seperti Unity, yang sering berfungsi sebagai front-end game. Tentu saja, ini juga termasuk mesin game open-source dan tercinta lainnya seperti Godot dan Phaser. Kami bahkan bekerja dengan klien game yang diperbarui, Turbo, yang berfokus pada peningkatan pengalaman bagi pengembang indie dan memfasilitasi pembuatan game yang cepat. Mungkin ada lebih banyak mitra di masa depan.
Saya akan mulai di sini dan terus menjelaskan mengapa kita membutuhkan sistem komponen entitas ECS. Jawabannya sederhana, karena ia memungkinkan komposabilitas maksimum, yang berarti kita dapat membuat dan menggunakan kembali komponen yang sudah jadi.
Seperti namanya, ECS dibangun menjadi tiga elemen utama: entitas, yang pada dasarnya adalah pengidentifikasi yang terdaftar ke instance dunia permainan yang terpisah, komponen, yang mendefinisikan struktur data sehingga pada dasarnya mereka adalah data yang terkait dengan entitas, dan akhirnya sistem, yang merupakan logika yang memanipulasi komponen yang melekat pada entitas.
Keuntungan dari arsitektur ini adalah bahwa semua sistem dan komponen dapat digunakan kembali. Mereka dapat dipublikasikan di registri publik, dan pengembang dapat dengan mudah berkontribusi, membangun, menemukan, dan mengintegrasikan semua jenis komponen, sehingga Anda tidak perlu menulis satu baris kode dari awal lagi, tetapi dapat menggunakan kembali semua komponen yang ada dan akhirnya berkontribusi pada mereka. Misalnya, kita dapat memiliki struktur data grid (seperti labirin atau medan perang), sistem bergerak, atau sistem bukti tanpa pengetahuan untuk kabut perang.
04.Praktik Pemrograman ECS Mesin BOLT
** (Catatan penerjemah: Bagian ini disarankan bagi pengembang untuk menonton video asli, non-pengembang dapat melewati bagian ini) **
SEKARANG, SAYA AKAN BERALIH KE IDE SAYA DAN MENUNJUKKAN CONTOH PERMAINAN SEDERHANA MENGGUNAKAN MESIN BOLT ECS.
Kita akan mendefinisikan beberapa entitas, komponen lokasi, dan dua sistem yang akan memanipulasi dan mengubah data untuk komponen lokasi ini. Jadi, titik masuk pertama adalah berinteraksi dengan Program Dunia. Program Dunia adalah bagian dari kerangka kerja BOLT dan memaparkan beberapa ekstraksi yang memungkinkan Anda mendaftarkan Instans Dunia baru.
Anda dapat menambahkan entitas ke Instans Dunia Anda, dan Anda dapat mendaftarkan komponen dengan entitas yang baru saja Anda tentukan, yang pada dasarnya ditentukan oleh program komponen. Program komponen berisi dua arahan, yang pertama adalah menginisialisasi, membuat, dan mengalokasikan ruang untuk menyimpan baris data yang akan digunakan dalam komponen Anda. Dalam contoh sederhana ini, kita mendefinisikan komponen lokasi, dan jika kita melihat konteks direktif inisialisasi, kita dapat melihat bahwa kita memiliki data komponen, dan data komponen hanya mendefinisikan struktur dengan koordinat XYZ yang dapat menyimpan misalnya lokasi pemain.
Sekarang, arahan kedua mungkin yang paling menarik, ini adalah titik masuk yang memungkinkan kita untuk mengeksekusi logika apa pun. Dia akan menerima komponen dan sistem sewenang-wenang kami sebagai input, dan menjalankan logika yang didefinisikan secara internal dalam sistem dengan mengeksekusi di seluruh lokasi pemrograman. Sekarang, jika Anda melihat baris 15, kita memiliki panggilan CPI (Common Programming Interface) kita, yang akan mengeksekusi logika yang didefinisikan secara internal melalui CPI. Dia akan melakukan semua perhitungan yang ditentukan oleh sistem dan kemudian kembali ke lokasi kita, di mana program komponen akan mengambil dan mengaturnya kembali ke data kita.
Sekarang, mari kita coba melihat konteks fungsi apply kita, di mana kita dapat melihat bahwa pada dasarnya kita hanya memiliki dua akun. Yang pertama adalah akun yang berisi data komponen kami, dan yang kedua adalah program sistem. Akibatnya, program sistem sekarang menjadi antarmuka daripada program tunggal. Oleh karena itu, program apa pun yang mematuhi antarmuka sistem BOLT kami dapat dijalankan melalui aplikasi ini.
** 05.Signifikansi sistem ECS **
Pada dasarnya, ini mengubah cara Anda merancang logika permainan Anda dan mengubah proses tradisional di kepalanya. Sebelumnya, jika Anda ingin membuat atau merangkum beberapa logika dalam program Anda, Anda biasanya akan menambahkan fitur terlebih dahulu, yang masing-masing merupakan arahan dalam program, dan akhirnya pada titik tertentu, Anda akan mengunci program game yang Anda kembangkan.
Namun, dengan model ECS, kita dapat memiliki program yang tidak dapat diubah sejak awal, dan kemudian dengan mekanisme proxy ini, kita dapat menambahkan sistem yang dibangun sendiri atau oleh siapa saja, sehingga kita dapat memiliki permainan yang dapat berjalan selamanya, terukur, dan siapa pun dapat benar-benar mengubah logika permainan.
Mereka dapat menyebarkan sistem baru yang akan beroperasi pada komponen-komponen tersebut. Sekarang, antarmuka juga memungkinkan Anda untuk melakukan beberapa pemeriksaan, sehingga kami dapat merancang mekanik game yang membuatnya tanpa izin untuk menambahkan sistem baru yang dapat memodifikasi data komponen.
Atau kita dapat mengatur antarmuka untuk memeriksa apakah sistem memungkinkan eksekusi pada komponen. Misalnya, Anda dapat merancang sistem tata kelola di mana jika seseorang mengusulkan logika baru, dan logika itu disetujui, maka semua pemain dapat menggunakan logika itu dalam permainan.
Ini bahkan dapat menyebabkan percabangan di dunia game (Kontrak Dunia). Di dunia, Anda memiliki sistem penerbangan. Dan di dunia lain, jika sistem tidak disetujui, dimungkinkan untuk memiliki aturan yang berbeda dan setiap orang masih dapat berkontribusi pada versi dunia mereka sendiri.
Sekarang mari kita lihat bagaimana membangun sistem yang dapat memodifikasi komponen itu. Sistem pada dasarnya hanyalah sebuah program di Solana yang mendefinisikan instruksi eksekusi, dan instruksi eksekusi adalah yang kita panggil dari program komponen di CPI (Common Programming Interface). Di sini, ia hanya merangkum logika yang sangat sederhana di mana ia menerima arah input, menghitung delta, dan kemudian mengubah posisi X dan Y komponen.
Jadi mari kita lihat sistem lain yang bisa digunakan oleh orang lain, bahkan setelah kami merilis game. Berikut adalah contoh lain dari sistem yang mengimplementasikan ute. Di sini, posisi Z meningkat 1, jadi seseorang mencoba menambahkan sistem mengapit, yang bisa menjadi antarmuka dengan lapisan berbeda di atas permainan Anda.
Jadi, idenya sekarang adalah bahwa semua sistem ini, semua komponen ini benar-benar dapat disusun, pengguna game bukan lagi pengguna sederhana, game telah menjadi platform yang terbuka, terukur, dan persisten. Jadi saya akan mencoba menjalankan tes unit yang saya siapkan dalam contoh ini, dan saya akan menggunakan BOLT CLI, yang dibangun di atas Anchor, kerangka kontrak pintar untuk Solana, jadi jika Anda sudah terbiasa dengan Solana, Anda tidak perlu mempelajari sesuatu yang baru.
Sekarang, Anda dapat mengembangkan program di Solana, cukup kembangkan program, program uji, jadi di sini saya menjalankan bolt build dan bolt test, dan di sini saya menyebarkan program kami, dan kemudian saya melakukan tes tipe yang telah saya siapkan di sini.
Jadi, di sini tesnya mengirim transaksi untuk menginisialisasi dunia baru. Kami mendaftarkan beberapa entitas, kami melampirkan komponen lokasi ke beberapa di antaranya, dan kemudian mungkin bagian yang menarik adalah melakukan beberapa sistem di sini. Jadi, di sini kita memanggil fungsi apply, dan kemudian kita menggunakan salah satu sistem tersebut. Jadi, inilah hanya sistem default.
Di sini kita menyebut langkah sederhana, dan kemudian kita terbang bergerak di sini. Nah, sekarang, jika kita melihat log tes, pada perdagangan pertama, di sini kita menggunakan sistem bergerak dengan arah ke atas, meningkatkan posisi Y sebesar 1. Dalam transaksi kedua, kami menggunakan sistem yang sama untuk bergerak ke kanan, dan akhirnya, kami menjalankan sistem penerbangan, yang melakukan sebaliknya, meningkatkan posisi Z kami sebesar 1. Ini hanya contoh sederhana, tetapi ia menawarkan mekanik yang sangat kuat yang memungkinkan siapa saja untuk mengembangkan, memperluas, dan berpotensi membuat permainan Anda menyenangkan.
06.Pembatalan singkat
Sekarang kita akan kembali ke slide, saya akan menjelaskan aspek menarik kedua dari kerangka kerja BOLT, yang merupakan solusi skalabilitas kami, yang kami sebut Ephemeral Rollup.
Secara umum diasumsikan bahwa Solana sudah sangat cepat dan murah, dan saat ini menghasilkan blok setiap 400 milidetik dan dapat memproses ribuan transaksi, jadi sebenarnya siap untuk membangun game rantai penuh. Namun, jika Anda memiliki rantai logis lama untuk multipemain, pembaruan lokasi akan terlalu lambat.
Jadi kita dapat membangun lapisan akselerasi berumur pendek yang sepenuhnya kompatibel dengan waktu berjalan Solana. Waktu yang digunakan adalah opsional, ia dapat berfungsi sebagai akselerasi nyata dari operasi tertentu, sementara sebagian besar logika masih dijalankan pada rantai utama, jadi ia mengandalkan fitur bahwa semua status di Solana disimpan di akun.
Biasanya, Anda akan memiliki program permainan yang mendefinisikan logika, dan kemudian semua status akan disimpan di akun ini, sehingga kami dapat mendelegasikan beberapa akun tersebut ke lapisan fana ini yang menggunakan mesin BOLT.
Dalam contoh ini, ada dua akun resmi yang menyimpan lokasi pemain, dan penyedia secara aktif mendengarkan permintaan delegasi dan permintaan provisi. Dia akan memulai run time baru sesuai kebutuhan, yang cepat, dapat disesuaikan, tidak dapat memiliki transaksi gas atau kutu, dan memungkinkan kita untuk benar-benar melakukan transaksi di bawah 50ms, dan mungkin skala dengan memiliki beberapa runtime khusus.
Sekarang, bagian menarik lainnya adalah bahwa semua kompleksitas ini dapat diabstraksikan jauh dari pengguna. Kami memiliki router RPC, yang pada dasarnya mirip dengan router RPC tradisional. Klien RPC dapat berinteraksi langsung dengan RPC untuk mengirim transaksi. Karena di Solana, semua transaksi telah dideklarasikan sebelumnya untuk semua akun yang dapat diubah dan dibaca, router RPC pada dasarnya dapat merutekan transaksi, kueri data, dan pengambilan ke tingkat yang benar.
Kemudian pada titik tertentu, lapisan Ephemeral (seperti namanya) akan ditutup dan semua status akan diselesaikan di lapisan dasar Solana, yang merupakan tanggung jawab sequencer, yang melacak semua akun.
Cara lain untuk melihat mekanisme ini adalah bahwa kita memiliki dua lapisan, dan mereka melakukan transaksi secara paralel. Kami telah mendelegasikan akun yang memungkinkan kami memperbarui dengan latensi lebih rendah tanpa menggunakan throughput rantai utama. Dan kemudian kami memiliki akun lain, yang tidak didelegasikan, dan dieksekusi pada rantai utama.
Sekarang, hal yang sangat menarik adalah bahwa program, alat, kerangka kerja, dan infrastruktur semuanya ada di rantai utama. Anda tidak perlu menyebarkan program Anda di Rollup, meskipun ini umum di banyak arsitektur lainnya. Semuanya berada di lapisan yang sama, semuanya dapat disusun, dan seperti yang kami sebutkan, runtime khusus ini juga dapat diperluas dan dapat benar-benar disesuaikan.
Sekarang, ini membuka kategori permainan yang sama sekali baru, yang ia bangun di blockchain dan latensi rendah. Sama seperti yang Anda lakukan dengan server multipemain tradisional, tetapi masih dapat menggabungkan dengan semua yang tersedia di ekosistem Layer 1.
Anda mendapatkan akses ke likuiditas yang ada, Anda dapat mengirim pesan melalui protokol, mencetak NFT, menggunakan abstraksi akun, kunci sesi, papan peringkat, dan ekosistem terpadu, semua orang memperkaya ekosistem yang sama.
Terima kasih banyak telah mendengarkan. Anda dapat mendaftar untuk akses awal ke kerangka kerja kami menggunakan kode QR dan memeriksa repositori. Anda sudah dapat menemukan dokumentasi dan kertas putih yang kuat yang menjelaskan secara rinci kerangka kerja yang baru saja kami perkenalkan. Terima kasih banyak.