作者TKyo (暗黑贵公子)
站内Programming
标题Re: [问题]好奇 D O S 时代 游戏是怎麽写的????
时间Mon Nov 20 15:32:41 2006
※ 引述《VElysian (嘉羽 拙火瑜珈)》之铭言:
: 如题
: 在远古时代 还没有 MFC 而且 Win32 SDK 还未普及的时候
: 而且那时也好像没有什麽视窗游戏
: 那些骨灰坛装的游戏是怎麽写的啊 ?????
绝大部分都是自行先设计开发工具
地图编绘/人物编绘/字型编绘/音乐编绘...等工具
而後剧情设计出炉定案後, 最後才是程式设计
: 像着名的光荣三国志系列 它有很棒的 C G 图
: 後来有炎龙骑士团团 它就有动画了耶 虽然感觉不太顺
早期的动画都是使用贴图的方式, 也就是日本人常用的区块贴图手法
利用背景相同, 及逻辑运算, 藉由小部份贴图, 来达到动画的目的
而非像卡通片一样, 一秒的画面换掉多少张图
而後期, 因为硬体支援及 HDD 容量快速成长, 这方面则是越做越流畅, 因为不再受限
: 紧接着 魔兽争霸 I & II 即时战略耶 动画也很顺
: 这种即时战略游戏怎麽会在以前 x86 旧电脑那麽顺啊 XD
魔兽争霸 I & II 已经算是很後期的游戏了, 所以当然顺
因为当时硬体已经成长到一定规模了
: 然後还有 D O O M 啊 3D 耶 @@" 真强
: 虽然是用 2D 模拟 3D 不过它有阴影还有物体远近改变大小的机制...
: 那种 3D 引擎也真够强的
DOOM 是利用演算法贴图, 利用 2D 的手法创造出假 3D
: 搞不好现在技术要用像以前那麽简陋的设备还做不出来呢
: 更何况那麽旧的电脑还要跑得动.....
我有同学就曾经研究过 DOOM 的档案格式
在 386 的机器上, 进而直接做出跟它一模一样的画面效果
後来他去了大宇, 听说在狂徒, 後来也离开了
: 着名的小朋友齐打交 I 也是 D O S 模式的游戏啊
: -----------------------------------------------------------------------
: 小弟不才 只知道 Turbo C (++) 有提供类似的绘图函式库
: 但是我只想问 在远古时代啊 他们是怎麽写游戏的啊???
: 好像不是用 Turbo C 的样子耶
: 还有还有 如果用 Standard C library 可以写得出来吗
如果只利用 Turbo C 的函式库来绘图或做其他事
说真的, 以当时的环境来说, 实在太慢了
很久以前, 第一版本的 GB (Game Blaster) 还是 Tracer 就是这样而被骂破头
: 如果没有现成的 library 的话 那可以自己用 Standard C library
: 写属於自己的 function 吗
基本上呢
以 C 为主体, Assembly 为辅
尤其是被硬体速度限制的部分, 大都是用 Assembly 实作
: 再不行的话 Windows API 可以支援吗
那时候的 Windows API 并不支援 DOS 程式使用
: 再再不行的话 那除了 Turbo C 以外还有没有其他的 library 呢???
自己写
: -------------------------------------------------------------------------
: 还有 input\output 要怎样写呢
画面输出入吗??
如果是, 基本上都是使用 VGA RAM MAP, MIMO (Memory In Memory Out) 的方式
位址 A000:0000 - A000:3FFF (Page 1)
A000:4000 - A000:7FFF (Page 2)
A000:8000 - A000:BFFF (Page 3)
A000:C000 - A000:FFFF (Page 4)
而当时游戏普遍都是支援两种模式, 320x200x256c 及 640x480x16c
320x200 模式的绘图比较容易, 一个 pixel byte 就代表一个颜色, 共 256 种颜色
640x480 模式的绘图比较复杂, 因为它是用 bit map 而非 byte map
: 像游戏中滑鼠的控制 滑鼠游标 侦测滑鼠按下等等
: 还有键盘 在 C 语言中是程式停下来等使用者按按键
: 但是游戏是 在进行中 如果使用者按 ESC 键的话 才会显示 Option 选单
拦截 int 09 号中断
这方面你可以去找找旧书摊, 找有介绍拦截中断向量的书
: 感觉好像是 除了游戏进行以外还有另外一个回圈在监听键盘
: 也有可能是类似 Multi Thead 的咚咚 不过以前 D O S 系统应该不支援...
: 有些游戏好像还可以撷图 Orz~~~~~~
应该说是充分利用 ISR, 只是让你误以为像现今的 Multi Thead
而大回圈也是有, 不过是在控制游戏的主流程
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.67.4.232
1F:推 VElysian:可以顺便请教一下 拦截中断向量 140.130.208.17 11/20 17:10
2F:→ VElysian:大部分书的标题是什麽呢??? 140.130.208.17 11/20 17:11
3F:→ dontblame:旗标出的「DOS技术手册」(共三册) 59.127.1.175 11/20 17:34
4F:→ dontblame:以及 请查 TSR 关键字 59.127.1.175 11/20 17:36