游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1122|回复: 1

从运算结果开始分析

[复制链接]

14

主题

44

帖子

44

积分

注册会员

Rank: 2

积分
44
发表于 2005-6-24 14:34:00 | 显示全部楼层 |阅读模式
偶然找到了一个N年前写的21点游戏,那时我还在学习机上用Game Basi。常规上讲,21点的正常流程为:角色取牌,计算牌值,判段是否超过21点,当所有玩家取牌完毕后就要计算出最大点。
这是常规的方法。但当时出于空间与代码长度考虑(学习机没存档功能),这样与写绝对不划算。那么从结果考虑呢?可以这样想:游戏的最终结果无非就是超过21点的被淘汰出局,然后在所剩的玩家中选出所得点数最大者获胜。因此所有的过程可以划分为一个随机数发生器和一个玩家得分比较系统。如此分析,此游戏程序就变得异常精简了。

此种方案似乎让人无法接受,因为总有点骗人的感觉。不过,在游戏世界中,适当的坚持一点唯心主义总是不为过的。又比如我们想将一些人的世界观溶入到游戏角色的世界观当中。以马克思列宁的“质变量变定理“为例。我们从正常的渠道来运算这些东西似乎不可能,至少以现有的计算机机能是不可能的。但我们的角色需要这些世界观来作为他们行为的准则,因此,我们从结果上来分析,持此世界观的角色会意思到当事物发展到一定水平时就会发生质变。这个就是角色应有的想法,于是我们模拟了此系统,也因此我们的角色也将”看起来“持有了此世界观。

以下举一个更实际一些的应用吧。比如我们想利用检测游戏画面,即时替换相应字幕的系统(也就是偶的LDU汉化系统)。从常规操作来讲,我们要Lock出游戏后台缓冲区指针,然后检测这个后台缓冲区的显示内容并加以判断,最后用我们的新字幕替换掉原字幕。基本步骤是这样,但第二步的检测与判断相当的挠头:要想让程序在极短的时间内“看懂”随时都在变化的游戏图片,以现有计算机运算能力,基乎不可能。当然,我现在也没完美的解决此种算法,如果解决了,直接卖给国家去栏截寻航导弹了。但我的LDU确实可以在不影响原游戏速度的情况下做出检测与判段。这也得归功与从结果分析的设计方法(注意,是设计而不是算法)。也就是说,我的LDU的运行结果是“看懂”了游戏,我模拟出了这个结果,而不是我让它真正的看明白了这个游戏到底显示了什么。

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-6-24 16:49:00 | 显示全部楼层

Re:从运算结果开始分析

这个没啥,算法作弊是一种技巧

还是拿纸牌游戏,比如,2副牌80分,发牌的时候,先洗牌,ABCD四个玩家轮着拿25张,那么应该是A拿第1张,B拿第2张,C拿第3张,D拿第4张,A拿第5张,。。。 轮着下去,但其实我们经常不这样发牌,因为洗牌是随机的,所以,我们其实完全可以把前25张一起给A,接着的25张给B,。。。不管是怎么的方式发牌,客户端的玩家都不会分辨出来,即使4个玩家之间能够互相看到牌,他们也不会觉察到发牌的过程被调了包。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-27 08:03

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表