Toolchain điển hình cho phát triển trò chơi DOS là gì? [đóng cửa]


15

Tôi tự hỏi làm thế nào mọi người thường viết các trò chơi DOS (như Doom), tôi không thể tìm thấy nhiều về điều này, nhưng rất thích tìm hiểu thêm về những ngày đầu phát triển trò chơi.

Ngôn ngữ nào được sử dụng chủ yếu?

Tôi đoán đó là C. Hoặc C ++?

Những IDE (hoặc trình soạn thảo / trình biên dịch) nào phổ biến?

Microsoft Visual C / C ++ (hoặc Microsoft C / C ++ như tôi tin rằng nó từng được gọi là) không tồn tại trước đó là AFAIK. Vậy mọi người đã sử dụng cái gì? chỉnh sửa và trình biên dịch dòng lệnh từ Intel hay cái gì đó?

API nào được sử dụng ở đâu?

Điều gì là phổ biến cho các trò chơi 2D? Còn những game 3D như Doom và Tomb Raider thì sao?

Còn điều gì khác với ngày hôm nay không?

Tôi rất vui khi nghe bất kỳ sự khác biệt nào khác, như định dạng hình ảnh / âm thanh đã được sử dụng.


Tôi khá chắc chắn rằng bạn dự định thực hiện một số nghiên cứu cho bài tập này. Có lẽ gdcvault.com/play/1014627/Classic-Game-Postmortem có thể giúp bạn bắt đầu.
Daniel Carlsson

Đó không phải là một bài tập, tôi ra khỏi trường / đại học. Tôi đã google khoảng một lúc nhưng không thể tìm thấy nhiều.
futlib

Tôi nhớ lại việc đọc một ghi chú từ một trong những người ID về Watcom C ++. Borland luôn luôn khá phổ biến vì trình biên dịch của họ rất NHANH CHÓNG. (Tôi đã từng xây dựng lại ba hoặc bốn lần liên tiếp vì tôi không tin rằng bất cứ điều gì đã thực sự xảy ra.)
3Dave

Câu trả lời:


19

Ngôn ngữ: C chiếm ưu thế, nhưng C ++ đã được sử dụng.

Các công cụ dành cho nhà phát triển: Môi trường phát triển bao gồm những công cụ từ Borland và Watcom (gần như chưa từng thấy ngày nay) trong số những công cụ khác. Cả Borland và Watcom đều có trình biên dịch riêng và IDE riêng. Borland là phổ biến nhất nói chung, mặc dù Watcom có ​​tiếng là sản xuất các chương trình biên dịch nhanh hơn, iirc.

API: Rất ít API tồn tại hoặc được sử dụng. Lập trình video thường bao gồm các pixel ghi trực tiếp vào bộ đệm khung VGA. Ngay cả trò chơi 3D cũng được rasterized phần mềm. API âm thanh Miles được sử dụng cho âm thanh, bao gồm các trình điều khiển bên trong vì HĐH không có trình điều khiển hoặc khung âm thanh riêng. Đầu vào bàn phím và chuột thường được đọc trực tiếp từ hệ thống. Có một vài bộ mở rộng bộ nhớ phổ biến cho chế độ 32 bit rất phổ biến và cần thiết cho đến cuối triều đại của DOS. Phần cứng rất đơn giản, may mắn thay, nhưng nó chắc chắn là một nỗi đau trong các trò chơi viết mông hoạt động trên nhiều loại phần cứng. Các thư viện để đối phó với tất cả các công cụ cấp thấp đơn giản (như SDL, SFML, GLFW, v.v.) đã không tồn tại,

Bên cạnh đó, Doom không phải là 3D như chúng ta biết ngày nay. Đó là, nó áp đặt các hạn chế rất lớn đối với môi trường 3D do thuật toán rasterization phần mềm chuyên dụng cao của nó, và các ký tự và vật phẩm đều là các họa tiết lộn xộn.

Định dạng tệp: Các định dạng tài sản chỉ thuộc sở hữu của công cụ như hiện tại. Tôi mơ hồ nhớ lại Bink đang quay lại video đó (điều này rất hiếm, thường chỉ trong các đoạn mở đầu và kết thúc), và tôi nghĩ Creative có một số định dạng âm thanh chuyên dụng. Tôi không chắc chắn định dạng nguồn hoặc trung gian nào phổ biến cho âm thanh hoặc video trước đó, nhưng TGA khá phổ biến cho hình ảnh.


1
Phần mềm trung gian phổ biến mà nhiều người được cấp phép cho âm thanh là Miles , cung cấp khả năng trừu tượng hóa trình điều khiển cho nhiều thiết bị. Nếu bạn không sử dụng Miles, có lẽ bạn chỉ hỗ trợ các phần tương thích Adlib hoặc SoundBlaster. Để bật hỗ trợ VESA trên thẻ kế thừa, một số trò chơi đã sử dụng UniVBE .
Lars Viklund

Đúng rồi! Tri nho tot! :)
Sean Middleditch

Tôi có thể sai, nhưng tôi tin rằng tài liệu tham khảo mà bạn đang cố gắng đưa ra là cho Watcom chứ không phải Watson . Họ đã tạo ra một trình biên dịch C xuất sắc và một máy chủ SQL nhẹ có tên là Watcom SQL, tiền thân của SQLite, mà tôi rất thích.
Bob Mc

Thật vậy, bạn là chính xác. Trí nhớ của tôi chắc chắn sẽ bị xáo trộn nhiều hơn ở tuổi già.
Sean Middleditch

ASM có thể phổ biến hơn bây giờ. Bạn cần phải tăng hiệu năng bổ sung và trình tối ưu hóa trình biên dịch không tốt như hiện tại. Đó là, phần lớn vẫn còn trong C nhưng các động cơ có thể có các mảnh ASM.
edA-qa mort-ora-y

4

Khi hoàn thành bài đăng của Sean, vì bạn đã đề cập đến Doom: có một blog rất hay của Fabien Sanglard, người đã thực hiện đánh giá về phần mã được sử dụng để tạo Doom (từ năm 1993). Đánh giá ở đây: http://fabiensanglard.net/doomIphone/doomClassicRenderer.php

Tái bút: Blog có rất nhiều bài đánh giá mã liên quan đến Doom / Quake và đây là một bài đọc hay cho nhà phát triển trò chơi để xem cách người khác thiết kế một trò chơi từ đầu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.