https://github.com/ketoo/NoahGameFrame
什么是NoahGameFrame?
NoahGameFrame(NF)是一个轻量级,快速,可扩展的分布式插件框架。NF受到OGRE和Bigworld的极大启发。
特征
- 易于使用,面向界面的设计
- 一个可扩展的插件框架,使您的应用程序快速,轻松地运行
- 一种干净,整洁的设计和稳定的发动机,已用于多种商业产品
- 高性能演员模型(由Theron提供)
- 事件和属性驱动,使您的业务清晰易懂
- 基于标准C ++开发,确保跨平台支持
- 一个现有的C ++和C#游戏客户端,用于快速开发
- 跨平台支持
教程 - 英语
https://github.com/ketoo/NoahGameFrame/wiki
文件 - 英语
https://github.com/ketoo/NoahGameFrame/wiki/Documentation
Tutorial--中文
教程:http://bbs.noahframe.com/forum.php?mod = forumdisplay&fid = 39
常见问题或讨论
常见问题:http://blog.noahframe.com/?p = 229
Unity3D客户端
建筑
应用架构:
服务器架构
获取来源:
git clone https://github.com/ketoo/NoahGameFrame.git
要么
svn checkout https://github.com/ketoo/NoahGameFrame
依赖
- libevent 2.0.22
- easylogging ++ 9.80
- mysql ++ 3.2.2
- 谷歌protobuf 3.6
- Redis的-CPP-客户端
- 塞隆6.00.01
如果你不能构建依赖关系,那么请运行以下的CMDS来设置环境:
- sudo apt-get g ++
- sudo apt-get cmake
- sudo apt-get install automake
- sudo apt-get install zip解压缩
支持的编译器
- GCC> = 4.8(在Ubuntu 15.04中测试)
- MSVC> = VS2015(在Win7 / 10中测试)
构建和安装
MSVC> = 2015
- Git拉所有来源
- 打开解决方案:NoahFrame.sln,构建FileProcessTool项目
- 运行GenerateConfigXML.bat以生成配置文件
- 打开解决方案:NoahFrame.sln
- 构建解决方案(如果构建失败,请重新构建(不重建))
- 通过_Out / rund.bat运行二进制文件
CMake ----请使用管理员(或sudo)来执行以下操作:
- Git拉所有来源
- 安装cmake [> = 3.1]请选择安装选项:为所有用户添加CMake到系统PATH并重新启动计算机
- 安装VS2015或gcc [> = 4.8]
- 运行Dependencies / build_dep.sh
- 运行install4cmake.bat或install4cmake.sh来构建NF
- 通过_Out / rund.bat或_Out / rund.sh运行二进制文件
JAVA项目
网站:https: //github.com/NFGameTeam/NFrame-java
C#项目
网站:https: //github.com/ketoo/NFrame
Tutorial:
01-Hello world, add a module
// ------------------------------------------------------------------------- // @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 NFIModule { 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: 342006@qq.com
- BBS: http://bbs.noahframe.com
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.