Bắt đầu từ Scratch - Có phải là một sai lầm nếu tôi phát minh lại bánh xe?


31

Thông thường bất cứ khi nào tôi muốn bắt đầu một trò chơi, tôi sẽ nghĩ rằng có một kiến ​​trúc cơ bản tốt để kết xuất và vòng lặp trò chơi tốt hơn từ đầu. Tôi thường không muốn sử dụng các công cụ hiện có. Lý do đằng sau nó là tôi muốn tự mình thực hiện nó để học hỏi.

Nhưng nhiều blog và nhà phát triển nói rằng đó không phải là một lựa chọn tốt để phát minh lại bánh xe.

Tui bỏ lỡ điều gì vậy?


Bạn có thường xuyên "bắt đầu một trò chơi" không? Nếu bạn đang nhanh chóng lặp lại ý tưởng, hãy làm bất cứ việc gì. Nếu bạn đang tạo ra một kiệt tác mà một bước đi sai lầm là tốn kém hoặc thời gian bị hạn chế, tại sao lại lãng phí thời gian để phát minh lại bánh xe? Nếu bạn quan tâm đến việc học cách mọi thứ hoạt động, tại sao không viết công nghệ của riêng bạn? Mục tiêu của bạn ở đây là gì?
ChrisE

Câu trả lời:


16

Không, đó không phải là một điều xấu. Học hỏi và khả năng học hỏi là hoàn toàn cơ bản để trở thành một lập trình viên giỏi.

NHƯNG
Điều quan trọng khi xây dựng một cái gì đó từ đầu là hoàn thành nó để hoàn thành. Không quan trọng là nó hack và không được tối ưu hóa như thế nào, nếu bạn hoàn thành nó sẽ có một cảm giác hài lòng không giống ai. Tất cả sẽ mang lại cho bạn trải nghiệm quý giá và bạn luôn có thể làm cho mã thanh lịch hơn hoặc hoạt động tốt hơn sau này khi bạn có một cái gì đó có chức năng. Vào cuối ngày, điều duy nhất tách biệt các lập trình viên tuyệt vời và những người tầm thường là kinh nghiệm và thực hành.

Tất nhiên, khi bạn đã hoàn thành công việc và muốn tạo thêm trò chơi, không có lý do gì để sử dụng lại cơ sở mã cũ của bạn.

Nếu bạn đang muốn bắt đầu một sự nghiệp phát triển trò chơi, hoặc bất kỳ loại phát triển nào thực sự, kinh nghiệm sẽ đưa bạn đi rất, rất xa. Nhưng nếu bạn đang tìm cách tạo ra các trò chơi một cách nhanh chóng và dễ dàng (tương đối dễ dàng, so với việc viết nội dung của riêng bạn), hãy sử dụng một công cụ hiện có.

Thành thật với bạn, sự kết hợp kinh nghiệm sử dụng mã của riêng bạn VÀ sử dụng nhiều thư viện và công cụ khác nhau sẽ giúp bạn trở thành một lập trình viên tốt hơn nhiều.


Cảm ơn Ray rất hữu ích! nhưng bạn có thể vui lòng liệt kê ra cơ chế trò chơi không ...
Ayyappa

Không vấn đề gì. Tôi không hoàn toàn chắc chắn ý của bạn trong bối cảnh câu hỏi ban đầu của bạn. Điều gì đặc biệt là bạn sau?
Ray Dey

Không sao, tôi sẽ đặt nó thành một câu hỏi riêng. Câu hỏi khác trong bài đăng này đã bị xóa (chỉnh sửa) vì nó không liên quan đến bối cảnh một chút.
Ayyappa

+1 cho dòng kết thúc - thực sự hoàn thành một dự án là kinh nghiệm tốt.
Cyclops

36
i want to implement it on my own to learn stuff.

Đó có lẽ là điều quan trọng nhất. Nếu mục tiêu của bạn là học hỏi, viết các công cụ kết xuất và vòng lặp trò chơi của riêng bạn từ đầu là tốt, và trải nghiệm học tập hoàn toàn tốt. Nếu mục tiêu của bạn là tạo ra một trò chơi hoàn thành nhanh chóng và dễ dàng, thì hãy sử dụng một khung hiện có.


3
+1. Chỉ vì một API hoặc thư viện bên thứ ba có thể trừu tượng hóa tất cả các chi tiết triển khai không có nghĩa là bạn không cần phải biết chúng. Sử dụng 'bánh xe ngoài luồng' sẽ giúp bạn viết mã hoàn thành nhanh hơn; nhưng việc tạo ra bánh xe của riêng bạn sẽ giúp bạn xác định được cái nào là tốt nhất và quan trọng nhất là làm thế nào để tối ưu hóa và gỡ lỗi chúng khi nan hoa bắt đầu bật ra ...
sebf

4
+1 Đừng phát minh lại bánh xe, trừ khi bạn đang học cách chế tạo bánh xe.
zzzzBov

4
hãy nhớ rằng điều này sẽ cải thiện kỹ năng của bạn trong thiết kế công cụ trò chơi , nhưng không phải trong thiết kế trò chơi.
Dave O.

