之前看过一个内容,细数最小游戏的,其实不少FC或者GB的游戏ROM也就几十KB,最小的游戏好像是一个字符表示的国际象棋游戏,只有几KB大小,但是最令我印象深刻的是一款只有几KB的FPS射击游戏,画面大概和雷神之锤3(QUKE3)的水准类似,而且关卡颇多,还是有一定游戏性的最重要的是只有一个96KB的EXE可执行文件!文末我会放上下载链接在智友邦论坛上,外站的朋友可以找到最下方的扩展链接跳转。
那么这是如何实现一款完整第一人称射击游戏仅仅96KB的呢?
游戏的名称为kkrieger,是由.theprodukkt小组开发完成,中文名为毁灭杀手,比较俗套的名字,游戏属于那种科幻风格的射击游戏,操作也很简单,前 w 后s 左a 右d 跳跃Spacebar(空格键)切换武器1 2 3 4 5,上手没有任何难度。游戏主体由C完成,之间贯穿少量汇编语言。该小组表示,他们并没有采用什么特别的压缩算法,只是对游戏中将用到的材质、网孔等资源进行了最为合理的安排,保证足够紧凑。对于该游戏所采用的深入技术细节,该小组并不愿公布。游戏制作小组表示,这款游戏将有三个章节,而现在发布的仅仅是第一章的测试版,未来发布的版本体积可能会超过100KB,但将修正更多bug,运行也会更加稳定。然而截止2018年4月,该游戏仍只有一个beta版。
kkrieger由德国.theprodukkt小组从2002年中期开始开发,使用的是自有工具.werkkzeug的一个未发行版本。.kkrieger和.werkkzeug3都基于BSD许可证,两者的源代码于2012年起被托管在GitHub上。2004年4月,游戏正式发布。游戏能做到如此之小主要还是因为刚才说的那个开发工具,可以创作最终文件大小只有64 KB的3D展示和模型的综合工具Werkkzeug1。 和.kkrieger相比,Werkkzeug1的功能极为强大,它是开发人员创建非交互式动画的“重要工个”。其主要特性为:可以快速而又强大的创邮所见即所得的2D创作引擎、纹理和网状生成器、图象后加工、JPG导入、粒子系统、简单的Spline编辑器和安排动画动作的时间轴。另个,它还带有一个在编辑器中实时生成及回放动画性能的播放器软件。
这个96KB其实是个运算,当你进入游戏后,游戏便开始运算,通过运算来制造出图片剧情,编写这种程序有个要领就是素材资源尽量的少,甚至完全不用贴图,直接调用directx自带的默认纹理,甚至通过演算实时生成材质,音乐仅存储乐谱指令,通过系统自带的midi引擎实时演奏,最后把程序打包用高压加壳工具压缩以下,96KB可以说足够了。这种程序虽然体积不大,对硬件的要求可不低。另外这么小的游戏也不能要求太多,缺点还是不少,这游戏是让电脑自己乱算数据带入画面,然后96k只是加入对于电脑限制条件。所以建筑结构被固定其中就占了容量,像那种bot出生点就非常固定不合逻辑,因为如果出生点多了限制的电脑语言多了那大小就超过了96k。
早期的编程都是机器语言,就是简单的0和1,完全掌握这种方法的程序猿现在已经基本绝种了,这种编程只需十几KB就能做出3D效果和一段简单的音乐,所以以前的程序员都是高端人在玩的玩意,后来的汇编语言,C语言,再到今天Java等,才让编程普及开来,虽然编程大众了,但是程序的大小要比以前大多了。所以说这个游戏根本就不是用来玩的, 是人家炫技用的 。
因为这个游戏毕竟是很久以前的,所以现在大家的电脑配置基本都能带的动,打开有个载入的过程,配置要求是 1.5GHz Pentium3/Athlon以上处理器- 512MB以上内存- Geforce4 Ti或ATI Radeon8500以上等级显卡- 支持pixel shaders 1.3、128MB以上显存- 普通声卡- DirectX 9.0b。运行该游戏后先要经历一段长时间的解压缩过程,而这些数据都将释放到内存中,所以512MB以上的内存配置是必须的。该游戏所占据的内存容量,已经接近300MB。对于使用Win7系统的用户,需要右键点击修改其“属性”中的“兼容性”选项,将其改为“以兼容模式运行该程序”。我的win10系统打开兼容模式,以XP形态模拟没问题。
游戏下载