Đánh bóng dự án hiện tại của tôi sẽ là một kinh nghiệm học tập tốt hơn so với bắt đầu một dự án mới? [đóng cửa]


15

Tôi bắt đầu lập trình từ nhiều năm trước. Bây giờ tôi đang cố gắng làm game. Tôi đã đọc nhiều khuyến nghị để bắt đầu nhân bản một số trò chơi nổi tiếng như galaga, tetris, arkanoid, v.v. Tôi cũng đã đọc rằng tôi nên đi cho toàn bộ trò chơi (bao gồm menu, âm thanh, điểm số, v.v.).

Hôm qua tôi đã hoàn thành phiên bản hoàn chỉnh đầu tiên của bản sao Arkanoid của mình. Nhưng nó là xa hơn. Tôi vẫn có thể làm việc với nó trong nhiều tháng (tôi lập trình như một sở thích trong thời gian rảnh) thực hiện trình chuyển đổi độ phân giải màn hình, ánh xạ lại các phím điều khiển, tăng sức mạnh từ những viên gạch vỡ, và rất nhiều, v.v.

Nhưng tôi không muốn mãi mãi học cách sao chép MỘT trò chơi. Tôi mong muốn có được bản sao tiếp theo để áp dụng một số ý tưởng thiết kế mà tôi đã nghĩ ra khi phát triển bản sao Arkanoid này (cùng lúc tôi đang đọc cuốn sách GoF và nhiều mã nguồn từ cuộc thi trò chơi Ludum Dare 21).

Vì vậy, câu hỏi là: Tôi có nên tiếp tục cải thiện bản sao arkanoid cho đến khi nó có tất cả các tính năng mà trò chơi gốc có? hoặc tôi nên chuyển sang bản sao tiếp theo (có những trò chơi gần như vô hạn để sao chép) và bắt đầu sửa đổi những điều tôi đã làm sai với bản sao trước đó?

Đây có thể là một câu hỏi rất chủ quan, vì vậy hãy hạn chế các câu trả lời theo cách hiệu quả nhất để tìm hiểu cách tạo trò chơi của riêng tôi (không nhân bản ý tưởng của ai đó). Cảm ơn bạn!


LÀM RÕ

Để làm rõ những gì tôi đã thực hiện, tôi lập danh sách này:

Các tính năng được triển khai:

  • Khả năng nảy (bóng nảy trên tường, trên gạch và trên thanh).
  • Âm thanh khi nảy trên gạch và thanh, và khi người chơi thắng hoặc thua.
  • Menu tiêu đề cơ bản (chỉ trò chơi mới và thoát). Ngoài ra menu trong trò chơi và menu thắng / thua.
  • Chỉ có ba cấp độ, nhưng hệ thống bản đồ rất dễ, tôi không nghĩ nó sẽ dạy tôi nhiều (tôi có sai không?).

Các tính năng chưa được triển khai:

  • Power-up khi phá vỡ các viên gạch.
  • Các viên gạch phức tạp (có nhiều hơn một "điểm nhấn" và bất khả chiến bại).
  • Đồ họa tốt hơn (tôi không thực sự giỏi về nó).
  • Lập trình đánh bóng (sử dụng nhiều hơn các mẫu thiết kế).

Đây là một liên kết đến trang web (tối thiểu) của nó: http://blog.acamara.es/piperine/ Tôi cảm thấy xấu hổ khi hiển thị nó, vì vậy xin đừng đánh tôi quá mạnh :-)

Câu hỏi của tôi liên quan đến các tính năng không được thực hiện. Tôi tự hỏi đâu là con đường nhanh nhất (tối ưu) để học. 1) triển khai các tính năng chưa được triển khai trong dự án này đang trở nên lớn hoặc 2) tạo ra một trò chơi mới có thể sẽ dạy cho tôi những bài học và những điều mới.


CÂU TRẢ LỜI

