单一世界架构初探(17)世界地图

和其他网游不同的是,单一世界具有庞大的地图,比如一个地球,这种情况和导致地图的数据量很大,几个G都是正常的事情。在这种情况下,处理策略有很大的不同。

以魔兽世界为例,所有的客户端和服务端都有相同的地图,这样保证在设计地图的计算时,不需要从服务端得到地图数据,减少数据传输量。在第二人生和激战中,有些不同,本地没有全部的地图。激战在跳跃到新的地方时,需要有个很长的延时,似乎是从服务端读取地图数据。

但是单一世界一个显著特征就是地图庞大,显然不可能完全将地图放在本地。不过我们也应该看到,在单一世界中,本地也没有必要放置全部的地图数据。就像你人在亚洲,欧洲和美洲的地图只要你要去的时候才需要。而且,即使你在亚洲,日本的地图也是你要去的时候才需要。多数情况下,你是从新手村开始,逐步探索各个地方。我的一个策略就是逐步下载。比如你在新手村的时候,我可以通过富裕带宽,帮你下载附近城镇的地图,然后保存在本地。至于不需要的地图,完成可以忽略不记。

以上提到的是世界地图的下载策略。世界地图还有涉及到生成的问题。和下载一样的问题,就是大。我们不可能一下生成全部的地图。世界地图完全可以采取2个策略来生成,一个策略是联邦制,就是由不同的人或者组织生成标准格式的地方来挂接到世界地图中,另外一个策略是逐步生成,因为开始的时候,人一般会比较少,所以生成的地图会比较小。随着人数增多,逐步开发更多的地图,就像魔兽世界这样,逐步开放外域等其他地域。这2个策略没有矛盾,完全可以同时采用。但使用联邦制会涉及到利润分成的问题,还需要商业层面来解决。

我曾经有个想法,和魔兽争霸以及CS相似,让用户来生成地图,然后挂接到世界地图,但涉及到资源需要审核,不然就乱套了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,173评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,425评论 25 708
  • 一直想记录那些已经离我越来越远的故事,曾经提起笔来,写过几句就放下了,脑袋里一片空洞,可是和妹妹一起聊起往事...
    遇见更好的py阅读 185评论 1 0
  • 前言 根据web.xml的配置,我们可以知道springMVC的主体控制器部分就是DispatcherServle...
    谷和阿秋阅读 475评论 0 0
  • 大娃是个傻子。 村里的人都这样喊他,饭后茶余的时光里,村子里的大人和小孩都喜欢逗他玩。因为他的智商与身高和年龄的强...
    蛋炒饭要加肉阅读 512评论 0 0

友情链接更多精彩内容