À propos du projet

ioGame est un framework réseau Java conçu pour les jeux en ligne, l'IoT et les systèmes internes nécessitant des connexions persistantes. Il met l'accent sur une architecture sans verrou, asynchrone et événementielle qui prend en charge le clustering et la distribution nativement, sans nécessiter de middleware ni de bases de données externes—juste une JVM. Les fonctionnalités clés incluent : - **Léger** : Petit jar (~15 Mo), démarrage rapide (<1 seconde), faible empreinte mémoire. - **Architecture flexible** : Conception en trois parties (External Server, Broker/Gateway, Game Logic Server) pouvant fonctionner indépendamment ou fusionnées, s'adaptant à tout type de jeu. - **Mise à l'échelle dynamique** : Ajout ou suppression de serveurs à la volée, permettant des mises à jour sans interruption. - **Clustering décentralisé** : Cluster de brokers sans maître, auto-organisé, sans point unique de défaillance. - **Prise en charge multi-protocoles** : Une seule base de code prend en charge simultanément TCP, WebSocket, UDP ; extensible à KCP, QUIC, etc. Les protocoles de données (Protobuf, JSON) sont commutables en une seule ligne. - **Traçage distribué full-link** : Identifiants de trace uniques à travers les machines et les processus. - **Modèles de communication riches** : Requête/réponse, diffusion, bus d'événements, et plus encore, tous capables de fonctionner entre processus. - **Sécurité des threads par joueur** : Le framework garantit une concurrence sans verrou pour chaque joueur. - **Génération de code** : Écrire du Java une fois, générer des SDK clients pour Godot, UE, Unity, Cocos Creator, React, Vue, Angular, etc. - **Convivial pour les développeurs** : Codage de style MVC, validation JSR380, assertions, protocoles à chaud, affinité même-processus, et débogage multi-serveurs en un seul processus. - **Sécurisé par conception** : Les serveurs de logique n'exposent jamais de ports, immunisés contre les attaques par balayage de ports. - **Java moderne** : Nécessite JDK 21+, tirant parti de ZGC générationnel pour des pauses inférieures à la milliseconde. ioGame est publié sous licence AGPL 3.0, avec un engagement de maintenance active d'au moins dix ans à partir du 2022-03-01. Il convient à la fois aux serveurs de jeu et aux applications IoT, gérant des millions de connexions.