游戏开发--开源软件11--Firefly(python 服务端分布式框架)||pygame
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相关推荐
- 游戏开发--开源软件7--xith3D(java 3D引擎)
2019独角兽企业重金招聘Python工程师标准>>> Xith3D是高性能的Java 3D引擎,主要面向3D游戏,数据可视化,三维场景原型等. 最突出的特点是基于scenegrap ...
- 2014年最热门的国人开发开源软件TOP100
2014年最热门的国人开发开源软件TOP100 不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多 ...
- 游戏开发和软件开发的具体区别是什么?
其实游戏开发本质上是软件开发的一种,因为游戏开发也需要用编程语言. 这两者之间的区别就是侧重点不同,一个游戏开发出来实际上也是一款软件,如果你认为软件开发跟游戏开发是两种,那么我的观点是是前端的不同, ...
- Cocos2dx游戏开发系列笔记11:解刨《战神传说》完结篇
懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 ) 两点: 1 感谢 net19880504 同学,在上篇提到:想让骨头继续写<战神传说> ...
- python 服务端主动发数据_python使用socket向客户端发送数据的方法
Python Socket通讯例子详解 创新从模仿开始! python中内置的socket模块使得网络编程更加简单化,下面就通过两个小小脚本来了解客户端如何与服务器端建立socket. 客户端代码: ...
- python 服务端框架_GitHub - edisonlz/fastor: Python服务端开发框架-极易上手,超出你的想象!...
欢迎使用Python 服务端开发框架 Fastor Fastor是一款专为Python 打造的API与后端管理系统,通过精心的设计与技术实现,集成了大部分稳定开发组件,memcache , redis ...
- SwiftUI 开源项目 - ZYSwiftUIFrame 自带服务端的完整示例项目(更新中...)
SwiftUI 开源项目 前言 主要特色 项目技术 项目预览 1. 不需要开启服务端 1.1 用户列表 2. 需要开启服务端 2.1 消息列表 2.2 会议列表 运行教程 运行 IOS 项目 运行服务 ...
- UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)
目录 一.使用UE4建立TCP客户端 二.使用网络调试助手建立服务端 三.基于网络调试助手的服务端与UE客户端通信 四.基于python的TCP服务端与UE客户端通信 一.使用UE4建立TCP客户端 ...
- 开发函数计算的正确姿势 —— 移植 next.js 服务端渲染框架
为什么80%的码农都做不了架构师?>>> 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算 ...
最新文章
- 求介绍matlab函数用法的书,MATLAB初学者教程--函数用法的简单介绍
- jQuery 中 attr() 和 prop() 方法的区别
- 空心磁珠铁氧体抗干扰屏蔽磁环RH磁通高频磁芯圆形穿心磁珠滤波器
- apk反编译看包名什么的
- pythonc语言结构_C语言结构体笔记
- linux ospf 命令,Linux运维知识之linux下使用quagga配置ospf协议
- 正则表达式应用:实现一个简单的计算器
- MySQL avg()函数
- Python 数据分析三剑客之 Pandas(五):统计计算与统计描述
- Python数据类型-----列表
- 探讨一下,数据库里账号的密码,怎样存放更加安全?
- 最新好用的服装零售进销存软件排行榜
- tiobe编程语言排名_排名前20位的编程语言:GitHut和Tiobe排名
- ONNX转ms后,benchmark跑分非常慢
- 冰汽时代机器人不用热_如何评价游戏《冰汽时代》?
- xmind zen 同步问题解决 坚果云
- 3090显卡 爆显存调试
- 嵌入式C语言学习笔记附图
- 数据结构--排序算法(冒泡排序)
- ArcGIS中使用协同克里金插值(co-kriging interplotation )对气象数据插值
热门文章
- 计算机一级汉字录入在线联系,计算机一级考试指导:汉字录入题的操作
- 数组不能将数值传给int_java数组查找常见情况
- 【存储知识学习】第三章磁盘原理与技术3.8并行传输和串行传输and3.9 IOPS和带宽-《大话存储》阅读笔记
- 软件项目管理0703:净收确认
- 2021-04-21--中标麒麟-yum源修改
- 《系统集成项目管理工程师》必背100个知识点-24变更的常见原因
- 笔记-项目质量管理-精简
- 信息系统项目管理师-项目成本管理考点笔记
- ElementUI中el-table-column的type为selection时选择框旁边有个点
- Jquery中使用Validate插件使表单验证更加简单