DOS游戏开发的典型工具链是什么?[关闭]


15

我想知道人们过去是怎么写DOS游戏的(例如Doom),我在这方面找不到很多东西,但是很想了解游戏开发的早期知识。

主要使用哪种语言?

我认为它是C。还是C ++?

哪些IDE(或编辑器/编译器)很流行?

当时AFAIK并不存在Microsoft Visual C / C ++(或我曾经以为是Microsoft C / C ++)。那么人们使用了什么呢?编辑和Intel的命令行编译器之类的东西?

使用了哪些API?

2D游戏有什么共同点?那么《毁灭战士》和《古墓丽影》等3D游戏呢?

与今天有什么不同吗?

我很高兴听到其他任何区别,例如使用了哪种图像/音频格式。


我相当确定您打算为此课程做一些研究。也许gdcvault.com/play/1014627/Classic-Game-Postmortem可以为您提供一个开始。
丹尼尔·卡尔森

这不是一项任务,我要离开学校/学院。我做了一段时间的谷歌搜索,但找不到很多。
futlib

我记得曾经读过一位ID专家关于Watcom C ++的笔记。Borland一直很受欢迎,因为他们的编译器非常快。(我曾经连续进行三到四次重建,因为我不相信实际上有任何事情发生。)
3Dave 2012年

Answers:


19

语言:C占主导地位,但C ++被广泛使用。

开发工具:开发环境包括Borland和Watcom(当今几乎闻所未闻)的环境。Borland和Watcom都拥有自己的编译器和IDE。尽管Watcom以生产更快的编译程序iirc而闻名,但Borland迄今为止是最受欢迎的工具。

API:很少存在或使用过的API。视频编程通常包括直接将像素写入VGA帧缓冲区。甚至3D游戏也被光栅化了。Miles声音API用于音频,由于操作系统没有自己的音频框架或驱动程序,因此内部包含驱动程序。通常从系统直接读取键盘和鼠标输入。有一些流行的用于32位模式的内存扩展器,它们在DOS统治结束时非常流行并且必不可少。值得庆幸的是,硬件很简单,但是对于可以在各种硬件上运行的对接游戏来说,这绝对是一个痛苦。没有用于处理所有简单底层内容(例如SDL,SFML,GLFW等)的库,

顺便提一下,Doom并不是我们今天所知的3D方式。也就是说,由于其高度专业的软件光栅化算法,它对3D环境施加了巨大的限制,并且字符和项都是突出的精灵。

文件格式:资产格式与现在一样是引擎专有的。我隐约记得Bink当时是用于视频的(这非常少见,通常只在打开和关闭的顺序中出现),而且我认为Creative具有一些特殊的声音格式。我不确定当时哪种声音或视频格式很流行,但是TGA对于图像很流行。


1
许多获得音频许可的无处不在的中间件是Miles,它为许多设备提供了驱动程序抽象。如果您不使用Miles,则可能只是支持Adlib或SoundBlaster兼容。为了在旧卡上启用VESA支持,某些游戏使用UniVBE
拉尔斯·维克伦德

那就对了!美好的回忆!:)
肖恩·米德迪奇

我可能错了,但是我相信您要参考的是Watcom,而不是Watson。他们制作了出色的C编译器和轻巧的SQL服务器Watcom SQL,这是SQLite的前身,我非常喜欢。
鲍勃·麦金

确实,你是对的。我的记忆肯定在我晚年变得越来越混乱。
肖恩·米德迪奇

ASM可能比现在更普遍。您需要压缩额外的性能,而编译器优化器的性能却不如现在。也就是说,大多数仍然使用C语言,但是引擎可能具有ASM组件。
edA-qa mort-ora-y 2012年

4

作为对Sean帖子的补充,自从您提到Doom:Fabien Sanglard撰写了一个不错的博客,他对用于制作Doom的代码部分进行了评论(1993年以来的一篇)。评论在这里:http : //fabiensanglard.net/doomIphone/doomClassicRenderer.php

PS:博客上有很多与Doom / Quake相关的代码评论,对于游戏开发人员来说,这是一本好书,以了解其他人如何从头开始设计游戏。

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.