paint-brush
Nghề phát triển trò chơi có phù hợp với bạn không?từ tác giả@solverit
378 lượt đọc
378 lượt đọc

Nghề phát triển trò chơi có phù hợp với bạn không?

từ tác giả Andrey Mikheev16m2023/11/01
Read on Terminal Reader

dài quá đọc không nổi

Nếu bạn muốn trở thành nhà phát triển trò chơi, hãy bắt đầu bằng việc tập trung vào các kỹ năng lập trình chung và viết mã rõ ràng, chất lượng cao. Đừng vội tạo ra một trò chơi tỷ đô; thay vào đó, hãy đặt mục tiêu phát triển với tư cách là một nhà phát triển. Ưu tiên học các khái niệm như mã sạch, kiến trúc sạch, ECS, SOLID, KISS, OOP, thuật toán và cấu trúc dữ liệu. Hãy cân nhắc việc thực tập tại studio game hoặc tự học để tích lũy kinh nghiệm. Chọn ngôn ngữ lập trình như C#, Java, JavaScript, Lua hoặc Python, tùy thuộc vào mục tiêu của bạn. Học tiếng Anh kỹ thuật là rất quan trọng vì hầu hết các tài nguyên lập trình đều bằng tiếng Anh. Quyết định xem bạn muốn làm việc trên trò chơi một người chơi hay nhiều người chơi. Bắt đầu với những dự án nhỏ để tích lũy kinh nghiệm và tăng dần độ phức tạp. Chọn công cụ của bạn, học ngôn ngữ lập trình trước, sau đó chuyển sang công cụ trò chơi. Hãy cân nhắc việc phát hành trò chơi đầu tiên của bạn trên các nền tảng như Itch.io hoặc các cổng web. Tránh các cách tiếp cận "không cần mã" và hãy nhớ vui vẻ – niềm đam mê là yếu tố quan trọng trong quá trình phát triển trò chơi.
featured image - Nghề phát triển trò chơi có phù hợp với bạn không?
Andrey Mikheev HackerNoon profile picture
0-item


Vì vậy, bạn muốn tham gia phát triển trò chơi. Hoặc cụ thể và đơn giản hơn: bạn muốn trở thành một nhà phát triển trò chơi làm việc về mặt kỹ thuật. Chà, bất cứ ai cũng sẽ thắc mắc về cách thực hiện điều đó!


Ví dụ:


  • Bắt đầu từ đâu?
  • Làm thế nào để cải thiện kỹ năng của bạn?
  • Công cụ trò chơi nào tốt hơn để thành thạo trước?
  • Chọn ngôn ngữ lập trình nào?


Có rất nhiều thông tin về những chủ đề này ngoài kia - nhiều đến mức điều này có thể dễ dàng khiến bộ não của bạn bị quá tải, do đó khiến bạn khó đưa ra những lựa chọn xứng đáng.


Tên tôi là Andrey Mikheev và tôi là Nhà phát triển phụ trợ cấp cao tại Pixonic, MY.GAMES. Tôi đã làm việc trong ngành game được 20 năm. Lần đầu tiên tôi thử làm trò chơi là vào những năm 90 trên ZX Spectrum nổi tiếng lúc bấy giờ. Trong bài viết này, tôi sẽ làm sáng tỏ các tùy chọn mà bạn có khi chuyển sang phát triển trò chơi và tôi sẽ giải thích các tùy chọn này khác nhau như thế nào.


Một vài điều đầu tiên

Trong bài đăng này, chúng tôi sẽ hoạt động với giả định rằng người đọc mới bắt đầu hành trình gia nhập ngành. Không thể học mọi thứ cùng một lúc, do đó bạn sẽ phải ưu tiên và chọn cách thực hiện việc học của mình. Tất nhiên, mỗi người đều có trải nghiệm khác nhau; có nhiều con đường để phát triển trong nghề này.


Cái hay của phát triển trò chơi (và với nhiều lĩnh vực CNTT khác) là có nhiều lĩnh vực mà bạn có thể áp dụng các kỹ năng của mình: bạn có thể trở thành nhà sản xuất, nhà tiếp thị, nghệ sĩ, nhà thiết kế, người viết kịch bản, người lập mô hình, nhà phân tích, nhà phát triển phía khách hàng, nhà phát triển cốt lõi, nhà phát triển siêu dịch vụ, nhà phát triển kết xuất, v.v. Trên thực tế, trong thế giới trò chơi độc lập, bạn hầu như phải kết hợp hầu hết tất cả các kỹ năng đã nói ở trên - nhưng đây là chủ đề cho một ngày khác.

