- Melalui lingkungan open-source bernama AthenaEnv, kini kode JavaScript dapat dijalankan di PlayStation 2
- Lingkungan ini menanamkan engine QuickJS untuk menginterpretasikan JavaScript, serta menyediakan API untuk pengembangan game seperti rendering, input, suara, dan pemrosesan file
- Pengembang dapat menulis game hanya dengan struktur file dasar seperti main.js, athena.ini, athena.elf, lalu menjalankannya di emulator PCSX2
- Proyek yang sudah selesai bisa dipaketkan sebagai file .iso untuk didistribusikan dalam bentuk satu file, dan prosedur konversi zip→iso juga diperkenalkan
- Ini menjadi contoh penggabungan pengembangan konsol retro dan teknologi web, sekaligus menunjukkan potensi perluasan pengembangan game berbasis JavaScript
Gambaran umum proyek AthenaEnv
- AthenaEnv adalah lingkungan eksekusi JavaScript untuk PS2, yang menyediakan lingkungan pengembangan berbasis API alih-alih game engine tradisional
- Secara internal, AthenaEnv memodifikasi dan menanamkan QuickJS untuk menginterpretasikan kode JavaScript
- Program native PS2 (ditulis dalam C) dikonfigurasikan untuk mengeksekusi kode JavaScript
- API yang disediakan mencakup rendering, pemuatan aset, penanganan input, input/output file, dan pemutaran suara
- Tingkat abstraksinya setara dengan p5.js atau Raylib, sehingga hal seperti deteksi tabrakan atau manajemen scene tetap perlu diimplementasikan sendiri
Proses menjalankan game JavaScript di PS2
- Untuk menjalankannya digunakan emulator PCSX2, dan pada pengaturan perlu mengaktifkan opsi “Enable host filesystem”
- Folder proyek berisi file-file berikut
athena.elf: file eksekusi Athena
athena.ini: konfigurasi seperti entry point (main.js) dan pengaturan logo boot
main.js, src/, assets/: kode game dan resource
- Menjalankan
athena.elf di emulator akan menyalakan game, dan perubahan pada kode JavaScript bisa langsung diterapkan dengan reset
Prosedur membuat file .iso
- Dijelaskan cara mengemas proyek menjadi satu image ISO untuk distribusi
- File wajib:
athena.elf, athena.ini, main.js, src/, ATHA_000.01, SYSTEM.CNF
- Pilih semua file lalu kompres menjadi zip, kemudian gunakan situs mconverter.eu untuk mengubahnya menjadi iso
- Setelah dikonversi, game bisa dijalankan tanpa pengaturan “Enable host filesystem”
- Untuk mengotomatisasi konversi, diperkenalkan tool CLI berbasis Python GENISO(https://github.com/scottvr/GENISO)
- Dapat mengonversi zip ke iso tanpa dependensi eksternal
Contoh Hello World
- Dalam contoh dasar, diimplementasikan pemuatan font dan gambar, penyusunan game loop, animasi sprite, penanganan input, dan rendering teks
- Menggunakan modul bawaan Athena seperti
Screen, Font, Image, Pads
- Menjalankan loop per frame dengan metode
Screen.display()
- Mendeteksi input controller dengan
Pads.get(0)
- Mengontrol animasi per frame melalui properti sprite seperti
startx, endx
- Menampilkan FPS atau teks dengan
font.print()
- Pembalikan sprite diimplementasikan dengan memberi nilai negatif pada width, dan diperlukan perhitungan offset untuk koreksi posisi
Dukungan 3D dan pengembangan ke depan
- Athena mendukung 2D maupun 3D, tetapi versi v4 yang berfokus pada 3D sedang dikembangkan
- Saat ini contoh yang ada masih didominasi 2D, meski sudah ada beberapa demo 3D
- Kode dan materi dukungan tersedia melalui repositori GitHub dan komunitas Discord resmi
Kesimpulan
- AthenaEnv adalah lingkungan inovatif yang memungkinkan pembuatan game PS2 hanya dengan JavaScript
- Ini memungkinkan developer web ikut mengakses pengembangan game untuk konsol retro, serta menunjukkan
ekspansi dan kompatibilitas ekosistem JavaScript
Belum ada komentar.