All Projects → ketoo → Noahgameframe

ketoo / Noahgameframe

Licence: apache-2.0
A fast, scalable, distributed game server engine/framework for C++, include the actor library, network library, can be used as a real time multiplayer game engine ( MMO RPG/MOBA ), which support C#/Lua script/ Unity3d, Cocos2dx and plan to support Unreal.

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
C#
18002 projects
assembly
5116 projects
Ada
118 projects
pascal
1382 projects

Projects that are alternatives of or similar to Noahgameframe

Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (-79.9%)
Mutual labels:  game, unity, game-development, game-engine, gamedev, game-server, mmorpg, gameserver
Kaetram Open
An open-source 2D HTML5 adventure based off BrowserQuest (BQ).
Stars: ✭ 138 (-95.76%)
Mutual labels:  game, game-development, game-engine, gamedev, game-server, mmo
Gdk For Unity Fps Starter Project
SpatialOS GDK for Unity FPS Starter Project
Stars: ✭ 119 (-96.35%)
Mutual labels:  game, unity, unity3d, game-development, mmo
Ark
ARK is a lightweight, agility, elastic, distributed plugin framework written in C++,make it easier and faster to create your own application service.
Stars: ✭ 370 (-88.64%)
Mutual labels:  game, game-development, game-server, gameserver, architecture
Ksframework
QQ Group:538722494,KSFramework = KEngine + SLua(or xLua) , Unity3D Framework/Toolsets focus on hot reload
Stars: ✭ 1,119 (-65.65%)
Mutual labels:  game, unity, unity3d, game-development, game-engine
Game
⚔️ An online JavaScript 2D Medieval RPG.
Stars: ✭ 388 (-88.09%)
Mutual labels:  game, game-development, game-engine, gamedev, mmorpg
Deadsimple Pixel Perfect Camera
An exceedingly easy-to-use pixel perfect orthographic camera script for 2D scenes in Unity. Punch in a few specs and you've got a working pixel perfect camera. It's that easy.
Stars: ✭ 186 (-94.29%)
Mutual labels:  unity, unity3d, game-development, game-engine, gamedev
Gamedev4noobs
Olá, sejam bem-vindos ao repositório _gamedev4noobs_ do Estúdio Vaca Roxa. O propósito desse repositório, além de contribuir para o projeto 4noobs, é ensinar o básico do desenvolvimento de jogos para iniciantes. Apresentando boas práticas e insumos para criar games incríveis.
Stars: ✭ 122 (-96.26%)
Mutual labels:  game, unity3d, game-development, game-engine, gamedev
Unity2d Components
A constantly evolving array of Unity C# components for 2D games, including classes for pixel art cameras, events & messaging, saving & loading game data, collision handlers, object pools, and more.
Stars: ✭ 375 (-88.49%)
Mutual labels:  unity, unity3d, game-development, game-engine, gamedev
Anything about game
A wonderful list of Game Development resources.
Stars: ✭ 541 (-83.39%)
Mutual labels:  game, unity, game-development, game-engine, gamedev
Entitas Csharp
Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
Stars: ✭ 5,393 (+65.53%)
Mutual labels:  game, unity, game-development, game-engine, gamedev
Texturepanner
This repository hosts a shader for Unity3D whose main goal is to facilitate the creation of neon-like signs, conveyor belts and basically whatever based on scrolling textures
Stars: ✭ 528 (-83.79%)
Mutual labels:  game, unity, unity3d, game-development, gamedev
Beaverandfairies
Stars: ✭ 14 (-99.57%)
Mutual labels:  game, unity, unity3d, game-development, gamedev
Reldens
Reldens - You can make it - Open Source MMORPG Platform
Stars: ✭ 130 (-96.01%)
Mutual labels:  game, game-development, gamedev, mmorpg, mmo
1 Character Movement
The first section of the course. You will learn everything required to build a simple movement system in your RPG, creating the core experience. http://gdev.tv/rpggithub
Stars: ✭ 81 (-97.51%)
Mutual labels:  game, unity, unity3d, game-development
09 Zombierunner Original
First person shooter with Unity terrain and AI pathfinding (http://gdev.tv/cudgithub)
Stars: ✭ 64 (-98.04%)
Mutual labels:  game, unity, unity3d, game-development
Projectfieldwarning
Project: Field Warning is a community-made RTS game centered around lethal regiment and division-scale warfare.
Stars: ✭ 86 (-97.36%)
Mutual labels:  game, unity, unity3d, gamedev
3 Modifiers And Abilities
Customise character abilities, weapons, characters and enemies. This includes multiple damage types, modifiers, sounds, animations. By the end you can create your core combat experience. (REF MA_RPG) http://gdev.tv/rpggithub
Stars: ✭ 64 (-98.04%)
Mutual labels:  game, unity, unity3d, game-development
Entitas Sync Framework
Networking framework for Entitas ECS. Targeted at turnbased games or other slow-paced genres.
Stars: ✭ 98 (-96.99%)
Mutual labels:  game, unity, game-development, gamedev
Openmmo
OpenMMO - Groundwork
Stars: ✭ 115 (-96.47%)
Mutual labels:  game, unity3d, mmorpg, mmo

NoahGameFrame

  • develop Build Status
  • master Build Status
  • chat Join the chat at https://gitter.im/ketoo/NoahGameFrame

#####QQ群:330241037 NF开源服务器引擎2群

Tutorial && Documents

https://github.com/ketoo/NoahGameFrame/wiki

What is NoahGameFrame?

NoahGameFrame (NF) is a lightweight, fast, scalable, distributed plugin framework. NF is greatly inspired by OGRE and Bigworld.

Features

  • Easy-to-use, interface-oriented design
  • An extensible plugin framework that makes getting your application running quick and easy
  • A clean, uncluttered design and stable engine that has been used in several commercial products
  • A high performance actor model (by a safe thread pool)
  • Event and attribute-driven, making it clear and easy to maintain your business
  • Based on standard C++ development, ensuring cross-platform support
  • An existing C++ and C# game client for rapid development
  • Cross-platform support

Tutorial && Documents

https://github.com/ketoo/NoahGameFrame/wiki

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
  • easylogging++
  • google protobuf
  • hiredis
  • ajson
  • concurrentqueue
  • RapidXML
  • LuaIntf
  • navigation
  • lua

Tutorial && Documents

https://github.com/ketoo/NoahGameFrame/wiki

IF YOU CAN NOT BUILD THE DEPENDENCIES THEN PLEASE RUN THE CMDS BELOW TO SET UP THE ENVIRONMENT:

  • sudo apt-get install g++
  • sudo apt-get install cmake
  • sudo apt-get install automake
  • sudo apt-get install zip unzip

Supported Compilers

  • GCC >= 7 (Tested on Ubuntu 16.04)
  • MSVC >= VS2019 (Tested on Win10)

Build and Install

FOR WINDOWS, MSVC >= 2019

  1. Git pull all source
  2. Run the script file named build_dep.bat where located /Dependencies (墙内上网的同学请点击:墙内下载依赖库.bat)
  3. Build the solution(if u build failed, please build again(not rebuild all))
  4. Run the binary file by _Out/rund.bat

FOR LINUX(UBUNTU, CENTOS) ---- please use administrator(or sudo) to do these:

  1. Git pull all source
  2. Run install4cmake.sh to build NF (or run cd /Dependencies ./build_dep.sh then run buildServer.sh)
  3. Run the binary file by _Out/rund.sh

IF YOU LIVING IN A COUNTRY CANNOT ACCESS GITHUB FASTLY PLZ BUILD NF WITH VPN

HOW TO RUN HELLO WORLD

https://github.com/ketoo/NoahGameFrame/wiki/How-to-run-the-Helloworld

HOW TO DEBUG WITH UNITY3D

https://github.com/ketoo/NoahGameFrame/wiki/How-to-debug-with-unity3d

Unity Multiplayer Demo

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

Showcase

Tutorial && Documents

https://github.com/ketoo/NoahGameFrame/wiki

License

The NFrame project is currently available under the Apache License.

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

How to Create a New LuaScriptModule

Step 1

Create a Lua Script File, and Must Contain following functions

  • awake()

  • init()

  • ready_execute()

  • after_init()

  • before_shut()

  • shut()

Mostly like this

test_module.lua

test_module = {}
register_module(test_module,"test_module");


function test_module.awake()

end

function test_module.init()
end

function test_module.after_init()
end

function test_module.ready_execute()
end

function test_module.before_shut()
end

function test_module.shut()
end

##Step 2 Add your LuaScriptModule Infomation into script_list.lua

ScriptList={
    {tbl=nil, tblName="TestModule"},
    {tbl=nil, tblName="TestModule2"},
}

load_script_file(ScriptList)

##Hot fix Add your lua script file name on here script_reload.lua


New Feature in future: Blue Print System

Demo:

Showcase


Amazing open source projects:

breeze

gce

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

moon

Tutorial && Documents

https://github.com/ketoo/NoahGameFrame/wiki

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].