Khi nghĩ đến việc bắt đầu sự nghiệp phát triển trò chơi, mọi người thường tập trung vào các khía cạnh công nghệ: công cụ cần thành thạo, ngôn ngữ lập trình cần chọn đầu tiên hoặc các kỹ năng cụ thể cần phát triển.


Nhưng hãy nhớ rằng công nghệ chỉ là một công cụ; bạn không cần phải xây dựng toàn bộ danh tính của mình với tư cách là nhà phát triển xung quanh một thứ cụ thể ; thợ cơ khí không phải là cái cờ lê. Hôm nay là tuốc nơ vít chữ thập, ngày mai là tuốc nơ vít điện, ngày mốt là dụng cụ khí nén. Mục tiêu không phải là học cách sử dụng một chiếc tuốc nơ vít cụ thể mà là để hiểu cấu trúc của ô tô cũng như cách lắp ráp và sửa chữa chúng.


Công nghệ chỉ là một công cụ, kỹ năng của bạn - đó mới là điều quan trọng


Thay thế những chiếc cờ lê này bằng công cụ trò chơi, ngôn ngữ mã hóa và những thứ khác — và vấn đề sẽ không thay đổi. Đây chỉ là những công cụ để bạn sử dụng


Một số lời khuyên về kỹ năng chung dành cho nhà phát triển game

Vì vậy, theo tôi, kỹ năng tổng quát là điều quan trọng nhất ở giai đoạn này. Bởi vì bạn không được giao nhiệm vụ tạo ra một “trò chơi” mà là viết mã tốt .


Mục tiêu không phải là tạo ra một trò chơi ăn khách hàng tỷ đô la mà là phát triển với tư cách là một nhà phát triển. Dù sao thì việc tạo ra một trò chơi trị giá hàng tỷ đô la không phải là vấn đề phát triển mà là về ý tưởng và tiếp thị; mã chỉ là thứ phụ đối với điều đó. Tất nhiên, hai mục tiêu này không mâu thuẫn với nhau, nhưng tôi sẽ không đặt thành công ngoạn mục làm mục tiêu đầu tiên của bạn - hãy làm như vậy và bạn có thể nhanh chóng thấy mình thất vọng với toàn bộ doanh nghiệp nói chung.


Quay lại chủ đề về mã, việc tập trung chung vào mã là quan trọng vì mã chất lượng cao sẽ luôn có nhu cầu lớn trong bất kỳ ngành nào và điều này có nhiều ứng dụng: trò chơi, fintech, thuật toán điều khiển robot, phóng tên lửa vào không gian. Một số người có thể nói rằng mã chất lượng cao đồng nghĩa với độ trễ rất lớn và thời gian là yếu tố then chốt trong hoạt động kinh doanh này. Đừng tin điều đó. Nếu bạn có thể viết mã tốt thì sẽ không có thời gian chết.


Một điều nữa là nếu code của bạn cẩu thả thì để tạo ra một sản phẩm chất lượng cao bạn sẽ phải sửa lại thói quen của mình và điều đó sẽ tốn rất nhiều thời gian và công sức.


Một điểm rất quan trọng khác liên quan đến thời gian: thời gian dành cho việc tạo mã tốt luôn được bù đắp bằng việc giảm thời gian dành cho việc duy trì nó . Xét cho cùng, một trò chơi, và đặc biệt là nhiều người chơi, là một sản phẩm tồn tại lâu dài và chất lượng mã có tầm quan trọng rất lớn trong trường hợp này.


Các chuyên gia khác sẽ có thể dễ dàng hiểu mã của bạn , có thể điều chỉnh nó mà không cần phải viết lại. Và bạn cũng có thể dễ dàng đọc được nó nếu bạn đột nhiên quyết định thay đổi điều gì đó sau một vài năm. Một ví dụ sơ bộ: tốt hơn là dành vài tháng để viết mã chất lượng cao một lần và có thể nhanh chóng thực hiện một số thay đổi trong vài ngày, hơn là viết một cái gì đó khó hiểu trong một tuần, sau đó cần một tháng cho mỗi vấn đề nhỏ chỉnh sửa trong tương lai.



Cố gắng tạo mã sạch - nó sẽ giúp bạn rất nhiều



Tóm lại, mã sạch, kiến ​​trúc sạch, ECS, SOLID, KISS, OOP, thuật toán và cấu trúc dữ liệu - tất cả những chủ đề này cần được đặc biệt chú ý nếu bạn muốn trở thành một chuyên gia kỹ thuật giỏi trong lĩnh vực phát triển trò chơi.


