Toolchain ทั่วไปสำหรับการพัฒนาเกม DOS คืออะไร [ปิด]


15

ฉันสงสัยว่าผู้คนเคยเขียนเกม DOS (เช่น Doom) ฉันไม่สามารถหาอะไรได้มากมาย แต่ชอบที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการพัฒนาเกมก่อนหน้านี้

ใช้ภาษาอะไรเป็นหลัก?

ฉันคิดว่ามันเป็น C หรือ C ++ อยู่แล้ว?

IDEs ใด (หรือบรรณาธิการ / คอมไพเลอร์) เป็นที่นิยม

Microsoft Visual C / C ++ (หรือ Microsoft C / C ++ ตามที่ฉันเชื่อว่ามันเคยถูกเรียกว่า) ไม่ได้มีอยู่ในตอนนั้น AFAIK แล้วคนใช้อะไร แก้ไขและคอมไพเลอร์บรรทัดคำสั่งจาก Intel หรืออะไร?

API ใดที่ใช้?

อะไรเป็นเรื่องธรรมดาสำหรับเกม 2D? แล้วเกม 3D อย่าง Doom และ Tomb Raider ล่ะ?

มีอะไรแตกต่างจากวันนี้บ้าง

ฉันยินดีที่จะรับฟังความแตกต่างอื่น ๆ เช่นรูปแบบภาพ / เสียงที่ใช้


ฉันค่อนข้างแน่ใจว่าคุณตั้งใจจะทำวิจัยบางอย่างสำหรับการมอบหมายชั้นนี้ บางทีgdcvault.com/play/1014627/Classic-Game-Postmortemอาจให้คุณเริ่มต้นได้
Daniel Carlsson

มันไม่ใช่งานที่มอบหมายฉันออกไปจากโรงเรียน / วิทยาลัย ฉันใช้ google ไประยะหนึ่ง แต่ก็ไม่พบอะไรมาก
futlib

ฉันจำได้ว่าอ่านโน้ตจากหนึ่งใน ID ประจำตัวเกี่ยวกับ Watcom C ++ บอร์แลนด์นั้นเป็นที่นิยมอยู่เสมอ (ผมใช้ในการสร้างสามหรือสี่ครั้งในแถวเพราะผมไม่เชื่อว่าสิ่งที่เกิดขึ้นจริง.)
3Dave

คำตอบ:


19

ภาษา: C เด่นกว่า แต่ C ++ อยู่ใกล้และใช้งาน

เครื่องมือ Dev: สภาพแวดล้อมการพัฒนานั้นรวมถึงสภาพแวดล้อมจาก Borland และ Watcom (แทบจะไม่เคยได้ยินมาก่อนในปัจจุบัน) ทั้ง Borland และ Watcom มีคอมไพเลอร์ของตัวเองและ IDE ของตัวเอง Borland เป็นที่นิยมมากที่สุดโดยทั่วไปแม้ว่า Watcom มีชื่อเสียงในการผลิตโปรแกรมที่รวบรวมได้เร็วขึ้น iirc

API: มี API น้อยหรือมีการใช้งานอยู่ การเขียนโปรแกรมวิดีโอมักประกอบด้วยการเขียนพิกเซลโดยตรงไปยังเฟรมเฟรม VGA แม้แต่เกมสามมิติก็ได้รับซอฟต์แวร์เป็น rasterized Miles sound API ใช้สำหรับเสียงซึ่งรวมไดรเวอร์ไว้ภายในเนื่องจากระบบปฏิบัติการไม่มีกรอบเสียงหรือไดรเวอร์ของตัวเอง โดยทั่วไปคีย์บอร์ดและเมาส์ก็อ่านตรงจากระบบ มีตัวขยายหน่วยความจำที่ได้รับความนิยมสองสามตัวสำหรับโหมด 32 บิตซึ่งเป็นที่นิยมมากและจำเป็นต่อการสิ้นสุดของการครองราชย์ของ DOS ฮาร์ดแวร์นั้นง่ายขอบคุณโชคดี แต่มันก็เป็นความเจ็บปวดในเกมเขียนก้นที่ทำงานกับฮาร์ดแวร์ที่หลากหลาย ไลบรารี่ที่จะจัดการกับสิ่งต่าง ๆ ที่เรียบง่ายระดับต่ำ (เช่น SDL, SFML, GLFW ฯลฯ ) ไม่มีอยู่จริง

