在随机生成的数据中寻找雅达利游戏

在随机生成的数据中寻找雅达利游戏

Hacker News 摘要

原标题:Finding Atari Games in Randomly Generated Data

这个网页的内容关于一个名为“有限的雅达利机器”的项目,该项目探索在随机生成的数据中寻找雅达利游戏。项目的核心思想是生成大量随机的4KB数据文件,然后通过一些启发式规则来筛选,其中包括使用雅达利2600模拟器对这些随机文件进行测试,看是否能找到真正的雅达利游戏。

项目概述:

项目使用大约300亿个4KB文件的随机数据,这些数据通过一些从完整的雅达利ROM文件集合中得到的启发式规则被减少到大约一万条。最后,一个分类器系统用雅达利2600模拟器对它们进行扫描,以找出哪些随机文件实际上是雅达利游戏。项目的出发点在于一个看似无用的好奇心:如果使用GPU生成大量随机数据,会有什么结果。

方法论:

项目生成ROM的过程是:

1. 从设备生成4KB随机数据。

2. 在模拟器中运行该文件。

3. 捕获几个屏幕截图。

4. 使用AI进行过滤或评分。

5. 保存最佳结果进行进一步调查。

为了减少无效的数据,需要构建一些启发式检查规则,比如:检查有效的操作码、有效的重置向量、读取TIA(电视接口适配器)和RIOT(内存I/O计时器)的访问,以及检查循环和跳转指令等。

结果:

项目的初步检查结果显示,在生成的30亿个ROM中,最终筛选出了大约10000个通行的ROM文件,并且通过模拟器运行后,只有456个文件显示出有趣的视觉输出,其中16个文件有静态视频输出,11个文件则展示了动态视频。

在这些结果中,有一个名为51014的ROM展现了“游戏”的特征,它能响应用户的输入,并反馈相应的视觉输出。尽管它的编程逻辑简单,但能够由随机数据生成具有“游戏性”的表现十分令人惊讶。

未来工作方向:

作者提到,虽然Atari 2600是一个理想的目标,因为它的简单性使得随机数据容易产生有效的输出,但他也探讨了尝试其他平台的可能性,比如NES或Game Boy,但由于这些平台的复杂性,会使得生成有效ROM的过程变得更为困难。

作者对未来的计划还包括可能的分布计算项目,比如类似于SETI@Home的项目,每台计算机都在搜索随机数据中可能的游戏。

结论:

作者认为,尽管看起来这是一个荒谬的想法,但通过不断地生成和测试随机数据,寻找任意有用的输出是一个具有技术必然性的过程。通过这么多实验,他证明了即使是从随机数据中也有可能提取出某种形式的游戏,打破了对传统游戏开发过程的理解和期待。所有的代码可以在“有限的雅达利机器”项目的GitHub仓库中找到。


原文:https://bbenchoff.github.io/pages/FiniteAtari.html

评论:https://news.ycombinator.com/item?id=44236900

Report Page