Đúng, thuật toán có thể khiến một số người đau đầu. Nhưng có rất nhiều “thuật toán và cấu trúc” trong quá trình phát triển trò chơi hơn là trong các dự án web thông thường và nếu bạn thành thạo chúng, chúng sẽ đơn giản hóa cuộc sống của bạn rất nhiều.


Một cách tự nhiên, sự hiểu biết sâu sắc hơn về những khái niệm này chỉ có được nhờ kinh nghiệm. Theo thời gian, bạn sẽ tham gia vào nhiều dự án khác nhau, bạn sẽ bắt đầu hiểu cách các chuyên gia khác làm việc và xem điều gì khiến cá nhân bạn gặp khó khăn khi làm việc với mã trò chơi.

Học hỏi từ kinh nghiệm của người khác là rất quan trọng . Nghiên cứu các dự án nguồn mở, nghe bài giảng của các chuyên gia trong ngành và hãy nhớ rằng hiện nay có rất nhiều nguồn thông tin. Nhưng điều bạn không nên làm là làm hỏng dự án của mình, đặc biệt nếu bạn không có một người cố vấn giỏi trong nhóm của mình. Không có nhà phát triển có năng lực nào có thể làm việc trong chân không. Điều chính ở đây là không lạm dụng nó và bắt đầu sử dụng mã từ các dự án khác mà không hiểu bạn đang làm gì và tại sao.


Và một điểm quan trọng nữa: viết lại code là chuyện bình thường, đừng ngại làm điều đó . Hơn nữa, trong thời gian đào tạo, điều này cực kỳ quan trọng. Bạn sẽ thấy việc sử dụng các phương pháp hay sẽ cho phép bạn cải thiện mã của mình và làm cho mã đó dễ bảo trì hơn như thế nào.


Quá trình cải thiện kỹ năng lập trình chung của bạn không hề nhanh chóng. Có thể mất vài tháng - hoặc thậm chí nhiều năm. Vì vậy, hãy sẵn sàng cho việc này, vì đơn giản là bạn không thể làm gì nếu không có nó.


Nếu bạn có cơ hội được thực tập tại một studio tốt, điều này sẽ thúc đẩy tốc độ phát triển của bạn rất nhiều . Bạn sẽ có cơ hội tìm hiểu các khía cạnh khác nhau của quá trình phát triển trò chơi và nhận được câu trả lời cho câu hỏi của mình từ người cố vấn. Nhưng hãy thành thật mà nói, đây không phải là cách phổ biến nhất.

Tìm kiếm công việc đầu tiên trong ngành game từ đầu là một thách thức khác. Nghịch lý nổi tiếng: để có được việc làm, bạn cần có kinh nghiệm, và để có được kinh nghiệm, bạn cần có việc làm. Trong trường hợp này, đáng để xem xét việc tự học . Hãy loại bỏ ngay ý tưởng về các khóa học trả phí: chúng không phù hợp với tất cả mọi người vì nhiều lý do. May mắn thay, có hàng chục, hàng trăm hướng dẫn trên Internet về tất cả các khía cạnh của việc viết mã trò chơi.



Chọn một công cụ trò chơi

Khi bạn đã tự trả lời những câu hỏi cơ bản đó và hiểu mình sẽ học những gì cũng như như thế nào, đã đến lúc quyết định bạn sẽ làm việc với công cụ trò chơi nào và điều này cũng sẽ xác định ngôn ngữ lập trình mà bạn sẽ phải học.


Chủ đề này quá rộng để có thể đề cập trong một bài viết. Hơn nữa, với tư cách là nhà phát triển, chúng tôi không quan tâm nhiều đến động cơ cũng như ngôn ngữ lập trình. Nếu bạn muốn tìm hiểu sâu hơn về chủ đề này, tôi khuyên bạn nên đọc phần này bài viết hữu ích về các công cụ trò chơi phổ biến nhất trên Steam từ Nhà phát triển trò chơi.


Khi bắt đầu cuộc hành trình, bạn không cần phải chọn ngay một số công cụ lớn và nghiêm túc như Unreal Engine hay Unity. Nếu bạn không có bất kỳ nền tảng lý thuyết hoặc thực tiễn nào, một số công cụ dành cho trò chơi trên web là đủ: chẳng hạn như PlayCanvas hoặc các công cụ tương tự của nó.


Công cụ Defold cũng có thể là một lựa chọn tốt để bắt đầu với . Nó đơn giản hơn Unity và tập trung hơn vào các trò chơi 2D. Nó sử dụng một ngôn ngữ rất đơn giản, Lua, rất dễ học.


