Python游戏服务器开发日记(一)目标

2023-01-31 01:01:54 服务器 目标 日记

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


       新的服务器想达到的目标:

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

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

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


这个目标还是很宏伟的,只能从底层一步一步攻克。在这里记录一下解决问题的过程,既是分享,也是督促自己不要半途而废。


我个人极度喜欢skynet框架,由于很多原因,skynet框架几乎不可能修改为Python脚本。

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

但是,在研究了skynet之后,我认为以后必然会大量参考skynet的成熟做法,甚至copy很多C语言层的代码。毕竟和高手对架构的理解,和C语言经验上,实在是差的太多。



相关文章