Skip to content

sniper00/moon

Repository files navigation

Current building status

linux-gcc

linux-clang

macos-clang

windows-vs2022

Quality Gate Status

Moon

Moon is a lightweight game server framework based on the actor model. One worker thread can have one or more actors (services), which communicate with each other through message queues. There are many features for game server development:

  • The architecture is simple, and the source code is concise and easy to understand.
  • Cross-platform (Windows, Linux, MacOS)
  • Uses ASIO for scheduling
  • Uses Lua for logic scripting
  • 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

OverView

Framework

image

Community

  • Gitter

  • QQ group: 543833695

Documents

https://github.com/sniper00/moon/wiki

Quick Start

Download Pre-Built Binaries

# Run test
./moon example/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

Demo

Build

  1. Make sure your compiler(vs2022 17.5+, gcc 9.3+, clang 9.0+) support C++17 or Install C++17 Compiler.

  2. Clone source code

    git clone https://github.com/sniper00/moon.git
  1. Build
    • windows run build.bat
    • linux run ./build.sh
    • macOS run ./build.sh

If you want modify premake5 script, See detail build steps

Use case

If your project uses moon, feel free to contact the author. The author is happy to showcase your work..

g1 g2

Age of kita

战神遗迹

Friend Open Source