C ++ có cần thiết để học nếu tôi muốn có một công việc trong ngành công nghiệp game không?


17

C ++ có cần thiết để học nếu tôi muốn có một công việc trong ngành công nghiệp game không? Tôi cực kỳ quen thuộc với C # và có kiến ​​thức cơ bản về việc tạo các trò chơi 2D trong XNA 4.0. Hiện tại tôi chỉ mới 13 tuổi và yêu thích làm game, và hy vọng một ngày nào đó sẽ có được một công việc lập trình trò chơi. Tôi đã nghe rất nhiều người nói rằng C ++ là 'tiêu chuẩn công nghiệp' và nó sẽ làm tổn thương sự nghiệp của bạn khi không biết điều đó. Tôi cũng đang cố gắng nhắm mục tiêu nhiều nền tảng hơn chỉ là các cửa sổ và tôi biết về Monogamenhưng vì một số lý do tôi gặp nhiều rắc rối với các mẫu studio hình ảnh và tôi tìm thấy nhiều lỗi với monogame. Vì về mặt kỹ thuật tôi chưa thể có được một công việc, và có lẽ không thể có được một công việc lập trình cho đến khi tôi 22 tuổi hoặc một cái gì đó (trừ khi tôi tự làm việc). Và trong khoảng thời gian hơn 9 năm đó, ngành công nghiệp game rất có thể sẽ thay đổi rất nhiều. Vì vậy, đây là một số câu hỏi

  • Sẽ không học C ++ làm tổn thương cơ hội của tôi khi nhận một công việc lập trình?
  • Khi tôi có thể có một công việc, C ++ sẽ vẫn là ngôn ngữ lập trình 'tiêu chuẩn công nghiệp'
  • Nếu tôi là một nhà phát triển độc lập, điều đó có thực sự quan trọng cho dù tôi có học C ++ hay không, và gắn bó với những gì tôi biết?
  • Tôi thậm chí có nên bắt đầu học nó bây giờ không vì tôi có nhiều năm trước khi tôi có thể kiếm được một công việc?

Tôi cũng lo lắng rằng mặc dù tôi đã quen với lập trình hướng đối tượng, tôi có thể dành nhiều thời gian cho C ++, và rất bực bội và bối rối, sau đó bỏ học, và đến lúc này tôi đã quên rất nhiều XNA và tôi phải học mọi thứ Vì vậy, trong ngắn hạn: tôi có nên học C ++ nếu tôi muốn có một công việc lập trình?

CẬP NHẬT

Cảm ơn tất cả các câu trả lời và đề xuất của bạn. Gần đây tôi đã chọn SFML và C ++ và nó đang hoạt động khá tốt. Tôi đang hiểu rõ về C ++ và bắt đầu mở to mắt để không lo lắng về việc học những điều mới bởi vì tôi có thể chuyển tất cả kiến ​​thức về C # của mình để làm cho C ++ dễ học hơn. Cảm ơn tất cả các bạn một lần nữa.


4
Cần lưu ý rằng thực sự có nhiều việc làm trong ngành công nghiệp trò chơi không mã hóa hơn so với những công việc đang viết mã. Các nghệ sĩ, quản lý dự án, người thử nghiệm hộp đen, nhà thiết kế, bán hàng, v.v. Ngoài ra, có nhiều công việc trong các ngôn ngữ khác kết hợp hơn là chỉ có trong C ++. Vì vậy, theo thống kê, không, bạn không cần phải học C ++ để có việc làm trong ngành.
MichaelHouse

1
Nó chắc chắn sẽ không làm tổn thương cơ hội của bạn. Công ty mà tôi làm việc hiện đang sử dụng nghiêm ngặt C # và Unity để phát triển trò chơi và không yêu cầu C ++. Tuy nhiên, C ++ vẫn được coi là một điểm cộng bởi vì nó dạy rất nhiều khái niệm hữu ích có thể được áp dụng ở nơi khác. Tôi khuyên bạn nên tập trung vào một ngôn ngữ bạn biết cho dự án độc lập của mình nhưng hãy dành một chút thời gian để học C ++ khi bạn có thể (chỉ để trải nghiệm).
Benjamin Danger Johnson

