初探pymud的自动地图功能
PyMUD讨论区
9
帖子
2
发布者
252
浏览
-
以下为过程中的一些心得:
1 . 探索地图和使用已经被证明是正确的地图是完全两回事,探索过程中进入任何房间即使所有信息一致,也得证明它是新房间还是已经探明的房间。
2. 房间之间的连接不全都是互逆的,有些出口是单向的。
3. 房间允许看向四周获得信息,这些信息对辅助定位非常重要。把这些可以获得的信息整合到一起,用特定顺序组织后转换为哈希码,作为该房间的身份签名(signature),这个签名有不同的等级,可分为房间名、房间描述+出口、周围房间名+出口、周围房间名+描述+出口,房间签名用于比对两个房间是不是同一个房间。
4. 有些房间并非一成不变的,它可以自己随机变化,比如:骰子房,房间描述随着骰子的变化在不停的变化;有些房间描述会因为玩家的互动而变化。
5. 有些地图中的结构完全对称,即有些房间不但自身签名完全一致而且它周围房间的签名也完全一致,要探索很远才能确定它是哪一个。
6. 有些房间进入需要特定条件或被npc拦截,不过这个基于pymud的命令很好解决。
7. 迷宫内的房间和常规房间完全不同的逻辑,要提前提取迷宫入口特征,把对应的入口识别出来在代码中封住。
8. 深度优先排重需要角色可以回到备选房间,如果附近有单向出口,导致回溯失败会从而测绘出错。
9. 探索过程中对于可通过的连接,必须保证100%可以执行成功,这是探索地图的基石。
10. 如果对游戏了解,知道某些房间是独一无二的,即一旦进入就知道自己的位置,需要提前写进列表中,作为探索地图的锚点。
11. 原则上只相信通过移动而获得的连接,但为提高效率,把那些移动后彼此通过look可以确认互逆方向的房间签名匹配的连接直接写进数据库,而无需实际移动


