Sebuah proyek game MMO inovatif bernama Lyceum telah muncul, menampilkan tumpukan teknis yang menarik yang menggabungkan Erlang untuk sisi server dengan Zig untuk implementasi klien. Proyek ini telah menghasilkan diskusi substansial dalam komunitas pengembang, khususnya seputar pilihan teknologi dan pendekatan implementasinya.
Arsitektur Teknis
Game ini menggunakan kombinasi teknologi yang unik, dengan server yang ditulis dalam Erlang (didukung oleh PostgreSQL) dan klien yang diimplementasikan dalam Zig, ditingkatkan dengan Raylib untuk rendering dan Zerl untuk komunikasi. Pilihan arsitektur ini telah memicu diskusi menarik tentang keuntungan dan tantangan potensial penggunaan Erlang untuk pengembangan server game.
Implementasi Server Erlang
Pilihan Erlang untuk server terbukti sangat patut diperhatikan, dengan para pengembang menyoroti kekuatannya dalam sistem terdistribusi. Para pengelola proyek telah melaporkan pengalaman positif dengan implementasi Erlang, mencatat bahwa hal itu membuat pengembangan server lebih mudah dari yang diperkirakan. Namun, beberapa kekhawatiran muncul tentang implikasi keamanan:
Memiliki klien yang berpotensi tidak tepercaya terhubung ke node erlang sebagai c_node (yang tampaknya dilakukan oleh zerl) umumnya bukan ide yang baik, karena koneksi dengan cara tersebut pada dasarnya memungkinkan klien mengeksekusi kode sembarangan di server.
Status Pengembangan dan Rencana Masa Depan
Saat ini, game ini ada sebagai apa yang digambarkan pengembang sebagai simulator berjalan multiplayer, tetapi ada rencana untuk ekspansi. Tim pengembang telah mengindikasikan mereka sementara menghentikan aspek 3D untuk fokus pada implementasi minigame 2D sambil memanfaatkan infrastruktur Zig dan Erlang yang ada. Perubahan strategis ini menunjukkan pendekatan iteratif terhadap pengembangan game sambil mempertahankan fondasi teknis inti.
Lingkungan Pengembangan
Proyek ini menggunakan Nix untuk manajemen lingkungan pengembangan, dengan devenv menyediakan peralatan yang diperlukan dan integrasi PostgreSQL. Setup pengembangan modern ini memastikan konsistensi di berbagai lingkungan pengembangan dan menyederhanakan proses deployment, meskipun beberapa pengembang dalam komunitas telah menyatakan ketertarikan untuk mempelajari lebih lanjut tentang detail spesifik dari konfigurasi Nix.
Infrastruktur Proyek
Game ini menggunakan berbagai aset, termasuk tekstur, model, dan elemen audio, dengan beberapa bersumber dari eksternal dan lainnya dibuat oleh tim pengembangan. Deployment ditangani melalui server NixOS, menampilkan pipeline pengembangan modern yang lengkap dari pengembangan hingga produksi.
Sumber Kutipan:
- Sumber Artikel: Lyceum: An MMO Game Written in Erlang (+ PostgreSQL) + Zig (+ Raylib)
- Sumber Komentar: Hacker News Discussion