프로젝트 소개
ioGame은 온라인 게임, IoT, 지속적인 연결이 필요한 내부 시스템을 위한 Java 네트워킹 프레임워크입니다. 외부 미들웨어나 데이터베이스 없이 JVM만으로 클러스터링과 분산 처리를 기본 제공하는 무잠금, 비동기, 이벤트 기반 아키텍처를 강조합니다.
주요 기능은 다음과 같습니다:
- **경량**: 작은 jar(~15MB), 빠른 시작(1초 미만), 낮은 메모리 사용량.
- **유연한 아키텍처**: 외부 서버, 브로커/게이트웨이, 게임 로직 서버의 3부분 설계로 독립적으로 또는 융합하여 실행 가능하며 모든 게임 유형에 적응.
- **동적 확장**: 실행 중 서버 추가/제거 가능, 무중단 업데이트 지원.
- **탈중앙화 클러스터링**: 마스터 없는 자가 구성 브로커 클러스터로 단일 장애점 없음.
- **다중 프로토콜 지원**: 하나의 코드베이스로 TCP, WebSocket, UDP를 동시 지원하며 KCP, QUIC 등으로 확장 가능. 데이터 프로토콜(Protobuf, JSON)은 한 줄로 전환.
- **전체 링크 분산 추적**: 머신과 프로세스 전반에 걸친 고유 추적 ID.
- **풍부한 통신 모델**: 요청/응답, 브로드캐스트, 이벤트 버스 등 모두 프로세스 간 지원.
- **플레이어별 스레드 안전성**: 프레임워크가 개별 플레이어에 대한 무잠금 동시성을 보장.
- **코드 생성**: Java로 한 번 작성하면 Godot, UE, Unity, Cocos Creator, React, Vue, Angular 등용 클라이언트 SDK 생성.
- **개발자 친화적**: MVC 스타일 코딩, JSR380 검증, 어설션, 핫스왑 프로토콜, 동일 프로세스 선호, 다중 서버 단일 프로세스 디버깅.
- **설계부터 안전**: 로직 서버는 포트를 노출하지 않아 포트 스캔 공격에 면역.
- **최신 Java**: JDK 21+ 필요, 세대별 ZGC를 활용한 1밀리초 미만 일시 정지.
ioGame은 AGPL 3.0에 따라 배포되며, 2022-03-01부터 최소 10년간 적극적인 유지보수를 약속합니다. 게임 서버와 IoT 애플리케이션 모두에 적합하며 수백만 연결을 처리합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.