2019独角兽企业重金招聘Python工程师标准>>>

Firefly是免费、开源、稳定、快速扩展、能 “热更新”的分布式游戏服务器端框架,采用Python编写,基于Twisted框架开发。它包括了开发框架和数据库缓存服务等各种游戏服务器基础服务,节省大量游戏开发的工作时间,真正做到让使用者把精力放在游戏玩法逻辑上。用它可以搭建自定义的分布式架构,只需要修改相应的配置文件即可。

优势特性

  • 采用单线程多进程架构,支持自定义的分布式架构;
  • 方便的服务器扩展机制,可快速扩展服务器类型和数量;
  • 与客户端采用TCP长连接,无需考虑粘包等问题;
  • 封装数据缓存服务;
  • 可实现实时热更新数据以及游戏逻辑,客户端玩家无感觉;
  • 有几十个基础游戏玩法系统模块提供组装使用(v1.3.0提供);

框架介绍

management, firefly 是个多进程、分布式的游戏服务器。因此各游戏server(进程)的管理和扩展是firefly很重要的部分,框架通过抽象使服务器的扩展非常容易。

Network,客户端连接通信、server进程间的通信等构成了整个游戏框架的脉络,所有游戏流程都构建在这个脉络上。与客户端的通信采用的是请求/回应式的,所以受到的客户端的请求,服务端都会给出相应的回应,服务端也能主动的推送,广播给客户端消息。这些请求是基于指令号的请求。(例如定义101为登陆指令)server进程之间的通信时采用的异步回调的方式,这样就减少了的进程间通过网络通信中的时间消耗。

Data, 数据处理是网游的重要部分。在网游有大量的数据需要存储,需要更新,这使得数据库的读写效率成为服务器的最大的性能瓶颈。firefly的db处理能够将数据库表中的数据缓存到memcache中并能以对象的形式进行调用相应的对象方法对数据进行操作。可以在不同的进程中通过实例化相同的名称的缓存实例,得到同步的数据。并能将缓存对象中的数据写回数据库中。
框架思路

一个最基本的服务器就是一个在不停运行着的应用程序。在分布式游戏服务器中,我们需要的服务器具有的功能有,监听客户端的连接,监听其他服务进程的消息,连接其他的服务进程,有些需要有数据库连接和缓存服务。如下图

net connect 做客户端连接,root监听其他服务进程消息,node连接其他服务进程,db数据库,cache缓存。是否需要监听客户端连接,是否监听其他服务进程消息等这是都是可以在config.json中进行配置。包括各个服务器的名称以及各个服务器之间的连接关系。这样就可以自定义出自己的分布式架构。

Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础上开发。允许你在 Python 程序中创建功能丰富的游戏和多媒体程序,Pygame 是一个高可移植性的模块可以支持多个操作系统。

转载于:https://my.oschina.net/u/1389155/blog/174208

游戏开发--开源软件11--Firefly(python 服务端分布式框架)||pygame相关推荐

  1. 游戏开发--开源软件7--xith3D(java 3D引擎)

    2019独角兽企业重金招聘Python工程师标准>>> Xith3D是高性能的Java 3D引擎,主要面向3D游戏,数据可视化,三维场景原型等. 最突出的特点是基于scenegrap ...

  2. 2014年最热门的国人开发开源软件TOP100

    2014年最热门的国人开发开源软件TOP100 不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多 ...

  3. 游戏开发和软件开发的具体区别是什么?

    其实游戏开发本质上是软件开发的一种,因为游戏开发也需要用编程语言. 这两者之间的区别就是侧重点不同,一个游戏开发出来实际上也是一款软件,如果你认为软件开发跟游戏开发是两种,那么我的观点是是前端的不同, ...

  4. Cocos2dx游戏开发系列笔记11:解刨《战神传说》完结篇

    懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 ) 两点: 1 感谢 net19880504 同学,在上篇提到:想让骨头继续写<战神传说> ...

  5. python 服务端主动发数据_python使用socket向客户端发送数据的方法

    Python Socket通讯例子详解 创新从模仿开始! python中内置的socket模块使得网络编程更加简单化,下面就通过两个小小脚本来了解客户端如何与服务器端建立socket. 客户端代码: ...

  6. python 服务端框架_GitHub - edisonlz/fastor: Python服务端开发框架-极易上手,超出你的想象!...

    欢迎使用Python 服务端开发框架 Fastor Fastor是一款专为Python 打造的API与后端管理系统,通过精心的设计与技术实现,集成了大部分稳定开发组件,memcache , redis ...

  7. SwiftUI 开源项目 - ZYSwiftUIFrame 自带服务端的完整示例项目(更新中...)

    SwiftUI 开源项目 前言 主要特色 项目技术 项目预览 1. 不需要开启服务端 1.1 用户列表 2. 需要开启服务端 2.1 消息列表 2.2 会议列表 运行教程 运行 IOS 项目 运行服务 ...

  8. UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)

    目录 一.使用UE4建立TCP客户端 二.使用网络调试助手建立服务端 三.基于网络调试助手的服务端与UE客户端通信 四.基于python的TCP服务端与UE客户端通信 一.使用UE4建立TCP客户端 ...

  9. 开发函数计算的正确姿势 —— 移植 next.js 服务端渲染框架

    为什么80%的码农都做不了架构师?>>>    首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算 ...

最新文章

  1. 求介绍matlab函数用法的书,MATLAB初学者教程--函数用法的简单介绍
  2. jQuery 中 attr() 和 prop() 方法的区别
  3. 空心磁珠铁氧体抗干扰屏蔽磁环RH磁通高频磁芯圆形穿心磁珠滤波器
  4. apk反编译看包名什么的
  5. pythonc语言结构_C语言结构体笔记
  6. linux ospf 命令,Linux运维知识之linux下使用quagga配置ospf协议
  7. 正则表达式应用:实现一个简单的计算器
  8. MySQL avg()函数
  9. Python 数据分析三剑客之 Pandas(五):统计计算与统计描述
  10. Python数据类型-----列表
  11. 探讨一下,数据库里账号的密码,怎样存放更加安全?
  12. 最新好用的服装零售进销存软件排行榜
  13. tiobe编程语言排名_排名前20位的编程语言:GitHut和Tiobe排名
  14. ONNX转ms后,benchmark跑分非常慢
  15. 冰汽时代机器人不用热_如何评价游戏《冰汽时代》?
  16. xmind zen 同步问题解决 坚果云
  17. 3090显卡 爆显存调试
  18. 嵌入式C语言学习笔记附图
  19. 数据结构--排序算法(冒泡排序)
  20. ArcGIS中使用协同克里金插值(co-kriging interplotation )对气象数据插值

热门文章

  1. 计算机一级汉字录入在线联系,计算机一级考试指导:汉字录入题的操作
  2. 数组不能将数值传给int_java数组查找常见情况
  3. 【存储知识学习】第三章磁盘原理与技术3.8并行传输和串行传输and3.9 IOPS和带宽-《大话存储》阅读笔记
  4. 软件项目管理0703:净收确认
  5. 2021-04-21--中标麒麟-yum源修改
  6. 《系统集成项目管理工程师》必背100个知识点-24变更的常见原因
  7. 笔记-项目质量管理-精简
  8. 信息系统项目管理师-项目成本管理考点笔记
  9. ElementUI中el-table-column的type为selection时选择框旁边有个点
  10. Jquery中使用Validate插件使表单验证更加简单