như Josh Petrie đã nói :
" Không được xây dựng ở đây hội chứng ;"
Tôi cũng đang viết công cụ của riêng mình và tôi cho rằng lý do sẽ khác nhau đối với mọi nhà phát triển ngoài kia, nhưng thực tế - tôi thường không thích làm việc trong mã người khác. Tôi bị ép buộc theo nghĩa là nếu tôi cảm thấy tôi có thể tự xây dựng nó, thì không có gì phải giải quyết cho bất cứ điều gì khác .
Tôi đã thử nghiệm nhiều loại công cụ trò chơi, API kết xuất và như vậy, đáng chú ý là Ploobs, UNITY WaveEngine, XNAFinalEngine, Love, Ogre, v.v. nhiều hơn nữa ... Tôi muốn bắt đầu viết trò chơi - Tôi đã tải xuống rất nhiều và tài liệu nhập cảnh điểm ...
Tuy nhiên, vấn đề của tôi là vào thời điểm đó tôi không biết chuyện gì đang xảy ra bên dưới động cơ. Tôi muốn kiểm soát tốt, và tôi muốn một khuôn khổ mà tôi biết như mu bàn tay của tôi. Tôi đã nảy ra ý tưởng "HEY! Tôi nghĩ cách duy nhất tôi sẽ học được cách thức hoạt động của nó và hiểu nó là thử xây dựng công cụ của riêng tôi hoàn toàn và hoàn toàn từ đầu. Hầu hết lịch sử lập trình của tôi là với các giải pháp xử lý web và xử lý - đây là một trò chơi bóng hoàn toàn mới đối với tôi.
Đó là những gì tôi đã làm.
Vì vậy, tôi đã chọn thiết lập XNA vì tôi đã biết C # và bắt đầu suy nghĩ về việc tôi nên bắt đầu như thế nào hoặc ở đâu. Tôi cần một ý tưởng.
Tôi quyết định rằng, không có vấn đề gì, tôi sẽ đi thẳng vào 3D .
Làm cho các vấn đề cơ bản trở nên tuyệt vời - công cụ hàng loạt sprite, nhưng khi tôi tiến bộ, cuối cùng tôi đã phát hiện ra những rào cản và trở ngại mới - cái thực sự đầu tiên của tôi là giới hạn lô . Mục tiêu của tôi là xây dựng một trò chơi có thể kết xuất ít nhất 10000 thực thể trong chế độ xem bất cứ lúc nào.
Tôi bắt đầu một hành trình mới để thực hiện Shader Dựa Instance (và học được HLSL khi tôi ở đó), tôi đã bỏ các đối tượng Model và Effect được xây dựng của XNA để viết thay thế cho riêng mình. Tôi đã gặp khó khăn khi hiểu các luồng VBO lúc đầu; Tôi đã phá vỡ mọi thứ - Tôi đã lên mạng đặt câu hỏi về những thứ linh hoạt và giữ nó cho đến khi cuối cùng tôi hiểu GPU đang làm gì. Nó trả hết; bây giờ tôi đã có hơn hai mươi nghìn thực thể thử nghiệm phóng to xung quanh trong chế độ xem của tôi sau vài ngày gỡ lỗi VBO của tôi với PIX (dxsdk).
Bây giờ tôi đã có "một số" ý tưởng về cách hoạt động của các đường ống hoạt động, nhưng vẫn chưa được thực hiện - cuối cùng tôi đã tạo ra trạng thái trò chơi, máy ảnh, hiệu ứng bài đăng và các đối tượng thực thể của riêng mình, di chuyển khỏi Đường ống nội dung XNA bằng cách xây dựng đường ống của riêng tôi các trình tải (không thích cá nhân đối với điều XNB), đã tạo ra một chuỗi hình học phân tách trạng thái pha trộn và phân tách độ sâu phức tạp và cũng có các họa tiết và văn bản được thể hiện trong bối cảnh trò chơi.
Tôi liên tục bổ sung, sửa chữa, thay đổi và thử nghiệm điều này liên tục trong gần một năm. Cuối cùng, nó đi ra khá tốt. Bây giờ tôi đã hiểu được những gì đang diễn ra dưới mui xe, bởi vì tôi đã tạo ra nó - con tôi.
Bây giờ động cơ của tôi chủ yếu là ổn định và sắp hoàn thành. Nó không hoàn hảo: kịch bản rất tuyệt vời và GUI không tuyệt vời chút nào. Nhưng tôi vẫn yêu nó. Hàng ngàn dòng mã, tài sản và phương tiện - ẩn chứa trong kho lưu trữ git 2GB riêng tư và tất cả những vấn đề đau đầu mà tôi phải trải qua khi cố gắng thực hiện một loại phát triển mà tôi chưa từng làm trước đây. Mỗi trở ngại tôi vượt qua là một bài học kinh nghiệm - và một sự giải thoát.
Tôi rút ra gần như mọi thứ tôi muốn trong đó.
Nhưng cuối cùng - tôi quyết định đã đến lúc đặt cô ấy xuống.
Tôi cảm thấy hài lòng khi tự mình viết một công cụ khổng lồ như vậy, với lời khuyên từ mạng và những người bạn chơi game khác, tôi quyết định rằng tôi sẽ làm lại từ đầu - và làm tốt hơn - bởi vì bây giờ tôi hầu như biết những gì tôi đang làm
Dự án đó vẫn nằm gọn trong repo GIT của tôi.
Lần thứ hai của tôi khi viết một công cụ mới (lần này là trên MonoGame), đang tiến triển tốt. Khi một cái gì đó bị phá vỡ, nó dễ dàng hơn để sửa chữa. Ít lộn xộn. Tôi hy vọng sẽ công khai khoe trò chơi của mình trong năm nay, bởi vì tôi có xu hướng hơi "quá" với mã của mình.
Cuối cùng, viết động cơ của riêng tôi là cách tôi học 'cách' để làm điều đó, trong khi có thể nói rằng tôi biết và hiểu chính xác mọi thành phần làm gì, và cách chúng hoạt động. Tôi thực sự ghét đọc mã của người khác, đặc biệt là đối với các dự án lớn không có giấy tờ. Tôi muốn mọi thứ tôi sử dụng được xây dựng bởi tôi.
Đây chỉ là tôi mặc dù. Tôi nghi ngờ tôi sẽ không bao giờ sử dụng một công cụ được tạo sẵn, có lẽ bởi vì tôi nghĩ việc viết các khung của riêng tôi sẽ vui hơn là ngồi và xử lý mã của người khác - toàn quyền kiểm soát.