“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.”
Đọc bài phỏng vấn của ITviec với anh Vũ Hoàng Sơn – game developer của gloops Vietnam – để nghe anh chia sẻ về:
Cách để phát triển kĩ năng dành cho game developer.
Sai lầm anh mắc phải và bài học rút ra.
Lời khuyên anh dành cho các bạn muốn trở thành game developer.
Tiểu sử: Anh Sơn chuyển hẳn sang sự nghiệp làm game sau một năm rưỡi làm web developer tại Lotus Solution. Với hơn 7 năm kinh nghiệm làm game, hiện tại anh đang công tác cho gloops Vietnam ở vị trí game developer.
Vì sao anh lại chọn trở thành game developer?
Lý do thứ nhất là từ nhỏ anh đã thích chơi game.
Thứ hai là khi anh lớn hơn, càng chơi anh càng cảm thấy tò mò không biết làm sao người ta có thể làm các hình ảnh chuyển động. Anh muốn biết game được lập trình như thế nào, vì vậy anh học cách làm game và anh kiếm công ty game để đầu quân.
Đâu là động lực để anh tiếp tục phát triển sự nghiệp làm game của mình?
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 đề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.
Anh có thể giải thích cụ thể hơn là các cuộc thi giúp anh phát triển kĩ năng làm game như thế nào?
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.
Những cuộc thi đó có thời gian ngắn nên nó cũng giúp mình kiểm tra lại được khả năng của mình.
Anh thấy game development khác quy trình phát triển phần mềm khác ở điểm nào?
Game development khá giống quy trình làm phần mềm bình thường, chỉ khác là nó có những hình ảnh động hấp dẫn, nên mình phải kết hợp làm việc với họa sĩ và các bạn thiết kế game.
Những công ty phần mềm khác, họ làm phần mềm nên không có người gọi là artist, 2D artist và 3D artist. Họ chỉ có người thiết kế giao diện (UI design).
Đâu là điều làm nên sự thú vị của nghề game developer so với các developer khác?
Điều thú vị là em có thể chơi cái game do chính em tạo ra. Em thấy một nhân vật có thể hoạt động theo cách em lập trình.
Làm game là làm sản phẩm về mặt nội dung phục vụ cho mục đích giải trí, khác với những phần mềm khác, 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 đó. Một số game còn phục vụ học tập.
Cái thú vị tiếp theo là mình 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ị.
Trách nhiệm và công việc thường ngày của anh là gì?
gloops Vietnam 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, á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.
Công việc của anh có chuyên về một mảng game nào không?
Tất cả dự án trước giờ của anh là làm game theo thị trường, tức là dự án đưa về game gì thì mình làm game đó chứ anh không chuyên hẳn về một loại game nào.
Tuy nhiên, 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.
Hiện giờ ở Việt Nam không phân chia chuyên môn theo thể loại game, anh không biết ở nước ngoài thì thế nào.
Để trở thành một game developer thì đòi hỏi những kĩ năng và tố chất gì?
Game development cũng là một mảng trong software development, vì vậy muốn trở thành developer thì đầu tiên mình cần học lập trình.
Kĩ năng quan trọng thứ hai là Anh văn. Nếu không nói được 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.
Cuối cù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ác bạn sau khi tốt nghiệp trường IT có thể kiếm sách và 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.
Ngoài những kĩ năng cơ bản trên thì tất nhiên em phải thích chơi game. 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ế.
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.
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.
Hiện tại anh có thường xuyên chơi game không? Cách chơi game như thế nào là tốt để giúp một game developer phát triển bản thân?
Có hai dạng game thủ hoàn toàn khác nhau: một là chơi game nhiều, hai là 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 đó, tức là thuộc loại game thủ thứ hai: anh chơi nhiều game. 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.
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. Anh chơi khoảng 1-2 ngày, mỗi ngày khoảng 1-2 tiếng, và 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 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.
Theo anh, như thế nào là một game thành công?
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 vì 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 đề.
Sai lầm lớn nhất anh từng mắc phải là gì? Anh đã vượt qua như thế nào? Anh học được gì từ nó?
Anh 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, và không muốn hỏi người khác nên anh cũng 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 mà 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.
Bài học anh rút ra là khi gặp vấn đề, bản thân mình có giải pháp nhưng vẫn cần bỏ qua cái tôi để tìm hiểu những giải pháp có sẵn khác 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 khuyên 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, mình nên áp dụng giải pháp mình tìm được trước, sau đó có thời gian thì 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.
Anh có thường xuyên tham khảo sách, resource nào trong suốt sự nghiệp của mình?
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 người ở 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.
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 người mới bắt đầu như “tutorial: game programming for beginners/dummies.”
Theo: Dan/ITviec