NoahGameFrame 0,0,1,0,1,1,0,0

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 ), which support C#/Lua script/ Unity3d, and plan to support Cocos2dx, FlashAir client access

NoahGameFrame

Copyright © http://www.noahframe.com

Join the chat at https://gitter.im/ketoo/NoahGameFrame #####QQ Group:341159815

What is it?

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

Features

  • 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

    FAQ

    FAQ

    Unity3D client

    U3D Client

    Architecture

    App Architecture:

    App Architecture

    Server Architecture

    Server Architecture

    Get the Sources:

    git clone https://github.com/ketoo/NoahGameFrame.git or svn checkout https://github.com/ketoo/NoahGameFrame

    Dependencies

  • libevent 2.0.22

  • easylogging++ 9.80

  • mysql++ 3.2.2

  • google protobuf 2.5.0

  • pybind11 1.2

  • 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

  • Git pull all source

  • Run install.bat

  • Open the solution: NoahFrame.sln

  • Build the solution

  • Run GenerateConfigXML.bat to generate configuration files

  • Run the binary file by _Out/Server/Debug/Run.bat

    CodeBlocks >= 13.1(Only in linux)

  • Git pull all source

  • Run install.sh

  • Open the solution with CodeBlocks: NF.workspace

  • Check C++11 option in CodeBlocks compiler setting

  • Build NF.workspace

  • Run sh ./GenerateConfigXML.sh to generate configuration files

  • Run the binary file by _Out/Server/Debug/rund.sh

    CMake

  • Git pull all source

  • Install cmake[>= 2.8] please choose options for installing: Add CMake to the system PATH for all users and restart your computer

  • Install VS2015 or gcc[>= 4.8]

  • Run install.bat or install.sh to build NF

  • Run the binary file by _Out/Server/Debug/run.bat or _Out/Server/Debug/rund_cmake.sh

  • (Optional)For Release Version, after above, run BuildNF.VS2015.Release.X64.bat or BuildNF.CMake.Release.sh, then run the binary file by _Out/Server/Release/run.bat or _Out/Server/Release/run_cmake.sh

    JAVA Project

    WebSite: https://github.com/NFGameTeam/NFrame-java

    C# Project

    WebSite: https://github.com/ketoo/NFrame

    Documents & Tutorial

    English Mandarin

    License

    The NFrame project is currently available under the Apache License. Tutorial: ——————-

    01-Hello world, add a module

    “`cpp // ————————————————————————- // @FileName : HelloWorld1.h // @Author : ketoo // @Date : 2014-05-01 08:51 // @Module : HelloWorld1 // // ————————————————————————- #ifndef NFC_HELLO_WORLD1_H #define NFC_HELLO_WORLD1_H #include “NFComm/NFPluginModule/NFIPluginManager.h” class HelloWorld1

    public NFILogicModule { public: HelloWorld1(NFIPluginManager* p) { pPluginManager = p; } virtual bool Init(); virtual bool AfterInit(); virtual bool Execute(); virtual bool BeforeShut(); virtual bool Shut(); protected: }; #endif #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() { //final 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

  • Mail: [email protected]

  • GitHub: https://github.com/ketoo ——————-

    Amazing open source projects:

    breeze

  • Auther: zsummer

  • Github: https://github.com/zsummer/breeze

  • Description:A fast, scalable, distributed game server framework for C++ gce

  • Auther: nousxiong

  • GitHub: https://github.com/nousxiong/gce

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

Related Repositories

NoahGameFrame

NoahGameFrame

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 ), which support C#/Lua script/ Unity3d, and plan to support Cocos2dx, FlashAir client access ...

NoahGameFrame

NoahGameFrame

A fast, scalable, distributed game server framework for C++, include actor library, network library,can be used as a real time mutliplayer game engine ( MMO RPG ) . ...

NFClient

NFClient

Client's binary file for NoahGameFrame ...


Top Contributors

ketoo tangyu1018 flyiciegood eliteYang ifivebig windzxa xinst echocolate gitter-badger invalid-email-address

Releases

-   V4.0.1 zip tar
-   V4.0 zip tar
-   V4.0beta zip tar
-   V3.4 zip tar
-   V3.3(stable) zip tar
-   V3.2 zip tar