Có hàng tá công cụ trò chơi khác nhau nên việc chọn một công cụ có thể khó khăn



Ưu tiên ngôn ngữ lập trình

Để tiết kiệm thời gian của bạn, tôi sẽ chỉ mô tả một số khía cạnh của ngôn ngữ và sắp xếp chúng theo thứ tự ưu tiên khi tôi học chúng; thứ tự này không nói lên chất lượng của ngôn ngữ hoặc các vấn đề của nó. Thay vào đó, đó là đánh giá của tôi về sự cân bằng giữa độ phức tạp, mức độ liên quan và khả năng của ngôn ngữ.


Ví dụ, Lua là một ngôn ngữ rất thú vị, dễ học, bạn có thể viết một trò chơi với nó bằng công cụ Defold. Nhưng bạn không thể chọn nó làm ngôn ngữ chính cho trải nghiệm phát triển của mình. Đó là ngôn ngữ phụ trợ được sử dụng cùng với các ngôn ngữ phổ biến hơn như C++ hoặc C#.

Tất nhiên, đây không phải là danh sách đầy đủ tất cả các ngôn ngữ lập trình. Có hơn một chục trong số họ. Nhưng đây chính là điều tôi muốn chỉ ra cho bạn. Vì vậy, đây là những gì tôi sẽ học và theo thứ tự:


  • Tiếng Anh : Vâng, đừng ngạc nhiên. Đây có lẽ là ngôn ngữ quan trọng nhất đối với một nhà phát triển. Nếu bạn không phải là người bản ngữ, việc học nó sẽ mang lại kết quả - rất đáng giá. Hầu hết thông tin về lập trình đều có sẵn bằng tiếng Anh: hướng dẫn, khóa học, tài liệu, diễn đàn; nói chung, tất cả mọi thứ bạn sẽ cần phải nghiên cứu. Về lý thuyết, bạn có thể tìm kiếm các cộng đồng lập trình viên địa phương bằng ngôn ngữ mẹ đẻ của mình và yêu cầu trợ giúp ở đó, nhưng nếu bạn thực hiện việc này trên tài nguyên bằng tiếng Anh, vấn đề sẽ được giải quyết nhanh hơn gấp trăm lần.


  • C#: Nếu bạn dự định làm việc nghiêm túc và lâu dài trong lĩnh vực phát triển, thì tốt hơn hết bạn nên bắt đầu với các ngôn ngữ có mục đích chung phổ biến. C # là một trong số đó. Đây cũng là ngôn ngữ phù hợp với kế hoạch dự phòng của bạn: ngay cả khi bạn đột nhiên cảm thấy nhàm chán với nhà phát triển trò chơi, bạn có thể viết nhiều loại phần mềm bằng C#, như fintech, ứng dụng kinh doanh, v.v.


    C# sẽ cho phép bạn làm quen với các khái niệm lập trình tiêu chuẩn và thực hiện nhiều phương pháp phát triển khác nhau. Bạn sẽ tìm hiểu tất cả về những từ viết tắt có vẻ đáng sợ như OOP, CQRS, DDD, ECS. Tất nhiên, hầu hết các cách tiếp cận này có thể được thực hiện bằng bất kỳ ngôn ngữ lập trình nào. Nhưng có những sắc thái. Ví dụ: không phải tất cả các ngôn ngữ đều có khái niệm “lớp” và do đó, các khái niệm này được triển khai khác nhau. Điều này có thể khiến một nhà phát triển mới vào nghề suy nghĩ và tạo ra một loạt vấn đề không cần thiết, bao gồm cả vấn đề về động lực. Vì vậy, theo ý kiến ​​​​của tôi, C# là sự lựa chọn tốt nhất (nhưng không dễ dàng) để bắt đầu sự nghiệp phát triển so với JavaScript chẳng hạn.


  • Java : Giống như C#, Java là ngôn ngữ có mục đích chung. Nhưng trong quá trình phát triển trò chơi, nó chủ yếu liên quan đến máy chủ. Tất nhiên, có các công cụ trò chơi Java (ví dụ: LibGDX), nhưng chúng không phổ biến như Unity để phát triển trò chơi.


    Một lần nữa, những ngôn ngữ chung này rất phù hợp trong trường hợp bạn đã biết Java nhưng lại làm việc trong lĩnh vực Fintech chẳng hạn - và sau đó đột nhiên bạn quyết định tạo một trò chơi. Bạn sẽ không muốn học một ngôn ngữ mới từ đầu chỉ vì mục đích thử nghiệm, phải không?


  • JavaScript : Như Jeff Atwood, một trong những người sáng lập Stack Overflow, đã nói: “Bất cứ thứ gì có thể viết bằng JavaScript sẽ được viết bằng JavaScript.


    Thật đáng buồn nhưng sự thật là ngày càng có nhiều dự án game được viết bằng ngôn ngữ này. Thực tế là JavaScript rất đơn giản, đặc biệt đối với người mới bắt đầu. Và nếu bạn làm việc trên một số loại công cụ web, rất có thể bạn sẽ được cho biết nơi nhập dòng mã của mình.


    Mặc dù đơn giản nhưng tôi không nghĩ JavaScript là nơi tốt để bắt đầu hành trình phát triển trò chơi của bạn. Nó quá khác biệt so với các ngôn ngữ có mục đích chung khác và điều này có thể đánh lừa các nhà phát triển. Có ý tưởng này mà một nhà phát triển nghĩ về các khái niệm từ ngôn ngữ lập trình đầu tiên của họ . Điều đó có phần đúng, vì vậy ngay từ đầu, tốt hơn hết bạn nên tìm hiểu thêm các kỹ thuật và phương pháp tiếp cận tổng quát. Nhưng nếu bạn quyết định bắt đầu với trò chơi trên web, có thể bạn sẽ không thể làm được nếu không có JavaScript. Nó ngự trị trong thế giới web. Trong trường hợp này, tôi khuyên bạn nên chú ý đến TypeScript. Ngôn ngữ này rất giống với C# và sẽ giúp việc chuyển sang ngôn ngữ khác trong tương lai trở nên dễ dàng hơn.


  • Lua/Python: Tại sao tôi lại đặt chúng lại với nhau? Đây là những ngôn ngữ lập trình, thường được sử dụng để viết kịch bản cho các phần riêng lẻ của logic trò chơi. (Đúng, có những công cụ như Defold trong đó đây là những ngôn ngữ phát triển chính. Nhưng đây là những ngoại lệ đối với quy tắc.) Ví dụ: Python là một công cụ rất phổ biến để tạo tập lệnh nội tuyến và nó được sử dụng trong trình soạn thảo Blender 3D.


    Biết và có thể sử dụng Lua và Python rất hữu ích, nhưng như tôi đã đề cập trước đó, chúng là những ngôn ngữ phụ trợ và tôi sẽ giữ chúng cho phần sau. Tất nhiên, trừ khi bạn chọn công cụ Defold cho dự án đầu tiên của mình, thì Lua là không thể thiếu.


  • C++ : Một số bạn có thể ngạc nhiên khi thấy C++ đứng cuối danh sách. Và không phải vì ngôn ngữ kém mà con đường của nó là khó khăn nhất. Đây là ngôn ngữ mạnh nhất trong số những ngôn ngữ được trình bày, nhưng cũng phức tạp nhất, với các tính năng riêng.


    C ++ được sử dụng để tạo ra các trò chơi AAA và nó giúp tận dụng tối đa phần cứng. Nhưng tôi sẽ không đề xuất điều này với một nhà phát triển mới vào nghề - rất có thể bạn sẽ thất vọng về ngành này. Nhưng nếu bạn thực sự biết rằng C++ là thứ bạn thực sự cần — và bạn không sợ những khó khăn liên quan cũng như có kế hoạch hành động rõ ràng — thì hãy tiếp tục!​​




