Bộ kỹ năng cơ bản mà một lập trình viên trò chơi chuyên nghiệp cần phải có là gì? [đóng cửa]


11

Tôi có một câu hỏi rất chung chung làm phiền tôi nhưng tôi muốn thêm một số chi tiết đầu tiên. Tôi là một lập trình viên Java cốt lõi. Tôi đã độc lập tạo ra một số trò chơi nhỏ trong Java để giải trí. Bây giờ, càng nhìn vào phát triển game chuyên nghiệp, tôi càng bối rối. Điều này là do, bất cứ khi nào tôi Google về một số chủ đề phát triển trò chơi hoặc truy cập bất kỳ diễn đàn nào, v.v., tôi đều bắt gặp các đề xuất khác nhau.

Một số người sẽ nói C ++ là tốt, trong khi một số người sẽ nói JAVA có thể tốt hơn, trong khi những người khác sẽ nói một số ngôn ngữ khác là ngôn ngữ ur, như Python, Lua, UnrealScript, v.v. Ngoài ra, người ta nên biết rằng các công cụ trò chơi như Unreal, Torque, Blender, Panda, v.v. và kiến ​​thức về OpenGL, AI, Phát hiện va chạm là bắt buộc. Tôi thậm chí đã tạo ra một trò chơi bằng Android SDK.

Điều tôi muốn hỏi là:

  • Bộ kỹ năng cơ bản mà một lập trình viên trò chơi chuyên nghiệp cần phải có là gì? Có phải là bất kỳ 1 Ngôn ngữ lập trình + 1 ngôn ngữ lập trình + 1 kiến ​​thức về công cụ trò chơi + OpenGL không? (Phù !!)
  • Nếu tôi muốn tham gia vào ngành công nghiệp trò chơi với tư cách là lập trình viên trò chơi hoặc lập trình viên AI thì tôi có thể tham gia vào nó với các kỹ năng và danh mục đầu tư hiện tại của mình không (như đã nêu ở trên)?
  • Học một ngôn ngữ lập trình có đủ cho Phát triển Trò chơi không?

Bất kỳ hướng dẫn sẽ hữu ích.

Câu trả lời:


6
  1. Bạn nên thành thạo và có năng lực với ít nhất một ngôn ngữ lập trình. Làm như vậy sẽ giúp bạn chọn ngôn ngữ khác dễ dàng hơn. Loại công việc bạn đang ứng tuyển phụ thuộc vào ngôn ngữ mà bạn có thể nên biết trước khi ra tay. Hầu hết ba tựa game A được phát hành trên PC và console rất có thể sẽ được phát triển trong C ++. Mặt khác, các ứng dụng và trò chơi di động rất có thể sẽ sử dụng Java (Google Android và các điện thoại khác) hoặc Objective-C (iPhone). Nếu bạn xem qua danh sách công việc cho các kỹ sư phần mềm trên các trang web của nhà phát triển, nó thường sẽ đề cập đến trải nghiệm ngôn ngữ bạn cần có. Ví dụ: "Thành thạo và có kiến ​​thức về C ++" hoặc "Trải nghiệm với C ++ trong ít nhất hai năm." Học một ngôn ngữ kịch bản sẽ không làm tổn thương bạn. Nó sẽ chỉ có lợi cho bạn. Học luôn lợi ích, và không bao giờ bị tổn thương. Bạn không cần phải có kiến ​​thức làm việc về bất kỳ công cụ trò chơi nào, nhưng nếu bạn đang nộp đơn vào một công ty sử dụng công cụ cụ thể đó, điều đó có thể sẽ giúp bạn tiếp tục. Nếu bạn là một chuyên gia về Công cụ nguồn, nhưng bạn áp dụng cho phần mềm id và không biết gì về các công cụ công nghệ id, điều đó không thực sự siêu hữu ích (nhưng việc học có lý do luôn có lợi).

  2. Nếu bạn đã hoàn thành các dự án từ đầu đến cuối và bạn cho thấy rằng bạn có, thì tôi nghĩ điều đó sẽ giúp thúc đẩy bạn tiếp tục. Tôi không chắc chắn về rất nhiều bản demo công nghệ. Rất nhiều người dường như đang thực hiện các bản demo công nghệ và họ không có bất kỳ hoặc một vài dự án trò chơi nào được hoàn thành. Lập trình trò chơi có xu hướng là một jr. cấp độ vị trí, vì vậy, tùy thuộc vào sơ yếu lý lịch của bạn, bạn sẽ có thể tìm một công việc ở đâu đó.

  3. Tôi nghĩ rằng biết một ngôn ngữ và có thể sử dụng thành thạo và thành thạo sẽ tốt hơn so với việc biết 5 ngôn ngữ và hầu như không biết cách sử dụng chúng.

