Re: [問題]好奇 D O S 時代 遊戲是怎麼寫的????
※ 引述《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
推
11/20 17:10, , 1F
11/20 17:10, 1F
→
11/20 17:11, , 2F
11/20 17:11, 2F
→
11/20 17:34, , 3F
11/20 17:34, 3F
→
11/20 17:36, , 4F
11/20 17:36, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 9 之 14 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章