Apple II上的游戏开发是什么样的?[关闭]


14

不久前,我曾问过一个有关DOS开发的类似问题,并且得到了一个很好的答案: DOS游戏开发的典型工具链是什么?

现在,我想知道70年代末80年代初Apple II上的游戏开发是什么样的。我主要对早期的II和II +感兴趣,但我也希望得到有关IIe等的答案。

所以这是我的问题:

使用了哪些语言?

我假定使用6502汇编器,但是BASIC被捆绑在一起,可能也使用了很多。您能想到用BASIC编写的流行游戏吗?C呢?

6502汇编程序的开发是什么样的?

我注意到,如果启动系统监视器,则可以直接输入操作代码,甚至可以直接使用mini汇编程序执行汇编程序。但是我无法想象游戏是这样写的,是否有编辑/ IDE?程序如何存储在磁盘/磁带上?

BASIC开发是什么样的?

Apple II BASIC解释器还不错,我想您可以在其中编写完整的程序。我也想让您保存/加载程序,我想是磁盘/磁带。但是,没有视觉编辑器吗?

是否有API或中间件?

或者,如果您想绘画或播放声音,是否必须一直与硬件直接对话?那里有图书馆吗?

与今天有什么不同吗?

我很高兴听到其他任何区别,例如使用了哪种图像/音频格式。如果我理解正确,实际上并没有文件的概念,我想知道它是如何工作的。您是否需要在汇编器中键入图形和声音?这在BASIC中是如何工作的?


迈克尔·阿布拉什(Michael Abrash)的《图形黑皮书》的介绍是由约翰·卡马克(John Carmack)撰写的,他谈到了图形的制作是多么容易-您只需执行一次绘图命令,它就会自动切换。从我80年代玩过的记忆中,您可以直接通过BASIC拨打这些电话。
菲利普(Philip)

我已经在其他地方链接了此文件,但是...无论如何,Jordan Mechner发行了Apple II版本的Prince of Persia的源代码。这可能对您很有趣!
洛朗·库维杜

Apple II最引人注目的怪癖之一是图形并非直接映射到内存。取而代之的是,系统使用了一种奇怪的交错系统,其中内存中跟随行0的行不是行1,而是行64。然后第128行紧随其后,直到第1行出现。这就是为什么您会在Apple II游戏中看到奇怪的“三重”加载效果的原因。
史蒂文·斯塔德尼克

Answers:


5

我在Apple(不是专业人士,但是我从中学到的东西),Applesoft BASIC和汇编器上进行了很多编程工作,从而了解了发烧友的位置。其他语言也可以使用-徽标很常见,Pascal到处都有写,但我不知道有人使用过,直到真正的Apple IIGS的Orca C出现,我才真正意识到C在任何Apple平台上都被使用过。带有海龟样式(或称为徽标样式)图形的图形解释器。

我将先解决您的一些问题,然后再提出基本想法:

您能想到用BASIC编写的流行游戏吗?C呢?

许多共享软件都是用BASIC编写的,不仅是Applesoft BASIC,而且还有Integer BASIC(顾名思义,它都没有浮点数)。我想到了埃蒙(Eamon)系列,但我真的想不出很多其他东西。另外,Beagle Bros.编写的许多软件都是使用BASIC完成的(主要是实用程序,而不是游戏)。

我相信大多数商业软件都是用汇编器编写的。

但是我无法想象游戏是这样写的,是否有编辑/ IDE?程序如何存储在磁盘/磁带上?

我使用了Merlin Assembler,称它为IDE可能会对其进行扩展,但效果很好。如您所说,您可以放到系统监视器并输入操作码,然后从那里运行。Merlin提供了一种方法,您可以从系统监视器中恢复到该状态(我现在不记得了)。

但是,没有视觉编辑器吗?

有一个第三方工具可以使Applesoft的环境更好一些,并且可以让您使用箭头在屏幕上滚动并像可视编辑器一样进行编辑(您仍然必须在行尾或更改不会停留)。我不记得那是什么,我用了很多时间。

或者,如果您想绘画或播放声音,是否必须一直与硬件直接对话?那里有图书馆吗?