Đây chỉ là một số ngôn ngữ lập trình


Chọn ngôn ngữ lập trình là quan trọng, nhưng đừng quên rằng trước hết bạn nên nâng cao trình độ tiếng Anh kỹ thuật của mình - nó sẽ giúp bạn điều hướng các hướng dẫn, khóa học và các nguồn thông tin có giá trị khác


Chơi đơn hay nhiều người chơi?

Theo tôi, đây là quyết định tiếp theo mà một nhà phát triển trò chơi phải đưa ra. (Không phải thứ gì đó giống như sự lựa chọn giữa việc phát triển trò chơi di động, AAA hay trò chơi web.) Lý do rất đơn giản: khi mới bắt đầu hành trình, bạn gần như chắc chắn sẽ không có lựa chọn tạo ra những trò chơi lớn. Hãy suy nghĩ về điều này, làm thế nào bạn có thể làm việc trên một số loại Escape from Tarkov hoặc Call of Duty mà không có kinh nghiệm? Trò chơi đầu tiên của bạn không nên lớn và phức tạp, nếu không bạn sẽ không thể hoàn thành nó. Bạn sẽ kiệt sức và rời bỏ việc phát triển trò chơi.


Thật tốt khi hiểu chính xác những gì bạn muốn làm. Đối với một nhà phát triển có kinh nghiệm, điều này không quá quan trọng, nhưng ngay từ đầu, câu trả lời cho câu hỏi này sẽ thu hẹp con đường nghiên cứu khả thi.


