3 คะแนน โดย GN⁺ 2023-09-04 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เป็นสื่อภาษาอังกฤษเกี่ยวกับ การเขียนโปรแกรมเกมบน DOS จากปี 1996 ที่อธิบายกระบวนการสร้าง flight simulator ด้วย C++ ด้วยตนเอง
  • แท็กหัวข้อถูกจัดหมวดหมู่โดยเน้น MS-DOS, 3D, Gamedev, tutorial, Retrogaming, C++
  • ไม่ใช่แค่เอกสารธรรมดา แต่ยังรวมถึง อิมเมจ CD-ROM ของโค้ดตัวอย่าง เพื่อเก็บรักษาสภาพแวดล้อมการพัฒนาในยุคนั้นไว้ด้วย
  • สามารถดาวน์โหลดจาก Internet Archive ได้หลายรูปแบบ เช่น PDF, EPUB, Full Text, ISO Image, Torrent
  • เป็นสำเนาเก็บรักษาที่ช่วยให้ผู้ที่มองหาแหล่งข้อมูลการพัฒนาเกมเรโทรและการเขียนโปรแกรมบน DOS สามารถดูทั้งหนังสือและไฟล์ประกอบได้ในที่เดียว

รายการที่ลงทะเบียนบน Internet Archive

  • สื่อที่ลงทะเบียนใน รายการ Internet Archive คือ Build Your Own Flight Sim In C++ (DOS GameDev)
  • ผู้เขียนคือ Michael Radtke, Chris Lampton และเป็นสื่อภาษาอังกฤษที่เผยแพร่ในปี 1996
  • ISBN คือ 1-57169-022-0
  • หัวข้อถูกจัดหมวดหมู่เป็น MS-DOS, Programming, 3D, Gamedev, tutorial, Retrogaming, C++

ขอบเขตการพัฒนาที่หนังสือครอบคลุม

  • เป้าหมายคือ เขียน flight simulator ด้วย C++ ด้วยตนเอง
  • เป็นสื่อที่ใช้ในบริบทของการพัฒนาเกมเรโทรและ 3D โดยมีแกนหลักเป็นการเขียนโปรแกรมเกมในสภาพแวดล้อม DOS
  • flight simulator มี เสียง SB16 รวมอยู่ด้วย
  • มี อิมเมจ CD-ROM ที่บรรจุโค้ดตัวอย่างให้มาพร้อมกัน

บริบทของการลงทะเบียน

  • มีภูมิหลังว่าเมื่อ Retro City Rampage ถูกพอร์ตไปยัง DOS นักพัฒนาเคยเสียดายที่ได้ทิ้งหนังสือการเขียนโปรแกรม DOS และการพัฒนาเกมที่เคยมีทั้งหมดไปแล้ว และยังหาออนไลน์ได้ยากด้วย
  • สื่อนี้ถูกแนะนำในบริบทดังกล่าวว่าเป็น หนังสือพัฒนาเกม DOS ที่ลงทะเบียนไว้บน Internet Archive

รูปแบบที่ดาวน์โหลดได้

  • Internet Archive มีรูปแบบดาวน์โหลดให้หลายแบบ
    • PDF: 308.9M
    • EPUB: 768.5K
    • Full Text: 1.1M
    • ISO Image: 11.5M
    • Single Page Processed JP2 ZIP: 321.7M
    • Torrent: 32.5K
  • ยังมีไฟล์ที่เกี่ยวข้องกับ OCR ได้แก่ CHOCR, HOCR, OCR Page Index, OCR Search Text

การเก็บรักษาและเมทาดาทา

  • ขนาดรายการแสดงเป็น 706.7M
  • รวมอยู่ใน CD-ROM Software Library, CD-ROM Software Collection และ The Vintage Software Collection ของ Internet Archive
  • OCR ประมวลผลด้วย tesseract 5.0.0-alpha-20201231-10-g1236 และภาษาที่ตรวจพบคือภาษาอังกฤษ