Tuyên bố miễn trừ trách nhiệm: Chưa bao giờ làm việc trong ngành công nghiệp, đây chỉ là những ý kiến ​​của tôi được hình thành sau khi đọc một số chủ đề và bài viết về công việc lập trình trò chơi, dựa trên những gì tôi nghĩ là những bài báo / ý kiến ​​hợp lý nhất mà tôi đã đọc.


7
Tôi sẽ tăng điểm 1 với "kiến thức về một ngôn ngữ lập trình sử dụng con trỏ ." Con trỏ là một yêu cầu cơ bản để hiểu những gì đang diễn ra với một ngôn ngữ không bao giờ có kinh nghiệm với chúng có thể là một bất lợi rất lớn khi đi đến một ngôn ngữ cần chúng. C ++ cực kỳ phổ biến đối với các trò chơi không phải là web, vì vậy bạn cũng có thể bắt đầu từ đó.
Tetrad

@ShaleighCrackers Bạn biết rằng bạn có thể thực hiện "Bullet Point" thực tế bằng trình chỉnh sửa, phải không? ;)
Ben

Bạn nên thể hiện để biết ít nhất một ngôn ngữ lập trình không được sử dụng rộng rãi trong công nghiệp nhưng có một số đặc điểm thú vị: điều này truyền đạt rằng bạn học vì quan tâm đến cơ hội, rằng bạn là một người đa âm hiểu các triết lý / cách tiếp cận khác nhau và bạn có thể (hy vọng ) hợp nhất tốt nhất của cả hai thế giới.
FxIII

2

Càng nghiên cứu chủ đề này và nói chuyện với các nhà phát triển game chuyên nghiệp, tôi càng nghĩ nó thực sự bắt nguồn từ một vài điều. Không theo thứ tự đặc biệt:

  • Có khả năng làm việc tốt với nhau trong bầu không khí đồng đội. Trò chơi xây dựng cần rất nhiều người, chỉ cần đọc các khoản tín dụng trong một số trò chơi AAA hiện nay mất hơn 10 phút, nếu bạn không thể làm việc tốt với mọi người và mục tiêu của bạn là làm việc với những người khác để tạo ra một trò chơi tuyệt vời thì tôi sợ đây không phải là ngành phù hợp. Đây là một trong những kỹ năng mềm thường được phát triển theo thời gian từ khi làm việc trên các dự án với người khác.
  • Tìm những gì bạn thích làm. Đây là loại kết thúc mở nhưng tìm hiểu những gì bạn thích về phát triển trò chơi và những kỹ năng bạn cần để thực hiện điều này. Tôi biết đây là loại câu trả lời bạn đang tìm kiếm, nhưng tôi có thể giải thích tất cả các kỹ năng bạn có thể cần là nhà phát triển động cơ, nhà phát triển đồ họa hoặc nhà phát triển trò chơi, nhưng bạn có thể tìm thấy rất nhiều thông tin đó khá dễ dàng trên mạng. Các kỹ năng của bạn sẽ cần liên kết chặt chẽ với những gì bạn quan tâm. Ví dụ: Đừng lo lắng về việc biết về OpenGL và DirectX nếu bạn thực sự quan tâm đến phát triển phía Máy chủ và ngược lại.
  • Thành thạo một ngôn ngữ cấp thấp Mặc dù đã nói ở trên, tôi đồng ý với các áp phích khác rằng ngôn ngữ cấp thấp là một ý tưởng tốt để học. Tôi biết khi tôi chuyển từ C # sang C ++, tôi đã học được rất nhiều về cách thức hoạt động của phép thuật C #, đây là kiến ​​thức giúp bạn hiểu rõ về cách giao tiếp hiệu quả với máy tính bất kể ngôn ngữ.
  • Hiểu kiến ​​trúc máy tính - Điều này không có nghĩa là bạn phải có bằng CE hoặc EE để thực sự hiểu mọi phần của kiến ​​trúc máy tính, nhưng biết những điều cơ bản về cách thức hoạt động của bộ nhớ, CPU và GPU. Bất kể lĩnh vực phát triển trò chơi mà bạn đi vào nó sẽ có lợi cho ít nhất là nắm bắt được cách thức hoạt động của những thứ này. Nếu bạn muốn nhảy vào lập trình Đồ họa hoặc lập trình Động cơ thì bạn sẽ cần hiểu nhiều hơn trong không gian này.

