Làm lập trình game có dễ dàng như bạn tưởng?

Lập trình game đang là một trong những nghề lôi cuốn nhất so với nhân lực IT trẻ lúc bấy giờ. Một vài nguyên do điển hình nổi bật là với nghề này, bạn được thỏa sức phát minh sáng tạo và có mức thu nhập mê hoặc .

Nghề lập trình game, hay còn gọi là Game Developer, có phải chỉ cần “mê chơi game” là đủ? Cũng như bao nghề lập trình viên khác, Game Developer cũng có những câu chuyện “hậu trường” không phải ai cũng biết. Hãy cùng ITviec khám phá nghề lập trình game với anh Trần Mai Nam – Game Developer của AMANOTES, để hiểu thêm về nghề này nhé.

Tham khảo việc làm lập trình game tại ITviec

Lập trình game là làm gì?

Những vị trí trong ngành lập trình game

Anh Nam san sẻ rằng người lập trình game là người bằng hiểu biết về kỹ thuật của mình, hiện thực hóa sáng tạo độc đáo / bản phong cách thiết kế của Designer thành loại sản phẩm đơn cử, hoàn hảo .
Nghề lập trình game chia làm 2 nhánh chính là front-end và back-end. Cả front-end lẫn back-end đều tham gia tăng trưởng các tính năng cho game. Cụ thể hơn :

  • Front-end sẽ đảm nhiệm những tính năng giao tiếp trực tiếp với người dùng.

front-end-back-endẢnh vui về Front-end và Back-end trong lập trình game

  • Những tính năng này bao gồm hệ thống UI, các hiệu ứng đồ họa, âm thanh, hình ảnh trong game.v.v…
    • Các nhánh nhỏ của front-end sẽ gồm UI/UX, graphic, gameplay, tools, engine, script programmer.v.v…
  • Back-end sẽ đảm nhiệm những phần mà người dùng không “nhìn tận mắt, nghe tận tai”.
    • Ví dụ như lưu trữ dữ liệu trên các server, quản lý hệ thống mạng.v.v…
    • Các nhánh nhỏ của front-end sẽ gồm Database administrator, system engineer, network programmer, custom services developer.v.v…

Cá nhân anh Nam thì chuyên về front-end. Anh san sẻ rằng bạn nên học các kiến thức và kỹ năng về đồ họa, ví dụ vẽ Mã Sản Phẩm 3D, sử dụng photoshop, phong cách thiết kế UI UX v.v. điều đó sẽ tương hỗ tốt hơn rất nhiều cho nghề nghiệp .

Làm front-end cũng vui, vì được thao tác trực tiếp với các họa sỹ. Rồi còn được góp thêm phần tạo ra những hiệu ứng hình ảnh thích mắt nữa .

Tuy nhiên, anh cũng san sẻ rằng hầu hết các game developer sau một thời hạn dài thao tác đều tự học hỏi để trở thành Full-stack Developer vì muốn hoàn toàn có thể tự tăng trưởng một loại sản phẩm game của riêng mình .
Bản thân anh đã từng đóng vai trò Full-stack Developer trong một vài dự án Bất Động Sản, ví dụ như Võ Sĩ Thép của Joombi Games .

Lập trình game chỉ có ngồi chơi game cả ngày?

Anh Nam cho rằng một trong những câu hỏi, và cũng là hiểu nhầm, anh nghe nhiều nhất chính là “ Lập trình game chắc sẽ được chơi game suốt ngày ”. Nhiều người thích chơi game đều sẽ chọn theo nghề lập trình game vì họ đều nghĩ như vậy. Tuy nhiên, thực sự không phải vậy .
Trong giờ thao tác, Game Developer chỉ chơi phần tính năng game mà anh ta đang tham gia tăng trưởng, chứ không hề chơi hàng loạt game. Mục đích ship hàng việc làm, chứ không để vui chơi .

Thử tưởng tượng, cả ngày bạn chỉ ăn mỗi món phở, hết tô này đến tô khác, thì dù có yêu phở đến mấy, bảo vệ cuối ngày bạn cũng sẽ ngán thôi .

Ngành lập trình game ở Việt Nam

