Bao lâu và loại phức tạp nào có thể đã được tham gia vào Chris Sawyer viết hầu hết các ông trùm tàu ​​lượn siêu tốc trong nhà lắp ráp?


14

Từ câu hỏi này , tôi có một câu hỏi khác về ...
Bao lâu và loại phức tạp nào sẽ liên quan đến Chris Sawyer viết hầu hết các ông trùm tàu ​​lượn siêu tốc trong trình biên dịch chương trình?

Để xác định và phá vỡ câu hỏi này, tôi quan tâm đến;

  1. Bạn ước tính khoảng bao nhiêu giờ đàn ông (có một dự đoán) bạn có muốn Chris tự mình viết trò chơi không? Hoặc thay vào đó, đưa ra một tỷ lệ phần trăm xấp xỉ của tỷ lệ số giờ mã hóa trình biên dịch để nói, viết toàn bộ nội dung trong C / C ++.

  2. Các lập trình viên biết trình biên dịch chương trình có nghĩ rằng đây là một nhiệm vụ quá phức tạp đối với sự trừu tượng hóa ngôn ngữ ở mức độ thấp như vậy không? Ngoài lợi ích về hiệu suất, đây chỉ là một khả năng tự nhiên kỳ dị mà Chris có, hay một kỹ năng đáng để học hỏi đến mức đó? Tôi quan tâm nếu mọi người nghĩ rằng điều phức tạp / hiệu năng đáng để học trình biên dịch tốt (để viết), hoặc nó chỉ "đáng giá" nếu bạn có nhiều kỹ năng được phát triển tự nhiên trong trình biên dịch (có lẽ là do làm việc với phần cứng / trình điều khiển phần cứng / thiết bị điện tử / vv).


1
Anh ta có thể bắt đầu bằng cách viết nó bằng C, và sau đó thay đổi các phần của nó thành trình biên dịch khi cần cho hiệu suất không?
Jon Onstott

1
Ha, ha, ha, đây giống như một câu hỏi từ một người đang đọc những bình luận cũ của tôi.
Đánh dấu C

Câu trả lời:


12

Từ việc đọc tiểu sử thô của anh ấy , có vẻ như hai năm (đầu năm 1997 đến cuối năm 1998). Cho rằng anh ta dường như là một "dự án tại một thời điểm" và bộ công cụ và khung thời gian không phù hợp với "phát triển nhóm", tôi sẽ giả sử 24 tháng lập trình viên.

Vào thời điểm đó, anh ta là một lập trình viên trò chơi chuyên nghiệp làm việc lắp ráp từ năm 1983, vì vậy tôi sẽ không đánh đồng "hai năm Chris" với "hai năm tôi" làm việc.

Cho rằng hầu hết các trò chơi chuyên nghiệp mất khoảng 25 năm để một nhóm phát triển, hai năm cho một trò chơi dẫn đầu ngành là một thành tựu đáng kinh ngạc, cho vay tín ngưỡng đối với các câu nói:

Vậy trong trường hợp này, Rollercoaster Tycoon sẽ được viết nhanh hơn bao nhiêu nếu Chris sử dụng C hoặc Java hoặc Javascript hoặc ...? Có lẽ điều đó sẽ không quan trọng ngoài việc anh ta có thể chậm hơn một chút bằng cách sử dụng ngôn ngữ cấp cao hơn mà anh ta không có 14 năm kinh nghiệm với ...


điểm tuyệt vời, tôi nghĩ rằng đó có thể là trường hợp.
Loại ẩn danh

4

Nếu bạn nghĩ về C ít hơn một trình biên dịch "cấp cao" và chúng tôi đưa ra giả định rằng Chris không thực hiện tối ưu hóa điên cuồng cho mã lắp ráp của mình trong mọi thói quen, thì tôi sẽ tưởng tượng theo% thời gian lâu hơn, thì nó sẽ có thể không nhiều hơn thế đối với một lập trình viên lắp ráp lành nghề.

Việc lắp ráp trở nên phức tạp khi bạn thực hiện tất cả các tối ưu hóa điên rồ đó (hoạt động véc tơ, sử dụng các tập lệnh đặc biệt (SSE, v.v.), vặn vẹo, v.v.) mà bạn đơn giản không thể làm từ C. Nếu bạn đang làm công việc đó, sau đó thời gian thực sự nằm trong vòng "fiddle bit này, lắp ráp, đo lường ... fiddle bit này, lắp ráp, đo lường ..." và không phải trong mã hóa thực tế. Với một trình biên dịch macro tốt và một lập trình viên lành nghề, thì việc viết lắp ráp không phải là một bước tiến lớn từ việc viết mã C.

Tuy nhiên, tôi sẽ không thể làm điều đó! Tôi rùng mình khi nghĩ về việc cố gắng khởi tạo DirectX trực tiếp trong quá trình lắp ráp! ( Chỉnh sửa: Wikipedia cho tôi biết rằng anh ấy đã viết một số phần trong C thành "giao diện với hệ điều hành Windows" vì vậy tôi đoán rằng anh ấy đã không khởi tạo DirectX trong quá trình lắp ráp rồi ... phew!)


YEah đó là bit mà tôi không thể tìm ra ban đầu. Nhưng sau đó tôi đọc được một chút về việc sử dụng C cho DirectX. Cảm ơn thông tin về tối ưu hóa rất thú vị.
Loại ẩn danh

3

Một người khác được biết đến với việc viết rất nhiều chương trình Windows trong trình biên dịch chương trình là Steve Gibson, tác giả của SpinRite, ShieldsUp! và các tiện ích khác. Ông thảo luận về tình yêu của mình về ngôn ngữ lắp ráp ở đây .

Randy Hyde (người mà tôi từng biết cách quay lại khi cả hai chúng tôi đang viết mã lắp ráp 6502 cho Apple II) có một cuốn sách trực tuyến mới có tên Windows Lập trình bằng ngôn ngữ hội . Ông là một người ủng hộ lớn việc sử dụng các macro ưa thích (bao gồm cả các cấu trúc lặp) để làm cho lập trình lắp ráp giống như sử dụng ngôn ngữ cấp cao. Sawyer có lẽ đã sử dụng một cách tiếp cận tương tự để có năng suất cao hơn.

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.