ARK is a lightweight, agility, scalable, distributed plugin framework and server written in C++,make it easier and faster to create your own game server, which with Unity3d client. Plan to support UE4, Cocos2dx client.
C++ C# Java CMake C Lua Other
Clone or download

README.md

Server Architecture

GitHub release Platform C++11 License GitHub stars GitHub issues GitHub code size in bytes
SonarCloud CII Best Practices QQ Group Gitter

CI Branch Build Status
Travis CI master Build Status
Travis CI develop Build Status

Copyright © ARK Game
Website: https://arkgame.net
Github: https://github.com/ArkGame/ARK
Gitee(码云): https://gitee.com/ArkGame/ARK
QQ群: 540961187

Wanna get the newest features? Please switch to the develop branch.

If you wanna commit PR or report issue, please refer to Contribution Guide.

ARK

ARK is a lightweight, agility, scalable, distributed plugin framework written by C++,make it easier and faster to create your own game server, can be used to develop MMO RPG, Action RPG, Round play, chess games. Inspired by UnrealEngine and Ogre.

Features

  • Flexible apps, plugins, and modules
  • High availability architectures
  • General abstract data system
  • Interface-oriented and data-oriented programming(IOP & DOP)
  • Event-driven and data-driven
  • High concurrency and performance of network
  • Based on C++ standard, easy to handle and learn
  • Cross platform (Include Windows and Linux)
  • Less downtime and higher availability
  • Lower training and education costs
  • Use Excel as configuration files, easier for game designer
  • With existed simple Unity3D client for rapid development
  • Plentiful plugins(DB, script, http, websocket, etc.)
  • Customization service for business customer

FAQ

Please create a new issue OR visit our community to ask a question.

Architecture

App Architecture:

App Architecture

Get the Sources:

git clone https://github.com/ArkGame/ARK.git

or

svn checkout https://github.com/ArkGame/ARK

Dependencies

Supported Compilers

  • GCC >= 4.8 (Recommend. Tested in Ubuntu 15.04)
  • MSVC >= VS2015 update 3 (Recommend VS2017. Tested in Win7/10)

Build and Install

Windows

Prerequisites:
  • Windows 7 or later
  • Visual Studio 2017
  • Git
  • CMake
Step:

Using Visual Studio 2017

  1. Pull all source
  2. Run command line
cd path/to/ARK
cd Dep
build_dep.bat
  1. Open the solution: Frame/ARK.sln
  2. Build the solutionARK.sln
  3. Run ARK\Bin\Server\DataConfig\Tool\gen-config.bat to generate configuration files
  4. Run the binary file by Bin/Server/Debug/Run.bat

Using CMake

  1. Pull all source
  2. Run command line
cd path/to/ARK
cd Dep
build_dep.bat
cd ../
md build
cd build
cmake -G "Visual Studio 15 Win64" ..
  1. Start ARK.sln
  2. Run ARK\Bin\Server\DataConfig\Tool\gen-config.bat to generate configuration files
  3. Run the binary file by Bin/Server/Debug/Run.bat

Note

  • If you are using VS2015, please use Dep/build_dep_vs2015.bat
  • If you are using VS2017, please change %VS150COMNTOOLS% in Dep/build_dep.bat to YOUR-COMPILER-PATH.
  • If you DO NOT install Win10 SDK, please use CMake to create new solution.

linux

Prerequisites:
  • g++ 4.8+ (need C++ 11)
  • Git
  • CMake 3.0+
  • libtool
  • automake

Using CMake

  1. pull all source
  2. Use bash
cd Dep
./build_dep.sh
cd ../
mkdir build && cd build
cmake -G "Unix Makefiles" ..
make

Note

  • If you need build debug, please add -DCMAKE_BUILD_TYPE="Debug" in cmake command.
  • To accelerate building, you can use make -j to run multiple complication jobs simultaneously. However, that may exhaust the memory.
  1. Run ARK\Bin\Server\DataConfig\Tool\gen-config.sh to generate configuration files(Cuz our Tools is written by C#, so please generate your configuration in Windows, we plan to use .Net Core to create a new version in Linux)
  2. Run the binary file by Bin/Server/Debug/rund.sh

Documents

English

Mandarin

Examples

Please see Frame/Examples.

Plan

View our lastest plan

Unity3D client

Unity3D Client

License

The ARK project is currently available under the Apache License.


Our team has always specialized in the agile development and try to help different teams to develop game project quickly and easily. After years of development, we create this frame. We are still improving it.


Some Awesome projects

PSS

  • Author: freeeyes
  • Description: 基于插件的跨平台网络服务器框架

The relationship with NF

This branch come from NF, we used to be the CORE DEVELOPERS of NF. We create ARK because some different design philosophies, through our new ideas and modifications, now this project is a fresh project which has many different features.