- 近期网站停站换新具体说明
- 按以上说明时间,延期一周至网站时间26-27左右。具体实施前两天会在此提前通知具体实施时间
主题:【原创】像素画 -- Ambrossi
在很久很久以前,在Atari,SEGA,Nintendo这些名字响彻耳际,在《勇者斗恶龙》《玛丽兄弟》《恶魔城》这些名字还没有成为传奇的时候,做游戏的兄弟是很可怜的。他们可怜的原因和我现在可怜的原因正好相反,我是没东西想蒸出包子来,他们是东西太多可是没有好用的器械给他们蒸。
就拿大家最熟悉的FC(红白机)来说吧。它的处理器是8位的,主频只有区区1.77兆,内存和显存各只有2KB~~~~ 反正它的图像处理器也只能显示64种颜色。而大部分的FC游戏只占据了一个128K的卡带,128K哦,要包括音乐,声效,背景,贴图,对话...大家现在开始了解做游戏的兄弟的痛苦了吧?拿86年的一代的《勇者斗恶龙》来说吧,开发者要把整整39种怪物,10种魔法和13处地点都挤到那个小小的卡带里哦,真的很让人佩服。
他们到底怎么做到的呢?就从最基本的图像来说,如果用现在常见的假3D贴图,那么一张贴图就要用掉整个卡带了:我在我的电脑里找到了《星球大战-杰迪学院》里一张激光手枪的贴图,大小为114K。
实际上这个游戏的贴图库用掉了324兆的硬盘空间,当年的人听到这个数字不知道会不会哭。
我们来看看困难时期人们是怎么生存的吧,这是一代《勇者斗恶龙》里的一张截图
大家不要笑了,简陋是简陋了点,可是2K的背景加上2K的页面,考虑到储存的算法,我估计当年他们用了2K不到的数据达到这个效果呢。大家如果用图像软件放大这张图片,就会发现宫殿中间的洛特(小蓝人)是这样的
没错,当年的开发者就是一个像素一个像素的把洛克点出来的,朋友们,这就是像素画了。我们来看看要用掉多少空间:16x16的像素x6位的颜色就是1536 bits,也就是192Byte,只用了0.2 KB耶!!!
-----哎呀,原创好累
当年学机器码编程的时候,老师出的题经常是注明必须在多少字节之内完成,有时候为抠一个字节就得呕心沥血彻夜不眠啊......
套用贺绿汀的游击队歌就是:每一个字节都是一个敌人!
俺只有Basic的水平,啥时还要给俺补一补!
直接就是机器语言,哪像我这种就是写写:乌龟前进50...
也就是16K字节……应该装不下一张假3D贴图
说起来现在这帮写游戏的真没职业道德,仗着如今电脑便宜就玩命的吃资源,简直就是什么算法效率低下就用什么
一个是小学时候第二课堂,叫'微机'.用的是苹果.学了啥都不记得了,就想起来最后输入R,U,N,回车.
第二是小学'微机'课老师大义凛然的向我们宣布:今后的世界将是'bei(2声) sei(1声) ke(轻声)'的天下.
第三是刚用电脑的时候自己手动调内存
那个难度太高了,128K个bit实在太小太小。
我对于递归概念的透彻理解大概就是源于LOGO吧。那东西至少还有循环(好像是repeat语句),现在用xsl这鬼东西做个循环还要用递归呢!
处理器越来越快,内存越来越不值钱,硬盘都上T了... 谁还抠字节呵...
组里的一个老头子,以前作了十几年的汇编... 写的C程序大家都喊看不懂... 据说专门从存储最优的角度考虑...
魂斗罗,双截龙
我记得原来有一种专门为幼儿教育设计的语言叫LOGO就是这样的,能控制一个箭头/画笔转左转右,画上画下。
他是在七十年代末开始写程序的,用的FORTRAN,用的一套“德州仪表”的老机器,阵势极其“豪华”,主机,磁带机,读卡器,打印机等等装了一屋子,全部开动起来起码半个小时。 那内存可是一板一板的往里插的啊!一板内存大约有半平方米大小。你猜一猜那豪华机内存有多大呢?
64K!
所以,要挖空心思想尽办法节约内存,否则那么多数据怎么玩得转?他现在还有这个后遗症,写程序特省。
我学计算机那会儿,已经是8086/88的年代了,也是有个64K的限制, 内存再多也没用,一段就那么大,所以想方设法要把数据倒腾到这个64K中去,算法就很别扭。
这是好习惯啊。
我们上算法课的时候,很多算法都是60年代一路下来一些最聪明的大脑所想出了的,我那时真是废寝忘食研究这些算法,一本书给我注的密密麻麻的。
后来这本书也没舍得丢,留在老家了。
我想教我儿子学编写程序。
LOGO的“血统”并不低,是源于人工智能语言LISP,递归是它的核心之一。