songfx 发表于 2012-2-5 11:06:18

探讨无限空间的可能性

有很多玩家询问过怎样突破两层空间的限制,我也解释过很多次,这个在硬技术上没有可能,但可以通过传送门来实现等效多层空间。不过大家普遍觉得这种方式在视觉上不太舒服。

刚才在游家又看到类似的帖子,所以我在此做一个比较深入的探讨。

理论上说,ERM无所不能,多层空间也不会太难。
我在此就两种构建方式来探讨。为了简化,我这里采用单英雄视野模式。

1. 随机多层空间

随机方式是最适宜制作无底洞的,也比较节约变量。
以超小地图18*18为例,每个场景至多324个格子。
玩家(单英雄视野)通过传送门离开当前场景时,进行如下运算
(1)用变量记录当前场景的每个格子内容。
(2)构建随机场景,且必须包含返回上一场景的传送门。
这样一来,随着记录的场景数增加,游戏占用的内存会越来越大。

2. 固定多层空间

原创地图一般都不希望随机性太大,所以定制多层空间更切实际。
仍以18*18地图为例,在制作地图时只画一两层,其余全部用ERM代码来画地图。
比如每个场景324个格子的内容以代码方式储存在地图里。
每进入一个场景时,都直接从代码里读取。离开场景时都进行储存。

为了节约变量,可以编写一个场景存取的函数,每个场景用一个长串字符来存储,函数负责将这个字符串翻译成通用的ERM语言。

以上可能说得比较抽象,实现起来也比较复杂,但我觉得有一定的可行性。

兽哥哥 发表于 2012-2-5 11:13:43

用erm来画地图?这也行?;yowe;

无心云 发表于 2012-2-5 12:36:17

这个好像又回到原始社会,工作量会比较大把

灰狼王子 发表于 2012-2-5 13:20:54

听起来很是玄乎啊,有点回魂仙梦或者异次元的味道呢;tl; 不过哥表示双层空间超大地图已经够折腾得了。

克招 发表于 2012-2-5 14:22:00

说了跟没说一样,除了老萨之外我不认为还有别人能有这么大的毅力去用ERM画地图。

沧海一粟 发表于 2012-2-5 16:06:10

呵呵,我完全听不懂;yowe;

fly123 发表于 2012-2-5 17:46:51

这个确实可以实现,但是首先需要ERM大师们有这个兴趣才行。

克招 发表于 2012-2-5 19:08:18

不只是兴趣问题,还要有足够的毅力和时间。你想想,用地图编辑器来画地图就已经够呛了,还要用ERM来做地图,谁有这功夫?

无心云 发表于 2012-2-5 19:09:42

哈哈,ERM小组的同志的留言可是有点打击风大啊;orz;

songfx 发表于 2012-2-5 20:21:50

非也非也,如果利用模板的原理来自动生成随机地图,并以代码方式存取,就会容易得多。

fly123 发表于 2012-2-5 20:22:42

回复 10# 的帖子

那老大,你告诉我模板的原理是什么。;yowe;

文兄 发表于 2012-2-5 22:03:24

虽然我不懂ERM,但我觉得还是固定空间好,随机可能会出现很多BUG

hellmatrix 发表于 2012-2-5 22:18:17

嘿嘿,多层空间,深渊出现了

songfx 发表于 2012-2-6 03:27:40

详见绘图区的帖子《随机地图分析》。没有完全相同的随机图,但相同模板随机出的图又整体相似,如区域的划分,守怪的强弱,宝物的等级。
我所提到的只是一个可行性,而非实际操作。

viper_ou 发表于 2012-2-6 08:34:19

回复 13# 的帖子

;aim; 那还真可以做个DND模式游戏了

eric27 发表于 2012-2-6 12:56:28

;juwe; 一起希望有这个可能实现,就算现在的144地图也觉得太小了。。。。。。。

fallening 发表于 2012-5-5 07:14:33

个人觉得还是双层地图不停重绘靠谱一点;
我记得之前翻过 wog 的一些源代码,就是他们在折腾 lua 的那些,现在想又想迁移到 python 上了,内存管理做得并不是很好,很容易泄露,更何况还要不停地生成新的地图。

Edit: 方才重新看了下 VCMI 的代码,觉得还是可以做一些事情的;等手头的工作不是那么着紧的时候,我会申请加入的:) 另外,这边的 C++ 程序员不妨考虑一下过去掺合一下, svn 上代码更新的进度真的是惨不忍睹, 3.59 目前看来还是遥遥无期。
代码在这里:
svn co https://vcmi.svn.sourceforge.net/svnroot/vcmi vcmi

[ 本帖最后由 fallening 于 2012-5-5 07:43 编辑 ]

songfx 发表于 2012-5-5 07:43:03

老萨在《斯巴达300勇士》和《罗马4》里都有通过脚本构建随机迷宫的实例。

fallening 发表于 2012-5-5 07:53:47

原帖由 songfx 于 2012-5-5 07:43 发表 http://www.h3wog.com/images/common/back.gif
老萨在《斯巴达300勇士》和《罗马4》里都有通过脚本构建随机迷宫的实例。

我不确定 zvse 脚本解释引擎具体是怎么工作的,但是从我目前看到的 lua/python 引擎这里,潜在问题还是比较多的,尤其是在内存的清理释放上。而 3.58f 本来就很善于 crash :)
3.59 最好的 feature 是绕开 H3 主程序自行其事,直接就是跨平台的,无论是 linux/osx/ios/android/winphone 理论上都很好移植,所以比较看好,就是开发进度是在太慢了,而且路线图似乎不是很清晰。

寻梦人 发表于 2012-5-5 08:14:55

回复 19# 的帖子

楼上很了解内幕!

我们不知道的你都了解!

好牛啊!
页: [1] 2
查看完整版本: 探讨无限空间的可能性

捐赠