Mã nguồn của Công cụ nguồn có sẵn không?


Câu trả lời:


35

Không có nó không phải là. Bạn có thể có được giấy phép nguồn từ Valve, nhưng bản thân Nguồn không phải là nguồn mở.


Hơn nữa, nói chung, đây là một cách tiếp cận rất nguy hiểm để sử dụng toàn bộ các công cụ hiện có làm tài liệu học tập mà không có hướng dẫn từ ai đó có liên quan nhiều đến việc phát triển động cơ đó.

Chỉ riêng mã nguồn chỉ cho bạn biết cách thức đưa ra các quyết định thiết kế cụ thể, chứ không phải lý do tại sao đằng sau hầu hết các quyết định thường cực kỳ quan trọng được đưa ra là có rất nhiều lựa chọn trong công nghệ phần mềm nằm trong số các lựa chọn có giá trị như nhau. Bạn cần bối cảnh để hiểu tại sao một lựa chọn là tốt, và nếu bạn chỉ nhìn vào nguồn gốc của một số động cơ và vẹt các kỹ thuật và thành ngữ của họ, bạn hầu như không học được gì hữu ích.

Hơn nữa, chỉ bởi vì mã vận chuyển một trò chơi không làm cho rằng mã tốt (Nguồn đặc biệt là dễ bị rất nhiều hiện nay rất quyết định thiết kế lỗi thời đối với C ++ và OO với, ví dụ). Có rất nhiều câu chuyện kinh dị sống trong các bộ máy của các tựa game AAA thành công nhất. Và như một tân sinh viên ấn tượng, làm thế nào bạn có thể nói mã tốt từ xấu?

Hãy cẩn thận khi sử dụng mã nguồn làm tài nguyên học tập và đảm bảo ghép nối nó với càng nhiều thông tin bổ sung càng tốt.


3
"Chỉ riêng mã nguồn chỉ cho bạn biết cách thức đưa ra các quyết định thiết kế cụ thể, chứ không phải lý do tại sao đằng sau hầu hết các quyết định thường cực kỳ quan trọng được đưa ra là có rất nhiều lựa chọn trong công nghệ phần mềm nằm trong số các lựa chọn có giá trị chung như nhau." Tôi nghĩ rằng đây là của tôi câu trả lời.
Nhà phát triển CRUD buồn

@BDillan thực sự, một số người học được điều đó một cách khó khăn .. mặc dù các công ty sẽ thuê bạn làm việc với hàng đống mã động cơ khổng lồ mà bạn không hiểu và không có thời gian để kết thúc việc gỡ lỗi.
teodron

Lưu ý rằng phần mềm ID đã cung cấp một số công cụ của họ: github.com/id-Software
pjc50

1
Như một tiếp tuyến nhỏ, nhìn vào mã của một công cụ thương mại có thể rất giáo dục nếu bạn có một chuyên gia để giải thích sự khác biệt giữa "mã này là tốt" và "mã này là một hack xấu xí cần thiết từ xưa ngày "; ví dụ -> fabiensanglard.net
Shish

5

tl; dr: Học cách chế tạo một công cụ thường hữu ích cho việc tạo trò chơi cũng như học cách xây dựng máy tính và hệ điều hành của riêng bạn từ đầu. Nếu bạn không phải là một chuyên gia trong lĩnh vực này, có lẽ bạn không muốn tạo ra một động cơ. Làm một trò chơi thay vào đó, phần động cơ đã tồn tại. Sau này nếu không có công cụ nào bạn có quyền truy cập để đáp ứng các tiêu chí cho thiết kế trò chơi của bạn, bạn có thể tập trung vào việc xây dựng khía cạnh cụ thể đó và nó cũng có thể hữu ích cho những người khác vì bạn đang tạo ra một cái gì đó mới và không phải thử lại một phiên bản kém mạnh mẽ hơn của một cái gì đó mà mọi người đã đầu tư hàng ngàn giờ vào.

Phiên bản dài: Nếu bạn thực sự muốn học cách viết một công cụ, đừng nhìn vào một công cụ hiện có. Tìm hiểu thay vì các bộ phận (thuật toán) tạo ra một công cụ, có thể là kết xuất, vật lý hoặc tìm đường, v.v. Một khi bạn hiểu sâu về một khía cạnh cụ thể, bạn có thể muốn kiểm tra nguồn.

Bạn thường không muốn học trực tiếp từ nguồn trừ khi không có sự thay thế vượt trội. Ngay cả các lập trình viên có kinh nghiệm thông thường sẽ không nhìn vào nguồn của toàn bộ động cơ để học hỏi từ nó (nếu họ có thể giúp nó), rất có thể họ sẽ kiểm tra một phần cụ thể của nó hoặc điều chỉnh một phần nhất định của nó. Cố gắng xem xét nguồn cho mục đích học tập thuần túy sẽ không làm lộ ra quy trình và quá trình suy nghĩ đằng sau mã động cơ; Điều đó sẽ giống như xé một tòa nhà tách rời các mảnh ti trong một nỗ lực để xem bên trong của nó để tìm hiểu làm thế nào để xây dựng một tòa nhà. Mặc dù tôi đồng ý với câu trả lời của Josh, tôi sẽ tiến thêm một bước nữa, bạn thậm chí không học "Cách" theo nhiều nghĩa (trừ khi bạn quen thuộc với lĩnh vực này); ví dụ, phương pháp nào được sử dụng bởi nhóm lập trình? Những nguyên tắc nào họ đã dựa vào để thực hiện mã làm việc? Những công cụ và kỹ thuật nào họ đã sử dụng để gỡ lỗi? Tất cả những câu hỏi này đôi khi quan trọng hơn chính mã (cho mục đích học tập).

Nếu bạn muốn học từ nguồn, hãy tìm nguồn được ghi chép tốt và có một cộng đồng mạnh được xây dựng xung quanh nó. Đọc mã (công cụ), ngay cả khi bạn đã tự viết nó, thường gây nhầm lẫ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.