Tôi chọn câu trả lời @ as999, bởi vì, trong trường hợp của tôi , tôi nghĩ rằng tôi nên đánh bóng nhiều hơn và cố gắng "vận chuyển" trò chơi. Tôi nghĩ rằng tất cả các câu trả lời khác cũng rất quan trọng để ghi nhớ, vì vậy nếu bạn đến đây có cùng một câu hỏi, trước khi đưa ra quyết định vội vàng hãy đọc tất cả các cuộc thảo luận.

Cảm ơn tất cả!


Xin lỗi, nhưng nói đó là một câu hỏi khách quan, không làm cho nó khách quan. Nó sẽ phụ thuộc vào con người , khả năng, mục tiêu và động lực của họ, liệu họ có nên thay đổi dự án hay không - tất cả những điều đó, làm cho nó trở thành một câu hỏi chủ quan . Đơn giản là không có câu trả lời "đúng" duy nhất cho câu hỏi này.
Cyclops

Bạn nói đúng, tôi nghĩ về "chủ quan" nhưng đã viết "khách quan" (nó cũng xảy ra với tôi với trái và phải ...). Tôi đã thay đổi nó.
Alejandro Cámara

Wups, xin lỗi khi nghe điều đó. Tuy nhiên, tôi ghét phải nói điều này, nhưng nó vẫn không thực sự là một câu hỏi hay cho trang web này. Mục đích của các trang web StackExchange là xây dựng các câu hỏi / câu trả lời hữu ích cho nhiều người, không phải câu hỏi chỉ áp dụng cho một (hoặc một vài) người. Ngoài ra, nên (lý tưởng) là một câu trả lời đúng duy nhất - nhưng đối với những người trong tương lai tìm thấy bài đăng này, một số người có thể tìm thấy một câu trả lời tốt nhất, và một số khác, câu trả lời mâu thuẫn tốt hơn.
Cyclops

1
Tôi cảm thấy đó không phải là một câu hỏi hay. Nhưng lý do tôi đã viết nó là vì có thể ai đó bị mắc kẹt với cùng một vấn đề. Ngay cả khi không có câu trả lời "tốt", cuộc thảo luận có thể làm sáng tỏ người khác có câu trả lời "đúng" của họ.
Alejandro Cámara

1
Cá nhân tôi nghĩ rằng phạm vi của một dự án học tập nên bao gồm tất cả các tính năng của trò chơi (vì vậy hãy thực hiện các tăng sức mạnh) nhưng sau đó hãy gọi dự án đó xong và tiếp tục; đừng bận tâm đánh bóng đồ họa.
jhocking

Câu trả lời:


32

Tôi hoàn toàn không đồng ý với câu trả lời của Patrick . Nếu bạn muốn thành công như một nhà phát triển trò chơi, kỹ năng số một bạn cần học là làm thế nào để đưa ra một ý tưởng và đưa ra một trò chơi hoàn chỉnh, bóng bẩy.

Những gì bạn sẽ nhận ra theo thời gian (đó là những gì tôi nhận ra sau vài năm) là lập trình chỉ là một phần nhỏ trong trò chơi của bạn. Thật dễ dàng, bởi vì nó thú vị. Nhưng để chỉ gắn bó với lập trình sẽ để lại cho bạn một dấu vết của các khái niệm và bản trình diễn chưa hoàn chỉnh.

Thay vào đó, tôi sẽ đề nghị rất mạnh mẽ rằng bạn đưa lên một trang web và blog (Wordpress rất phù hợp với loại công cụ này), hoàn thành các trò chơi của bạn (bắt đầu với Arkanoid) và phát hành chúng vào tự nhiên.

Ngoài ra, đó là chìa khóa để nhận ra rằng nếu bạn làm điều này, bạn sẽ kiểm soát khi trò chơi hoàn thành. Nếu bạn muốn 1000 cấp độ với 10 tính năng chính, tốt thôi. Nếu bạn muốn 10 cấp độ với 3 tính năng chính, tốt thôi. (Trên thực tế, tôi khuyên bạn nên các dự án nhỏ hơn thường xuyên hơn, bởi vì bạn học được nhiều hơn và tập trung rất nhiều vào việc đánh bóng theo cách đó).