Đây cũng là một câu trả lời xứng đáng ... cảm ơn ... nhưng thật tệ khi tôi không thể đánh dấu hai câu trả lời :(
Ayyappa


5

Phụ thuộc vào những gì bạn đang theo đuổi. Nếu bạn muốn tìm hiểu, hãy phát minh lại càng nhiều bánh xe bạn cảm thấy thích. Tôi biết những người đã viết các trình tải JVM hoặc PNG của riêng họ cho sự tàn phá của nó.

Hầu hết các blog có thể đưa ra lời khuyên về cách truy cập vào những thứ giúp bạn được thanh toán nhanh chóng, nhưng tôi không biết liệu đó có phải là một chiến lược dài hạn tốt hay không. Nếu bạn không biết bạn đang chơi với cái gì, làm sao bạn biết đó có phải là một lựa chọn tốt không? Bạn sẽ làm gì khi gặp vấn đề, than vãn trên các diễn đàn, hoặc bạn có thể tự mình tìm ra nó không?


4

Có rất nhiều sự nản lòng về cụm từ này trong cộng đồng lập trình chung nhưng tôi nghĩ tất cả chúng ta đều biết rằng nhiều người trong chúng ta không yêu thích gì hơn là phát minh lại bánh xe và tìm cách làm cho nó quay tốt hơn, nhanh hơn và mát hơn.

Các công nghệ mới đang xuất hiện mọi lúc cần mọi người phát minh lại bánh xe. OpenCL và các ngôn ngữ điện toán GPU khác là một ví dụ tốt.

Bạn có thể sử dụng một khung bao gồm các khả năng mới của năm nay nhưng tự mình tạo ra nó, nếu bạn thực sự nghiên cứu và cải thiện những gì đã có, .. bạn thực sự có thể thực hiện một số nền tảng mới về hiệu suất và tiện ích.

Một khi bạn đã phát minh ra một vài bánh xe để giúp bạn lăn, bạn sẽ biết công cụ của mình khá tốt cũng như một phần thưởng mạnh mẽ!

Thêm vào đó là niềm vui tốt.


1

Và có những người tuyên bố họ làm việc hiệu quả hơn vì họ tái tạo lại bánh xe.

Trường hợp điển hình: Eskil Steenberg, người tạo ra World of Love (video tuyệt vời mà anh ấy nói về trò chơi của mình, động cơ và các công cụ tuyệt vời và triết lý của anh ấy: http://vimeo.com/18423305 )


1

Nếu đó là lần đầu tiên của bạn, thậm chí nó chỉ để học, vẫn tốt hơn để sử dụng một số loại động cơ bởi vì bạn sẽ tìm hiểu những gì động cơ có thể cung cấp cho bạn.

"Bánh xe" sử dụng trong phép ẩn dụ là khái niệm, không phải là việc thực hiện. Ngay cả khi bạn sẽ không phát minh lại bánh xe, bạn vẫn cần chọn xem bạn sẽ mua một cái hay bạn sẽ tự làm một cái. Do đó, việc tạo ra động cơ của riêng bạn thậm chí không phát minh lại bánh xe, chỉ là bạn muốn tạo bánh xe của riêng mình cho mục đích nào đó, có thể là để học, với chi phí thấp, cho kích thước nhỏ hoặc bất kỳ yêu cầu sử dụng cụ thể nào.


0

Vấn đề là, điều làm mất rất nhiều thời gian khi làm một trò chơi là việc thử nghiệm và tạo nội dung và tài sản thực tế - nói chung không phải là viết mã. Đó có thể là lý do tại sao thật dễ dàng bỏ qua phần đó và sử dụng một công cụ hiện có để có thể dành nhiều thời gian hơn cho nội dung, thiết kế trò chơi và các lỗi cấp cao hơn.

Tôi nghĩ, làm mọi thứ từ đầu để học, sẽ tạo ra cảm giác tốt cho công việc đằng sau các công cụ hiện có và cải thiện khả năng chọn một công cụ sau này nếu cần.

Để vui vẻ và học tập, hãy làm bất cứ điều gì bạn thích. Nếu tôi phải viết các lớp đường ống nội dung từ đầu, xử lý tất cả các chi tiết gây phiền nhiễu và các trường hợp cạnh của hệ thống tệp và trình tải tài sản, tôi sẽ phát điên - miễn là tôi đã học đủ để nắm bắt cách thực hiện tốt, Tôi có xu hướng tránh làm điều đó nếu ai đó đã làm tốt (mặc dù đúng, rất nhiều khung và động cơ sẽ không phù hợp với ý tưởng "tốt" của riêng tôi, điều này sẽ gây ra việc viết lại một cái gì đó). Nếu tôi không biết cách thực hiện, tôi thực sự muốn hoàn thành ít nhất một lần, chỉ để nắm bắt các chi tiết tốt hơn về bất cứ điều gì - như Ray Dey đã nêu.


0

Đó chỉ là một sai lầm nếu bạn không có thời gian để tìm hiểu. Nếu bạn có thời gian, hãy cho nó. Nếu bạn không, thì đừng làm.

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.