FB引擎系列-之CloudSand
CloudSand,欲打破之前的集中版本制作的模式,
http://code.taobao.org/p/cloudsand
包含服务器端代码(php)
和客户端代码(unity)
EasyDown的时候,是采用一种经典的模式
准备原始资源-》打包制作版本库-》上传http服务器->客户端下载
CloudSand不采用这个模式
任何人(主要指的是开发者)可以随时随意上传文件。
有人很不理解我为何执着于此,经典模式有什么不好,新模式有什么特别。
这里一一解答
- 经典模式有什么不好
第一大罪状,文件名和内容不固定,集中化版本制作,一次性产生大量变更。对CDN不友好,需要与CDN同步。
第二大罪状,不能提供玩家上传数据的支持,玩家上传数据需要另写系统管理。
第三大罪状,集中化版本制作太麻烦,很难在一个逻辑服务器上提供多版本,同时供开发、测试、发布使用。
- 新模式如何处理这些问题
- CloudSand用Sha1直接作为文件名,文件名与内容固定不变,可以直接使用CDN透明加速模式,无需同步与维护。
- CloudSand用Sha1直接作为文件名,不怕覆盖,可以开放多点上传,玩家上传也可以放在这里面。
- CloudSand采用分布化版本库,每个用户可以标记他自己的版本库
比如说我们同时创建"开发""测试""发布" 三个用户。
客户端根据需要选择同步一个用户的版本库。
而且不限制用户,理论上每个玩家都可以拥有自己的版本库
CloudSand怎么使用,首先你得把服务器提供的Php文件架好。
然后就去研究客户端源码吧,有一个test目录,有测试程序。
这个项目,恕不提供技术支持
FB引擎系列-之CloudSand的更多相关文章
- Tapdata 肖贝贝:实时数据引擎系列(四)-关于 Oracle 与 Oracle CDC
摘要:想实现 Oracle 的 CDC,排除掉一些通用的比如全量比对, 标记字段获取之外, 真正的增量形式获取变更, 有三种办法: Logminer .XStream .裸日志解析,但不管哪种方法 ...
- Tapdata肖贝贝:实时数据引擎系列(三) - 流处理引擎对比
摘要:本文将选取市面上一些流计算框架包括 Flink .Spark .Hazelcast,从场景需求出发,在核心功能.资源与性能.用户体验.框架完整性.维护性等方面展开分析和测评,剖析实时数据框架 ...
- F2.Net工作流引擎系列索引
索引如下 F2工作流引擎遵循参考WFCM标准规范,符合中国国情特色,更轻量级的工作流引擎,支持多种数据库(mmsqlserver,mysql,oracle),有强大智能的组织模型接口可快速应用到任何基 ...
- F2BPM作流引擎系列索引
索引如下 F2工作流引擎遵循参考WFCM标准规范,符合中国国情特色,更轻量级的工作流引擎,支持多种数据库(mmsqlserver,mysql,oracle),有强大智能的组织模型接口可快速应用到任何基 ...
- Chrome V8引擎系列随笔 (1):Math.Random()函数概览
先让大家来看一幅图,这幅图是V8引擎4.7版本和4.9版本Math.Random()函数的值的分布图,我可以这么理解 .从下图中,也许你会认为这是个二维码?其实这幅图告诉我们一个道理,第二张图的点的分 ...
- Tapdata 肖贝贝:实时数据引擎系列(六)-从 PostgreSQL 实时数据集成看增量数据缓存层的必要性
摘要:对于 PostgreSQL 的实时数据采集, 业界经常遇到了包括:对源库性能/存储影响较大, 采集性能受限, 时间回退重新同步不支持, 数据类型较复杂等等问题.Tapdata 在解决 Pos ...
- 实时数据引擎系列(五): 关于 SQL Server 与 SQL Server CDC
摘要:在企业客户里, SQL Server 在传统的制造业依然散发着持久的生命力,SQL Server 的 CDC 复杂度相比 Oracle 较低, 因此标准的官方派做法就是直接使用这个 CDC ...
- Unity3D热更新全书-重头再来
之前写了Unity3D热更新全书系列Blog 提出了下载.加载.脚本三个方面的开源类库 下载方面有EasyDown加载方面有GameObjParser脚本方面有C#Light另外有一个没有独立成库,但 ...
- 20款最受欢迎的HTML5游戏引擎收集
在“最火HTML5 JavaScript游戏引擎”系列文章国外篇(一)中,我们盘点了当下备受开发者推崇的非国产HTML5和JavaScript游戏引擎.在各种2D小游戏逆袭的今天,用HTML5和Jav ...
随机推荐
- Loadrunner,将http请求返回的中文结果打印出来
Loadrunner 做保险承保业务测试 1. 保险正常业务流程:保费计算--->保存--->申请核保--->核保--->缴费(出保单) 问题描述: 脚本录制,参数化完成后,R ...
- 说说C#的async和await 解决卡顿问题 转
C# 5.0中引入了async 和 await.这两个关键字可以让你更方便的写出异步代码. 看个例子: 可以看到,async和await关键字只是把上面的代码变得更简单易懂而已. public cla ...
- 常用邮件服务器名(POP3,SMTP地址)
POP3服务器地址:pop3.sina.com.cn(端口:110)SMTP服务器地址:smtp.sina.com.cn(端口:25) sina.cn: POP3服务器地址:pop3.sina.com ...
- grep笔记
grep "match_text" file1 file2 file3 ... #grep可以对多个文件进行过滤 --color ...
- rspec中的shared_examples与shared_context有什么不同
What is the real difference between shared_examples and shared_context ? My observations : I can tes ...
- 使用my exclipse对数据库进行操作(4)
四.删除 public class class4 { public static void main(String[] args) { // TODO Auto-generated method st ...
- parseInt 和parseFloat 区别
parseInt();返回整数, 有第二个参数,第二个参数是多少进制 parseFloat(); 可返回浮点数:没有第二个参数,默认10进制
- luogu p2330[SCOI05] 繁忙的都市——瓶颈生成树
P2330 05四川 繁忙的都市 题目描述 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道 ...
- 如何使用jcraft 模拟SFTP登陆
大家如果熟悉Linux系统话,对ssh,sftp,scp等命令非常熟悉.ssh是一个安全协议,用来在不同系统或者服务器之间进行安全连接.ssh 在连接和传送的过程中会加密所有的数据. 而今天我要介绍的 ...
- Fire
Fire 分析: 首先,明确题意:b1,b2,--,bn 交换为b2,--,bn,b1,但这并不是意味着只能从b1开始交换,(这点从样例中可以看出),并且也不意味着交换的必须是连续的一串,可以是几个单 ...