Python游戏server开发日记(一)目标
2023-09-11 14:14:43 时间
到了新的环境。老大让我有空研究下一代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语言经验上。实在是差的太多。
相关文章
- How to run python interactive in current file's directory in Visual Studio Code? Python路径问题
- python是否存在某个字符串 效率最高_Python中判断子串存在的性能比较及分析总结...
- C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法
- Python文件下载、Http服务(3为http.server、2为SimpleHTTPServer)
- Word处理控件Aspose.Words功能演示:在 Python 中自动合并 MS Word 邮件
- python Flask JQuery使用说明
- Python怎么就火起来了?学会python可以做的兼职
- 24岁非计算机专业工科妹子裸辞转行Python程序员,自学Python三个月,零基础如何系统学习python,从入门到精通?
- python中graypy库用法详解
- python-requests请求超时解决方案
- SQL SERVER错误:已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)
- 精通Python网络爬虫:核心技术、框架与项目实战.2.1 网络爬虫技能总览图
- gyp ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- python做中学(八)匿名函数lambda的用法
- Microsoft Visual C++ Compiler for Python 2.7真正下载地址
- Python 流程控制
- python Python程序的架构
- kafka clients大全:支持语言集合(java/go/python/c++……)
- Ubuntu Server无桌面无显示器情况下虚拟屏幕xvfb的安装及设置—ubuntu18.04server服务器系统下为python安装虚拟显示器 (使用jupyter notebook在web端播放openai的gym下保存的运行视频——需安装ipython)
- python ide
- Python http.server服务搭建
- Metrics Server--->aggregate api-->metric-server -->cadvisor
- Python 基础 之 python 线程知识点整理,并实现一个简单多线程 udp 聊天应用
- 【sql server复制】教你使用SQL SERVER复制
- 【爬虫系列】【Python】python with as的用法
- 【python 学习】——pycharm终端解释器和Python解释器配置