2
Nếu bạn là nhà phát triển chuyên nghiệp, bạn không thể luôn chọn và chọn công cụ của mình. Ví dụ, tôi ghét Java và MATLAB với niềm đam mê. Tuy nhiên, thỉnh thoảng tôi chỉ cần nín thở và vượt qua. Vì vậy, chỉ cần thoát khỏi rên rỉ của bạn và tìm hiểu C ++. Học thêm một vài ngôn ngữ nữa trong khi bạn đang ở đó.
drxzcl

Học C ++ trong khi bạn có thể.
jcora

Tôi cảm thấy như bài viết này là quan trọng đọc cho câu hỏi này.
Andrew Russell

Câu trả lời:


23

Tôi muốn tập trung vào câu hỏi thứ ba của bạn, bởi vì nó nằm trong lĩnh vực kiến ​​thức của tôi (nhà phát triển độc lập):

Tôi đã không viết một dòng mã C ++ trong nhiều năm. Và trên thực tế, tôi đã quên rất nhiều chi tiết khó chịu (và trong C ++ có rất nhiều trong số đó). Tôi làm hầu hết công việc của mình trong C #. Và bạn hoàn toàn không phải học C ++.

Tuy nhiên , các kỹ năng tôi có được từ việc học C ++ - đặc biệt là các công cụ cấp thấp, đặc biệt là cách bộ nhớ và con trỏ hoạt động - đã được chứng minh là vô giá.

Ngoài ra, đã có một vài lần tôi phải đọc mã C ++ của người khác. Nếu bạn biết cách lập trình bằng C # hoặc Java, bạn có thể đoán được chuyện gì đang xảy ra - nhưng biết thì tốt hơn nhiều.


Đề nghị của tôi cho bạn , cụ thể, là học C ++ ngay bây giờ. Ở tuổi của bạn, bạn có nhiều thời gian để dành cho việc học. Bằng cách đó, bạn sẽ không phải lo lắng về việc chọn C ++ trong khi bạn đang cố gắng phát triển một trò chơi hoặc tìm việc làm.

Đừng lo lắng về việc quên các chi tiết, nếu bạn ngừng sử dụng C ++ vì một số lý do (hoặc XNA hoặc bất cứ điều gì khác). Các khái niệm quan trọng hơn. Và bạn sẽ có thể lấy lại các chi tiết một cách dễ dàng nếu bạn phải.


Như các câu hỏi khác của bạn gợi ý - chúng tôi không biết ngành công nghiệp sẽ như thế nào trong một thập kỷ. Mặc dù tôi đoán C ++ vẫn sẽ được sử dụng khá phổ biến. Nói ngay bây giờ - biết C ++ sẽ giúp bạn tăng đáng kể khả năng tuyển dụng - ngay cả tại một cửa hàng không phải C ++.


7

Nếu bạn muốn trở thành một lập trình viên trò chơi, có lẽ bạn không thể tránh học C ++. Nếu bạn muốn có một công việc khác trong ngành công nghiệp trò chơi, như nhà sản xuất hoặc nghệ sĩ, thì bạn không cần C ++.

C ++ thật khó. Nhiều người không học nó cho đến khi học đại học. Bạn có nhiều thời gian Làm việc với một số ngôn ngữ khác để đạt được tốc độ trên các khái niệm lập trình cơ bản. Bắt đầu nhỏ và thực hiện từng bước một.


2
Tôi sẽ tranh luận theo cách khác. C ++ là ngôn ngữ được coi là gần với phần cứng hiện nay và bạn nhất thiết phải học một vài điều về kiến ​​trúc máy tính mà bạn sẽ không học với ngôn ngữ cấp cao hơn như C #, chủ yếu là về cấp phát bộ nhớ và địa chỉ. Nếu bạn đã học C # trước và cảm thấy thoải mái với nó, có lẽ bạn sẽ bị xa lánh bởi các vòng lặp bổ sung mà bạn phải vượt qua với C ++ so với.
Hackworth

6

