Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sniper00/moon
A lightweight game server framework implemented with Actor Model
https://github.com/sniper00/moon
actor-model coroutine cpp cpp17 cross-platform game game-server lua multithreading network unity
Last synced: 6 days ago
JSON representation
A lightweight game server framework implemented with Actor Model
- Host: GitHub
- URL: https://github.com/sniper00/moon
- Owner: sniper00
- License: mit
- Created: 2016-09-23T08:15:14.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T14:39:49.000Z (about 1 month ago)
- Last Synced: 2024-10-29T16:04:43.364Z (about 1 month ago)
- Topics: actor-model, coroutine, cpp, cpp17, cross-platform, game, game-server, lua, multithreading, network, unity
- Language: C++
- Homepage:
- Size: 7.34 MB
- Stars: 769
- Watchers: 38
- Forks: 172
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- AwesomeCppGameDev - moon - platform,lightweight,scalable game server framework written in C++, and support Lua Script (Networking)
README
# Current building status
[![linux-gcc](https://github.com/sniper00/moon/actions/workflows/linux-gcc.yml/badge.svg)](https://github.com/sniper00/moon/actions/workflows/linux-gcc.yml)
[![linux-clang](https://github.com/sniper00/moon/actions/workflows/linux-clang.yml/badge.svg)](https://github.com/sniper00/moon/actions/workflows/linux-clang.yml)
[![macos-clang](https://github.com/sniper00/moon/actions/workflows/macos-clang.yml/badge.svg)](https://github.com/sniper00/moon/actions/workflows/macos-clang.yml)
[![windows-vs2022](https://github.com/sniper00/moon/actions/workflows/windows-vs2022.yml/badge.svg)](https://github.com/sniper00/moon/actions/workflows/windows-vs2022.yml)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=sniper00_moon&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=sniper00_moon)
# 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](https://github.com/sniper00/MoonNetLua/raw/master/src/image/01.png)
# Community
- [![Gitter](https://badges.gitter.im/undefined/community.svg)](https://gitter.im/undefined/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
- QQ group: 543833695
# Documents
https://github.com/sniper00/moon/wiki# Quick Start
[Download Pre-Built Binaries](https://github.com/sniper00/moon-extensions/releases/tag/prebuilt)
```shell
# 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
- [MoonDemo](https://github.com/sniper00/MoonDemo.git)# Build
1. Make sure your compiler(vs2022 17.5+, gcc 9.3+, clang 9.0+) support C++17 or [Install `C++17` Compiler.](https://github.com/sniper00/moon/wiki/Build#%E5%AE%89%E8%A3%85c17%E7%BC%96%E8%AF%91%E5%99%A8)。
2. Clone source code
```
git clone https://github.com/sniper00/moon.git
```3. Build
- **windows** run `build.bat`
- **linux** run `./build.sh`
- **macOS** run `./build.sh`**If you want modify premake5 script, [See detail build steps](https://github.com/sniper00/moon/wiki/Build#%E7%BC%96%E8%AF%91)**
# Use case
### 若您的项目使用了moon,欢迎联系作者,作者很乐意把您的作品展示出来.
| | |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
|[Age of kita](https://www.taptap.cn/app/225455)
|[战神遗迹](https://www.taptap.cn/app/194605)
|# Friend Open Source
- [NoahGameFrame](https://github.com/ketoo/NoahGameFrame)
- [hive](https://github.com/hero1s/hive)