zoukankan      html  css  js  c++  java
  • 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语言经验上。实在是差的太多。



  • 相关阅读:
    Ubuntu的防火墙UFW
    使用Xshell连接Ubuntu
    Markdown 11种基本语法
    Git Push 避免用户名和密码方法
    "git rm" 和 "rm" 的区别
    无限级分类实现思路
    1. Git 克隆代码
    Git 笔记
    git 远程分支创建与推送
    ci 笔记
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6873681.html
Copyright © 2011-2022 走看看