Anh Nam nhìn nhận rằng ngành lập trình game lúc bấy giờ ở Nước Ta vẫn khá tốt, với rất nhiều công ty start-up sinh ra. Tuy năng lực thất bại vẫn rất cao nhưng chỉ cần 1 mẫu sản phẩm thành công xuất sắc là công ty hoàn toàn có thể vững mạnh nhanh gọn .
Ngoài ra, anh cũng san sẻ rằng mức lương cho Game Developer không cao so với các vị trí lập trình hot khác như AI, Blockchain, Mobile. v.v tuy nhiên so với mặt phẳng chung của xã hội thì vẫn tốt, đặc biệt quan trọng là bạn hoàn toàn có thể làm giàu được bằng cách tự mình làm ra mẫu sản phẩm .

Những kỹ năng cần thiết để trở thành Game Developer

Ngoại trừ những kỹ năng và kiến thức về mặt trình độ, theo anh Nam, để theo nghề lập trình game thì bạn cũng cần những kỹ năng và kiến thức mềm khác, đơn cử :

  • Kỹ năng phân tích và giải quyết vấn đề một cách logic

Lập trình game cũng giống như giải toán .
Cái bạn nhận được là “ đề bài ” ( ý tưởng sáng tạo, phong cách thiết kế ). Nhiệm vụ của bạn là sử dụng công cụ / kỹ năng và kiến thức để xử lý yếu tố tốt nhất hoàn toàn có thể .

Bạn sẽ nhận được một bản thiết kế UI, trong đó có tính năng user dùng ngón tay để xoay các nhân vật trong game .Vậy trách nhiệm của bạn là nghiên cứu và phân tích xem cần dùng những câu lệnh nào để theo dõi vị trí ngón tay trên điện thoại thông minh, câu lệnh nào để xoay nhân vật trong game, cũng như công thức xoay nhanh / chậm ra sao cho hài hòa và hợp lý .

  • Kỹ năng “tự giác” học

Anh Nam nhấn mạnh vấn đề rằng đây là một kiến thức và kỹ năng cần phỉ được tôn vinh, vì vận tốc biến hóa trong ngành tăng trưởng ứng dụng cực kỳ nhanh .

Trong dự án Bất Động Sản Võ Sĩ Thép, có một tính năng quan trọng là đối kháng trực tiếp qua thiên nhiên và môi trường Internet .Anh đã phải tự học lập trình mạng, cách liên kết người chơi với nhau qua Internet và công nghệ tiên tiến Photon server để hoàn toàn có thể thiết kế xây dựng tính năng này .

Ngoài ra, khi một nền tảng bị thoái trào, những kĩ năng, kinh nghiệm tay nghề mà mình đã tích góp được trong nền tảng đó sẽ thành vô dụng, bạn phải luôn sẵn sàng chuẩn bị để học cái mới .

Kỹ thuật Flash dùng để làm web game từng làm mưa làm gió một thời, giờ gần như đã vắng bóng trên thị trường .

Việc học nhiều, trải qua nhiều công nghệ tiên tiến giúp cho người lập trình game có thời cơ hiểu sâu hơn về các nền tảng toán học cơ bản chung .
Nhờ vậy, mình học hỏi nhanh hơn khi phải tiếp xúc với những công nghệ tiên tiến mới .

Một developer của engine Unity3D khi chuyển sang engine Unreal thì cũng không quá kinh ngạc .

  • Kỹ năng hợp tác với mọi người

Hẳn bạn đã nghe về việc phải biết cách thao tác với mọi người rất nhiều lần nhưng dù đề cập nhiều đến thế nào cũng không đủ nhấn mạnh vấn đề rằng đây là một kỹ năng và kiến thức vô cùng quan trọng .
Trừ khi bạn thao tác một mình hoặc làm ứng dụng cho mình bạn dùng .

Trong dự án Bất Động Sản Madzone, có lần QA / QC báo bug nhưng khi kiểm tra thì anh lại không thấy lỗi này Open. Có thể sẽ có Developer trong trường hợp này nghĩ rằng QA / QC cố ý “ bới móc ” và gây khó khăn vất vả cho họ .Tuy nhiên, anh đã gặp, trao đổi trực tiếp với QA / QC. Hai bên bàn luận, thống nhất giải pháp để tái hiện lỗi này với tần suất cao hơn ( từ 20 % lên 80 % ). Nhờ vậy mà lỗi được fix sớm .

  • Kỹ năng chấp nhận sự khác biệt, chịu thay đổi

Do ngành game khá đặc thù, đòi hỏi sự sáng tạo cao nên theo anh Nam, để làm trong ngành rất cần sự cởi mở, open-minded và chấp nhận sự khác biệt.
Trong một dự án game, bạn sẽ tiếp xúc với rất nhiều kiểu người, đa dạng về tính cách, trình độ, vẻ ngoài cũng như phong cách.

