Những nguy hiểm của việc phát triển trò chơi tự dạy là gì? [đóng cửa]


58

Tôi sắp bắt đầu một hành trình phát triển trò chơi. Sau câu trả lời cho câu hỏi cuối cùng của tôi, tôi sẽ sử dụng C # và XNA.

Tuy nhiên, cá nhân tôi không biết bất kỳ nhà phát triển trò chơi nào khác và tôi không làm việc trong ngành vì vậy, như vậy, sẽ tự học. Ngoại lệ cho điều này rõ ràng là việc đặt câu hỏi và đọc thông tin trực tuyến / in nhưng tôi vẫn sẽ xếp loại này là tự học.

Cùng với đó, tôi muốn chuẩn bị cho những vấn đề mà tôi có thể gặp phải thông qua việc không có ai đó để "giữ tôi dưới cánh của họ".

Tương tự như vậy, khi tự dạy mình chơi guitar, tôi đã chơi hợp âm A theo cách mà nó khiến việc chuyển sang hợp âm mà tôi học được sau này trở nên khó khăn hơn.

Nếu bạn có thể chia sẻ những bài học kinh nghiệm và lời khuyên về những gì có thể sai trong quá trình học phát triển trò chơi của tôi, tôi sẽ rất biết ơn.

Tôi nhận thức rõ rằng phạm sai lầm là phần lớn nhất của việc học nhưng, nếu có sai lầm tôi có thể chuẩn bị cho thì tôi sẽ hạnh phúc hơn với điều đó.


Hãy xem, điều chia sẻ bài học có thể biến câu hỏi thành kết thúc mở và vô hiệu hóa nó, vì vậy nó có thể bị đóng lại.
Gustavo Maciel

Đó là một điểm hay. Đối với bất kỳ du khách nào, tôi có kế hoạch chấp nhận một câu trả lời toàn diện.
Ste

Ste, lưu ý rằng bạn có thể di chuyển một dấu kiểm sang câu trả lời khác, nếu bạn nghĩ rằng một câu hỏi mới là tốt hơn. Tôi xin lỗi tới Gustavo, không cố gắng trả giá cho anh ấy :) Nhưng quan điểm của các trang web này, và việc bỏ phiếu và đánh dấu, là để làm nổi bật câu trả lời tốt nhất cho một câu hỏi. Ngoài ra, mặc dù thật tuyệt khi bạn đã chấp nhận câu trả lời, nhưng không cần thiết phải chấp nhận câu trả lời nhanh như vậy - một giờ sau câu hỏi được đăng của bạn, sẽ sớm thôi. Tôi thường đợi ít nhất một ngày, có thể nhiều hơn, trước khi chấp nhận câu trả lời. Xem những gì hiện lên.
Cyclops

@Cyclops - vâng, tôi không mong đợi câu hỏi sẽ được chứng minh phổ biến đến vậy. Tôi sẽ xem xét vào tuần tới. Cảm ơn tất cả cho câu trả lời tuyệt vời cho đến nay.
Ste

Cảm ơn bạn cho tất cả các câu trả lời tuyệt vời. Tôi đã chuyển câu trả lời được chấp nhận sang câu trả lời nhiều nhất. Tôi đã làm điều này để phản ánh ý kiến ​​cộng đồng. Hy vọng bạn hiểu @Gustavo
Ste

Câu trả lời:


54

Phát triển trò chơi giống như kỹ thuật kết cấu

Có những yêu cầu tối thiểu cho chức năng. Các yêu cầu tối thiểu không phải là thách thức đặc biệt và nhiều người có thể học cách thực hiện chúng. Đó là phần chức năng . Đó là phần nhỏ. Đây là nơi quyết định sử dụng ngôn ngữ nào, nền tảng để phát triển hoặc thư viện nào sẽ sử dụng.

Phần tiếp theo là phần lớn. Phần hình thức . Hình thức là những gì thực sự phân biệt các trò chơi tốt với các trò chơi tuyệt vời. Đây là phần nghệ thuật phát triển trò chơi. Tôi không nói về chỉ những tài sản cảm giác (đồ họa, âm thanh, v.v.). Tôi đang nói về việc tạo ra một kinh nghiệm. Đây là phần cứng.