Chỉnh sửa: Đáp lại những người không đồng ý, tôi cảm thấy mình cần phải làm rõ. Nếu bạn đã tạo một trò chơi chỉ với một mục đích / thử nghiệm (mà tôi làm mọi lúc), bằng mọi cách, hãy cắt phạm vi và gửi nó. Không ai nói Arkanoid cần 1000 cấp độ để trở thành một trò chơi bóng bẩy; Theo quan điểm của bạn, hãy tạo ra đủ cấp độ cho nó, theo ý kiến ​​của bạn, vui vẻ và tiếp tục.

Nó có thể dành nhiều năm cho một trò chơi và không bao giờ giao hàng. Nhưng tôi cảm thấy dễ dàng hơn nhiều để rơi vào lỗ hổng khác chỉ tạo ra các bản trình diễn kỹ thuật và nguyên mẫu mãi mãi. Tôi đã mất hơn 10 năm để tự dừng việc này.


3
+1 "vận chuyển là một tính năng (bắt buộc?)" Mặc dù trong trường hợp này, bạn cũng có thể thấy bản sao arkanoid là nguyên mẫu và các nguyên mẫu có nghĩa là bị vứt bỏ khi một khái niệm được chứng minh hoặc bị từ chối.
Oskar Duveborn

2
@Oskar Dễ dàng tạo 1000 nguyên mẫu hơn là gửi một trò chơi. Cuối cùng, vận chuyển sẽ làm cho bạn thành công, trong khi các nguyên mẫu chỉ tăng một số kỹ năng mã hóa.
tro999

2
Tại sao bỏ qua "chỉ tăng một số kỹ năng mã hóa"? Anh ấy đặc biệt hỏi về kinh nghiệm học tập.
jhocking

@jhocking vì câu trả lời của Patrick. Câu trả lời của tôi là đặc biệt tập trung ngoài kỹ năng mã hóa.
tro999

1
@Yannbane Nếu mọi người chơi nó và nghĩ "vâng, đó là một trò chơi hoàn chỉnh", ngay cả khi đó là một trò chơi ngắn, thì đó là hoàn thành. Không đầy đủ thường là các trò chơi bị hỏng hoặc các trò chơi với, như, một cấp độ. Khi bạn gửi nó ra khỏi cửa, bạn đã hoàn thành.
tro999

8

Tôi sẽ đề nghị một tổng hợp của hai câu trả lời trước. Về cơ bản, tôi đồng ý rằng điều cực kỳ quan trọng là học cách lấy ý tưởng và đưa ra một trò chơi hoàn chỉnh, bóng bẩy. Internet tràn ngập các dự án đã hoàn thành một nửa mà ai đó bắt đầu và sau đó chán. Khả năng gắn bó với một dự án từ đầu đến cuối, cái mà tôi gọi là "khả năng hoàn thiện", rất hiếm và quý giá, và có được bằng cách buộc bản thân phải thực hành nó.

Tuy nhiên, bạn chưa ở giai đoạn học tập đó; Tôi không khuyên bạn nên làm điều này với trò chơi đầu tiên của bạn, mà nên tạo ra một vài trò chơi nhỏ hơn để tìm hiểu trước khi thực hiện dự án hoàn chỉnh đầu tiên của bạn.

(sang một bên: Tôi chưa bao giờ thực sự xác định chính xác điều này trước đây, nhưng bây giờ tôi đang nghĩ về nó, tôi nghĩ khả năng hoàn thiện là điều chính tôi thấy tách biệt các nhà phát triển có kinh nghiệm với người mới)


BỔ SUNG: Tôi nghĩ rằng rất nhiều sự bất đồng giữa các câu trả lời chỉ xuất phát từ những giả định khác nhau về nơi anh ấy đang ở trong quá trình của mình. Ví dụ, khi anh ấy nói "Tôi đã hoàn thành phiên bản hoàn chỉnh đầu tiên của bản sao Arkanoid" có thể có nghĩa là nhiều thứ khác nhau. Trong trường hợp của tôi, vì trước đó anh ta đã nói rằng "Tôi cũng đã đọc rằng tôi nên đi cho toàn bộ trò chơi (bao gồm cả menu, âm thanh, điểm số", sau đó tôi cho rằng anh ta thực sự đã thực hiện những thứ đó và đang hỏi liệu anh ta có nên tiếp tục đi xa hơn không. trường hợp tôi sẽ nói không; gọi dự án này được thực hiện và chuyển sang dự án tiếp theo.

