月石一 发自 凹非寺
量子位 报道 | 公众号 QbitAI

还记得它们吗?

对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了。

你期待再次玩上这些经典游戏吗?

参考链接:
[1]https://twitter.com/id_aa_carmack
[2]https://web.archive.org/web/20060502175605/http://www.armadilloaerospace.com:80/n.x/johnc/Recent%20Updates/
[3]https://news.ycombinator.com/item?id=27220657
[4]https://www.doomworld.com/forum/topic/117360-doom-rpg-reverse-engineering-project/
[5]https://zh.wikipedia.org/wiki

— 完 —

Creator星球游戏开发社区,欢迎大家投稿分享技术,让我们链接到更多的伙伴,助力开发者技术精进,知识变现!

  • Creator游戏开发教程PDF免费下载(800+页)

  • 编写高效 TS 的一些建议

  • JavaScript 内存详解 & 分析指南

  • Creator 最佳文字书写解决方案!

  • Creator 2.x 大项目卡顿有救了!

“3D游戏之父”手游考古,网友:求支持智能手机!相关推荐

  1. 3D 游戏之父卡马克再创业:“我自己出得起 2000 万美元,但花投资人的钱会更有责任心”...

    整理 | 苏宓 出品 | CSDN(ID:CSDNnews) John Carmack,一代传奇游戏程序员,被誉为 3D 游戏之父. 近日,他在 Twitter 上透露,将再次进行创业,成立了一家新公 ...

  2. 剑网3显示服务器屏蔽,剑网3手游被网友戏称断网3,服务器问题阻止不了玩家的热情...

    原标题:剑网3手游被网友戏称"断网3",服务器问题阻止不了玩家的热情 兴酣落笔摇五岳,诗成笑傲凌沧洲.哈喽,大家好,我是笑点. 剑网3手游上线已经第四天了,被网友们戏称" ...

  3. 银河掠夺者服务器维护,银河掠夺者-大型3D星战RTS手游无法连接服务器是什么原因...

    银河掠夺者-大型3D星战RTS手游无法连接服务器是什么原因,相信大家在玩银河掠夺者-大型3D星战RTS手游的过程中,经常会遇到这样的问题,下面ourplay小编就简单为大家介绍几种常见的解决方案. 银 ...

  4. 3D游戏之父--John Carmack连载系列(四)

    游戏轴心-廖子鹏 [转载] <script language="JavaScript" src="http://webji.beareyes.com.cn/cgi- ...

  5. 视频教程-H5入门-系列手机游戏开发-过河-手游开发

    H5入门-系列手机游戏开发-过河 20年软件项目开发管理经验 工信部人才交流中心特聘专家讲师 日本U-CAN在线教育特聘主任讲师 国家十二·五规划软件工程教材作者(书:清华大学出版社出版) 中国软件行 ...

  6. “3D游戏之父”考古“诺基亚时代”手游,网友:求支持智能手机!

    月石一 发自 凹非寺 量子位 报道 | 公众号 QbitAI 还记得它们吗? 对00后们来说,也许有些陌生,但是80后.90后的游戏玩家们,应该再熟悉不过了~ <毁灭战士RPG>.< ...

  7. java轻功游戏,各大手游系统轻功花样百出,一番尝试之后,我只留下了这款游戏...

    说到武侠手游,这里我们就必须提到轻功系统,如果轻功系统不出彩的话,这款游戏至少会失色一半.我们知道现在手游轻功系统实在太多了,但是大多数轻功都大同小异,没有什么特色. 小编在这里体验了几个知名武侠手游 ...

  8. java斗破苍穹游戏阵容,斗破苍穹手游竞技场阵容搭配解析 最强阵容你知道吗

    斗破苍穹手游竞技场阵容搭配解析 最强阵容你知道吗?第一手游网小编已经给大家整理好了,想必玩家们都对这款游戏的内容非常的期待.所以现在第一时间把这篇攻略分享给玩家们,希望你们喜欢.也希望能对大家有所帮助 ...

  9. 手把手教你将H5游戏打包为手游

    H5游戏可以通过快应用的web组件快速打包成快游戏,打包上架后的快游戏,只要原H5游戏的url不发生变动,快游戏就不需要做更新,维护工作量小. 使用快应用IDE,打包快游戏的操作很简单. 访问官网安装 ...

最新文章

  1. 瑞星08试用版到期了,下面装个什么杀毒软件比较好呢?
  2. XMemcached使用示例--转
  3. selenium:我的第一个程序
  4. 水晶报表图形位置_看了我用Excel做的年度报表,老板直夸好
  5. [转载] 解析Java的JNI编程中的对象引用与内存泄漏问题
  6. 虚拟机安装rsync服务器配置,虚拟机安装rsync服务器配置
  7. ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number;
  8. 又一腾讯应用将停运!企业QQ将于2022年1月31日关闭
  9. 上探式提额与倒逼式提额—风控调额就该这么做
  10. 解决keil5不支持Samsung 2440A等较旧型号Soc的方法
  11. 微信公众号网页jsapi授权
  12. 2021年美容师(初级)免费试题及美容师(初级)考试试卷
  13. 现代企业管理的12个指南针
  14. MySQL医疗信息管理系统数据库(源码)
  15. 告别传统机房:3D 机房数据可视化实现智能化与VR技术的新碰撞
  16. 06.简书项目实战三:详情页面和登录功能实现
  17. 车辆运动控制(4)考虑道路曲率和轮胎滑移
  18. 中概股危机未过,达达集团此时赴美IPO 凭什么?
  19. 揭秘vue-sfc-cli: 组件研发利器
  20. 认识web和web标准

热门文章

  1. distill_basic_teacher
  2. 2020-09-04 CD40193十六进制加减Multisim仿真
  3. 如何取消掉计算机更新图标,本文演示win10电脑更新图标怎么去掉的具体操作方式...
  4. 打卡赠书的几点重要说明
  5. 使用Aptana Studio 3开发python教程
  6. mysql综训实训报告总结_实训报告总结收获.doc
  7. python中最小公倍数函数_Python 最小公倍数算法
  8. 通过经纬度获取OpenstreetMap,谷歌地图,高德地图的切片
  9. JavaEE-Mybatis知识点笔记
  10. Windows10环境下Ruby安装和配置