Bạn có rất nhiều thời gian để học, vì vậy tôi không nghĩ bạn nên quá lo lắng về việc bạn sử dụng ngôn ngữ nào, nhưng tôi sẽ nêu một số điều mà bạn có thể thấy hữu ích:

  1. C ++ là một ngôn ngữ trong khi XNA là một khung. XNA sẽ không được Microsoft cập nhật nữa, vì vậy tôi thấy thật khó để tưởng tượng nó sẽ được sử dụng 9 năm kể từ bây giờ với bất kỳ khả năng nghiêm trọng nào. Mặt khác, C ++ đã tồn tại mãi mãi, có một ủy ban tiêu chuẩn tích cực cam kết cải thiện nó và cung cấp cho các nhà phát triển nhiều quyền kiểm soát phần cứng đến mức sẽ có một bước nhảy vọt về sức mạnh phần cứng để khiến điều khiển này không cần thiết và do đó cho phép một ngôn ngữ khác thay thế nó làm tiêu chuẩn defacto cho các trò chơi hiệu suất cao.

  2. Học các khái niệm là phần quan trọng, không phải là ngôn ngữ bạn triển khai chúng. Bạn có thể "học" một ngôn ngữ mới khá nhanh nếu bạn đã hiểu các nguyên tắc cơ bản của nó.

  3. C ++ sẽ yêu cầu bạn tìm hiểu về các vấn đề về con trỏ và bộ nhớ ở mức độ sâu hơn nhiều so với C #, vì vậy tôi sẽ khuyên bạn nên tìm hiểu nó tại một số điểm bất kể việc sử dụng nó trong công nghiệp.

  4. Lo lắng của bạn về việc quên mọi thứ có lẽ là không có cơ sở. Đúng là bạn sẽ quên mọi thứ nhưng chi tiết cụ thể không thực sự là phần quan trọng. Bạn sẽ không quên cách thiết kế một trò chơi bằng cách chuyển đổi ngôn ngữ.

Bạn dường như có lý do để không học C ++, tôi nghĩ rằng bạn thực sự chỉ đang cố gắng hợp lý hóa mong muốn của bạn để không học cái gì đó mới.

Hãy nghĩ về nó theo cách này: nếu bạn học C ++ và hóa ra nó sẽ không được sử dụng trong tương lai, bạn có nhiều năm để học những gì và tôi sẽ đảm bảo rằng việc học C ++ sẽ giúp bạn làm điều này. Nếu bạn tình cờ quên tất cả XNA của mình và không quản lý để học C ++, tốt hơn là tìm ra điều này và tiến về phía trước hơn là lo lắng về các khả năng. Tôi không nghĩ một trong hai trường hợp là rất có thể.


4

Lời khuyên chung: đừng tập trung vào những gì bạn cần học hoặc những gì bạn nên học. Chỉ cần làm một cái gì đó.

Để trả lời câu hỏi cụ thể của bạn, Microsoft sẽ không còn cập nhật XNA nữa, vì vậy rất có thể nó sẽ không còn tồn tại lâu nữa. C ++ là một tiêu chuẩn công nghiệp được thiết lập tốt và sẽ không sớm rời đi. Nếu bạn muốn làm việc trên các trò chơi AAA, thì có. Kinh nghiệm C ++ sẽ là cần thiết.


Lời khuyên tuyệt vời, +1. Mặc dù tôi thành thật nghĩ rằng học ngôn ngữ mới cũng rất quan trọng.
jcora

Yannbane: Nhưng điều đó không đến thứ yếu? Khi OP tạo ra những thứ họ sẽ khám phá ra những gì họ cần học và học nó trong quá trình này. Một khi bạn biết rõ một ngôn ngữ, việc học những ngôn ngữ khác thường khá dễ dàng.
Zach Latta

Err, không, nó không phải là. Bạn cần một chút của cả hai, hoặc khóa học, nhưng học ngôn ngữ quan trọng hơn là có dự án. Và không, chỉ vì bạn biết C # không có nghĩa là bạn biết C ++. Và nếu dễ thì bạn thường xuyên thấy những người biết hơn 6 ngôn ngữ.
jcora

1

Vì câu hỏi đã được trả lời rồi, hãy để tôi chỉ cần lấp đầy một vài lỗ hổng ở đây và đó ...

Tôi cũng lo lắng rằng mặc dù tôi đã quen với lập trình hướng đối tượng, tôi có thể dành nhiều thời gian cho C ++, và rất bực bội và bối rối, sau đó bỏ học, và đến lúc này tôi đã quên rất nhiều XNA và tôi phải học mọi thứ Vì vậy, trong ngắn hạn: tôi có nên học C ++ nếu tôi muốn có một công việc lập trình?

Trường hợp bạn có ý tưởng này về C ++ là một ngôn ngữ quái vật khủng khiếp? Nó không thể! Nó thực sự rất thú vị.