Tuy nhiên đó chỉ là một giả định về phía tôi; anh ấy không thực sự nói rằng anh ấy đã làm những thứ đó, chỉ là anh ấy đã đọc nó. Nếu anh ta không làm những thứ đó, thì tôi sẽ nói đừng tiếp tục cho đến khi bạn làm xong những thứ đó.


1
+1 Đánh bại tôi với nó! Âm thanh như bạn mới bắt đầu, vì vậy điều quan trọng hơn là tạo ra càng nhiều thứ càng tốt và học, học tìm hiểu. Khi bạn trở nên tốt hơn, bạn có thể tập trung vào đánh bóng. Nếu không, bạn sẽ dành 2 năm cho trò chơi đầu tiên của mình.
NoobsAreP People2

1
Không đồng ý. Bạn có thể dành mười năm mã hóa và không bao giờ gửi một trò chơi duy nhất. Hoặc bạn có thể gửi một bản sao Arkanoid đơn giản trong sáu tháng đầu tiên của bạn. Tôi cảm thấy cái sau làm cho bạn trở thành một nhà phát triển mạnh mẽ hơn, trong khi cái trước chỉ giúp các kỹ năng phát triển phần mềm của bạn (và không nhiều - bạn không bao giờ nghĩ về các công cụ, vòng đời, v.v. chỉ là mã hóa).
tro999

Vâng, tôi đã không nói 10 năm nay phải không? Tuy nhiên, đó là câu hỏi liệu dành một năm để mã hóa một loạt các bài tập thực hành trước khi dự án hoàn thành 6 tháng có tốt hơn so với trực tiếp thực hiện dự án hoàn thành 6 tháng như dự án đầu tiên của bạn. Đây là một câu hỏi lớn trong giảng dạy tôi làm; tốt hơn là học sinh dành một học kỳ để thực hiện một loạt các dự án nhỏ hoặc một dự án lớn duy nhất có toàn bộ lớp học? Cá nhân tôi nghiêng về "rất nhiều dự án nhỏ cho sinh viên đại học, một dự án lớn duy nhất ở trường học".
jhocking

Quan điểm của tôi là, cũng quan trọng như dự án hoàn chỉnh, để dự án đó thành công, trước tiên bạn phải học những điều cơ bản về một loạt các dự án trước đó.
jhocking

1
Mà 2 câu trả lời trước? Đến bây giờ, thứ này được xếp hạng 2, theo phiếu bầu
ADB

5

Tôi nghĩ rằng bạn có ý tưởng đúng đắn rằng bạn nên chuyển sang dự án tiếp theo ngay bây giờ. Tôi nghĩ điều này bởi vì bạn đã học được từ đầu tiên của bạn và muốn áp dụng những gì bạn đã học! Một khi bạn chậm lại việc học những điều cơ bản thì đó sẽ là lúc để nhân bản các tính năng sâu hơn mà bạn có thể tiếp tục học hỏi.

Hãy nhớ rằng bạn đang làm việc về các kỹ năng lập trình, không phải thiết kế trò chơi, vì vậy cuối cùng bạn muốn có thể lập trình bất kỳ thiết kế trò chơi nào khi bạn học xong.


3
Mặc dù tôi đồng ý với @ as999 và bạn cũng vậy, tôi cảm thấy rằng trong bối cảnh đã nêu của OP, anh ấy đang thử nghiệm triển khai, học cách viết các loại trò chơi khác nhau. Trong trường hợp này tôi nghĩ anh ấy nên ưu tiên chuyển sang điều tiếp theo.
Kỹ sư

