このプロジェクトについて

ioGameは、オンラインゲーム、IoT、および永続的な接続を必要とする内部システム向けに設計されたJavaネットワーキングフレームワークです。ロックフリーで非同期、イベント駆動型のアーキテクチャを重視し、外部ミドルウェアやデータベースを必要とせず、JVMだけでクラスタリングと分散処理をすぐに利用できます。 主な機能は以下の通りです: - **軽量**:小さなjar(約15 MB)、高速起動(1秒未満)、低メモリ使用量。 - **柔軟なアーキテクチャ**:3部構成の設計(External Server、Broker/Gateway、Game Logic Server)で、独立して実行することも融合することもでき、あらゆるゲームタイプに適応します。 - **動的スケーリング**:サーバーをオンザフライで追加または削除でき、ゼロダウンタイム更新を実現します。 - **分散クラスタリング**:マスターレスで自己組織化するブローカークラスタで、単一障害点がありません。 - **マルチプロトコル対応**:1つのコードベースでTCP、WebSocket、UDPを同時にサポートし、KCP、QUICなどに拡張可能です。データプロトコル(Protobuf、JSON)は1行で切り替えられます。 - **フルリンク分散トレーシング**:マシンとプロセスをまたぐ一意のトレースID。 - **豊富な通信モデル**:リクエスト/レスポンス、ブロードキャスト、イベントバスなど、すべてプロセス間対応です。 - **プレイヤーごとのスレッドセーフティ**:フレームワークが個々のプレイヤーに対してロックフリーの並行性を保証します。 - **コード生成**:Javaを一度書くだけで、Godot、UE、Unity、Cocos Creator、React、Vue、AngularなどのクライアントSDKを生成します。 - **開発者フレンドリー**:MVCスタイルのコーディング、JSR380バリデーション、アサーション、プロトコルのホットスワップ、同一プロセス親和性、マルチサーバー単一プロセスデバッグ。 - **設計によるセキュリティ**:ロジックサーバーはポートを公開せず、ポートスキャン攻撃に対して免疫があります。 - **モダンJava**:JDK 21以上が必要で、Generational ZGCを活用してサブミリ秒のポーズを実現します。 ioGameはAGPL 3.0の下でリリースされており、2022-03-01から少なくとも10年間の活発なメンテナンスを約束しています。ゲームサーバーとIoTアプリケーションの両方に適しており、数百万の接続を処理できます。