Proyek pkmn/engine , sebuah simulator pertarungan Pokemon open-source yang ambisius yang ditulis dalam Zig , telah memicu diskusi sengit tentang seberapa setia implementasi modern harus mereproduksi bug dan keunikan dari game Pokemon asli. Saat ini hanya mendukung mekanik Generation 1 , engine ini bertujuan menyediakan alternatif berperforma tinggi untuk simulator yang sudah ada sambil bergulat dengan pertanyaan fundamental tentang autentisitas game.
Persyaratan Teknis:
- Bahasa: Ditulis dalam Zig dengan binding TypeScript
- APIs: Dukungan C API dan JavaScript/TypeScript
- Kompatibilitas: Memerlukan versi compiler Zig yang spesifik (sebelum 0.12.0-dev.876+aaf46187a direkomendasikan)
- Lisensi: MIT License
Dilema Autentisitas
Perdebatan inti berpusat pada bug game asli mana yang harus dipertahankan dan mana yang harus diperbaiki untuk gameplay yang lebih baik. Para pengembang engine telah mengambil pendekatan yang bernuansa, memilih untuk mereproduksi bug yang berasal dari implementasi efek spesifik sambil menghindari yang disebabkan oleh kesalahpahaman mekanik fundamental atau keterbatasan arsitektural.
Anggota komunitas sangat terbagi pada beberapa bug Generation 1 yang terkenal. Masalah seperti desync multiplayer, eksploitasi invulnerabilitas selama gerakan Fly dan Dig saat lumpuh, dan mekanik Focus Energy yang rusak menghadirkan pilihan yang sulit. Beberapa berpendapat bug ini penting untuk gameplay autentik, sementara yang lain berargumen bahwa bug tersebut merusak pengalaman pemain tanpa menambah nilai yang berarti.
Bug seperti normal body slam para invuln, amnesia reapplying speed drops, dan toxic counter bugs, 1/256 miss chance, focus energy bugs, saya harapkan tetap ada. Jika itu diperbaiki, proyek akan berbelok ke wilayah natdex, Create A Pokemon, atau Custom Metas, seperti fan game buatan yang tidak pernah ada di cartridge
Arsitektur Teknis dan Tujuan Performa
Pendekatan multi-bahasa proyek ini menggabungkan Zig untuk performa inti dengan binding TypeScript untuk aksesibilitas web. Pilihan desain ini bertujuan memberikan kecepatan komputasi yang dibutuhkan untuk pelatihan AI dan simulasi turnamen sambil mempertahankan kompatibilitas luas di berbagai platform. Engine ini mengekspos API C untuk integrasi native dan interface JavaScript untuk aplikasi berbasis browser.
Namun, proyek ini saat ini memerlukan versi compiler Zig spesifik karena masalah kompatibilitas yang sedang berlangsung, menyoroti tantangan membangun pada toolchain yang berkembang pesat. Para pengembang telah menyertakan patch compiler langsung di source tree mereka, menunjukkan mereka sedang mengatasi bug aktif dalam ekosistem Zig .
Roadmap Pengembangan dan Keterbatasan Saat Ini
Engine ini mengikuti pendekatan pengembangan bertahap, dengan pekerjaan dasar sebagian besar selesai dan implementasi Generation 1 dan 2 saat ini sedang dalam proses. Tim telah secara eksplisit menolak fitur tertentu termasuk penegakan aturan kustom, varian pertarungan di luar format standar, dan dukungan first-class untuk modifikasi game.
Ruang lingkup yang terfokus ini mencerminkan pendekatan pragmatis terhadap ruang masalah yang kompleks, tetapi juga berarti engine tidak akan melayani pengguna yang mencari opsi kustomisasi ekstensif atau mode gameplay non-standar.
Tahapan Pengembangan:
- Tahap 0: Dokumentasi, integrasi, benchmark, protokol (sebagian besar sudah selesai)
- Tahap 1: Implementasi RBY & GSC (sedang berlangsung)
- Tahap 2: ADV & DPP
- Tahap 3: Generasi modern
Penerimaan Komunitas dan Prospek Masa Depan
Proyek ini telah menarik perhatian dari pemain Pokemon kompetitif dan pengembang yang bekerja pada agen AI untuk pertarungan Pokemon . Lisensi MIT dan ketersediaan API C telah diterima dengan baik oleh pengembang yang ingin mengintegrasikan engine ke dalam proyek komersial tanpa pembatasan copyleft.
Saat engine berkembang melalui tahap pengembangannya, perdebatan autentisitas yang sedang berlangsung kemungkinan akan mengintensif. Keputusan tim tentang bug historis mana yang akan dipertahankan akan secara signifikan mempengaruhi adopsi engine di komunitas yang berbeda, dari speedrunner yang mencari akurasi sempurna hingga pemain kompetitif yang memprioritaskan gameplay yang seimbang.
pkmn/engine mewakili studi kasus menarik tentang bagaimana pengembang modern mendekati sistem game lawas, menyeimbangkan kesetiaan historis dengan harapan kegunaan kontemporer.
Referensi: pkmn/engine