Liệu bạn có gạt bỏ được định kiến ban đầu để thoải mái làm việc với một Designer chỉ học hết lớp 9 và là playboy hạng nặng? Hoặc với một artist tóc vàng hoe, xăm trổ đầy mình? Để có thể nhìn nhận thực sự tài năng/khả năng của họ?

lap-trinh-gamelap-trinh-gameAnh Nam cùng bạn bè, đồng nghiệp trong một hoạt động cộng đồng.Ngoài ra, sự cởi mở còn biểu lộ ở chỗ bạn có năng lực biến hóa để tương thích hay không .
Anh Nam kể về một người đồng nghiệp của anh, suốt nhiều năm chuyên làm cho các công ty game Âu Mỹ nên có tác phong tự do, tiếp tục đi làm với giờ giấc không cố định và thắt chặt .
Tuy nhiên, sau này khi làm cho một công ty Nhật, anh ấy đã tự đổi khác để tương thích. Anh ấy còn chịu khó học thêm tiếng Nhật để tiếp xúc trực tiếp với sếp. Và, anh ấy đã thành công xuất sắc ! Hiện nay anh ấy là nhân lực chủ chốt của công ty, được đưa sang Nhật để chỉ huy đội ngũ Developer người Nhật .

Muốn theo nghề lập trình game thì nên bắt đầu từ đâu?

Lập trình game thì cũng là lập trình ứng dụng. Để xác lập xem mình có tương thích với nghề lập trình game hay không, thứ nhất, theo anh Nam, bạn hãy vấn đáp 3 câu hỏi sau :

  1. Bạn có thích trở thành Software Engineer không?
  2. Có thích chơi game không?
  3. Bạn đã từng muốn tham gia vào một dự án vừa mang tính thương mại, vừa có tính nghệ thuật (ví dụ như lập nhóm nhạc, làm phim, sáng tác truyện.v.v…) chưa?

Nếu cả ba câu vấn đáp đều là “ có ”, thì chúc mừng, bạn đã hoàn toàn có thể “ một chân ” bước vào nghề lập trình game được rồi .
Việc tiếp theo bạn nên trau dồi những kỹ thuật về lập trình, tăng trưởng game :

  • Bạn cũng có thể theo học các khóa học lập trình game tại VTC Academy hoặc bộ môn lập trình game của trường Đại học CNTT.
  • Các diễn đàn lớn về game như gamedev.net, gamasutra, hay các trang tutorial của các engine nổi tiếng như Unity3D, Unreal… cũng là nguồn resources học lập trình game miễn phí rất tốt.

Tham khảo 30 + tài liệu lập trình game chất nhất

Bạn hoàn toàn có thể tham gia vào một vài nhóm nhỏ tự làm game, tăng trưởng những game đơn thuần. Sau đó, bạn nên ứng tuyển vào các công ty để có thời cơ làm những dự án Bất Động Sản lớn hơn .

Game Developer, trong ngành nói gì?

Với hơn 8 năm kinh nghiệm tay nghề làm trong ngành lập trình game, anh Nam kể về bốn bài học kinh nghiệm quý giá nhất mà anh nghĩ mọi Game Developer nói riêng, những Developer nói chung, hoàn toàn có thể cùng san sẻ với anh .

  • Thứ nhất: Không nên áp đặt suy nghĩ chủ quan của mình lên người dùng

Khi làm game Thuận Thiên Kiếm, nhóm anh Nam đã bỏ rất nhiều sức lực lao động để làm những tính năng như dâng hương cúng giỗ vua Hùng, bắt sâu bọ ngày Tết Đoan Ngọ, hoặc tính năng thi tuyển Trạng Nguyên .
lap-trinh-game-2Thuận Thiên Kiếm – game thuần Việt do anh Trần Mai Nam tham gia phát triển

Bọn anh cứ ỷ y là những tính năng này lồng ghép yếu tố lịch sử vẻ vang, văn hóa truyền thống Việt, rất là hay. Bản thân mình rất thích thì chắc rằng user cũng sẽ thích .Nhưng thực tiễn, khi quản lý và vận hành game, user không hào hứng và lệch giá do những tính năng này mang lại cũng không khả quan .

Sau này, game được quản lý và vận hành bởi một nhóm khác. Họ đã nghiên cứu và điều tra thị hiếu người dùng và đề xuất làm những tính năng khác, tương thích hơn. Chẳng hạn : Bầu Cua Cá Cọp, quay số suôn sẻ. v.v …
Những tính năng này tương thích với tâm ý thích may rủi của người Việt. Kết quả là đã đem lại lệch giá lớn cho mẫu sản phẩm .

  • Thứ hai: Trong một vài trường hợp, vẫn có thể đề cao cá tính của người lập trình game