Thật vậy, bạn có thể tiến gần đến phần cứng, thực sự có hai lợi ích: bạn tìm hiểu nhiều hơn về cách máy tính thực sự hoạt động, và thứ hai bạn có nhiều năng lượng hơn trong tay so với C #.

Nhưng một lần nữa, C ++ có các phương thức trừu tượng tuyệt vời và có các thư viện rất hữu ích, vì vậy nó không giống như bạn thực sự sẽ giao tiếp với card đồ họa (bạn chắc chắn có thể) - nó sẽ bị trừu tượng hóa.

Biết bất kỳ ngôn ngữ nào cũng rất hữu ích, có cơ hội tốt để tăng xác suất được tuyển dụng và chắc chắn giúp bạn trở thành một lập trình viên giỏi hơn.

Khi bạn có thời gian, hãy xem JavaScript và / hoặc Python. Những người khác cũng có thể đề nghị Lisp, nhưng tôi không am hiểu khi nói về nó, vì vậy tôi sẽ không nói bất cứ điều gì. Nhưng dù sao nó cũng có thể hữu ích để kiểm tra nó, tôi nghĩ nó khá gọn gàng ngay cả với sự hiểu biết hạn chế của tôi về các khái niệm của nó. Có Haskell quá nhưng bleh.

Và trong khoảng thời gian hơn 9 năm đó, ngành công nghiệp game rất có thể sẽ thay đổi rất nhiều.

Thật. Nhưng hãy đoán xem: trong hơn 9 năm nữa, chúng ta vẫn sẽ sử dụng lắp ráp, C ++ và C. Tôi nghi ngờ rằng các nhà phát triển trò chơi sẽ đột nhiên quyết định rằng họ có đủ tài nguyên và ngừng đẩy các giới hạn của máy móc. Tất nhiên, đây chỉ là dự đoán, nhưng tất cả những ngôn ngữ đó đều cũ hơn tôi rất nhiều, vì vậy tôi nghĩ rằng tôi đúng.

Bên cạnh đó, bằng cách học C ++, bạn sẽ dễ dàng chuyển sang ngôn ngữ trung cấp mới tiềm năng hơn.

Vì về mặt kỹ thuật tôi chưa thể có được một công việc, và có lẽ không thể có được một công việc lập trình cho đến khi tôi 22 tuổi hoặc một cái gì đó (trừ khi tôi tự làm việc).

Tôi khá chắc chắn rằng bạn đã sai ở đây. Bạn sẽ có thể có được một công việc trong một vài năm thực sự. Tôi nghĩ có nghĩa là 2 theo luật của đất nước tôi. Nhưng không phải là một công việc toàn thời gian.

Vẫn có những lựa chọn để làm việc khi tan trường, và nếu bạn giỏi, và có lẽ bạn là như vậy, thì chắc chắn sẽ có một công ty phát triển muốn thuê bạn. Một công ty gamedev? Chắc là không. Nhưng không có lý do gì bạn thực sự muốn làm việc như một người mới bắt đầu, AFAIK bạn có thể được trả lương cao hơn trong một công ty bình thường và làm việc trong một trò chơi trong thời gian rảnh.

Bên cạnh đó, chỉ cần nhìn vào tên của bạn, gần như bạn đã làm quen với niềm vui của lập trình C ++!


1

Tôi chưa kinh doanh (tôi 17 tuổi), nhưng tôi nghĩ thực sự cần phải khám phá các ngôn ngữ và công nghệ mới. Trong khi bạn có thời gian ngay bây giờ, hãy tìm hiểu C ++, OpenGL và Java. Nắm vững những điều này cần một chút thời gian (tôi mất 5 năm, vì vậy tôi bắt đầu ở cùng độ tuổi với bạn bây giờ), nhưng kinh nghiệm bạn có được thực sự đáng kinh ngạc.

Một điều tốt để thử là tạo một bản sao Minecraft trong Java và OpenGL. Điều này sẽ cung cấp cho bạn cái nhìn sâu sắc về rất nhiều kỹ thuật gamedev và sẽ học cho bạn RẤT NHIỀU kỹ thuật tối ưu hóa. Đó là khi tôi đã làm ở tuổi 16. Bạn có thể xem kết quả của việc này tại: CraftMania . Tại sao tôi khuyên bạn nên bắt đầu với Java là vì nó dễ lập trình. Có một trình thu gom rác và xử lý ngoại lệ gọn gàng. Điều này cho phép bạn học OpenGL rất hiệu quả, không làm phiền tất cả những khó khăn mà C ++ gặp phải đối với một nhà phát triển chưa có kinh nghiệm.