1 ความคิดเห็น

 
GN⁺ 2023-09-04
ความคิดเห็นจาก Hacker News
  • อา หนังสือเล่มนี้! ทำให้นึกถึงสมัยที่เล่น Wolfenstein, Ken's Labyrinth, Doom แล้วสงสัยว่าเขาสร้างของแบบนี้ขึ้นมาได้ยังไงกันแน่
    ตอนนั้นผมทำงานที่ “ร้านคอมพิวเตอร์” ที่ไม่ค่อยมีเงินจ่ายค่าจ้างหรือไม่ยอมจ่าย แล้วเขาบอกว่าวันนั้นให้หยิบหนังสืออะไรก็ได้ในร้านเป็นค่าตอบแทน ผมเลยคว้าเล่มนี้มาแบบฉับพลัน
    ระหว่างนั่งรถบัสกลับบ้าน ผมนั่งเลยป้ายที่ต้องลงไป เพราะถึงจะเป็นหนังสือเกี่ยวกับซิมูเลเตอร์การบิน แต่ อัลกอริทึมและเทคนิค ข้างในคือเรื่อง การเขียนโปรแกรม 3D ที่ผมอยากรู้พอดี
    ผมไม่ได้ทำซิมูเลเตอร์การบินขึ้นมา แต่ใช้ความรู้จากหนังสือเล่มนี้สร้างเกม 3D แบบหยาบ ๆ ได้ เกมนั้นไม่มีการชนกำแพง ไอเท็มที่เป็นสไปรต์จะสุ่มพังเมื่อเวลาผ่านไป และผมก็ไม่เคยจับความรู้สึกของการใช้การคูณเมทริกซ์แทนการแปลงเรขาคณิตได้ดีจริง ๆ แต่หนังสือเล่มนี้ช่วยตอกย้ำความรักในการเขียนโปรแกรมให้ผม ในช่วงที่ถ้าไม่มีโปรเจกต์ที่ลึกพอ ผมคงไม่ผลักดันตัวเองต่อไปแล้ว

    • กรณีของผมน่าจะก่อนหน้านี้ราว 15 ปี ครูคณิตศาสตร์ของผมมี TRS-80 กับซิมูเลเตอร์การบินยุคแรก ๆ ภูมิประเทศประกอบด้วยกริด สนามบิน และแนวเขาที่เรียบง่ายแบน ๆ โหลดมาจากเทปคาสเซ็ต
      ครูไม่รู้คณิตศาสตร์ และแม้ตอนสอนเมทริกซ์ใน Algebra II ก็ไม่สามารถตอบได้ดีว่าเมทริกซ์ถูกใช้ใน “โลกจริง” อย่างไร
      แต่ด้วยวิธีใดวิธีหนึ่ง ผมไปเจอบทความกราฟิก 3D ในนิตยสาร Byte ฉบับเก่าหลายปี ซึ่งมีเนื้อหาเกี่ยวกับการใช้ เมทริกซ์และจุด สำหรับการหมุนและอื่น ๆ
      ผมใช้สิ่งนั้นหมุนลูกบาศก์บน PET 2001 ท่ามกลางความอลังการของหน้าจอ 40x24 อันที่จริงมันมีแค่ 8 จุด และถ้าหรี่ตาดูในที่มืดก็จะดูคล้ายลูกบาศก์
      ต่อมาที่มหาวิทยาลัย ผมได้ใช้ไมโครคอมพิวเตอร์แบบ Tektronix storage tube มันเป็นเครื่องแยกเดี่ยว ไม่เหมือนเทอร์มินัล และสามารถเรนเดอร์ลูกบาศก์ได้ค่อนข้างดี ผมยังคีย์รถที่ประดิษฐ์อย่างประณีตบนกระดาษกราฟเข้าไปทีละค่าในคำสั่ง DATA ของ BASIC ในตัวเครื่องด้วย
      ช่วงนั้น หนังสือ Foley-Van Dam รุ่นแรกเป็นหนังสือกราฟิกที่ทุกคนอยากได้
    • จริง ๆ แล้วผู้เขียน Christopher Lampton มีหนังสือที่เก่ากว่านี้ซึ่งพูดถึงเกมสไตล์นี้ ชื่อว่า “Gardens of Imagination, Programming 3d maze games” ดูได้ที่นี่: https://archive.org/details/gardensofimagina00lamp
    • ของแบบนี้คือสิ่งที่ทำให้ผมเข้าสู่การเขียนโปรแกรม ผมไม่เคยทำงานในสายนี้ แต่ได้รับแรงบันดาลใจมหาศาล และเมื่อก่อนผมเคยซื้อ CD-ROM ที่บรรจุดัมป์เว็บไซต์อย่าง Dr. Dobb's อยู่บ่อย ๆ
    • เดี๋ยวนะ ทำไมถึงต้องใช้ การคูณเมทริกซ์ แทนการแปลงเรขาคณิตล่ะ?
      ตอนมหาวิทยาลัยผมได้ C ในวิชา “Survey of Physics” และคณิตศาสตร์ที่พยายามจำลองปรากฏการณ์ทางฟิสิกส์นั้นยากมากสำหรับผม แคลคูลัสกับเรื่องนามธรรมทั้งหมดผมทำได้ดี แต่ก็ไม่รู้ว่านั่นบอกอะไรเกี่ยวกับตัวผม
  • ถ้าสนใจเรื่องนี้ คอร์สออนไลน์ที่ผมกำลังฟังอยู่ตอนนี้ก็น่าจะน่าสนใจ: https://pikuma.com/courses/learn-3d-computer-graphics-progra...
    ผู้สอนสอนเนื้อหานี้อยู่ที่มหาวิทยาลัยแห่งหนึ่งในลอนดอน และรู้สึกได้ชัดว่าเขามีประสบการณ์สอนมาก จังหวะการสอนจนถึงตอนนี้สมบูรณ์แบบ และเป็นไปตามคำอธิบายคอร์สทุกอย่าง ถ้าผมเรียนคอร์สกราฟิกจบแล้ว ก็ตั้งใจว่าจะทยอยเรียนคอร์สอื่นของผู้สอนคนนี้ต่อ
    คอร์สนี้สอนวิธีเขียนโปรแกรมกราฟิกด้วย C ตั้งแต่ระดับล่างสุด โดยมี dependency แค่ SDL2 ตอนแรกจะสร้าง abstraction ของ SDL2 ที่สามารถกำหนดสีของพิกเซลแต่ละจุดได้ แล้วเนื้อหาทั้งคอร์สจะสร้างต่อบนสิ่งนั้น โครงสร้างคือถ้าคุณกำหนดสีของพิกเซลหนึ่งจุดได้ ก็จะได้เรียนต่อว่าคุณจะวาดนกฮูก 3D ที่ใส่เท็กซ์เจอร์ทั้งตัวได้อย่างไร
    ผมตามคอร์สนี้ด้วย Rust โดยใช้แค่ binding ของ SDL2 สำหรับ Rust ผมเรียนอย่างสนุก และรู้สึกว่าเป็นดีลที่ตรงไปตรงมาและเป็นคอร์สที่ดี เลยอยากแชร์ ผมไม่ค่อยเห็นที่อื่นพูดถึงคอร์สเหล่านี้เท่าไหร่

  • ผมยังจำได้ว่าเคยมีหนังสือเล่มนี้ น่าจะตอนอายุราว 14–15 ปี และเป็นช่วงที่เพิ่งได้เรียนบินครั้งแรกแล้วกำลังอินกับ การบิน อย่างหนัก
    ผมมี MS Flight Simulator และก็เรียน C++ ด้วยตัวเอง แต่เนื้อหาในหนังสือค่อนข้างเกินระดับของผมในตอนนั้นไปหน่อย ถึงอย่างนั้นก็ยังรู้สึกดีที่ได้นึกถึงความตื่นเต้นตอนที่ได้หนังสือเล่มนี้มา เพราะคาดหวังว่าจะสร้างซิมูเลเตอร์การบินของตัวเองได้ แน่นอนว่าถ้าจำไม่ผิด ซิมูเลเตอร์ที่ทำตามหนังสือนั้นแทบจะเล่นไม่ได้เลย

  • หนังสือเล่มนี้กับ “The Black Art of 3D Game Programming” เป็นสองเล่มโปรดที่สุดของผมในวัยเด็ก
    https://archive.org/details/BlackArt3DEBook

    • Tricks of the Windows Game Programming Gurus ก็ยอดเยี่ยมเช่นกัน ส่วน Tricks of the 3D Game Programming Gurus มีเอนจิน 3D แบบสมบูรณ์ที่ใช้ C และเริ่มตั้งแต่การวาดพิกเซลหนึ่งจุด หรือก็คือซอฟต์แวร์แรสเตอร์ไรเซอร์
  • น่าสนุกดีที่ผมเปิดไปหน้า 216 แบบสุ่ม แล้วเจอวิธีค่อนข้างพื้นฐานแต่มั่นคงในการแมปพิกัดโลก 3D ลงบนทรงกลม และบังเอิญว่าช่วงหลังนี้ผมเพิ่งอ่านวิธีแก้ปัญหา การสร้างโลก ของ No Man's Sky ที่ต่างออกไปโดยสิ้นเชิง
    https://www.polygon.com/2017/3/2/14790028/no-mans-sky-was-fl...

  • อยากให้ทุกวันนี้มีบทความแบบนี้ออกมาเยอะขึ้นอีก เท่มากจริง ๆ
    แต่ลิงก์ ePub ดาวน์โหลดไม่ได้:
    https://ia904505.us.archive.org/epub/index.php?id=build-your...
    No valid doc name could be determined
    น่าเสียดาย แต่คงต้องพอใจกับ PDF แทน อีกอย่างที่น่าเสียดายคือเว็บวิวเวอร์ของ Internet Archive ก็ไม่ค่อยดี
    ลิงก์ PDF ที่ใช้งานได้: https://archive.org/download/build-your-own-flight-sim-in-c-...

    • แปลกนะ ผมดาวน์โหลด ePub ที่ใช้งานได้มาได้ แต่ถึงอย่างนั้นก็แนะนำ เวอร์ชัน PDF อยู่ดี OCR กับการจัดรูปแบบของ ePub หยาบเหมือนเป็นฉบับร่างที่สร้างอัตโนมัติ
    • ePub น่าจะถูก สร้างตอนมีคำขอครั้งแรก
  • ผมยังมีโปรแกรมที่เขียนตามหนังสือเล่มนี้อยู่ ประสบการณ์การเติมชีวิตให้โลก 3D นั้นเหมือนเวทมนตร์ เริ่มจากหน้าจอดำ วาดเส้นไม่กี่เส้น แล้วขยับมันด้วยวิธีที่พอดี จู่ ๆ ก็มีโลกเกิดขึ้นบนหน้าจอ ทุกวันนี้หาอารมณ์แบบนั้นได้ยาก
    น่าจะได้รับหนังสือเล่มนี้เป็นของขวัญวันเกิดอายุ 13 ปี ดังนั้นคณิตศาสตร์บางส่วนตอนนั้นจึงยากไปหน่อยสำหรับผม แต่การได้เรียน assembly และขุดลึกลงไปในอัลกอริทึมที่ซับซ้อนกว่าอย่าง polygon clipping ก็เป็นการฝึกที่ยอดเยี่ยมสำหรับโปรแกรมเมอร์มือใหม่

    • ทำไมทุกวันนี้ถึงยากล่ะ? ไม่กี่เดือนก่อนผมเริ่มทำ software rasterizer และก็ได้ความรู้สึกแบบนั้นเป๊ะ ๆ
  • น่าประทับใจว่าหนังสือเล่มนี้ใช้หน้าไปมากแค่ไหนเพื่อสร้างจักรวาลออกมา สมัยนั้นไม่ใช่ยุคที่แค่เปิดไลบรารี OpenGL แล้ว initialize stack ก็จบ
    หนังสือเริ่มตั้งแต่เรื่องอย่าง ต้องตั้งค่ารีจิสเตอร์อะไรเพื่อให้การ์ด VGA เข้าโหมดที่ถูกต้อง, วิธีอ่านบิตแมปและพาเลตจากดิสก์, วิธีเขียน run-length encoder เองเพื่อประหยัดหน่วยความจำบิตแมป, และต้องตั้งค่ารีจิสเตอร์ใดบนพอร์ตจอยสติ๊ก

  • ผมทำตามหนังสือเล่มนี้จนจบ ต้องแก้ไขบ้างเพราะทำงานบน Mac แต่ก็ได้ implement อัลกอริทึม Bresenham, polygon clipping, back-face culling ฯลฯ
    ปกติแล้วคงติดตรงคณิตศาสตร์ที่เจอครั้งแรกอย่างเมทริกซ์, dot product, cross product แต่โชคดีที่ตอนนั้นผมลง linear algebra ภาคฤดูร้อนที่มหาวิทยาลัยพอดี เนื้อหาในหนังสือจึงเข้ากับวิชาเรียนได้ค่อนข้างดี

  • ถ้าจำไม่ผิด หนังสือเล่มนี้มี ฟลอปปีดิสก์ 5.25 นิ้ว ที่มีซิมูเลเตอร์ให้บินรอบภูเขารูปพีระมิดอยู่ด้วย ทำให้นึกถึงความทรงจำดี ๆ

    • มีไฟล์ ISO ขนาด 11MB รวมอยู่ และในนั้นก็มีไฟล์ exe อยู่หลายไฟล์ด้วย