Moon is a lightweight game server framework based on the actor model. One worker thread can have one or multiple actors (services), which communicate with each other through message queues. There are many features for game server development:
- Less core code, easy to learn
- Cross-platform (Windows, Linux, MacOS)
- Optimized networking
- Tcp
- Udp/Kcp
- Websockets
- Http
- Asynchronous based on Lua coroutines
- Coroutine-socket
- Timer
- Inter-service communication
- Inter-process communication
- Redis/PostgreSQL/Mongodb/Mysql async client driver
- High performance and optimized Lua Json library
- Lua protobuf library
- Lua filesystem
- Recast Navigation
- Lua zset library for ranklist
https://github.com/sniper00/moon/wiki
# Run test
./moon test/main_test.lua
# Run script in the example directory, e:
./moon example/example_timer.lua
# This is a guessing game, example/GuessGame.md
./moon example/main_game.lua
-
Make sure your compiler(vs2022 17.5+, gcc 9.3+, clang 9.0+) support C++17 or Install
C++17
Compiler.。 -
Clone source code
git clone --recursive https://github.com/sniper00/moon.git
-
Build
- windows run
build.bat
- linux
make config=release
- macOS
brew install premake premake5 gmake --cc=clang make config=release
- windows run
-
If you want modify premake5 script, See detail build steps