如何编写图形DOS游戏?

Mus*_*afa 29 graphics dos

我一直想知道如何编写像Sky Roads,Turbo,Aladdin,Duke Nukem,Commander Keen 6这样的DOS游戏.我找不到一个好的来源.如果我用C#,C++,Java等编写控制台应用程序.它总是显示并保持静止.它始终是文本.

  1. 他们是如何生成图形的?
  2. 有没有可以使用的库?
  3. 他们使用什么语言?

任何好的来源将不胜感激.

Pro*_*ica 18

汇编程序,Pascal和C是流行的语言.通过直接与显示硬件(例如,彩色图形适配器)连接来生成图形.(CGA)

可能有图书馆,但不像今天,图书馆通常不在公司外共享.

可以在这里找到与1988年相关的资源:

https://web.archive.org/web/20170910230837/http://gd.tuwien.ac.at/languages/c/programming-bbrown/advcw1.htm


Mer*_*ham 8

他们是如何生成图形的?

那个时代的游戏通常直接写入图形硬件.它们映射到内存中的特殊位置,并直接操纵像素,就像它们是一个数组一样.

有没有可以使用的库?

声音和网络驱动程序库很常见.哪些,我不知道 - 现在由于操作系统本身提供的硬件抽象层,您不必为游戏提供驱动程序.

除此之外,还有C/C++语言标准库.游戏中间件库直到那个时代之后才变得普遍.

中间件的例子是:

  • 物理图书馆,如Havok
  • 图像格式加载库,如DevIL
  • 声音格式加载程序库,如FMOD
  • 视频处理程序库,如Bink

然而,DOS时代是游戏引擎的流行诞生.当天的例子包括:

他们使用什么语言?

C和组装非常普遍.

更少有Pascal,或更多其他更模糊的语言.


如果你想像在DOS时代那样开发低级软件,那么为旧游戏系统编程可能是一个好主意.NES,C64,Gameboy和Gameboy Advance编程都要求作者使用直接硬件访问,并要求您了解C或某种形式的汇编.您可以使用模拟器来运行和调试您的成品,因此它不像当前的控制台那么高.

如果您只想开发DOS风格的游戏,那么现在您可以使用大量的图形和声音库.我建议使用其中一个库,而不是像他们那样做事情. Allegro,SDL,PyGame,OpenALOpenGL等等.

您仍然可以进行低级图形编程,但是您可以更快地运行游戏,在事情中断时获得更好的技术支持,并且您的游戏将是跨平台的.

  • +1我喜欢你的答案,除了OP现在没有询问如何做一个新的DOS游戏,但那时有多大的DOS游戏.这就像是一些历史学家调查100年前人们如何养殖并且你说,是的,但最好是使用拖拉机.:) (3认同)

thi*_*ton 5

您可能混淆了控制台/终端的概念,即由文本流和一些转义命令提供的纯文本窗口,与 DOS 计算机本身。控制台不是DOS,DOS也不是控制台。

控制台负责显示其客户端应用程序通过输入和输出流发送给它的文本,向上滚动旧文本并静态显示它。控制台是图形硬件之上的一层,是操作系统的一项服务,您不需要它来显示图形。在 DOS 时代,程序会直接写入图形缓冲区,绕过您看到的纯文本显示。

另一方面,现在存在控制台(例如 xterm 或 windows 命令提示符),它们与 DOS 无关。