Redian新闻
>
为什么 128 KB 的魂斗罗可以实现那么长的剧情 ?

为什么 128 KB 的魂斗罗可以实现那么长的剧情 ?

公众号新闻

为什么魂斗罗只有 128KB 却可以实现那么长的剧情?下面来给新生代程序员讲讲这里面的奥秘吧。

现代程序员A和1980年代游戏程序员B的对话:

A:为什么你用128KB能实现这么多画面、音乐、动画?

B:128KB还不够么?其实为了表现力已经相当奢侈了,加了很多不重要的细节。

A:就说你们的音乐,这个音乐,我压到最低码率的mp3,也得至少1MB吧。

B:你怎么压的?一首背景音乐怎么可能超过1KB。

A:那你实现全屏卷轴,用了多少显存?

B:一共就只有2KB显存,多了也放不下啊。

A:……


1、我们对“数据量”无法直观认识

除非是专家,一般人根本无法估算到底多大算大,多小算小。

一般人对“数据量”并没什么概念。一篇800字的作文有多少数据量?按照GBK编码,约1.6KB,按照UTF-8编码,则是2.4KB。

只写了1个字的作文,按理来说1字节~3字节就够了。但只写1个字的word文档,有10956字节,而由于硬盘格式化要求,再多占用1332字节

我就写了一个字,真的什么都没干

现实中常见的产品、流行的技术,实际上和时代背景密切相关。

当你抱着15寸笔记本还嫌小的时候,1990年代初的家庭,可是一家人围着14~18寸的球面电视看的。把雪碧拿给古代人喝一口,估计他会齁得要死,必须喝点水压压惊。

当物质基础变得十分丰富的时候,一定会产生无法避免的“浪费”,这种“浪费”会进一步改变人感受的阈值,对度量的估计都变得紊乱了。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

2、FC时代的图形技术

由于早期的记忆芯片(ROM)非常贵,而且大容量磁盘的技术也不成熟,所以暂且不论硬件计算能力,仅仅是想增加游戏的总容量也非常困难。所以自然会使用符合当时水平的数据结构。

以红白机FC为例,它的分辨率为256x240。分辨率不算低,但却只有2KB显存,而且还要实现全屏卷轴效果。

所以在FC设计之初,从硬件上就提供了充分利用显存的方法——使用Tile(瓦片)。

对每一个场景来说,使用若干数量的瓦片,场景用有限的瓦片拼接即可。这种“二级”表示方法能极大节约存储量。

具体一些原理讲解可以看一些科普,比如这个:

https://www.bilibili.com/video/BV19J411e763

3、音频容量和代码容量

现代音乐格式往往直接保存声道的波形,这种做法保真度高、通用性强,但很显然占用空间多,一首曲子的容量以千字节、兆字节计算。

而八位芯片时代的音频解决方案,关键是一颗专用芯片,例如FC用的理光2A03:

下:理光2A03

音频芯片可以产生合成音效,能提供的音色可以在一定程度上配置,但非常有限。听听FC游戏的音乐可以体会到常用的音色几乎一样。

我觉得这个音频芯片最厉害的地方是可以同时播放几个音轨(但不能是和弦那种“同时”),《魂斗罗》、《沙罗曼蛇》、《忍者龙剑传》的殿堂级音乐,主要是靠多个音轨的交替配合实现的。

每个音符只要记录音色、频率和音高就足够了,音频芯片自然会识别出来。把音符按时间排列好就是“乐谱”了,可以简单理解为“简谱”。

这种简谱需要的数据量十分有限,而且大部分游戏音乐都是循环播放,数据量更是小的可怜。

代码也是类似的。

FC时代的游戏,没有所谓的“引擎层”,或者说引擎层就是“硬件层”。任天堂的主机完全是为游戏而设计的,瓦片、调色板、音乐、音效等基本功能已经预先考虑到了,这样一来就节约了大量底层代码。

程序员要仔细研究文档,在硬件框架下思考问题,比如如何显示图片、如何卷动屏幕等等;而且还要非常熟悉硬件底层和汇编,不要浪费代码空间。

一来二去,代码也能写的非常小。

总的来说,128KB的游戏大作,在30年前稀松平常,放到现在简直就是黑科技。

科技的剧烈变革带来技术指标非线性的变化,让我们的记忆和直觉彻底落伍 :)

来源:www.zhihu.com/question/
50076174/answer/1101330430

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
聚焦丨林尚立:推进创新理论的体系化学理化 以实现精神上的独立自主中国正在实现“以实力地位领导世界”快速成长的秘诀|自我成长的方法有哪些?美国警察枪杀一手持"武器"的男子,事后发现那是...黄色唱片(儿童不宜)网易雷火GDC演讲:俘获全中国年轻人的剧本杀,究竟是什么?中信信托发布2022年ESG报告,以实际行动共创美好生活范丞丞的脖子竟然这么长?“回归生意的本质”,耶鲁文学系“厂二代”何以实现保温杯的中国品牌梦?北去恋江南,南归思亲情——我的上海老乡贵州10岁女孩被逼跳楼1年后,西安男孩被当众羞辱,这次上演了相反的剧情…年幼女儿总去“城堡”探望父亲,之后才发现那是监狱,父亲被判了50年…一顿早茶花了$128俞敏洪推荐!2.98万元,两人21天游杭州,已售出5份!网友:这么长的假,除非老板把我开了幼儿通识1001夜 | 不可思议的人体世界:睫毛是怎么长的?以实战经验"教学"她明面是家长,帮学生规划课程,实际上却是…周瑞家的为什么要改送宫花的顺序?林黛玉为什么那么小气?《花尾渡》(小说) 第十八章 一半的天堂“我平时生活很俭朴,10多元一件的背心,批发10件穿好几年,吃早餐一个鸡蛋舍不得加,贪污受贿那么多钱,买那么多瓶瓶罐罐干什么?”中国什么时候可以实行全民免费医疗?聊一聊:有哪个游戏的剧情,能让你记一辈子?Science | 你为什么长那么白的原因被揭示:全基因组遗传筛选揭示了人类色素沉着的决定因素墨西哥公布的「外星人」,为什么长得让人难以相信?巴以和平难以实现,不能避谈以色列强硬派的责任:与殷罡教授商榷2023地中海邮轮行 (十)巴塞罗那为什么移民排队那么长,无证移民是不是在插队?我们该用什么语言描绘身体的剧变?让Cineplex带您看遍大千世界!在加拿大也可以实现中文热门电影自由!基辛格-极致人生体验的剧本是什么样的?万万没想到能有这么长。。。野草威武!婆婆打探儿媳的工资 为什么?为什么:$100 美元汇出 (华夏银行),只收到$86美元 (BoA)5134 血壮山河之武汉会战 信罗战役 7为什么冰淇淋的香草味那么真,薯片的肉味那么假?女子去检查身上的胎记,却发现那是她的双胞胎姐妹界面锰沉积重构以实现长循环水系锌锰电池清华智能产业研究院周浩:开发「少样本依赖分子生成模型」以实现鲁棒精准的分子设计震惊!墨西哥国会听证会,展示千年"外星人",怎么长这样!为什么 MAGA 要背叛乌克兰?纽时文译权力是最好的春药,为什么?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。