Xét về phần chơi đơn so với nhiều người chơi: từ quan điểm phát triển khách hàng (tức là phần trò chơi mà người chơi tương tác trực tiếp), sự khác biệt đối với nhà phát triển có thể không lớn đến vậy. Nhưng chế độ nhiều người chơi yêu cầu phần phụ trợ và tất cả các vấn đề liên quan đến điều đó, và đây cũng là một chủ đề riêng biệt và rộng lớn.


Về mặt này, trò chơi một người chơi sẽ dễ dàng hơn vì bạn không phải lo lắng về việc đồng bộ hóa trạng thái thế giới cho những người chơi khác, tách biệt logic trò chơi hoặc các vấn đề khác.


Về mặt cơ chế trò chơi, trò chơi một người chơi cũng có thể đơn giản hơn nhiều so với trò chơi nhiều người chơi — và dự án càng đơn giản thì bạn càng dễ dàng hoàn thành nó. Và hoàn thành những gì bạn đã bắt đầu là một kỹ năng quan trọng trong bất kỳ hoạt động kinh doanh nào!


Tóm lại, tôi khuyên bạn nên bắt đầu với các trò chơi một người chơi - nó sẽ dễ dàng hơn . Nhưng nếu bạn thực sự muốn tạo một trò chơi nhiều người chơi đơn giản để chơi với bạn bè thì tại sao không? Bạn chỉ cần hiểu rằng việc này sẽ cần nhiều thời gian hơn để có được phiên bản hoạt động đầu tiên của bạn. Tuy nhiên, động lực bên trong của một người là một điều rất phức tạp - có lẽ việc tạo trò chơi trực tuyến sẽ thúc đẩy bạn nhiều hơn so với trò chơi một người chơi, tăng cơ hội hoàn thành dự án đầu tiên của bạn.


Dự án đầu tiên của bạn

Chà, ở đây chúng ta đến với câu hỏi chính - chính xác thì bạn nên bắt đầu từ đâu nếu muốn tạo trò chơi?


Bước 1: Chọn công cụ của bạn