5
bạn thực sự cảm thấy già khi mọi người gọi C ++ là ngôn ngữ cấp thấp
dreta

@dreta Tôi không già và tôi cũng không xem đó là ngôn ngữ cấp thấp. Có lẽ phải làm với C ++ là ngôn ngữ đầu tiên tôi sử dụng.
Paul Manta

2

Rất nhiều phụ thuộc vào mục tiêu nghề nghiệp của bạn. Nếu tất cả những gì bạn muốn là "một trò chơi tạo việc làm" trước khi thực hiện 5,5 năm cần thiết và đốt cháy và rời đi, thì tôi đoán bạn chỉ cần nhìn vào cơ hội việc làm ở cấp nhập cảnh và tìm kiếm những gì họ muốn, tìm hiểu và áp dụng. Đơn giản. (Nhưng sau đó, nếu câu hỏi của bạn thực sự thuộc về "nỗ lực tối thiểu tôi cần phải bỏ ra để kiếm việc làm là gì?" Thì câu trả lời là "nếu bạn nỗ lực tối thiểu, bạn sẽ có được công việc tối thiểu! ")

Nhưng về lâu dài, tôi không nghĩ nhiều về việc biết một số ngôn ngữ hoặc học một ngôn ngữ cụ thể. Các ngôn ngữ thay đổi - mười năm trước không ai sử dụng Objective-C hoặc XNA hoặc C # hoặc AS3, và mười năm nữa, hãy yên tâm rằng mọi ngôn ngữ bạn học ngày nay sẽ bị lỗi thời.

Vì vậy, một điều để chứng minh bản thân trong tương lai là không chỉ "học một ngôn ngữ" mà còn học CÁCH để học các ngôn ngữ mới. Khi bạn đã thành thạo 3 ngôn ngữ hoặc lâu hơn, bạn sẽ thấy rằng việc chọn một ngôn ngữ mới không quá tệ. Dù sao, hầu hết các thành phần cốt lõi đều giống nhau - mọi ngôn ngữ đều có biến, mảng, vòng lặp, điều kiện, v.v., vì vậy đó chỉ là về việc học cú pháp.

Nửa còn lại của điều này là để hiểu các khái niệm cốt lõi của lập trình và khoa học máy tính. Hiểu quản lý bộ nhớ, con trỏ, đệ quy, v.v. Nếu bạn hiểu các khái niệm, bạn có thể áp dụng chúng trong hầu hết mọi ngôn ngữ.

Nếu bạn muốn làm cho mình có nhiều thị trường hơn, thì hãy học một chuyên ngành lập trình liên quan đến trò chơi, bất cứ điều gì bạn quan tâm ... AI, cơ sở dữ liệu, mạng, công cụ, bất cứ điều gì.


1

Có một kỹ năng rất quan trọng khác cần thiết mà dường như bị bỏ qua một chút. Bạn cần biết làm thế nào để hòa nhập và làm việc với một nhóm người, đi từ các nhà phát triển trò chơi khác, đến các nhà thiết kế và quản lý dự án và công cụ. Đó không phải là một kỹ năng kỹ thuật, nhưng nó vẫn rất quan trọng, vì bạn có thể là nhà phát triển tốt nhất trong nhà và nếu bạn không thể hòa đồng với mọi người, làm cho các trò chơi lớn sẽ trở thành một vấn đề!

Ngoài ra, vì TômCrackers có thể hiểu một ngôn ngữ tốt hơn so với việc biết 5 ngôn ngữ và hiểu được những gì diễn ra dưới ngôn ngữ mà bạn sử dụng thậm chí còn tốt hơn, vì đối với các trò chơi, bạn cần biết cách để có hiệu suất tốt nhất hết ngôn ngữ

Cuối cùng nhưng không kém phần quan trọng, biết một chút về phần cứng, đặc biệt là GPU sẽ không bị tổn thương!


0

Đối với lập trình trò chơi xã hội, có những kỹ năng chính là những kỹ năng duy nhất cần thiết.

  1. Kịch bản hành động chương trình (bạn có thể sử dụng môi trường hình elip và svn), phần này được sử dụng cho phần trước của trò chơi (trang web)

  2. Chương trình java (cũng có thể được thực hiện khi nhật thực sử dụng svn), điều này được sử dụng cho các hành động phía máy chủ để thực hiện từ các yêu cầu của trang web.

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.