Phần chức năng đến từ hướng dẫn, thư viện và một chút thời gian. Bất cứ ai cũng có thể làm điều đó.

Phần hình thức đến từ bạn. Đó là niềm đam mê khiến bạn muốn làm game ngay từ đầu. Nó giống như kể một câu chuyện, một câu chuyện bịa đặt (hoặc một câu chuyện có thật mà bạn tô điểm, rất nhiều). Bạn càng kể câu chuyện, nó càng tốt. Trong phát triển phần mềm, chúng tôi gọi nó là lặp đi lặp lại. Câu chuyện của bạn là mã của bạn. Lần đầu tiên bạn nói với nó, nó sẽ không được tốt lắm. Mọi thứ sẽ không còn nữa, bạn sẽ nhận ra rằng bit này nên đến đó và một cái ở đây. Bạn sẽ thấy rằng mọi thứ có thể sẽ trôi chảy hơn nếu bạn sắp xếp mọi thứ theo cách này hoặc mở rộng trên bit này. Vì vậy, giống như một câu chuyện hay, bạn sẽ kể nó, đánh giá xem nó hay như thế nào, và sau đó sửa đổi nó. Điều này cần sự cống hiến và điều này cần có thời gian. Đừng băn khoăn nếu thứ đầu tiên bạn sản xuất không phải là vàng. Tôi đã làm việc lâu dài và chăm chỉ trên nhiều phần của trò chơi của mình chỉ để xé chúng ra sau vì tôi nghĩ rất nhiềucách tốt hơn để làm điều đó. Đừng lo lắng về điều này, đó là một phần của quá trình học tập. Bạn luôn học hỏi từ những sai lầm của mình và thường xuyên mắc phải những sai lầm đó là điều dẫn bạn đến cách làm việc tốt hơn.

Vì vậy, những gì bạn nên lấy đi từ đây là:

  • Chơi thử thường xuyên.
  • Đừng để bị bắt kịp chức năng ngay bây giờ. Đừng lo lắng nhiều về tối ưu hóa, hoặc thư viện nào sẽ là tốt nhất trong thời gian dài. Chỉ cần có được chức năng tối thiểu, sau đó lặp đi lặp lại.
  • Khi chức năng được thực hiện, hãy tự chúc mừng, bạn là một phần nhỏ của cách thực hiện.
  • Dùng kem chống nắng
  • Đây là một kỹ năng cần có thời gian để phát triển, bạn biết rằng từ việc học một nhạc cụ, điều này không khác, bạn sẽ trở nên tốt hơn.
  • Hãy nhớ những gì bạn đang ở đây, niềm vui của việc tạo ra! Nếu mọi thứ trở nên nhàm chán, sau đó chuyển sang một thứ khác (thử một số trò chơi ùn tắc để phá vỡ thời gian phát triển của bạn). Nhưng đừng bỏ cuộc chỉ vì nó khó.
  • Cộng đồng phát triển game ở đây trên SE rất tuyệt. Bạn sẽ tìm thấy mọi thứ bạn cần ở đây. Bạn có thể đăng câu hỏi hoặc nhảy vào trò chuyện và thảo luận về ý tưởng của bạn.

Internet có rất nhiều thông tin trong các bài đăng trên blog, hướng dẫn và cộng đồng như thế này. Nói chung, tôi muốn nói rằng đó là một cánh khá tốt. Về cơ bản những nguy hiểm không nghiêm trọng. Bạn có thể làm những việc "sai" hoặc khó khăn trong một thời gian, nhưng cuối cùng bạn sẽ học được. Bạn dường như có nhiều kinh nghiệm lập trình, vì vậy tôi nghĩ rằng bạn sẽ nhanh chóng tiếp nhận phần chức năng. Những sai lầm trong phát triển trò chơi và phát triển "thường xuyên" chồng chéo lên nhau rất nhiều. Kinh nghiệm của bạn sẽ giúp bạn tránh được nhiều vấn đề phổ biến khi các nhà phát triển trò chơi mới xuất hiện. Tôi nghĩ bạn sẽ làm tốt thôi. Chúc may mắn.


6
+1 cho sự tuyệt vời, tất cả những gì còn thiếu trên bài đăng của tôi được tìm thấy ở đây: D
Gustavo Maciel

1
"Mặc áo chống nắng" Ý của bạn là gì? một thành ngữ "Mặc kem chống nắng"?
Lukasz Madon

4
Đó là một trò đùa dựa trên một bài báo "Mặc kem chống nắng" của Mary Schmich . Về cơ bản, "Những lợi ích lâu dài của kem chống nắng đã được các nhà khoa học chứng minh, trong khi những lời khuyên còn lại của tôi không có cơ sở nào đáng tin cậy hơn kinh nghiệm uốn khúc của chính tôi." Có lẽ phổ biến hơn được biết đến trong hình thức của bài hát này .
MichaelHouse

4
Chà, thực ra kem chống nắng không tốt lắm đâu 2 . Chỉ cần ở trong nhà và tiếp tục lập trình.
bobobobo

28

Vâng, không có ai đó đã ở đó trước đó để nói với bạn phải làm gì, cách khắc phục, v.v ... có thể là điều tồi tệ nhất bạn sẽ vượt qua. Nhưng không sợ! Bạn vẫn có thể đọc RẤT NHIỀU blog của những người đã từng ở đó, họ chia sẻ kinh nghiệm của họ trong ngành, cách họ gặt hái thành công, làm thế nào một trò chơi trước đó thất bại và tại sao, v.v.

Ví dụ điển hình là:

Và nhiều hơn nữa!

Câu nói cuối cùng của tôi là: Đừng sợ hãi. Tôi cũng tự học, 4 năm tôi đã được giới thiệu với nhà phát triển trò chơi, rất nhiều rào cản xuất hiện, nhưng không có gì mà bạn không thể giải quyết được việc googling và đọc một số văn bản. Chúc may mắn trên hành trình của bạn :)


3
Để thêm vào điều này, ngay cả các chuyên gia có vấn đề này thường xuyên. Miễn là bạn có thể học và Google, bạn có thể tìm ra khá nhiều thứ.
tro999

Thật kỳ lạ khi bạn liên kết 2Dboy. Theo như tôi biết, họ đã làm một vài điều trừ các cổng của World of Goo cho tất cả các nền tảng đã tồn tại trong vài năm qua. Lâu lắm rồi tôi mới đọc được thứ gì đó liên quan đến gamedev ở đó.
TravisG

@TravisG Quá trình releasetrò chơi không chỉ liên quan đến việc phát triển nó. Dù sao nó cũng đọc tốt. Tôi đã đăng các liên kết nhiều hơn như là tài liệu tham khảo, không phải để theo dõi blog. Nếu bạn quay lại kho lưu trữ, có một vài ví dụ về các nguyên mẫu và tất cả những gì đã giúp chúng với thế giới của goo và các nguyên mẫu "ít hơn" khác: D
Gustavo Maciel

18

Thái độ này. Điều này "không chạm vào nó, cho đến khi bạn biết làm thế nào để làm điều đó một cách hoàn hảo". Điều đó sẽ thực sự giữ bạn lại.

Bạn thấy thái độ này giữa các nhà phát triển ban đầu của tất cả các loại mặc dù - không chỉ các trò chơi. Trang web là tốt. Xin chào, một trang web là một cơ sở dữ liệu với giao diện html với một số javascript. Bạn học các công nghệ bằng mọi cách có thể, bạn đặt trang web đầu tiên của bạn lại với nhau. Nó sẽ không phải là tưởng tượng, nhưng sau khi làm mọi thứ theo cách tối ưu không phải là một thỏa thuận lớn đáng sợ !! Nếu bạn thực hiện "con đường dài" lần đầu tiên, bạn luôn có thể làm điều đó tốt hơn lần thứ hai. Quan điểm của tôi là, không có nguy hiểm. Ngoại trừ thái độ này, có lẽ. Thái độ này là thứ sẽ ngăn bạn làm bất cứ điều gì, bởi vì bạn sẽ luôn chùn bước trước nhiệm vụ và nói "Tôi không biết làm thế nào để làm điều đó."

Thái độ rằng có một "cách đúng đắn" để làm việc. Không có. Mọi thứ chính xác như vẻ ngoài của chúng. Bạn phải đặt pixel trên màn hình và tạo âm thanh khi mọi thứ xảy ra.


3
Thật vậy. Điều này vẫn giữ tôi lại rất nhiều. Mặc dù tôi không đồng ý bằng cách nào đó, về mặt có một số "cách đúng" hơn để làm, và nhiều "cách sai" hơn, nhưng sự hoàn hảo và tê liệt phân tích chắc chắn có thể là một vấn đề. Câu trả lời chính xác!
Petr Abdulin

6

Tùy thuộc vào việc bạn có muốn biến nghề này thành nghề nghiệp của mình hay không (Tôi sẽ cho rằng bạn đang nghĩ về nó và đây không chỉ là một sở thích), đây là những gì tôi thấy cực kỳ hiệu quả:

  1. Khởi đầu nhỏ

Điều đó đã được nói trước đây, nhưng tôi sẽ nói lại - bắt đầu với các bit nhỏ, làm quen với một công cụ, khung, công cụ hoặc chương trình. Một khi bạn đã có những điều cơ bản xuống -> đi lớn hơn.

  1. Học mọi thứ

Điều này có vẻ hơi cực đoan, nhưng điều tôi muốn nói là học hỏi nhiều nhất có thể về MỌI khía cạnh của sự phát triển trò chơi - bất kể bạn có trở thành một lập trình viên, nghệ sĩ hay nhà thiết kế hay không. Biết đường ống là chìa khóa để xây dựng mọi thứ một cách hiệu quả nhất. Nếu bạn đang thực hiện một vũ khí -> thiết kế nó, khái niệm nó, mô hình hóa nó, thực hiện nó, mã hóa nó! Rõ ràng bạn không cần phải là một nghệ sĩ khái niệm hạng A, nhà thiết kế và mọt sách Pipeline - nhưng bạn nên làm quen với tất cả các công cụ của quy trình và hiểu từng bước của sáng tạo. Ngoài ra, hãy xem các trang web trò chơi để biết tin tức và cập nhật trong kinh doanh - gamasutra.com, kotaku, v.v ... đều có những bài viết tuyệt vời về cả chủ đề kinh doanh và kỹ thuật. Đừng giới hạn bản thân trong một lĩnh vực phát triển - tiếp thu TẤT CẢ kiến ​​thức bạn có thể có :)

  1. Thất bại thường xuyên, thất bại nặng nề.

Bạn sẽ mút vào những gì bạn đang làm. Ở thời điểm bắt đầu. Luôn luôn là như vậy (tin tôi đi, tôi biết .: D), nhưng sẽ tốt hơn nếu bạn tiếp tục và KHÔNG BAO GIỜ ngừng tìm cách cải thiện công việc của bạn. Internet là một nguồn tuyệt vời cho các hướng dẫn, tài liệu tham khảo và trợ giúp. Bạn sẽ không bao giờ thực sự bế tắc, vì vậy hãy tập trung vào những ý tưởng điên rồ nhất, thất bại, học hỏi từ những sai lầm của bạn và trở nên xấu xa hơn với quá trình đó.

  1. Nói chuyện với mọi người!

Mặc dù internet là một nguồn tuyệt vời, nhưng nhận được phản hồi trực tiếp là điều bạn sẽ phải giải quyết trong công việc ALOT. Vì vậy, cải thiện kỹ năng mềm của bạn cũng quan trọng. Nếu bạn chưa có cố vấn hoặc nói chung không biết có quá nhiều người làm việc trong ngành thì bạn nên tìm xung quanh khu vực của mình để gặp gỡ các nhà phát triển độc lập, đi đến các hội nghị và kiểm tra các sự kiện khác nơi bạn có thể bắt đầu xây dựng một mạng lưới kiến ​​thức và liên hệ cá nhân. Nó cũng giúp xây dựng một cái gì đó với người khác - tự học là tuyệt vời, nhưng phát triển trò chơi là một trò chơi dựa trên nhóm, vì vậy hãy kiểm tra các diễn đàn cho dự án sở thích - ví dụ: Diễn đàn Epic cho các dự án UDK, diễn đàn Unity hoặc thậm chí là Diễn đàn CryEngine -Tất cả ba trong số những động cơ đó được lan truyền rộng rãi, có một khối lượng người tài năng làm việc trong các dự án phụ ở đó, và họ '

Tôi nghĩ đó là khá nhiều tất cả những lời khuyên tôi có thể cung cấp. Tôi hy vọng điều này đã giúp bạn một cách nào đó :)


Tất cả các điểm của bạn rất quan trọng, chúng là số 1 trong danh sách này! :)
bobobobo

3

Tôi hoàn toàn không có kinh nghiệm về C # và XNA, nhưng tôi nghĩ nó sẽ không làm tôi sai trong tuyên bố sau:

Nó là hoàn toàn tốt để học lập trình mà không cần một giáo viên. Nếu mã của bạn hoạt động *, nó thực sự không quan trọng bằng cách mã hóa. Chà, nó dành cho lập trình hợp tác, nhưng sau đó bạn sẽ không viết mã một mình nữa, phải không? Nó cũng có thể làm cho mã của bạn khó đọc hơn trong tương lai, khiến bạn khó sử dụng các thành phần cũ hoặc gỡ lỗi các lỗi mới, nhưng về lâu dài tất cả các lỗi của bạn sẽ là điểm mạnh của bạn. Điều khó nhất khi học thiết kế OOP và MVC là hiểu lý do tại sao tôi nên làm "điều này" theo "cách đó". Nếu bạn đã có kinh nghiệm thực hiện các chương trình xấu, bạn sẽ biết điểm mạnh của các mẫu và sử dụng chúng để làm lợi thế cho bạn. Nếu bạn luôn tạo ra các chương trình tốt bằng cách làm theo các mẫu mà ai đó đã dạy cho bạn, thì Bạn sẽ tiếp tục tạo ra các chương trình tốt (theo nghĩa mã hợp lệ), nhưng thay vì tận dụng các mẫu Bạn sẽ bị giới hạn bởi chúng, vì Bạn sẽ không hiểu chúng đủ để thực hiện các sửa đổi hữu ích. Cuối cùng, điều quan trọng nhất là bạn thực hành chứ không phải làm thế nào, vì vậy trong cả hai trường hợp sớm hay muộn bạn sẽ có được trải nghiệm khá giống nhau.

* một điều quan trọng là mặc dù! Trong trường hợp bảo mật Bạn thực sự nên hỏi ai đó có kinh nghiệm nếu mã của bạn được thực hiện tốt, vì các lỗ hổng bảo mật không thông báo lỗi bật lên.


3

Bằng cách nào đó đây là một câu hỏi tuyệt vời! :-)

Tôi đã bắt đầu hoạt động gamedev của mình cách đây không lâu và đây sẽ là lần thứ hai, vì vậy tôi có thể chia sẻ suy nghĩ của mình. Bạn thực sự đúng về điều đó là một điều tốt để có một người cố vấn. Người cố vấn này sẽ là internet. Vì vậy, càng nhiều thông tin được chia sẻ trên internet, bạn càng dễ dàng tìm hiểu cho bạn. Đó là lý do tại sao XNA / C # là một lựa chọn tuyệt vời để bắt đầu. Có rất nhiều game thủ indie nghiệp dư và chuyên nghiệp đang chia sẻ bài viết và trên web. Những điều khác cần đề cập:

  1. Đi mã nguồn mở! Codeplex, GitHub, Google.Code, Bitbucket. Có rất nhiều thứ có giá trị ở đó.
  2. Tới cộng đồng! Bạn đang ở đây, và đó là một điều tốt. Nhưng cũng có một cộng đồng Microsoft XNA rộng lớn với một số công cụ chính thức tốt . Codeproject cũng là một tài nguyên tốt (tuy nhiên hoạt động gamedev khá thấp ở đó).
  3. Bạn có thể sẽ cần phải đọc / xem rất nhiều. Đã được đề cập trước đó. Phát triển trò chơi không chỉ là mã hóa. Thiết kế trò chơi cũng rất quan trọng. Sự nhiệt tình là quan trọng.
  4. Như thường lệ, đừng cố gắng cắn nhiều cùng một lúc, viết cho bạn bản sao của tetris hoặc breakout thực sự là một ý tưởng hay.
  5. Có thể khó khi bắt đầu, phát triển trò chơi không chỉ thực sự khó, nó còn rất khác so với các ứng dụng "doanh nghiệp". Có rất nhiều khía cạnh mới, vật lộn, âm thanh, vv Bạn càng đi, nó càng dễ dàng hơn (như bình thường).
  6. Viết một blog. Thể hiện quá trình phát triển của bạn (trong quá trình này, bạn sẽ tìm thấy câu trả lời cho câu hỏi của riêng bạn), lưu trữ các liên kết với các bình luận cho các bài viết có giá trị.
  7. Đừng nghĩ mã của bạn là thứ tồi tệ nhất bạn từng thấy. Mã trò chơi khó kiểm soát hơn, bằng cách nào đó luôn bẩn hơn một chút sau đó có mã "doanh nghiệp" đẹp. Nhưng tôi đảm bảo với bạn, ở đó tôi đã thấy một số sáng tạo khủng khiếp (về chất lượng mã nguồn và tổ chức trò chơi) là những trò chơi độc lập thành công. Vì vậy, đừng quá khắc nghiệt với chính mình, đặc biệt. lúc đầu.

1

Điều này áp dụng cho bất kỳ ngành học nào liên quan đến một ngành công nghiệp sáng tạo:

Mối nguy hiểm lớn nhất là cố gắng xây dựng một cái gì đó 'quá lớn' hoặc 'sử thi' ra khỏi cổng.

Ví dụ: nếu bạn bắt đầu sáng tác một số nhạc, bạn sẽ không bắt đầu với việc tạo ra một bản giao hưởng 50 phần 2 giờ.

Trong thiết kế cấp độ, biểu hiện này là cố gắng tạo ra 'bản đồ lớn nhất từ ​​trước đến nay' hoặc sử dụng hệ thống trò chơi để xây dựng thứ phức tạp nhất lớn nhất mà công cụ trò chơi có khả năng xử lý. Trong lập trình, điều này có thể rơi vào 'tự tạo toàn bộ trò chơi' bắt đầu với mã nguồn bằng không. Bạn thực sự cần rất nhiều kinh nghiệm và kỷ luật để bắt đầu với nguồn không, và thậm chí sau đó nó cực kỳ khó khăn, và đưa ra quyết định thiết kế đối với mọi thứ là khó khăn trong suốt thời gian bạn làm việc thiết kế mọi thứ. Ngay cả một trò chơi đơn giản cũng đòi hỏi một lượng lập trình khá lớn trong một hệ điều hành và ngôn ngữ hiện đại ngày nay. Ngoài ra, nếu bạn bắt đầu với mã của ai đó, bạn có thể tìm hiểu những gì hoạt động và những gì không hoạt động tốt, vì vậy làm việc với càng nhiều động cơ càng tốt cũng là một điểm cộng rất lớn.

Vì vậy, bắt đầu tôi muốn giới thiệu một cái gì đó giống như các kế hoạch sau:

  • Thiết kế cấp độ: xây dựng một căn phòng nhỏ, xây dựng một nửa tòa nhà, xây dựng một tòa nhà đầy đủ, v.v.
  • Nghệ thuật: tạo một chiếc mũ cho TF2 hoặc một cái gì đó mô phỏng đơn giản, hoặc một số thay thế kết cấu cho Skyrim hoặc một số nhiệm vụ kích thước cắn khác để bắt đầu, trước khi vào lưới xương hoặc hình thái và tìm ra cách làm động hoặc vẽ chúng trong zbrush chúng.
  • Lập trình: lấy một công cụ trò chơi có thể sửa đổi hoặc mã nguồn mở hiện có và sửa đổi một phần của nó (như vũ khí), sau đó chế tạo vũ khí mới. Nếu bạn không thích mã trò chơi, bạn có thể bắt đầu hack trên công cụ đồ họa.

Điều tốt nhất cần làm là lấy một công cụ đã hoàn thành hiện tại (có thể là một công cụ có thể sửa đổi hoặc một số nguồn mở) và bắt đầu hack nó, và làm điều đó một vài lần cho một số công cụ khác nhau cho đến khi bạn tìm thấy một công cụ bạn thích.

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.