在Apple II + / IIe / IIc上,您几乎只是在谈论硬件。您可以使用ROM中的几个程序,但是它们非常有限,通常您会PEEK和POKE不同的存储位置来更改寄存器以执行所需的操作,例如,更改图形模式,拨动49152以触发扬声器等。

在Apple IIGS上,ROM附带了一套与Macintosh相似的库,用于完成精美的GUI和其他功能。ROM会随着时间的推移进行更新,如果您加载了使用较新库的系统磁盘,它们将从磁盘而不是ROM中读取数据,从而导致启动时间变得非常缓慢。有ROM 01、02和03,而02-> 03是免费升级,并且在01之前有一个发行版,他们也将免费升级到01。

我很高兴听到其他任何区别,例如使用了哪种图像/音频格式。如果我理解正确,实际上并没有文件的概念,我想知道它是如何工作的。您是否需要在汇编器中键入图形和声音?这在BASIC中是如何工作的?

有文件,我不确定您的意思是什么,并且ProDOS同样支持目录(较早的DOS并没有,但是仍然有您可以识别的文件概念)。我使用位图和.pcx。我不记得II + / IIe / IIc系列上的任何音频文件,但是那是因为很难产生比视频游戏声和循环声更响亮的声音。那里确实有一些骇人听闻的技巧(特别是我有一个播放Gun N'Roses的磁盘),但是几乎总是在语法上做到的。

与现代环境相比,它是完全原始的。但是请记住,不支持同时运行多个程序,因此您的编译器也必须有效地成为您的编辑器-您无法真正争辩vi与emacs的好处,因此无论您给编译器提供了什么,您学会了使用。我确实认为这比使用堆积在库上的库要容易得多,并且如果您正在使用硬件并知道它是什么,那么有很多技巧。例如,“暂停一会儿”的常见实现是“ for(int i = 0; i <1000; i ++)”(在BASIC中有所不同),由于硬件如此之快以至于您需要d需要大量的数据,即使不是,它也可以在不同类型的机器上运行,因此对于不同的人(II +,IIe,

这些全都来自内存,我在编写本文时没有查看任何参考,因此如果我的内存有问题并告诉您错误的信息,我深表歉意。但是,我希望这能使您有所品味并回答您的一些问题。


4

使用了哪些语言?

6502适用于大多数(很少见的C)(Aztek),许多BASIC,一些Pascal(苹果Pascal)。

6502汇编程序的开发是什么样的?

有一些非常漂亮的用于6502的汇编器和工具:Orca / M,Merlin,并且在以后的日子里,可以在PC上进行开发并通过串行链接到Apple进行远程调试。让我们不要忘记Beagle Bros.实用程序。编辑+编译+运行,世界永远不会改变;-)

BASIC开发是什么样的?

没有可视化编辑器,只有一个控制台,可让您在一开始就与BASIC缓冲区进行交互。但是,小猎犬兄弟(Beagle Bros.)拥有一些神奇的工具,可以使大部分痛苦消除。后来,有一些shell至少在您的写作中像基于行的编辑器一样工作。有一个工具(Expediter 2)可以将您的BASIC压缩为运行速度更快(单程运行)的汇编二进制文件。

是否有API或中间件?

有一些,但大部分是非常狭窄的范围,与您今天所说的SDK完全不同。坦白说,在48K中,您将无法负担通用API。在后来的日子里,针对Clicky冒险游戏,基于图块的游戏,

与今天有什么不同吗?

一切都没有。实践保持不变,工具变得更好。


-1

Native Basic解释器:编写程序时,应为每行编号,输入代码,然后按Enter。一个基本程序如下:10:HOME 20:打印“ HELLO WORLD”

在此示例中,HOME清除屏幕,如果需要,请输入中间行,例如:

15:打印“问候”

作为输出,它应该清除屏幕,显示“问候你好世界”

命令LIST显示您的代码(暂停提示!)在某些模式下(大写)没有大写锁定,没有特殊字符。没有专业游戏是用BASIC编写的,因为性能,您实际上可以看到您的程序正在画线。

只是声音效果,很难播放音乐,我们只有一个扬声器,只有一点点(没有开玩笑),可以窥见49152,改变它的状态,是的,您甚至应该控制频率,并且它是方波形式。

去组装电话-151

您必须在没有IDE的监视器上手动编写代码输入地址和您的代码(HEXA)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.