Giả sử ngay từ đầu chúng ta đã hiểu đại khái về loại trò chơi mà chúng ta muốn tạo ra. Chúng tôi biết loại ngôn ngữ lập trình nào được sử dụng chủ yếu và chúng được sử dụng trong công cụ nào. Đây là giai đoạn phải chọn ngôn ngữ và công cụ này. (Tôi khuyên bạn nên bắt đầu với C#. Bạn sẽ cần C++ để tạo ra các lượt truy cập AAA, nhưng hãy để dành điều đó cho lần sau khi chúng ta có được kinh nghiệm.) Vì vậy, tổ hợp ngôn ngữ-công cụ của chúng ta có thể là C# + Unity . Đây là nhu cầu và là một sự lựa chọn tuyệt vời.



Quan niệm sai lầm phổ biến


Bước 2: học ngôn ngữ

Đây là một điểm quan trọng: không bắt đầu với công cụ, hãy chọn ngôn ngữ trước . Nếu không có ngôn ngữ, bạn sẽ không thể học engine một cách hiệu quả; đơn giản là bạn sẽ không hiểu bất cứ điều gì trong các ví dụ và tài liệu và bạn sẽ chỉ bị nhầm lẫn. Lý tưởng nhất là bạn không nên bắt đầu học game engine trước khi thành thạo ngôn ngữ này và có thể tự tin viết các chương trình đơn giản.


Để cải thiện kỹ năng lập trình của bạn, hãy xem các dự án như Trò chơi mã hóa nơi bạn có thể thực hành viết nhiều thuật toán khác nhau dưới dạng trò chơi nhỏ. Những nhiệm vụ này không phức tạp như LeetCode và các nhiệm vụ ở đó thú vị hơn đối với người mới bắt đầu. Ngoài ra, nó còn có cộng đồng riêng và như tôi đã nói trước đây, cộng đồng này rất quan trọng đối với bất kỳ nhà phát triển có năng lực nào.


Bước 3: động cơ

Sau khi đã nắm vững ngôn ngữ của mình một chút, cuối cùng bạn cũng có thể bắt đầu nghiên cứu động cơ. Vào năm 2023, có rất nhiều thông tin về chủ đề này: Internet có đầy đủ tài nguyên; hàng tá kênh YouTube cho mọi thứ bạn chọn. Ngoài ra, như tôi đã nói, Unity cực kỳ phổ biến nên không thiếu nguyên liệu.


Bạn có thể tìm thấy giải pháp video cho bất kỳ vấn đề nào của người tạo công cụ (có sẵn trực tiếp trên Unity Hub mà bạn sẽ cài đặt khi bắt đầu), trong tài liệu chi tiết , hoặc trên mạng. Bạn cũng có thể tham gia cộng đồng Discord được tôn trọng, nơi mọi người chia sẻ câu chuyện thành công của họ và giúp đỡ lẫn nhau. Có hàng tá; ví dụ: nếu bạn cần thứ gì đó đã được thử nghiệm theo thời gian, hãy thử Brackeys .


Những bước tiếp theo của cuộc hành trình

Đó là ba bước cơ bản để bắt đầu và từ đó, con đường của bạn có thể tiếp tục. Hãy để tôi đưa ra một phác thảo gần đúng.


Sau khi bạn tìm hiểu được một chút về ngôn ngữ và công cụ đã chọn, hãy thử tạo một trò chơi đơn giản . Bất kỳ trò chơi nào, kể cả tic-tac-toe. Làm mọi thứ như bạn muốn - không có giới hạn. Bạn phải tự viết mã. (Tránh dán sao chép từ Stack Overflow , dù sao đây cũng là một tài nguyên rất hữu ích). Tiêu chí chính là trò chơi phải hoạt động.


Tiếp theo, hãy nghĩ ra một số tính năng mới cho trò chơi và thử thêm chúng vào . Ví dụ: nếu bạn đang tạo một trò chơi đi cảnh, hãy thử tạo một tính năng có thể thay đổi trọng lực của cấp độ khi nhấn nút; hoặc khả năng dịch chuyển từ phần này sang phần khác.


Hãy cố gắng ghi lại việc thêm điều gì đó mới vào bản thảo làm việc của bạn dễ/khó đến mức nào. số tiền bạn cần để thay đổi cấu trúc của mã, v.v. Sau đó, nghiên cứu các phương pháp hay nhất, xem cách các nhà phát triển khác đề xuất tổ chức dự án và mã (OOP, SOLID, KISS) và viết lại trò chơi, có tính đến kiến ​​thức mới của bạn.


Sau đó, hãy nghĩ ra một tính năng mới và tạo ra nó bằng kiến ​​thức mới đó . Hãy tính đến việc mã được cải tiến giúp bạn thêm tính năng mới dễ dàng hay khó khăn hơn và bạn có thể tìm thấy bao nhiêu lỗi.


Dần dần, qua nhiều lần lặp lại, hãy tăng thêm độ phức tạp cho dự án và viết lại nó với những bài học bạn đã học được.



Vâng, nó xảy ra...



Giả sử bạn không đi tắt, bạn sẽ thấy các quyết định bạn đưa ra ảnh hưởng hoặc giúp triển khai các tính năng mới như thế nào. Một trong những tiêu chí chính về chất lượng mã là mức độ dễ dàng thực hiện các thay đổi của dự án. Thật không may, không có luật rõ ràng về vấn đề này; tất cả đều đi kèm với kinh nghiệm.


Nếu bạn không muốn tạo các trò chơi đơn giản, thay vào đó, bạn có thể bắt đầu bằng cách mã hóa các cơ chế riêng lẻ . Ví dụ: bạn có thể bắt đầu bằng cách tạo ra một chiếc “ô tô” thô sơ bao gồm một vài khối được điều khiển trên một bề mặt nào đó - sau đó, dần dần thêm các cơ chế khác vào hỗn hợp.


Sau đó, bạn có thể nghĩ ra một trò chơi phức tạp hơn — và lại thực hiện nhiều lần lặp lại để cải thiện dự án. Nếu bạn nhận được một kết quả thú vị, cuối cùng bạn có thể thử phát hành trò chơi này trong các cửa hàng.


Phát hành trò chơi đầu tiên của bạn

Bạn có thể thử phát hành qua Itch.io , nếu bạn chưa muốn tham gia vào các nền tảng lớn. Ở đó, bạn có thể tích lũy kinh nghiệm trong các lĩnh vực phát triển trò chơi có liên quan khác và quan trọng nhất - thu thập phản hồi từ người khác. Nó có thể không phải lúc nào cũng mang tính xây dựng, đặc biệt nếu đối với các dự án đơn giản dành cho người mới bắt đầu. Nhưng một chút phản hồi sẽ giúp bạn phát triển và trở thành một lập trình viên giỏi hơn.


Tôi có thể cung cấp cho bạn một mẹo nhỏ liên quan đến việc phát hành trò chơi: trò chơi trên web/trình duyệt . Mặc dù định dạng này dường như đã không còn phổ biến do người dùng hiện chủ yếu chơi trên thiết bị di động, PC hoặc bảng điều khiển, nhưng trò chơi trên web vẫn có đủ lượng khán giả, vì vậy bạn có thể thử khởi động dự án đầu tay của mình như một dự án. Điều này cũng dễ dàng hơn nhiều so với việc phát hành nó dưới dạng trò chơi gốc trên thiết bị di động.


Sự cạnh tranh trong trò chơi dành cho thiết bị di động rất khốc liệt và trò chơi của bạn rất có thể không được chú ý nếu nó không được quảng cáo — và rất khó để quảng bá một dự án nếu không có nhà phát hành. Đối với trò chơi trên web, có các cổng đặc biệt (ví dụ: Armor Games, Newgrounds, WebGames ) lưu trữ các dự án này: rất dễ phát hành ở đó và thậm chí bạn có thể kiếm được thứ gì đó từ quảng cáo. Đừng quá hy vọng, nhưng nếu điều đó xảy ra thì đó là một phần thưởng thú vị.


Một cảnh báo nhỏ về cách tiếp cận “no-code”

Bây giờ, một cảnh báo nhỏ. Ngày nay, cách tiếp cận “không cần mã” rất phổ biến. Đây là khi một dự án được tạo mà không cần viết mã. (Nó còn được gọi là “lập trình nhấp chuột”). Lời khuyên của tôi? Tốt hơn là tránh xa cách tiếp cận này.


Những cách tiếp cận không cần mã này rất lý tưởng để thử cơ chế trò chơi hoặc xây dựng một nguyên mẫu đơn giản. Nhưng chúng tôi có một mục tiêu tổng thể khác — và việc lắp ráp một trò chơi đơn giản không có mã sẽ không đưa bạn đến gần hơn với việc trở thành nhà phát triển.


Hãy nhớ rằng: việc đọc các bài báo và xem hướng dẫn trên YouTube không thể thay thế được việc thực hành. Chỉ bằng cách tạo ra một số dự án (và thực sự là một số, không chỉ một), bạn mới học được điều gì đó có ý nghĩa. Để vạch ra con đường trở thành một lập trình viên trong lĩnh vực phát triển trò chơi, mục tiêu ở đây là đi từng bước một, từ đơn giản đến phức tạp.


Tôi đã cố gắng đưa ra một số lời khuyên về việc bắt đầu phát triển trò chơi và bắt đầu lập trình trò chơi. Chọn ngôn ngữ và công cụ phù hợp, sự kiên trì và kiên trì, thu thập phản hồi và xem xét nội tâm - tất cả đều rất quan trọng. Nhưng có một thành phần khác trong quá trình này không thể bỏ qua: vui vẻ.


Nếu bạn không đam mê trò chơi và không chơi chúng, rất có thể, công việc mạo hiểm này sẽ chẳng mang lại kết quả gì; một sự thật đáng buồn về cơ bản áp dụng cho bất kỳ công việc sáng tạo nào. Nếu không có niềm vui, nó sẽ trở thành thói quen kiếm tiền. Chắc chắn, dù sao thì bạn cũng có thể mất hứng thú trong nhiều năm sau đó, nhưng hy vọng đến lúc đó, bạn sẽ thành đạt và có thể lựa chọn giữa một số công việc liên quan hoặc bạn sẽ kiếm đủ tiền để làm điều gì đó mới mẻ và thú vị cho mình vào thời điểm đó.

Đặc biệt khi bắt đầu cuộc hành trình, chỉ làm mà không chơi chắc chắn sẽ dẫn đến kiệt sức và thất vọng.


Vì vậy, lời khuyên cuối cùng của tôi: hãy tìm kiếm điều khiến bạn đam mê , điều thúc đẩy bạn làm việc ngày đêm cho một dự án (tất nhiên, bạn không nên làm điều này theo nghĩa đen!) Một khi bạn tìm thấy động lực thúc đẩy của mình, điều đó nếu không thì một thói quen điển hình sẽ trở thành một thử thách thú vị, hấp dẫn - và điều này chắc chắn sẽ đẩy nhanh tốc độ phát triển nghề nghiệp của bạn!


Cũng được xuất bản ở đây.