革新的なMMOゲームプロジェクト Lyceum が登場し、サーバーサイドに Erlang 、クライアント実装に Zig を組み合わせた興味深い技術スタックを披露しています。このプロジェクトは、開発者コミュニティ内で、特にその技術選択と実装アプローチについて大きな議論を巻き起こしています。
技術アーキテクチャ
このゲームは、サーバーが Erlang ( PostgreSQL をバックエンドに使用)で書かれ、クライアントが Zig で実装され、レンダリングに Raylib 、通信に Zerl を使用するという独特な技術の組み合わせを採用しています。このアーキテクチャの選択は、ゲームサーバー開発における Erlang 使用の利点と潜在的な課題について、興味深い議論を引き起こしています。
Erlang サーバーの実装
サーバーに Erlang を選択したことは特に注目に値し、開発者たちは分散システムにおける Erlang の強みを強調しています。プロジェクトの管理者たちは、 Erlang の実装により、サーバー開発が予想以上に straightforward になったと報告しています。ただし、セキュリティ面での懸念も提起されました:
クライアントが c_node として erlang ノードに接続すること( zerl が行っているように見える)は、一般的に良いアイデアとは言えません。この方法で接続すると、クライアントがサーバー上で任意のコードを実行できる可能性があるためです。
開発状況と今後の計画
現在、このゲームは開発者が「マルチプレイヤーウォーキングシミュレーター」と表現する段階にありますが、拡張計画があります。開発チームは、既存の Zig と Erlang のインフラストラクチャを活用しながら、2Dミニゲームの実装に注力するため、一時的に3D要素の開発を休止することを表明しています。この戦略的な方向転換は、技術的基盤を維持しながら、反復的なゲーム開発アプローチを示しています。
開発環境
このプロジェクトは、開発環境管理に Nix を使用し、 devenv が必要なツールと PostgreSQL の統合を提供しています。この最新の開発セットアップにより、異なる開発環境間での一貫性が確保され、デプロイメントプロセスが簡素化されています。ただし、コミュニティの一部の開発者から、 Nix の設定の具体的な実装詳細についてより詳しく知りたいという関心が示されています。
プロジェクトインフラストラクチャ
このゲームは、外部から調達されたものと開発チームが作成したものの両方を含む、テクスチャ、モデル、オーディオ要素などの様々なアセットを使用しています。デプロイメントは NixOS サーバーを通じて処理され、開発から本番環境まで、最新の完全な開発パイプラインを示しています。
ソース引用: