codeblocks编辑Java_README.md

# NoahGameFrame

##### http://www.noahframe.com

##### Forum: http://bbs.noahframe.com/forum.php

- develop

[![Build Status](https://travis-ci.org/ketoo/NoahGameFrame.svg?branch=develop)](https://travis-ci.org/ketoo/NoahGameFrame)

- master

[![Build Status](https://travis-ci.org/ketoo/NoahGameFrame.svg?branch=master)](https://travis-ci.org/ketoo/NoahGameFrame)

- chat

[![Join the chat at https://gitter.im/ketoo/NoahGameFrame](https://badges.gitter.im/ketoo/NoahGameFrame.svg)](https://gitter.im/ketoo/NoahGameFrame?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

#####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

## Toturial

[Toturial](http://bbs.noahframe.com/forum.php?mod=forumdisplay&fid=39) : http://bbs.noahframe.com/forum.php?mod=forumdisplay&fid=39

### FAQ OR DISCUSS

[FAQ](http://blog.noahframe.com/?p=229) : http://blog.noahframe.com/?p=229

### Unity3D client

[U3D Client](https://github.com/ketoo/NoahGameFrame/tree/master/NFClient/Unity3D)

## Architecture

### App Architecture:

![App Architecture](https://github.com/ketoo/NoahGameFrame/blob/develop/Introduce/img/NF_app_arch.png)

### Server Architecture

![Server Architecture](https://github.com/ketoo/NoahGameFrame/blob/develop/Introduce/img/NF_server_arch.png)

## 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

- 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/rund.bat**

### CodeBlocks >= 13.1(Only in linux)

1. Git pull all source

2. Run **install.sh**

3. Open the solution with CodeBlocks: **NF.workspace**

4. Check **C++11** option in CodeBlocks compiler setting

5. Build **NF.workspace**

6. Run **sh ./GenerateConfigXML.sh** to generate configuration files

7. Run the binary file by **_Out/rund.sh**

### CMake

1. Git pull all source

2. Install cmake[>= 3.1] 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 **install4cmake.sh** to build NF

5. Run the binary file by **_Out/rund.bat** or **_Out/rund.sh**

### JAVA Project

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

### C# Project

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

## Documents & Tutorial

[English](https://github.com/ketoo/NoahGameFrame/blob/develop/doc_EN_US.md)

[Mandarin](https://github.com/ketoo/NoahGameFrame/blob/develop/doc_ZH_CN.md)

## License

The NFrame project is currently available under the [Apache License](https://github.com/ketoo/NoahGameFrame/blob/develop/LICENSE).

Tutorial:

-------------------

### [01-Hello world, add a module](https://github.com/ketoo/NoahGameFrame/tree/develop/Tutorial/Tutorial1)

```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 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](https://github.com/ketoo/NoahGameFrame/tree/develop/Tutorial/Tutorial2)

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

-------------------

### [03-Hello world, test heartbeat and event system](https://github.com/ketoo/NoahGameFrame/tree/develop/Tutorial/Tutorial3)

* how to use the synchronous events

-------------------

### [04-Hello actor, test actor model(async event system)](https://github.com/ketoo/NoahGameFrame/tree/develop/Tutorial/Tutorial4ActorPlugin)

* 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

### WELCOME DONATE/欢迎捐赠(支付宝):

![donation](https://github.com/ketoo/NoahGameFrame/blob/develop/Introduce/donation.png)

-------------------

### 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.

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值