游戏开发论坛

 找回密码
 立即注册
搜索
查看: 13210|回复: 2

开源游戏服务器引擎FreeEngine

[复制链接]

2

主题

10

帖子

100

积分

注册会员

Rank: 2

积分
100
发表于 2016-7-5 11:09:30 | 显示全部楼层 |阅读模式
    自己开发的C++服务器引擎,MIT开源协议,个人能力水平有限,希望广大有志之士能够加入共同探讨学习进步。引擎地址 https://github.com/elevenxt/FreeEngine

FreeEngine
一款开源的游戏服务端引擎,底层框架使用C++编写,核心概念少,易上手,学习成本低。整个架构基于模块机制,注重模块的可复用性,降低功能逻辑耦合。脚本、网络、数据库等支持都是通过模块提供。 该引擎并不是为某一种网游类型设计,它更注重单个服务器架构设计,通过不同的模块组合,引擎适用于所有网络游戏类型。

该引擎设计目标为:
    1. 简单、实用、易上手、方便、快捷、低耦合
    2. 通过对已有模块的重组,快速构建服务器框架和功能逻辑
    3. 提供丰富、稳定、高可复用的模块代码

特性
  • 跨平台,目前支持linux和windows系统
  • 核心概念少,学习成本低,易上手
  • 模块机制
  • 所有其它特性可通过模块实现(网络、数据库、脚本支持等)


2

主题

10

帖子

100

积分

注册会员

Rank: 2

积分
100
 楼主| 发表于 2016-7-6 05:04:16 | 显示全部楼层
kongke 发表于 2016-7-6 01:19
1。单节点 (不是分布式构架)
2。单线程  (没有多线程处理, 比如通讯 win  可以用iocp; linux 可以用ep ...

感谢您的宝贵意见。

1.FreeEngine设计上就是更注重单节点的架构,至于分布式架构,本身就是由单节点组成,这一点并不冲突
2.主逻辑循环是单线程的,至于是否启用多线程主要看业务逻辑是否需要,FreeEngine提供了使用多线程的方式,但是并没有限制死一定要用线程或者不用。网络部分之所以没有在线程中处理出于3个原因:一、设计简单,更容易说明问题,二、网络并不一定是瓶颈所在,三、网络是demo的一部分,实际开发中可自己设计网络部分,可以在线程中处理。
3.loop循环只有三层,主循环->ModuleMgr->Module,前2层都是固定一条线,最后一层是树状发散出去,并不是每个对象都有loop操作,而是只有Module能够有loop操作,而Module也可以选择是否需要loop操作。loop操作主要是用来处理每一帧都需要处理的事情,这里如果用事件反而会更耗性能。事件机制可以用单独的模块另外实现(暂未提供)。

FreeEngine设计理念之一是尽可能让开发者可以自由发挥,减少限制因素,可以自由设计功能模块,所以引擎内部并没有提供过多特性,但是这些特性都是可以实现的,比如分布式,比如多线程,比如事件。FreeEngine要考虑的是如何组合协调这些特性联合工作。

0

主题

20

帖子

60

积分

注册会员

Rank: 2

积分
60
发表于 2016-7-20 21:55:51 | 显示全部楼层
名字好直白
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-25 06:45

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表