Suy cho cùng, lập trình game vẫn là phát minh sáng tạo. Ngành game luôn có chỗ cho những mẫu sản phẩm độc lạ, bộc lộ đậm cá tính mạnh của người tăng trưởng .

Game Flappy Bird là một ví dụ. Làm game, ai cũng nằm lòng “ chân lý ” là gamer không muốn chơi một game quá khó ngay từ đầu. Tuy nhiên, đó lại chính là điểm gây nghiện của game này .

  • Thứ ba: Không nên chủ quan

Một trong những sai lầm đáng tiếc “ nhớ đời ” nhất của anh Nam là khi anh làm game Madzone .
lap-trinh-game-madzonelap-trinh-game-madzoneMadzone – game gần đây nhất do anh Trần Mai Nam tham gia phát triển.

Bởi vì nhóm anh đã chủ quan, thay vì phải build và test game cùng lúc trên 2 nền tảng là iOS và Android, nhưng anh chỉ chạy test iOS thôi vì cho rằng game làm bằng engine cocos2dx version 2. x thì sẽ chạy tốt trên mọi nền tảng khác nhau .

Hậu quả là khi phát hành game trên nền tảng Android, game đã không thích hợp trên nhiều loại điện thoại thông minh khác nhau do cùng OS là Android nhưng mỗi hãng lại biến hóa mã nguồn, UI của OS theo khuynh hướng riêng .
Sau đó, team đã phải lý giải, xin lỗi người mua và mất gần 2 tháng, tập trung chuyên sâu toàn lực để khắc phục .

Bài học “ nhớ đời ” mà anh và team rút ra được là luôn luôn không được chủ quan khi làm loại sản phẩm dạng multiplatform. Cụ thể, nền tảng Android rất phong phú, và mỗi dòng điện thoại thông minh lại rất khác nhau .Trước khi làm, tốt nhất là nên thống kê những loại điện thoại thông minh nào phổ cập nhất trong thị trường mà bạn muốn nhắm đến .Từ đó, kiến thiết xây dựng kế hoạch build và test thử trên tổng thể các devices đó. Bởi vì việc game chạy tốt cho toàn bộ các điện thoại thông minh Android gần như là không hề !

  • Thứ tư: Không cần xây dựng một core framework

Nhiều Game Developer muốn thường có xu thế tôn vinh tính tái sử dụng ( re-usable ). Họ luôn muốn kiến thiết xây dựng một framework hoàn toàn có thể vận dụng cho nhiều dự án Bất Động Sản, nhiều quãng thời hạn khác nhau .
Tuy nhiên theo cá thể anh thì việc này có lẽ rằng đúng với các ngành lập trình khác, nhưng không hẳn đúng với ngành lập trình game Nước Ta .

Theo anh, ngành game hiện nay đòi hỏi việc thực hiện các tính năng càng nhanh càng tốt, để có thể thử nghiệm và kiểm tra nhiều ý tưởng khác nhau.
Bên cạnh đó, các công ty Việt Nam cũng thường phải thay đổi business liên tục theo thị hiếu của khách hàng.

Bởi vậy, việc góp vốn đầu tư thời hạn thiết kế xây dựng một core framework vận dụng chung cho mọi dự án Bất Động Sản có lẽ rằng không thực sự hiệu suất cao về mặt ngân sách .

Tiểu sử:

Khi vừa tốt nghiệp khoa CNTT Đại học Bách khoa TP. Hồ Chí Minh (2008), anh Trần Mai Nam tình cờ được tuyển vào GSS, bộ phận chuyên làm game của Vinagame (VNG hiện nay) và làm ở đó đến đầu năm 2012, vị trí Senior Game Developer. Sau đó, anh làm dự án mô hình thực tế ảo máy bay F16 cho Singapore Air Force.

Tháng 06/2012, anh quay lại ngành game làm Lead Developer cho Joombi Games. Sau đó, anh đầu quân cho GIANTY Vietnam ở vị trí Game Developer trong suốt hơn 4 năm.

Đến nay, anh vẫn gắn bó với ngành lập trình game và hiện là Game Developer cho AMANOTES .
Robby ITviecRobby ITviec

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, đừng quên nhấn nút Share bên dưới nhé!

Và đừng quên tham khảo ngay các việc làm lập trình game tại ITviec!