Python游戏server开发日记(一)目标

        到了新的环境。老大让我有空研究下一代server技术,作为一个长期任务。


       新的server想达到的目标:

       1、分布式系统,对象(Entity)之间的关系类似于Actor模型。

       2、逻辑服务,是单进程、多线程的,对象之间发消息进行通信,可是简单读取属性尽可能做到直接。

       3、必须使用Python语言。开发方式类似于BigWorld引擎。


这个目标还是非常雄伟的,仅仅能从底层一步一步攻克。

在这里记录一下解决这个问题的过程,既是分享。也是督促自己不要半途而废。


我个人极度喜欢skynet框架,因为非常多原因,skynet框架差点儿不可能改动为Python脚本。

原因除了众所周知的GIL(Python全局锁)问题以外,还有Python的Interpreter是极为重量级的,假设像skynet的独立lua_state那样使用,怕是什么都不做也能把内存所实用光。所以还是用普通的对象表示每一个Entity,在进程内保存所有对象就可以。逻辑进程之内。也并不存在“独立服务”的概念。

可是,在研究了skynet之后,我觉得以后必定会大量參考skynet的成熟做法。甚至copy非常多C语言层的代码。毕竟和高手对架构的理解,和C语言经验上。实在是差的太多。



posted @ 2017-05-18 15:35  claireyuancy  阅读(207)  评论(0编辑  收藏  举报