Git Product home page Git Product logo

kbengine_ue4_plugins's Introduction

KBEngine

Build Status Appveyor (Windows) Build  Status

Homepage

https://kbengine.github.io/

Releases

Sources		: https://github.com/kbengine/kbengine/releases/latest

Demo sources

Unity3d		: https://github.com/kbengine/kbengine_unity3d_demo/releases/latest
Unity3d		: https://github.com/kbengine/kbengine_unity3d_warring/releases/latest
UE4		: https://github.com/kbengine/kbengine_ue4_demo/releases/latest
Ogre		: https://github.com/kbengine/kbengine_ogre_demo/releases/latest
Cocos2d_js	: https://github.com/kbengine/kbengine_cocos2d_js_demo/releases/latest
Godot Engine	: https://github.com/krogank9/kbe_godot_demo/releases/latest

Docs

Docs		: https://kbengine.github.io/docs/
API		: https://github.com/kbengine/kbengine/tree/master/docs

Support

Email		: kbesrv?gmail.com
QQ		: 3603661
BBS		: http://bbs.kbengine.org
Maillist	: https://groups.google.com/d/forum/kbengine_maillist

Stresstest

https://www.youtube.com/watch?v=sWtk3CfxyGY
http://v.youku.com/v_show/id_XMjgyMjM0MTYwNA==.html?spm=a2h3j.8428770.3416059.1

What is KBEngine?

An open source MMOG server engine. 
Just use Python scripting to be able to complete any game logic simply and efficiently (supports hotfixing).
Various KBEngine plugins can be quickly combined with (Unity3D, OGRE, Cocos2d-x, HTML5, etc.) technology to 
form a complete game client.

The engine is written in C++, and saves developers from having to re-implement common server-side 
technology, allowing them to concentrate on game logic development, to quickly create a variety of games.

(Because it is often asked what the upper limit of the load is that KBEngine can handle, the underlying 
architecture has been designed as a multi-process distributed dynamic load balancing solution. In theory, 
by continuously expanding the hardware, the upper limit of the load can also be continuously increased. 
The upper limit of the capacity of a single machine depends on the complexity of the game logic itself.)

Create a new game asset library

Execute:
	new_assets.bat

Output:
	server_assets

中文

官网论坛,QQ交流群:461368412、16535321、716679842

什么是KBEngine?

一款开源的MMOG游戏服务端引擎,
仅Python脚本即可简单高效的完成任何游戏逻辑(支持热更新),
使用配套客户端插件能够快速与(Unity3D、UE4、OGRE、HTML5、等等)结合形成一个完整的客户端。

引擎使用C++编写,开发者无需重复的实现游戏服务端通用的底层技术,
将精力真正集中到游戏开发层面上来,稳定可靠并且快速的打造各种网络游戏。

(经常被问到承载上限,KBEngine底层架构被设计为多进程分布式动态负载均衡方案,
理论上只需要不断扩展硬件就能够不断增加承载上限,单台机器的承载上限取决于游戏逻辑本身的复杂度。)

kbengine_ue4_plugins's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kbengine_ue4_plugins's Issues

安卓端运行BUG

http://bbs.kbengine.org/forum.php?mod=forumdisplay&fid=2&page=1

template T read(uint32 pos)
{
check(sizeof(T) <= length());
T val;
char* p = (char*)&val;

            for(int i =0;i < sizeof(T);i++)
            {
                p[i] = (data() + pos)[i];
            }

            EndianConvert(val);
            return val;
    }

template T read(uint32 pos)
{
check(sizeof(T) <= length());
T val;

memcpy(void*)&val, (data() + pos), sizeof(T) );

            EndianConvert(val);
            return val;
    }

编译报错