ในบันทึกด้านข้างถึงจุดก่อนหน้า Doom ไม่ใช่ 3D ในแบบที่เรารู้ในปัจจุบัน นั่นคือมันกำหนดข้อ จำกัด อย่างมากในสภาพแวดล้อม 3 มิติเนื่องจากอัลกอริธึมการแรสเตอร์ซอฟต์แวร์ที่มีความเชี่ยวชาญสูงและตัวละครและไอเท็มต่างก็เป็น jut sprite

รูปแบบไฟล์: รูปแบบสินทรัพย์เป็นกรรมสิทธิ์ของเอ็นจิ้นจากนั้นเหมือนตอนนี้ ฉันจำได้ว่า Bink กำลังวนกลับมาหาวิดีโอ (ซึ่งหายากมากโดยทั่วไปเฉพาะในการเปิดและปิดซีเควนซ์) และฉันคิดว่า Creative มีรูปแบบเสียงเฉพาะบางอย่าง ฉันไม่แน่ใจว่าแหล่งที่มาหรือรูปแบบสื่อกลางใดที่ได้รับความนิยมสำหรับเสียงหรือวิดีโอ แต่ TGA นั้นค่อนข้างได้รับความนิยมสำหรับรูปภาพ


1
มิดเดิลแวร์ที่แพร่หลายที่หลายแห่งมีสิทธิ์ใช้งานสำหรับเสียงคือMilesซึ่งให้ไดรเวอร์ที่เป็นนามธรรมสำหรับอุปกรณ์จำนวนมาก หากคุณไม่ได้ใช้ Miles คุณก็อาจรองรับ Adlib หรือ SoundBlaster compatibles สำหรับการเปิดใช้การสนับสนุน VESA บนบัตรเดิมบางเกมใช้UniVBE
Lars Viklund

ถูกตัอง! ความทรงจำที่ดี! :)
Sean Middleditch

ผมอาจจะผิด แต่ผมเชื่อว่าการอ้างอิงที่คุณกำลังพยายามที่จะทำให้เป็นWatcomไม่วัตสัน พวกเขาทำคอมไพเลอร์ C ที่ยอดเยี่ยมและเซิร์ฟเวอร์ SQL ที่มีน้ำหนักเบาเรียกว่า Watcom SQL ซึ่งเป็นบรรพบุรุษของ SQLite ที่ฉันชอบมาก
Bob Mc

แน่นอนคุณถูกต้อง ความทรงจำของฉันเพิ่มมากขึ้นเรื่อย ๆ ในวัยชรา
Sean Middleditch

ASM นั้นพบได้บ่อยกว่าตอนนี้ คุณจำเป็นต้องบีบประสิทธิภาพพิเศษและตัวเพิ่มประสิทธิภาพคอมไพเลอร์ไม่ดีเท่าตอนนี้ นั่นคือส่วนใหญ่ยังคงอยู่ใน C แต่เครื่องยนต์น่าจะมีชิ้นส่วน ASM
edA-qa mort-ora-y

4

เมื่อเสร็จสิ้นการโพสต์ของ Sean คุณได้กล่าวถึง Doom: มีบล็อกที่ดีโดย Fabien Sanglard ผู้ทำการตรวจทานในส่วนของรหัสที่ใช้ในการทำ Doom (จาก 1993) ความคิดเห็นอยู่ที่นี่: http://fabiensanglard.net/doomIphone/doomClassicRenderer.php

PS: บล็อกมีบทวิจารณ์โค้ดที่เกี่ยวข้องกับ Doom / Quake จำนวนมากและเป็นการอ่านที่ดีสำหรับผู้พัฒนาเกมเพื่อดูว่าคนอื่นออกแบบเกมอย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.