Trên thực tế, anh ta đã ngụ ý rằng anh ta muốn học thiết kế trò chơi và không chỉ lập trình trò chơi. Trong câu cuối cùng của mình, ông đã nói "cách hiệu quả nhất để học cách tạo ra các trò chơi của riêng tôi (không nhân bản ý tưởng của ai đó)".
jhocking

2

Tại sao không làm cho bản sao "của bạn"? Thêm một số vòng xoắn thú vị mới sẽ giữ cho bạn quan tâm.

Có một mặt trái để bắt đầu dự án "của riêng bạn", bạn cảm thấy như nó chưa bao giờ được thực hiện trước đây. Thực tế có lẽ ai đó đã có một cái gì đó tương tự rồi. Trừ khi bạn có kế hoạch phát minh ra một thể loại game mới, tôi sẽ khuyên bạn nên biến những "bản sao" này thành của riêng bạn.

Ví dụ, bạn thân của tôi ở trường đại học đã tạo ra một "bản sao" pong. Anh ta biến nó thành của riêng mình, thêm một kiểu chơi hoàn toàn mới, trong đó việc tăng sức mạnh cho phép một người lái một chiếc xe tăng ngọt ngào trong khoảng 15 giây và phá hủy càng nhiều viên gạch càng tốt!

Cách tốt nhất để học phát triển trò chơi (nghệ thuật, mã, thiết kế) là chỉ cần làm điều đó. Ban đầu bạn có thể không làm tốt nhưng điều quan trọng là chỉ cần giữ nó và viết thêm mã, vẽ thêm hình động và thiết kế nhiều cấp độ hơn !! Theo tôi, sẽ không có vấn đề gì nếu bạn "nhân bản" thứ gì đó miễn là bạn biến nó thành của riêng bạn, tiếp tục làm nó, làm cho nó thú vị và vui chơi!


2

Để trả lời câu hỏi của bạn, vâng , đánh bóng dự án hiện tại của bạn sẽ là một trải nghiệm học tập tốt hơn so với bắt đầu một dự án mới.

1) Bạn cần có thói quen hoàn thiện mọi thứ. Đó là bản thân nó là một kinh nghiệm học tập.

2) Các nhiệm vụ bạn "quá lười để thêm" (vì không có thuật ngữ tốt hơn) có thể có rất nhiều bài học dành cho nhà phát triển trò chơi được nhúng trong đó, mà bạn hoàn toàn bỏ qua.

3) Nếu bạn chán Arkanoid, bạn luôn có thể đặt nó sang một bên và làm việc khác vào lúc này. Chẳng có vấn đề gì với việc đấy cả.

1) Quá nhiều điều chưa hoàn thành là xấu. Bạn thực sự không thể sử dụng sản phẩm còn dang dở để thể hiện kỹ năng của mình một cách hiệu quả.

Điều này là bởi vì có một loạt các điều chưa hoàn thành giống như có một tủ đầy rác. Một số trong số đó có vẻ hữu ích, nhưng trong thực tế tất cả đều rất vô dụng, và thực tế của ngành công nghiệp trò chơi là, ít người sẽ đánh giá cao "rác" của bạn (trò chơi còn dang dở).

Trò chơi chưa hoàn thành là quá phổ biến. Mọi người đưa chúng ra khỏi đó và giống như, "duh, trò chơi này là sapposa là StreetFighter .. bây giờ bạn có thể di chuyển qua lại .." Không ấn tượng . Không ai có thể nhìn thấy trong đầu bạn trò chơi "sapposa" là gì. Họ chỉ nhìn thấy nó vì những gì nó đang có, chưa hoàn thành.

Một trò chơi dang dở giống như một chiếc bánh tart nửa nướng. Một số người có thể đánh giá cao điều đó, nhưng nó thực sự có vị kinh tởm, và 20 phút nữa trong lò nướng có thể làm cho những gì bạn đã làm một nửa ngon miệng cho mọi người.

2) Các tính năng bạn đang tránh làm việc có thể có một số bài học rất có giá trị trong đó.

Những thứ bạn đang chần chừ khi hoàn thiện:

Các tính năng chưa được triển khai:

  • Power-up khi phá vỡ các viên gạch.
  • Các viên gạch phức tạp (có nhiều hơn một "điểm nhấn" và bất khả chiến bại).
  • Đồ họa tốt hơn (tôi không thực sự giỏi về nó).
  • Lập trình đánh bóng (sử dụng nhiều hơn các mẫu thiết kế).

Một số trong những điều bạn có thể bỏ qua. Ví dụ: "Sử dụng nhiều hơn các mẫu thiết kế". Tái cấu trúc như thế này là một sự lãng phí thời gian cho một dự án thú cưng, để áp dụng điều này, bạn chỉ nên bắt đầu một dự án mới.

Một số trong số này là dễ dàng. Ví dụ: gạch phức tạp. Một số trong số này thực sự là rất nhiều công việc . Việc khởi động không dễ dàng, họ yêu cầu bạn phải xây dựng những thứ như súng, đạn, sẽ yêu cầu thêm mã giao nhau.

Tôi nghĩ những gì bạn đang thấy là "đặt giàn giáo vào vị trí thật dễ dàng .. và xem ra nó gần như đã hoàn thành. Hoàn thiện sẽ là rất nhiều công việc, cũng có thể dừng lại ngay bây giờ." Vâng, việc dựng khung gỗ cho một ngôi nhà cũng "dễ dàng" và nó có thể là một nửa công việc. Vách thạch cao, điện, hệ thống ống nước, tất cả đều là "chi tiết". Nhưng bằng cách không hoàn thành ngôi nhà, không ai sẽ "mua" ngôi nhà sẽ tuyệt vời như thế nào nếu chỉ có bạn sẽ hoàn thành nó.

3) Nếu bạn chán những gì bạn đang làm, không có gì sai khi bắt đầu một cái gì đó khác.

Điều này không có nghĩa là rác những gì bạn đang làm việc, nhưng không có hại khi dành một hoặc hai tháng để suy nghĩ về những thứ khác hoặc bắt đầu một trò chơi mới. Bạn có thể quay lại Arkanoid với một viễn cảnh tươi mới.

Cũng là một điểm cuối cùng. Bên cạnh việc xây dựng tất cả các tính năng mong đợi của Arkanoid, điều thú vị hơn nữa là đặt sự thay đổi của riêng bạn lên nó. Vì vậy, thay vì dừng lại trên bản sao của bạn, bạn nên tiến thêm một bước và đổi mới trên trò chơi gốc.


1

Câu trả lời đúng thực sự phụ thuộc vào những gì bạn muốn làm tiếp theo. Nếu bạn chuyển sang một thứ gì đó mới, bạn có thể gặp rủi ro khi thấy mình giải quyết cùng một vấn đề cũ và không thực sự mở rộng các kỹ năng của mình, nhưng bạn có thể chuyển sang một thứ mới. Nếu bạn tiếp tục đánh bóng, có những điều hữu ích để học hỏi từ danh sách ngắn gọn mà bạn đã đưa ra và chúng sẽ giúp bạn tốt trong tương lai, nhưng bạn vẫn đang làm việc trên cùng một cơ sở mã cũ.

Những gì tôi muốn giới thiệu, và đây là ý kiến ​​hoàn toàn cá nhân, là chuyển sang một thứ mới và tiết kiệm sự đánh bóng cho điều đó. Đồng thời cố gắng kéo dài bản thân với điều gì đó mới mẻ. Vì vậy, nếu bạn hiện không sử dụng API 3D, hãy tìm hiểu và sử dụng API. Nếu bạn đang sử dụng cái này, hãy tìm hiểu cái kia và sử dụng nó. Hoặc chuyển lên cấp độ nâng cao hơn ở cấp độ bạn đang sử dụng. Bao gồm một âm thanh, vật lý hoặc công cụ đầu vào tốt hơn từ việc di chuyển. Dù thế nào, điều tôi thấy là điều quan trọng là di chuyển ra ngoài vùng thoải mái hiện tại của bạn và xây dựng thêm nhiều kỹ năng và kiến ​​thức, trong khi vui vẻ làm việc đó.

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.