Nội dung chính
Game Developer có phải chỉ cần chơi game giỏi là đủ? Để trở thành một người lập trình game thành công thì cần những kỹ năng nào? Tất cả sẽ được giải đáp trong bài viết này.
Đọc bài phỏng vấn của ITviec với anh Vũ Hoàng Sơn – Game Developer với hơn 11 năm kinh nghiệm – để nghe anh chia sẻ về:
- Game Developer là gì?
- Có phải chỉ cần chơi game giỏi là có thể trở thành Game Developer thành công?
- Sai lầm anh mắc phải và bài học rút ra
Xem thêm việc làm Game Developer tại ITviec
Game Developer là gì?
Lập trình game là gì?
Về mặt nội dung, lập trình game là lập trình sản phẩm phục vụ cho mục đích giải trí nên sẽ khác với những phần mềm khác chỉ phục vụ cho công việc của một công ty hoặc một mục đích nghiệp vụ nào đó. Nội dung của game đề cao nhu cầu giải trí, tính đa dạng.
Sẵn đang nói về game, theo anh Sơn, trong lĩnh vực phát triển game có hai khái niệm: game hay và game thành công.
- Game thành công là game có nhiều người chơi và mang lại thu nhập cho người làm game để họ tiếp tục làm những sản phẩm mới.
- Game hay là tuỳ vào sở thích của mỗi người.
Ví dụ có một game mà anh nhận định là nó vừa thành công và vừa hay là SimCity. Ra đời đầu tiên vào năm 1989, tới hiện tại game này đã có khoảng năm phiên bản và triệu triệu người chơi. Đây là một game thành công.
Trong đó, anh thích nhất phiên bản SimCity 4. Nó giúp anh có thêm hiểu biết về cách thức một thành phố vận hành. Từ đó anh có thể thử nghiệm các phương pháp của mình để xử lý nhiều vấn đề thành phố gặp phải như kẹt xe, ô nhiễm, thất nghiệp, v.v…
Anh thích cách game tạo điều kiện cho mình tư duy và giải quyết vấn đề.
Về mặt quy trình, quy trình lập trình game development khá giống quy trình làm phần mềm bình thường, chỉ khác ở chỗ game sẽ chú trọng hơn về mặt hình ảnh động hấp dẫn.
Những công ty phần mềm khác nếu có người thiết kế giao diện UI Designer thì ở lập trình game, chúng ta có vị trí Artist – họa sỹ, 2D Artist và 3D Artist. Chính vì thế, người làm lập trình game còn phải biết kết hợp làm việc với họa sĩ và các bạn thiết kế game.
Xem thêm: UI là gì? UX là gì?
Vậy thì, hãy cùng anh Sơn tìm hiểu sâu hơn về Game Developer là gì nhé.
Game Developer là gì?
Game Developer là từ chỉ chung cho những ai tham gia vào việc phát triển game. Ví dụ: lập trình viên, họa sỹ 2D, 3D, người quản lý dự án, v.v… Nhiều người hiểu lầm rằng đây chỉ dành lập trình viên thôi. Trong phạm vi bài viết này, anh Sơn sẽ chia sẻ kỹ hơn về Game Developer dưới chức năng là người lập trình game.
Trong game development, muốn chuyên thì mình chỉ chuyên về một lĩnh vực kỹ thuật nào đó. Ví dụ lập trình client, lập trình back-end, hoặc server. Trong client, back-end, server lại chia nhỏ hơn nữa.
Anh Sơn chia sẻ rằng điều thú vị nhất khi trở thành Game Developer chính là bạn có thể chơi game do chính mình tạo ra. Game Developer sẽ thấy được một nhân vật hoạt động như thế nào theo cách họ lập trình.
Cái thú vị tiếp theo là mình được thấy và xây dựng nhiều thứ. Đôi khi là cả một câu chuyện lâm li bi đát trong game, có những nhân vật phải đứng trước các sự lựa chọn khó khăn… Mình có cảm giác vừa làm việc vừa giải trí, rất thú vị. Tùy vào nội dung của game mà các bạn Developer sẽ tạo ra các tương tác riêng biệt cho mỗi tựa game.
Ví dụ: Game bắn súng sẽ bao gồm các thao tác: nạp đạn, nhắm bắn, độ giật của súng, v.v… Game đánh kiếm thì có động tác vung kiếm, độ dài của kiếm, chém thì như thế nào, đỡ ra làm sao, v.v…
Vậy thì công việc hằng ngày của một Game Developer là gì?
Anh Sơn nói về công việc của anh khi còn ở gloops Vietnam, khi đó công ty có khoảng hơn ba mươi người. Công việc chính của anh là coding, làm việc với các game developer và senior game developer khác.
Như nhiều công ty phần mềm khác, gloops Vietnam cũng áp dụng phương pháp Agile. Mỗi ngày bên anh có một buổi stand-up meeting khoảng năm phút để mọi người chia sẻ kế hoạch làm việc trong ngày hoặc trình bày những vấn đề hôm qua gặp phải, bàn cách giải quyết rồi bắt tay vào việc.
Khi có dự án mới, mọi người thảo luận công việc gồm những phần nào. Rồi từng người có thể chủ động nhận làm phần mình thích hoặc người chủ trì cuộc họp sẽ chỉ định.
Xét về thu nhập, anh Sơn chia sẻ rằng Game Developer không sở hữu mức thu nhập bằng được các vị trí khác trong lĩnh vực công nghệ thông tin nói chung. Có lẽ đó nguyên nhân chính dẫn đến ý kiến này. Nếu bỏ qua yếu tố thu nhập thì lập trình game vẫn còn đủ thu hút đối với ai thực sự yêu thích game vì các yếu tố sáng tạo đặc thù của công việc này.
Những kỹ năng cần thiết để trở thành Game Developer là gì?
Như đã chia sẻ ở trên, Game Developer là từ chỉ chung cho những vị trí liên quan đến việc phát triển game. Cho nên tiêu chí đánh giá một người giỏi thì phải tách ra theo từng vị trí công việc chuyên môn của người đó.
Xét riêng về Game Developer ở mảng lập trình game thì người đó cần sở hữu những kỹ năng sau:
- Game development cũng là một mảng trong Software development nên kỹ năng cần thiết đầu tiên nên là lập trình.
- Kỹ năng quan trọng thứ hai là Anh Văn.
Nếu không giao tiếp tốt thì ít nhất là bạn cũng phải đọc hiểu được tiếng Anh, để biết cách tìm kiếm tài liệu mà học hỏi và phát triển kỹ năng.
Riêng với anh, chơi game còn giúp tạo động lực để anh cải thiện Anh Văn. Đa số game anh chơi là game tiếng Anh. Hồi trước có lúc thích chơi quá mà anh không hiểu nó muốn anh làm gì. Anh cứ phải vừa chơi vừa tra từ điển nên qua vòng rất chậm, anh toàn chơi thua bạn anh.
Sau một thời gian, anh quyết tâm học tiếng Anh để hiểu trò chơi và chơi cho bằng bạn bằng bè. Khả năng tiếng Anh của anh dần tốt lên.
- Cuối cùng, kỹ năng cần thiết nhất đối với một người lập trình game chính là “thích chơi game”.
Các quyết định về sự nghiệp, công việc khác hoàn toàn với việc chạy theo xu hướng thời trang, không đủ tình yêu đối với công việc sẽ không làm lâu được.
Trước khi theo đuổi công việc Game Developer, anh khuyên rằng các bạn trẻ nên tự hỏi tại sao mình muốn làm việc này? Mình có thể làm trong bao lâu 5 năm, 10 năm hay cả đời? Nếu thu nhập không như mình mong đợi mình có muốn làm không?
Nếu bạn còn trẻ và tò mò muốn tìm hiểu công việc này như thế nào, bạn có thể vào làm cho các công ty phát triển game từ 1 đến 2 năm. Đến lúc đó lại tự hỏi những câu hỏi trên và quyết định nên tiếp tục hay chuyển hướng khác.
Chơi game có phải là cách lập trình game tốt nhất?
“Đào sâu” hơn vào kỹ năng cuối, nhiều người cho rằng có phải chỉ cần chơi game là đã có thể trở thành Game Developer? Anh Sơn cho rằng nhận định này vừa đúng vừa sai. Đúng – sai nằm ở chỗ mình chơi game như thế nào. Cách chơi game của một người game developer sẽ khác với một người chơi chỉ để chơi.
Theo anh, có hai dạng game thủ hoàn toàn khác nhau: 1) chơi game nhiều, 2) chơi nhiều game.
Anh Sơn chia sẻ rằng bản thân mình thuộc loại game thủ thứ hai: chơi nhiều game. Anh vẫn chơi game đều, nhưng anh không đầu tư quá nhiều thời gian vào một game nào đó. Ngược lại, nhiều bạn chỉ chơi một game, nhưng chơi rất lâu.
Game Developer thích chơi game là tốt, nhưng chỉ cày hoài cày mãi một game thì không học được cái hay của nhiều game khác. Chơi để hiểu game, để biết cách làm. Không cần chơi giỏi nhưng cần biết chơi để hiểu cách game vận hành, cách nó được thiết kế.
Mục đích và cách chơi game của anh Sơn theo hướng này:
- Anh chơi game vừa để cập nhật công nghệ mới, vừa để biết cách người khác thiết kế game.
- Thường thì anh chơi khoảng 1-2 ngày, mỗi ngày khoảng 1-2 tiếng. Anh chơi nhiều game khác nhau để có trải nghiệm và nhận xét được cái hay/ dở của từng game mà học theo. Anh không khuyến khích cách này nhưng nếu bạn nào không có thời gian chơi game thì mình có thể chơi theo thụ động. Tức là lên Youtube để xem video game mà nhiều game thủ thu hình lại.
Ngoài ra, cách để học cách lập trình game tốt nhất và cũng là cách đơn giản nhất để giữ động lực với nghề Game Developer, là làm một side project về game. Project đó sẽ giúp nâng cao kỹ năng và đánh giá bản thân mình có đủ kiên trì để theo đuổi công việc hay không.
Ngoài công việc thường ngày là làm Game theo yêu cầu của khách hàng/ công ty mẹ, anh tạo thêm động lực cho bản thân bằng cách tự làm ra game theo ý thích của anh và mang đi dự thi ở nhiều cuộc thi, ví dụ như:
- Vietgame 2008
- Mobile Innovation Challenge 2013
- The 2013 UNICEF Mobile Hackathon
- Game Jam
Trong các cuộc thi này anh Sơn đều nhận được giải thưởng. Chính điều này khiến anh cảm thấy được động viên, và tạo nguồn cảm hứng cho anh làm thêm nhiều game cũng như giúp anh phát triển kỹ năng làm game tốt hơn.
Nếu chỉ làm Developer trong công ty thì mình chỉ dừng lại ở cấp độ công ty. Tức là kiến thức và mối quan hệ của mình cũng hạn chế. Tham gia các cuộc thi, anh thấy đó là cơ hội để làm việc chung với một nhóm những người mới. Không phải những người đã làm chung hàng ngày thì anh cảm thấy thú vị và học hỏi được nhiều thứ mới.
Làm trong công ty thì 90% nội dung công việc đã được khách hàng/ công ty mẹ đưa ra. Khi tham gia các cuộc thi chỉ đơn thuần là cho vui thì mình có thể tự do thể hiện ý tưởng và sáng tạo.
Tuy nhiên, bạn nên hiểu rằng việc làm ra game mình “muốn” và game mình “có thể làm” là hoàn toàn khác nhau.
Để có thể biến game mình muốn trở thành game mình có thể làm, các bạn sau khi tốt nghiệp trường IT có thể kiếm sách + tài liệu về làm game trên web để thử làm các game đơn giản, trước khi bắt đầu làm game theo đúng ý tưởng của mình.
Anh Sơn cũng áp dụng cách lập trình game này: Vừa chơi game, vừa đọc tài liệu. Nhờ thế, sau này, anh đọc hiểu được các tài liệu dễ dàng. Và do chơi nhiều game, anh hiểu cách một game vận hành như thế nào để khi làm việc, anh hình dung được những yêu cầu cần làm.
Tài liệu lập trình Game tham khảo
Với những bạn mới đi làm chưa có nhiều mối quan hệ thì mình nên bắt đầu từ internet. Tìm kiếm từ khóa như “phát triển game,” cả tiếng Anh lẫn tiếng Việt. Vào các diễn đàn tìm bài dành cho Game Developer mới bắt đầu như “tutorial: game programming for beginners/ dummies”. Cụ thể hơn:
- Về game, anh hay tham khảo gamedev.net. Trên đó có nhiều bài báo và tutorial hướng dẫn. Nhưng trang này nghiêng về C++ nhiều hơn dù vẫn có những kiến thức chung về lập trình và thiết kế game. Những Game Developer ở cấp độ mới bắt đầu cũng có thể tham khảo gamedev.net.
- Khi gặp vấn đề, anh thường lên Google và tìm kiếm câu trả lời tại Stack Overflow.
- Anh làm nhiều về lập trình iOS nên anh hay lên trang Ray Wenderlich để tham khảo tài liệu.
Xem thêm: 30+ nguồn tài liệu lập trình game
Game Developer trong ngành IT nói gì?
Game Developer cũng như những lập trình viên phần mềm khác, anh Sơn cũng từng mắc phải sai lầm trong việc đưa ra phương án giải quyết vấn đề.
Lúc trước, anh gặp vấn đề khi đang code một feature. Không muốn hỏi người khác nhưng anh không Google mà tự nghĩ ra giải pháp rồi áp dụng giải quyết vấn đề luôn.
Cuối cùng, vấn đề không được giải quyết. Anh còn tốn thêm thời gian sửa bug, làm ảnh hưởng đến thời gian hoàn thành dự án của cả team.
Sau sai lầm đó, anh chia sẻ thẳng thắn rằng khi gặp vấn đề, bản thân mình phải biết bỏ qua cái tôi để tìm hiểu những giải pháp đã được kiểm chứng dù bản thân có giải pháp khác.
Xem thêm: Trong lập trình game, chủ quan dễ phải trả giá đắt
Ví dụ như hỏi mọi người xung quanh, hỏi những người có kinh nghiệm hoặc tìm kiếm giải pháp trên mạng. Áp dụng những giải pháp có sẵn giúp mình đảm bảo kết quả đạt được lại tiết kiệm thời gian.
Tuy nhiên, anh cũng khuyên rằng các bạn đừng quá phụ thuộc vào những giải pháp có sẵn.
Muốn phát triển bản thân, khi có thời gian thì mình thử cả giải pháp của mình, rồi so sánh xem giải pháp nào tốt hơn. Hoặc thử để xem cách mình đưa ra có giải quyết được vấn đề không. Nếu không thì tìm hiểu nguyên do ở đâu và tìm cách cải thiện bản thân.
Tiểu sử:
Anh Vũ Hoàng Sơn chuyển hẳn sự nghiệp sang làm game sau một năm rưỡi làm Web Developer tại Lotus Solution. Với hơn 11 năm kinh nghiệm làm game, anh đã trải qua một số vị trí như: Game Developer cho gloops Vietnam, Team Leader cho Asia Innovations, Unity Developer cho VNTANA…
Hiện tại anh đã hoàn thành chương trình Master về Computer Science ở Mỹ và quay về Việt Nam để theo đuổi dự án game của riêng mình. Nếu các bạn quan tâm có thể theo dõi dự án của anh ở link này http://www.hogvalord.com
Nếu bạn nghĩ những chia sẻ này có thể giúp ích cho bạn bè hoặc đồng nghiệp thì đừng ngại nhấn nút Share bên dưới nhé!
Tham khảo việc làm Game Developer trên ITviec