“3D游戏之父”考古“诺基亚时代”手游,网友:求支持智能手机
还记得它们吗?
文章插图
文章插图
对00后们来说,也许有些陌生,但是80后、90后的游戏玩家们,应该再熟悉不过了~
文章插图
文章插图
《毁灭战士RPG》、《兽人与侏儒》1和2、《德军总部RPG》等等……满满的回忆啊~
这些游戏的开发者,最近发了几条推特,其中提到,自己曾经开发了这几款游戏的“功能手机”版本 。
风轻云淡说出这话的大神,就是被称为“3D游戏、FPS游戏之父”的约翰·卡马克(John Carmack),他也是游戏公司id Software的创始人之一(FPS:第一人称射击) 。
文章插图
文章插图
这段话直接在网上引发了一波回忆杀 。
考古经典游戏
事情的起因是这样的,卡马克的儿子想要玩《兽人与侏儒2》,而高通公司的BREW平台上已经没有模拟器和档案了 。
文章插图
文章插图
2015年,约翰·卡马克之子(图源:大神的Twitter)
好在,J2ME(java移动)版本仍在流传,可以进行仿真,于是大神父子俩开启了一场“复古冒险” 。
虽然,游戏可以在KEmulator(在电脑上运行的java模拟器)上运行,但是音频存在问题,而且在游戏中死亡后就会挂起 。
好吧,我们是程序员,应该能修复它 。
于是父子俩转向了开源软件freej2me,这次没有发生挂起的问题,但是音频却更糟了,需要用补丁修复 。
此外,卡马克发现,尽管游戏是为100MHz以内的移动CPU设计的,可模拟器却占用了大量CPU 。
经过探索,最后他们通过Flight Recorder(记录引擎)和JDK Mission Control(实时监控),发现根本原因在于:明确地调用垃圾收集(GC) 。
因为在一些手机上,每一帧都必须调用system.GC(),以避免出现问题 。
在128k的手机上和在多GB堆内存的台式机上,进行GC扫描是非常不同的,在现代计算机上,一个操作的速度要慢10倍以上 。
文章插图
文章插图
怎么办?
虽然无法改变游戏的源代码,但是JVM有个很好用的参数:-XX:+DisableExplicitGC,可以禁止代码中显示调用GC 。
此外,卡马克还分享了自己早年间的文章,感兴趣的朋友可戳文末链接~
用C++写CNN的卡马克
大神约翰·卡马克,何许人也?
出生于1970年的他,可是一位名校辍学、自学成才的典型 。
他曾经对3D图形技术作出了巨大贡献,称他是游戏行业*具影响力的人也不为过 。
文章插图
文章插图
△约翰·卡马克(图源:Wikipedia)
卡马克与游戏的渊源,当然不止Twitter中提到的这些 。
1991年,由他和朋友共同创办的id Software游戏公司,开发了风靡全球的《德军总部3D》,在很大程度上普及了FPS游戏 。
文章插图
文章插图
△id Software的Logo(图源:Wikipedia)
这款游戏还使用了他独创的3D引擎,而不久之后问世的《毁灭战士》,再次席卷全球 。
此外,他还用3D加速技术,为《雷神之锤》制作了特别版本,使游戏画面渲染速度更快、分辨率更高 。
文章插图
文章插图
1999年,卡马克的公司推出了《雷神之锤III》,这是一款多人连线FPS游戏,由id Tech3引擎制作,这款强大的引擎,直到6年后仍被许多游戏采用 。
并且,它还是*要求显卡具备硬件加速能力的游戏 。
文章插图
文章插图
△雷神之锤III(图源:Wikipedia)
2008年,《德军总部RPG》推出,它是一款RPG(角色扮演游戏),同时也是射击类的探险游戏 。
不仅是电脑端,在2005年和2009年,id Software又分别推出了《毁灭战士》1和2的RPG移动版 。
除了游戏开发之外,卡马克还是开源运动的积极拥护者 。
他在90年代陆续放出了《德军总部3D》、《毁灭战士》、《雷神之锤》等游戏的源代码,不少游戏都是在它们的基础上被制作出来的 。
文章插图
文章插图
这位大神级别的程序员,你以为他只“玩”游戏吗?对于新兴的人工智能,他也没落下 。
只不过是以一种“电脑怪才”的方式,他用一周时间玩了一把「复古与现代的碰撞」——用C++写了个CNN代码 。
文章插图
文章插图
除此之外,卡马克还是个火箭爱好者 。埃隆·马斯克还曾有意邀他合作,多年来两人时常在社交媒体上互动 。
文章插图
文章插图
网友集体怀旧
这场卡马克父子俩的“复古大冒险”,引得网友直呼:really cool!
很好的故事! 和你的儿子一起回到过去,摆弄这种东西,一定非常酷 :)
文章插图
文章插图
我在手机上装了J2ME Loader,玩当年在索尼爱立信W595上的游戏,感觉非常爽 :)
蠕虫病毒、僵尸感染、模拟人生、魔鱼等等…… 真是巨大的怀旧冲击
我以为这只是怀旧,但实际上这些游戏保持得很好,特别是考虑到平台的局限性!
当然,与现在移动平台上充斥着交易、广告……的游戏相比,它们真是一股清流 。
一位曾经从事J2Me开发的网友表示:
对于诺基亚和索尼来说,应该是可以运行旧模拟器的 。
但是对于某些手机来说,比如三星、摩托罗拉,可能很难实现 。
除了怀念游戏之外,对于调用GC的问题,也有网友表示同感:
我遇到过这种情况,以前的开发者在C#应用中不断调用GC 。这些调用被清理后,性能有了巨大的提升 。
不过也有人指出:
Java的GC其实很懒,其暂停(STW)与堆大小(heap size)呈现线性关系 。
禁用显式GC会有一段时间的帮助,但一旦它满了,最终会有一个非常长的暂停 。
当然,提到经典游戏《毁灭战士 RPG》,不少网友都想在智能手机上体验一把,并且期待卡马克能让它实现 。
还有人分享了《毁灭战士》论坛中关于游戏逆向工程的帖子,并且表示这个版本不会发生丢失 。
文章插图
文章插图
一些网友认为,这些游戏应该都能在Switch实现,还有人想在Switch上做一个BREW复古游戏汇编,并且已经有一些J2ME和iMode了 。
【“3D游戏之父”考古“诺基亚时代”手游,网友:求支持智能手机】你期待再次玩上这些经典游戏吗?
推荐阅读
- 为什么用gg修改器游戏显示游戏崩溃 你知道为什么吗
- 女生的脸上有哪些特征会很有“少女感”?
- 女人到了40岁,就应该被称为“中年妇女”吗?
- 警惕“外瘦内胖”
- 情侣怎么善待对方?关系中“善待对方”的正确方式!
- 抖音小游戏怎么进入 怎么进入抖音小游戏
- 神烧脑游戏的第154关怎么玩 同时点击3个愿望
- 好听的工会名字 适合游戏工会的名字
- “虎茅”价格近腰斩,“珍品”“茅台1935”怎样?
- 关于低度茅台酒的历史,你知道多少?