Create your Gitee Account
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
A fast, scalable, distributed game server framework for C++, include actor library, network library,can be used as a real time multiplayer game engine ( MMO RPG/MOBA ), which support C#/Lua script/ Unity3d, and plan to support Cocos2dx and Unreal. spread retract

Clone or download
Notice: Creating folder will generate an empty file .keep, because not support in Git


Join the chat at

#####QQ Group:341159815

What is it?

NF is a lightweight, fast, scalable, distributed plugin framework.Greatly inspired by OGRE and Bigworld.


  • Easy to use interface oriented design minimise the effort
  • Extensible plugin framework makes getting your application running is quick and simple
  • Clean, uncluttered design, stable engine used in several commercial products
  • Using the actor model has very high performance(by Theron)
  • Based on the event-driven and attribute-driver can make business more clearly and easy to maintenance
  • Based on the standard c + + development, cross-platform support
  • With existing c++, c# game client for rapid development
  • Cross-platform



Unity3D client

U3D Client


App Architecture:

App Architecture

Server Architecture

Server Architecture

Get the Sources:

git clone


svn checkout


  • libevent 2.0.22
  • easylogging++ 9.80
  • mysql++ 3.2.2
  • google protobuf 2.5.0
  • redis-cpp-client
  • Theron 6.00.01
  • curl 7.37.1

Supported Compilers

  • GCC >= 4.8 (Tested in Ubuntu 15.04)
  • MSVC >= VS2015 (Tested in Win7/10)

Build and Install

MSVC >= 2015

  1. Git pull all source
  2. Run install4vs.bat
  3. Open the solution: NoahFrame.sln, build FileProcessTool project
  4. Run GenerateConfigXML.bat to generate configuration files
  5. Open the solution: NoahFrame.sln
  6. Build the solution(if u build failed, please build again(not rebuild))
  7. Run the binary file by _Out/Debug/rund.bat

CodeBlocks >= 13.1(Only in linux)

  1. Git pull all source
  2. Run
  3. Open the solution with CodeBlocks: NF.workspace
  4. Check C++11 option in CodeBlocks compiler setting
  5. Build NF.workspace
  6. Run sh ./ to generate configuration files
  7. Run the binary file by _Out/Debug/


  1. Git pull all source
  2. Install cmake[>= 2.8] please choose options for installing: Add CMake to the system PATH for all users and restart your computer
  3. Install VS2015 or gcc[>= 4.8]
  4. Run install4cmake.bat or to build NF
  5. Run the binary file by _Out/Debug/rund.bat or _Out/Debug/

JAVA Project


C# Project


Documents & Tutorial




The NFrame project is currently available under the Apache License.


01-Hello world, add a module

// -------------------------------------------------------------------------
//    @FileName      	:    HelloWorld1.h
//    @Author           :    ketoo
//    @Date             :    2014-05-01 08:51
//    @Module           :   HelloWorld1
// -------------------------------------------------------------------------


#include "NFComm/NFPluginModule/NFIPluginManager.h"

class HelloWorld1
    : public NFILogicModule
    HelloWorld1(NFIPluginManager* p)
        pPluginManager = p;

    virtual bool Init();
    virtual bool AfterInit();

    virtual bool Execute();

    virtual bool BeforeShut();
    virtual bool Shut();




#include "HelloWorld1.h"

bool HelloWorld1::Init()
    // Use this for initialization
    std::cout << "Hello, world1, Init" << std::endl;

    return true;

bool HelloWorld1::AfterInit()
    // AfterInit is called after Init
    std::cout << "Hello, world1, AfterInit" << std::endl;

    return true;

bool HelloWorld1::Execute()
    // Execute is called once per frame
    //std::cout << "Hello, world1, Execute" << std::endl;

    return true;

bool HelloWorld1::BeforeShut()
    //before final
    std::cout << "Hello, world1, BeforeShut" << std::endl;

    return true;

bool HelloWorld1::Shut()
    std::cout << "Hello, world1, Shut" << std::endl;

    return true;

02-Hello world, test data driver

  • how to use the world's most advanced data engine

03-Hello world, test heartbeat and event system

  • how to use the synchronous events

04-Hello actor, test actor model(async event system)

  • how to use the asynchronous events
  • use multiple cpus to get high performance

About The Author

Amazing open source projects:



  • Auther: nousxiong
  • GitHub:
  • Description: The Game Communication Environment (GCE) is an actor model framework for online game development.

Comments ( 0 )

Sign in for post a comment