林科将一张软盘插入苹果II的软驱驱动器,开始了码农的辛勤工作。
BASIC编程语言解释器用起来那是相当的难受,而mos6502的低效也让林科在等待中抓狂。
很快一个下午就过去了,一轮弯月出现在苍穹之上。
总体来说,工作量还在接受范围之内,两款游戏加起来的代码还不到600行,并且源码自己可以倒背如流,只需要对苹果II针对性优化。
但是这只是完成了程序,相当于构建了整个游戏的框架,现在只是一堆数据,还需要游戏位图角色,游戏音乐和界面以及各种部件才是完整的游戏。
简单的8x8位图完全通过代码实现,通过对扬声器发出脉冲实现单音符音效。
又过了几个小时,已是深夜。
保存了所有数据,林科将数据编汇后进行dome封装。
等待了一会儿,编汇结束,这个dome就完成了。
输入运行指令,屏幕变黑后直接进入游戏。
基本的要素都有了,3只不同的幽灵,在通道上的豆子以及随机出现的各种道具。
整个游戏一共有99个关卡,相比原版,林科还引入了boss战与隐藏关来增强可玩性。
这个简陋的游戏林科十分的不满意,但是在林科费尽心思进行完善后也就那样,索性就这样定下来了,反正这个年代的玩家只在乎游戏好不好玩,谁会去在意ui是否美观。
而《贪吃蛇》因为可以直接套用已经完成的《吃豆人》的数据,制作速度比后者快得多,所以林科对画面进行了一番相对于这个年代来说相当精细的打磨。
在这里需要科普一下关于苹果II的显示参数。
苹果II的显示并没有通过专门的芯片进行处理,只是主板上的一部分电路与cpu的软件代码所实现的,这是相当简陋的设计。
但是沃兹尼亚克居然做到了可以在屏幕上显示出24行80列大写字母,支持最低分辨率40x48的16色模式和最高分辨率280x192的6色模式,可以说是非常厉害。
游戏的标题画面相当“惊艳”,在40x48这个苹果II所支持的最大色彩的分辨率下,林科将仅有的16色玩出了花。
如此小的分辨率可以奢侈的使用一整张彩色图片作为背景,游戏标题《Greedy snake》采用彩色艺术字设计,而位于画面正中偏下的16x24卡通蛇是一整个由5个位图帧组成的动态位图,表现出有节奏的形态。
实现动态帧并不困难,但是如何尽可能少的占用资源就只能靠优化了。
而且林科还基于《欢乐颂》制作了欢快耐听的主题曲,过程并不复杂但如何完善是个问题。
要知道现在只能提供一个pcm通道,或是一个脉冲通道来播放声音,音乐要体现出欢快流畅的感觉简直是不可能的。
但是这难不倒林科,通过底层代码直接调用cpu资源可以在使用一个pcm通道的同时模拟一个脉冲以及方形波通道,这样就可以使用3个通道来播放音乐了。
可以播放音乐还不行,现在的用户可没有买电脑还顺带买一个音响的习惯,而且苹果二也没有声音输出接口,必须基于苹果二的拓展槽设计一块带接口的声卡。
由于cpu已经承担了绝大部分音频输出,所以这块拓展卡并不需要什么增强芯片,完全的模拟电路,林科可以完全基于现有材料自己手工制作,成本相当低廉。
进入游戏后的画面将会基于280x192的6色模式呈现,游戏中的主角,也就是那条贪吃蛇使用像素化表现,采用3种颜色,芯子所在的蛇头单独分块采用动态位图,会不停吐动。
但是就这样灌入软盘卖出去,是会吃大亏的。
当时的程序的源码是可以被用户看到的,并且软盘也很方便拷贝复制,可想而知一旦就这样发售盗版与各种改版将会层出不穷。
所以林科还需要进行反盗版措施。
首先就是需要对整个程序进行重解释,林科特意编译了一个小巧高效的解释器来转换Basic语言编写的代码为特定描述语句,然后再对源码进行加密并加壳。
而且林科还丧心病狂的加入了硬件反盗版措施,如果不是苹果II运行的话会触发反骇机制导致游戏被锁死无法运行。
最后在源码中不起眼的位置加入了作者名字与完成时间。
这些反盗版措施是林科在当前条件下所设置的虽不是最完美但绝对是最直接有效的措施了,虽然仍会被破解,但林科故意设下的几个小陷阱可以最大限度的延长被破解的时间。
mos6502的性能基本上已经被林科压榨干净了,《贪吃蛇》还好一些,《吃豆人》的帧数就相当不稳定了,整个游戏运行偏慢,这也是没办法的事,但至少画面总体上是连贯的。
这时,天边已渐露鱼肚白,拂晓的晨光透过半掩的玻璃窗。
林科的精神一下子就松懈了,头昏脑胀的他揉了揉酸痛的肩膀,然后伸了个懒腰,到床上直接倒头就睡。