프로젝트 소개

# Moon Moon은 C++23으로 구현된 Actor 모델 기반의 경량 게임 서버 프레임워크입니다. 하나의 워커 스레드는 메시지 큐를 통해 통신하는 하나 이상의 액터(서비스)를 호스팅할 수 있습니다. ## 특징 - **크로스플랫폼**: Windows (VS2022 17.5+), Linux (GCC 13+), macOS (Clang 16+) - **네트워킹**: 최적화된 성능의 TCP, UDP/KCP, WebSockets, HTTP - **Lua 스크립팅**: 소켓, 타이머, 서비스 간/프로세스 간 통신을 위한 비동기 코루틴을 지원하는 Lua 기반 로직 - **데이터베이스 클라이언트**: Redis, PostgreSQL, MongoDB, MySQL용 비동기 드라이버 - **라이브러리**: 최적화된 Lua JSON 라이브러리, Lua Protobuf, Lua 파일시스템, 랭킹 리스트용 Lua zset - **내비게이션**: Recast Navigation 통합 - **간단한 아키텍처**: 간결하고 이해하기 쉬운 소스 코드 - **ASIO 기반 스케줄링** ## 빠른 시작 ```shell # 테스트 실행 ./moon example/test/main_test.lua # 예제 스크립트 실행 ./moon example/example_timer.lua ./moon example/main_game.lua ``` ## 빌드 1. C++23 컴파일러 설치 (VS2022 17.5+, GCC 13+, 또는 Clang 16+) 2. [premake5](https://premake.github.io/download) 설치 3. 저장소 클론 4. 빌드: `premake5 build --release` 5. 실행: `premake5 run --release example/send_benchmark.lua` ## 커뮤니티 - [Gitter](https://gitter.im/undefined/community) - [Wiki/문서](https://github.com/sniper00/moon/wiki) - QQ 그룹: 543833695 ## 확장 기능 추가 라이브러리는 https://github.com/sniper00/lrust 에서 확인할 수 있습니다. ## 데모 [MoonDemo](https://github.com/sniper00/MoonDemo.git) ## 사용 사례 Moon으로 제작된 게임에는 *Age of Kita*와 *战神遗迹* (War God Ruins)가 있습니다. ## 관련 프로젝트 - [NoahGameFrame](https://github.com/ketoo/NoahGameFrame)