魂斗罗用什么编程语言
为什么魂斗罗只有128KB却可以实现那么长的剧情?
魂斗罗有剧情吗?题主可能说的是关卡的长度吧,这样说的话,魂斗罗游戏的长度确实不算短的,可容量却如此之小,其实原因大概如下几点。
一款游戏中最占用容量的地方在哪
首先,玩法肯定是最不占容量的部分,这些都是通过代码实现的,一款游戏中最占用容量的地方在于画面,音乐,还有过场动画,早期的FC游戏自然是没有什么过场动画的,音乐都是一种类似于MIDI的电子音乐,几乎不占用什么容量,画面则是由一个个的基础像素点配上颜色来构成的,游戏的分辨率也是非常的低,所以以这些元素来构成的游戏,容量自然大不到哪里去,128KB,还没有如今的手机随便拍一张照片大。
建模重复与镜像
这在当年的FC游戏中是各个游戏厂家非常惯用的手段,一方面是省事,另一方面就是节省容量了,在很多游戏中我们都会见到各种重复的建模,RPG游戏中的一些NPC,树林,山脉,很明显的重复,超级玛丽,重复的怪物和地形,魂斗罗也是一样。镜像是什么意思呢,比如我们要构建一个左右对称的角色或者道具吧,我们只要做一半就好了,剩下的一半以镜像***的方式来实现就完整了,很简单吧。
当然了,这些都是当年由于科技发展,没有办法才***取的一些技巧,或者是偷懒吧,现在的游戏其实也会使用一些,但不会那么明显的被玩家们看出来了,因为现在的游戏容量方面可以说没有什么问题的,技术方面也是,最大的问题是,好看是越来越好看了,可有多少玩家还能找回当年玩魂斗罗时候的乐趣呢?
说起《魂斗罗》容量问题,其实美版和日版还不同,我们小时候玩的黄卡基本都是美版(盗版),卡带容量比较小,而日版其实要比美版大一倍。
玩过日版的《魂斗罗》会发现,这个版本中每关之后都是有过场动画的,通关动画也比美版多一个坐直升飞机的过程。
关于容量的问题,当时FC红白机实现图像的原理的核心就是“重复利用”,开发者制作一个个小方块作为基本元素,放在一个库中(CHR图形库),游戏中所有的图像都是由图形库中的基本元素拼接成的。
像现在一张照片就要几M,放在当时是不可能做到的,所以不得不***取重复利用的方式。
看了半天都是废话。几句话告诉你们为什么。音乐的话魂斗罗超级玛丽时代的bgm本质只是一段谱子,不储存音频,听到的声音是芯片“当场按谱子演奏”的,图形异曲同工,不储存“成品地图”,所有元素存在一个库里,按“谱子”调用,谱子又不占地方,大量重复元素只占很小的地方,比如地上的砖块,同样的小兵,超级玛丽从头到尾红砖块几千个,就占一个贴图空间。再进阶一点的说,还可以对称折叠,如果砖块左右上下全部对称,1000个砖块只需要存四分之1个砖块的贴图。谱子就是程序,程序本质是文本,文本不占地方,贴图和音乐才占地方。
您好,我是小哪吒,很高兴回答你的问题。现代程序员A和1980年代游戏程序员B的对话:
A:为什么你用128KB能实现这么多画面、音乐、动画?
B:128KB还不够么?其实为了表现力已经相当奢侈了,加了很多不重要的细节。
A:就说你们的音乐,这个音乐,我压到最低码率的mp3,也得至少1MB吧。
B:你怎么压的?一首背景音乐怎么可能超过1KB。
A:那你实现全屏卷轴,用了多少显存?
B:一共就只有2KB显存,多了也放不下啊。
A:……
1、我们对“数据量”无法直观认识
除非是专家,一般人根本无法估算到底多大算大,多小算小。
FC游戏:麻雀虽小,五脏俱全。
在那个炎热漫长的晌午,熟练的掌握着小霸王游戏机以及黑白电视机连接的所有程序,一旦操练起来就会将家长快要回家的局限忘却抛在脑后。在上个世纪90年代,无论是盗版任天堂的小霸王游戏机还是以学习打字为借口购买的学习机,FC游戏承载了几代人永远无法忘却的快乐回忆!说出来简直难以相信,当年的那些FC游戏大作只有几百KB的容量,反观现在的游戏大作动辄就是几十个G甚至几百个G,无时无刻不在挑战玩家的硬盘容量。随便拿一张SD卡或者U盘,就足够装下曾经梦幻般的FC时代,足以将整个FC时代的游戏作品全部重温一遍。社会在发展,科技在进步,时下以任天堂为核心的游戏主机以及游戏制作水平早已甩当年十几条街。
作为那个年代的“情怀游戏”,首推魂斗罗和超级玛丽,曾让无数青少年日夜奋战废寝忘食如痴如迷,激烈枪战的火爆场面更是点燃玩家的***,能用一条命通关的玩家就是朋友圈和论坛最牛叉的人。只有128KB的魂斗罗,塞进了有趣长篇幅的游戏剧情,将堪比像素风的宛如打了马赛克的游戏画面演绎到极致,这在红白机时代解决游戏卡带内存有限的***压缩技术上具有里程碑的意义。
FC红白机,毕竟是只有8bit的机器,16位的画质分辨率也只有256x240,基于2KB的显存还要实现全屏卷轴效果。可想而知,满屏都是马赛克,即使放大也只是色块被放大,自然不会觉得模糊。FC时代的音频芯片可以产生合成音效,能够提供的音色非常有限,听听FC游戏的音乐就可以体会到常用的音色几乎都是一个版本。FC时代一颗可编程的声音发生器,可以提供4个模拟声道和1个PCM数字声道,其中3个模拟声道用于演奏乐音,1个杂音声道表现如爆炸、枪炮声等特殊声效,PCM数字声道表现连续的背景音,可以同时播放多个音轨才是发生器最厉害的地方!受到电脑技术以及研发成本的双重限制,FC硬件性能普遍跟不上,本着“游戏看上去内容还算丰富,技术层面实则单调”的设计初衷,游戏编程人员极力缩小优化数据结构,让只有128KB任何一帧其实只有16色的魂斗罗表现出了256色的效果。
总结
•游戏大量复用图块,图块还使用调色板索引,好像每个像素才占用2bit。
•程序员精心优化各种数据结构,争取不浪费每一bit的存储空间。
•声音只存储发声通道的调制参数序列,能复用就复用。
元芳,你怎么看?
感谢各位的游戏,喜欢的朋友记得点波关注!
有你们的陪伴,每天都是元气满满!!!
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/15517.html