このプロジェクトについて
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アプリケーションの両方に適しており、数百万の接続を処理できます。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.