Khi bạn cảm thấy như mình thành thạo Java kết hợp với OpenGL, hãy xem C ++ và thử thực hiện một số điều dễ dàng (chưa có trò chơi nào). Khi bạn nghĩ rằng bạn hiểu cách C ++ được biên dịch và hoạt động trong thời gian chạy và biết cách tổ chức bộ nhớ trong C ++, THEN hãy xem SDL để tạo ra một trò chơi dễ dàng.

Tại sao tôi tập trung vào OpenGL? Bởi vì OpenGL chạy trên mọi nền tảng ngoại trừ XBox360. Đây là: Windows, Linux, OS X, Android, iOS, BlackBerry, Wii, DS, PS3, PSP, v.v ... Khi bạn chỉ thành thạo Xna và DirectX, bạn bị ràng buộc với Windows và XBox360. Tôi nghĩ rằng đây là một lý do tốt để học OpenGL và C ++ nếu bạn muốn có một công việc lập trình trong ngành công nghiệp trò chơi.


0

Câu trả lời của tôi sẽ là nó thực sự phụ thuộc vào những gì bạn muốn làm trong ngành công nghiệp trò chơi. Hiện tại nếu bạn muốn tạo trò chơi console AAA, C ++ là điều bắt buộc. Không có ngôn ngữ nào khác sẽ cho phép bạn tận dụng các nguồn lực hạn chế bạn có trên bảng điều khiển.

Trong một thời gian dài, C ++ là ngôn ngữ chung của ngành công nghiệp trò chơi, nhưng với sự ra đời của iPhone và Unity, giờ đây có thể tạo ra các trò chơi phong nha bằng các ngôn ngữ như C # và Objective-C. Ngay cả HTML 5 cũng có khả năng tạo trò chơi ngay bây giờ. Thực tế đơn giản là, có rất nhiều lựa chọn ngoài kia.

Ở tuổi của bạn, bạn vẫn còn nhiều thời gian để tìm hiểu và xem ngành công nghiệp phát triển như thế nào. Lời khuyên của tôi cho bạn sẽ là: đừng tập trung vào ngôn ngữ. Tập trung vào việc học cách tạo trò chơi và / hoặc tạo mod cho các trò chơi ngoài kia. Một ý tưởng có thể là lấy Minecraft và tìm ra cách tạo mod bằng Java. Không có gì tốt hơn khi thấy rằng bạn có thể thay đổi cách hành xử của một trò chơi, ngay cả khi bạn không thực sự phát hành bất kỳ bản mod nào.

Ở tuổi của bạn, tôi đã tạo ra các trò chơi bằng cách sử dụng Basic (trên Commodore 64). RPG Maker và sau đó sử dụng Java để mod game. Tôi thậm chí đã không chạm vào C ++ cho đến khi tôi khoảng 18 tuổi để bạn vẫn còn nhiều thời gian để phát triển.

Để trả lời câu hỏi thực tế của bạn:

  • Sẽ không học C ++ làm tổn thương cơ hội của tôi khi nhận một công việc lập trình?

Ở giai đoạn này không có cách nào để nói. Có thể mất tới 10 năm trước khi bạn bắt đầu tìm kiếm một công việc 'thực sự' và công nghệ đang phát triển cực kỳ nhanh chóng.

  • Khi tôi có thể có một công việc, C ++ sẽ vẫn là ngôn ngữ lập trình 'tiêu chuẩn công nghiệp'

Xem câu trả lời trên.

  • Nếu tôi là một nhà phát triển độc lập, điều đó có thực sự quan trọng cho dù tôi có học C ++ hay không, và gắn bó với những gì tôi biết?

Không. Điều quan trọng là có bao nhiêu game bạn hoàn thành và phát hành.

  • Tôi thậm chí có nên bắt đầu học nó bây giờ không vì tôi có nhiều năm trước khi tôi có thể kiếm được một công việc?

Không bao giờ là quá sớm để bắt đầu học, cũng không bao giờ là quá muộn.

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.