和其他网游不同的是,单一世界具有庞大的地图,比如一个地球,这种情况和导致地图的数据量很大,几个G都是正常的事情。在这种情况下,处理策略有很大的不同。
以魔兽世界为例,所有的客户端和服务端都有相同的地图,这样保证在设计地图的计算时,不需要从服务端得到地图数据,减少数据传输量。在第二人生和激战中,有些不同,本地没有全部的地图。激战在跳跃到新的地方时,需要有个很长的延时,似乎是从服务端读取地图数据。
但是单一世界一个显著特征就是地图庞大,显然不可能完全将地图放在本地。不过我们也应该看到,在单一世界中,本地也没有必要放置全部的地图数据。就像你人在亚洲,欧洲和美洲的地图只要你要去的时候才需要。而且,即使你在亚洲,日本的地图也是你要去的时候才需要。多数情况下,你是从新手村开始,逐步探索各个地方。我的一个策略就是逐步下载。比如你在新手村的时候,我可以通过富裕带宽,帮你下载附近城镇的地图,然后保存在本地。至于不需要的地图,完成可以忽略不记。
以上提到的是世界地图的下载策略。世界地图还有涉及到生成的问题。和下载一样的问题,就是大。我们不可能一下生成全部的地图。世界地图完全可以采取2个策略来生成,一个策略是联邦制,就是由不同的人或者组织生成标准格式的地方来挂接到世界地图中,另外一个策略是逐步生成,因为开始的时候,人一般会比较少,所以生成的地图会比较小。随着人数增多,逐步开发更多的地图,就像魔兽世界这样,逐步开放外域等其他地域。这2个策略没有矛盾,完全可以同时采用。但使用联邦制会涉及到利润分成的问题,还需要商业层面来解决。
我曾经有个想法,和魔兽争霸以及CS相似,让用户来生成地图,然后挂接到世界地图,但涉及到资源需要审核,不然就乱套了。