1>D:\KBProTestV_22_3\Plugins\KBEnginePlugins\Source\KBEnginePlugins\Private\DataTypes.cpp(396): error C2039: “readUint64”: 不是“MemoryStream”的成员
1> D:\KBProTestV_22_3\Plugins\KBEnginePlugins\Source\KBEnginePlugins\Public\DataTypes.h(8): note: 参见“MemoryStream”的声明
1>D:\KBProTestV_22_3\Plugins\KBEnginePlugins\Source\KBEnginePlugins\Private\DataTypes.cpp(397): error C2039: “readInt32”: 不是“MemoryStream”的成员
1> D:\KBProTestV_22_3\Plugins\KBEnginePlugins\Source\KBEnginePlugins\Public\DataTypes.h(8): note: 参见“MemoryStream”的声明
1>D:\KBProTestV_22_3\Plugins\KBEnginePlugins\Source\KBEnginePlugins\Private\DataTypes.cpp(398): error C2039: “readUint16”: 不是“MemoryStream”的成员
1> D:\KBProTestV_22_3\Plugins\KBEnginePlugins\Source\KBEnginePlugins\Public\DataTypes.h(8): note: 参见“MemoryStream”的声明
1>D:\KBProTestV_22_3\Plugins\KBEnginePlugins\Source\KBEnginePlugins\Private\DataTypes.cpp(399): error C2039: “readUint16”: 不是“MemoryStream”的成员
1> D:\KBProTestV_22_3\Plugins\KBEnginePlugins\Source\KBEnginePlugins\Public\DataTypes.h(8): note: 参见“MemoryStream”的声明
1>D:\KBProTestV_22_3\Plugins\KBEnginePlugins\Source\KBEnginePlugins\Public\Entity.h(342): error C2593: “operator =”不明确

这个项目没做完啊,现在还不能用。

c++没有反射机制,InterfaceXX不好做,我熟悉ue4,可以参与ue4插件的开发,只是不熟悉kbengine, 请问下作者的关于ue4插件的开发计划是怎么样的(时间,技术要点).

插件里面对象在编辑器值初始化一次的问题

bool KBEngineApp::initialize(KBEngineArgs* pArgs)
{
	if (isInitialized())
		return false;

	EntityDef::initialize();

	// 允许持久化KBE(例如:协议,entitydef等)
	if (pArgs->persistentDataPath != TEXT(""))
	{
		KBE_SAFE_RELEASE(persistentInfos_);
		persistentInfos_ = new PersistentInfos(pArgs->persistentDataPath);
	}

	// 注册事件
	installEvents();

	pArgs_ = pArgs;
	reset();
	return true;
}
if (isInitialized())
	return false; 

这个代码只会在编辑器第一次运行时初始化?应该每次编辑器上运行都初始化,因为上层可能会修改配置,

问题是: bool isInitialized() const {
return pArgs_ != NULL;
}
这个pArgs_在编辑器器运行关闭时没有释放。

bool UKBEMain::destroyKBEngine()
{
	if (!KBEngineApp::getSingleton().isInitialized())
		return false;

	KBEngineApp::getSingleton().destroy();
	return true;
}

这没有地方调用!

KBEngineApp::destroy()报错

1.1.0版
destroy()调用到resetMessage的时候delete 了EntityDef::datatypes里面的值, 但是这个datatypes里面的值并不全是new出来的,在KBEngine::createDataFromStream() 里面最后一个else 判定里面有问题

KBEDATATYPE_BASE* val = NULL;
if (EntityDef::datatypes.Contains(name))
	val = EntityDef::datatypes[name];

EntityDef::datatypes.Add(valname, val);

Unrecognized type 'int' - type must be a UCLASS, USTRUCT or UENUM

1>多个地方出现---如果用到蓝图的宏的话,必须用虚幻自己的数据类型,这个不能直接用int -- 可以用int32
E:/GitHub/kbengine_ue4_demo/Plugins/kbengine_ue4_plugins/Source/KBEnginePlugins/Public/KBEvent.h(269) : Unrecognized type 'int' - type must be a UCLASS, USTRUCT or UENUM

UCLASS(Blueprintable, BlueprintType)
class KBENGINEPLUGINS_API UKBEventData_onLoseControlledEntity : public UKBEventData
{
GENERATED_BODY()

public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = KBEngine)
int entityID;
};

int entityID; -> int32 entityID;

目前测试版本是UE4 4.10

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.