Giải trí

50 thuật ngữ lập trình-thiết kế game có thể bạn chưa biết (Phần 2)

Bài viết về thuật ngữ thiết kế game (Game Designing) và lập trình game (Game Programming) (phần 2) sẽ tiếp nối và giải đáp thắc mắc của bạn đọc về chuyên đề game, lập trình và thiết kế đồ họa game ở phần trước. Cùng khám phá nhé!

III. Ngôn ngữ lập trình thông dụng cho thiết kế game và phát triển game engine

1. Ngôn ngữ lập trình game Java

Sở dĩ Java đứng đầu danh sách các loại ngôn ngữ lập trình thiết kế game chính bởi sự phổ biến toàn cầu của nó. Không những có thể hỗ trợ thiết kế các phần mềm desktop, thiết kế website và các ứng dụng trên nền tảng Android mà Java còn là công cụ hỗ trợ đắc lực cho các game designer và công việc game programming.

Nếu bạn quá lười để code đi code lại, Java là sự lựa chọn tuyệt vời và phù hợp nhất cho sự nghiệp thiết kế game của bạn. Với mục tiêu hướng đến các lập trình game chuyên nghiệp, Java cung cấp cho bạn một dịch vụ đỉnh cao và tiện lợi : “Code một lần, dùng vạn lần.” Java tương thích hoàn hảo với cả giao diện web và mobile, bên cạnh đó còn hỗ trợ hoạt động đa nền tảng: Linux, Windows, macOS,…

Tựa game được viết trên nền tảng ngôn ngữ lập trình game Java:

Spartania

Game: Five nights at freddy’s

2. Ngôn ngữ lập trình game JavaScript

Nếu phải chọn ra một đại diện “trẻ và tiềm năng” cho phân nhóm ngôn ngữ lập trình thiết kế game, JavaScript có lẽ là đại diện xứng đáng nhất. JavaScript là một loại ngôn ngữ lập trình vô cùng linh hoạt, có thể dùng để làm nhiều task khác nhau và phát triển nhiều trò chơi đa dạng. Thông qua việc tích hợp HTML5 và CSS, JavaScript có thể được sử dụng để thiết kế game trên website với giao diện cực bắt mắt, đồng thời code trong các game engine, đặc biệt cùng với C# là “cặp bài trùng” của Unity.

Dẫu là ngôn ngữ lập trình bậc cao, song JavaScript vẫn đang nỗ lực cải tiến và “thay máu” mỗi ngày để đáp ứng yêu cầu lập trình và thiết kế game trên web – thế mạnh của JavaScript, đồng thời khắc phục nhược điểm không thể đáp ứng nhu cầu của các game có cấu hình cao và quy mô khủng. Trong tương lai chúng ta hoàn toàn có thể kì vọng về một cuộc cách mạng mà JavaScript đang từng bước thực hiện trong ngành game.

Tựa game được viết trên nền tảng ngôn ngữ lập trình game JavaScript:

Game: Castle Clash

Game: Polycraft

3. Ngôn ngữ lập trình game Lua

Lua thường được biết đến như một ngôn ngữ lập trình thiết kế game dạng kịch bản nhẹ, thông dịch. Có thể nói Lua giống như một “nàng thơ thanh lịch” của hằng hà sa số các loại ngôn ngữ lập trình mà con người từng tạo ra. Với vai trò là một ngôn ngữ miễn phí, đa nền tảng, Lua đang dần khẳng định vị thế của mình trong thị trường game, từng bước trở thành một trong những ngôn ngữ lập trình và thiết kế game đáng mơ ước nhờ cấu trúc và ngôn ngữ nhỏ gọn, dễ tiếp cận.

Tựa game được viết trên nền tảng ngôn ngữ lập trình game Lua:

Game: Dragon City

Game: Dota2

Game: Dark Souls

4. Ngôn ngữ lập trình game Objective-C

Dựa trên nền tảng của C++ và C, Objective-C là đứa con tinh thần quý giá của nhà sáng tạo công nghệ nổi tiếng Steve Jobs. Nó được kế thừa tốc độ nhanh và linh hoạt của C cùng độ mạnh mẽ của C++. Objective-C ++ là một biến thể của Objective-C, có thể tương thích hoàn hảo với C++. Ngôn ngữ này thường được dùng để viết các chương trình thiết kế game casual và phát triển các thể loại game đơn giản.

Tựa game được viết trên nền tảng ngôn ngữ lập trình game Objective-C:

Game: Jewel Smash

Game: Who is a millionaire? – “Ai là triệu phú”

5. Ngôn ngữ lập trình game C++

C++ xứng đáng là người kế nhiệm ưu tú nhất của “kẻ lão làng – C” và cũng là ngôn ngữ lập trình dùng cho thiết kế game, lập trình game được đánh giá rất cao hiện nay. Dù “sinh sau đẻ muộn” và thua kém người tiền nhiệm C về tuổi đời, song thành tựu cá nhân của C++ rực rỡ hơn nhiều lần bởi nó là tiên phong cho ngôn ngữ lập trình game hiện đại. Hầu hết các trò chơi hiện đại ngày nay đều nhận được sự can thiệp từ C++ dù ít dù nhiều, đặc biệt trong các máy chơi game như PlayStation và Xbox.

Với các tính năng bổ sung, ưu việt về lập trình hướng đối tượng (OOP) cùng khả năng kiểm soát các thành phần hệ thống cấp rất thấp giúp chương trình kéo dài thêm thời gian chạy C++, đây chính là ngôn ngữ lập trình game designer cần học ngay khi bắt đầu làm quen với bộ môn này. Ngôn ngữ lập trình bậc cao C++ thực sự hữu dụng khi bạn cần phát triển và thiết kế game có đồ họa “nặng đô” cùng nhiều chi tiết tinh vi đòi hỏi nhiều kĩ thuật phức tạp.

Tựa game được viết trên nền tảng ngôn ngữ lập trình game C++:

Game: MaplestoryM

Game: Street Fighter

Game: StarCraft

6. Ngôn ngữ lập trình game C#

Không phải ngẫu nhiên mà C# được xem là ngôn ngữ lập trình thiết kế game “ruột” của nhiều nhà phát triển game bởi khả năng ứng dụng linh hoạt và tiện lợi cao mà nó mang lại. C# được “nhào nặn” bởi Microsoft nhằm hỗ trợ Game engine Unity – một trong những phần mềm phát triển game tốt và được ưu chuộng nhất hiện nay. Do đó, muốn làm việc trơn tru với Unity, trước hết bạn phải thông thạo C#. C# dễ học, và tính ứng dụng của nó cũng có phần rộng rãi hơn C++(loại ngôn ngữ bậc cao dùng trong code các game có cấu hình đồ sộ, phức tạp).

Dù việc học C# có bước đầu nhẹ nhàng hơn các ngôn ngữ lập trình cùng thời, song Microsoft sẽ liên tục nâng cấp ngôn ngữ này, buộc người dùng phải cập nhật theo các phiên bản mới, tiện ích mới và thích nghi với những thay đổi mới. Có thể C# đôi lúc khá “ẩm ương” vì “ông bố Microsoft” luôn gây khó dễ cho ta, nhưng “cô ấy” cũng sẽ dịu dàng và cống hiến hết mình cho sự nghiệp của ta nếu ta biết cách thỏa hiệp với “ông bố vợ” này.

Tựa game được viết trên nền tảng ngôn ngữ lập trình game C#:

Game: Satellite Reign

Game: Assassin’s Creed: Identity

Game: The Fall

7. Ngôn ngữ lập trình game Python

Python nằm trong nhóm những ngôn ngữ lập trình bậc cao được ưa chuộng nhất. Mới đây tại Việt Nam, cùng với C và C++, Python được đề xuất thêm vào chương trình giảng dạy tin học phổ thông thay cho Pascal. Điều này chứng minh được sự thông dụng và tiềm năng phát triển sâu rộng của ngôn ngữ lập trình thiết kế game Python trong tương lai.

Python vừa mang tính chất của ngôn ngữ kịch bản (tương tự Lua), lại vừa có dáng dấp của ngôn ngữ dynamic (tương tự C#). Python hỗ trợ lập trình hướng đối tượng và có cấu trúc lập trình đơn giản, tính phổ cập cao. Với đặc điểm quan trọng là mã nguồn mở, Python có thể dễ dàng điều chỉnh tốc độ vận hành của ngôn ngữ này nên nó đặc biệt phù hợp cho chương trình phổ thông. Nhưng cũng vì thế mà tốc độ của Python có thể được làm chậm đi, không đạt được hiệu suất như tương tác với C++ hay C.

Tựa game được viết trên nền tảng ngôn ngữ lập trình game Python:

Game: Flappy Bird

Game: Snake pass

8. Ngôn ngữ lập trình UnityScript

JavaScript và UnityScript? Công bằng mà nói, chúng có chức năng tương tự nhau giống như việc trùng một nửa tên gọi là không ngẫu nhiên vậy. Với ngôn ngữ UnityScript các game designer và game developer có thể nhập sprites và một renderer trong 2D game. Ngoài ra với game 3D, Unity3D cho phép các bạn thiết lập các điểm kĩ thuật khác nhau trên nền tảng UnityScript. Với khả năng xây dựng trò chơi chạy được trên nhiều nền tảng: Android TV, Google Cardboard, iOS, Linux,… UnityScript hoàn toàn có thể được xếp vào nhóm “ngôn ngữ lập trình thiết kế game tương lai”.

Tựa game được viết trên nền tảng ngôn ngữ lập trình game UnityScript:

Game: Fat City

Game: Nimian Legends: BrightRidge

9. Ngôn ngữ lập trình cấu trúc HTML5

HTML5 – ngôn ngữ đánh dấu hay ngôn ngữ lập trình cấu trúc đứng sau thành công của phần lớn các trò chơi di động ngày nay. HTML5 sẽ phát huy hiệu quả cao nhất khi kết hợp cùng JavaScript để tạo ra các nền đồ họa game cực đẹp và tương thích với cả web và mobile.

Với nhu cầu ngày càng tăng của người dùng trên khắp thế giới về thể loại game casual, dễ chơi, dễ tiếp cận, trò chơi code bởi HTML5 cũng được kì vọng sẽ tăng theo cấp số nhân. Và nếu kịch bản này diễn ra suôn sẻ, HTML5 sẽ sớm thống trị lĩnh vực ngôn ngữ lập trình thiết kế game mobile trong tương lai không xa.

Tựa game được viết trên nền tảng ngôn ngữ lập trình thiết kế game HTML5:

Game: Gods will be watching

Game: Nothing to Hide

10. UnrealScript

UnrealScript là một trong những ngôn ngữ lập trình thiết kế game cấp cao mang tính cách mạng của thập kỷ trước. Với chức năng như một ngôn ngữ kịch bản gốc cho cỗ máy game engine: Unreal khét tiếng, nó cũng tương thích với đa nền tảng từ Microsoft Windows, MacOS, Linux, SteamOS, Android và PlayStation VR.

Ngôn ngữ này kết hợp các tính năng phức tạp như hướng đối tượng và nhiều tính năng kế thừa và các trò chơi được thúc đẩy như Arkham City, Fortnite, Bioshock và Devil May Cry. Nếu bạn muốn phát triển trò chơi của mình trên Unreal Engine thì việc học ngôn ngữ này gần như là điều bắt buộc.

Tựa game được viết trên nền tảng ngôn ngữ lập trình game UnrealScript:

Game: The Sinking City

Game: New Retro Arcade: Neon

Tham khảo thêm về các ngôn ngữ lập trình khác trong loạt bài về thuật ngữ lập trình nhé!

IV. Thuật ngữ về các chức danh trong ngành thiết kế game và lập trình game

Nếu muốn làm trong ngành lập trình, thiết kế game, bạn có thể cân nhắc một số vị trí việc làm sau:

Nhà thiết kế game (Game Designer)

Một nhà thiết kế game sẽ được nhận định là người viết kịch bản, là “linh hồn của trò chơi”, đóng vai trò quyết định game đó bao gồm những gì và chơi như thế nào. Cụ thể công việc của một nhà thiết kế game:

Thiết kế gameplay (lối chơi): game mechanics (luật chơi và thông số liên quan), game elements (thành phần game ảnh hưởng trực tiếp đến gameplay, ví dụ: nhân vật, vũ khí, “giáp”, …).Thiết kế cấu trúc, màn chơi, hướng dẫn, điểm số, điểm thưởng, cấp độ và quá trình tiến hóa của game.Thiết kế các hình thức tài chính trong game thông qua mô hình shop, thu tiền, nạp tiền, mua bán vật phẩm,…Thiết kế kịch bản game, tuyến nhân vật, mô tả nhân vật, hoạt cảnh, hội thoại,…Thiết kế tài liệu game (game design document) dùng để trao đổi với nhà đầu tư và khách hàng,…

Sau khi hoàn thành hết các chức năng của mình, kết quả công việc của thiết kế game sẽ được bàn giao lại cho artist và programmer hiện thực hóa những ý tưởng đó.

Hoạ sĩ game (Game Artist)

Game Artist sẽ là người đầu tiên hiện thực hóa tất cả các ý tưởng từ nhà thiết kế game. Họ sẽ đảm nhiệm công việc thiết kế tất tần tật giao diện đồ họa của game, bao gồm: hoạt cảnh, nhân vật, môi trường trong game,… Họ là những người có gu thẩm mỹ, tinh tế, kiên nhẫn và thấu hiểu tâm lý người chơi tốt, có tình yêu với game và đam mê trong việc tạo ra những hình ảnh sáng tạo tuyệt vời. Game Artist thường được chia thành hai trường phái chính:

Artist 2D: Họa sĩ game 2D có công việc đặc thù là vẽ trên mặt phẳng, không đòi hỏi quá nhiều kiến thức về không gian và hình học, song yêu cầu về bản vẽ thường cao, cần sự tỉ mỉ và trau chuốt.
Artist 3D: Họa sĩ game 3D cần đảm nhận nhiều công việc đòi hỏi chuyên môn cao hơn 2D, yêu cầu có kiến thức cơ bản về cấu trúc cơ thể người, không gian và trí tưởng tượng tốt, thông qua khả năng vẽ ở nhiều góc độ và sử dụng các phần mềm để thể hiện cho người xem những góc độ đó.

Lập trình game (Game Developer/Game Programmer)

Cùng với Game Artist, Game Developer sẽ vận dụng kĩ năng tin học của mình trong việc trực quan hóa và “trò chơi hóa” các hình ảnh và ý tưởng đã được các nhà thiết kế game vạch ra. Có 2 trường phái chính mà các Game Developer theo đuổi:

Fontend: bao gồm UI-UX, Graphic Design, Gameplays, Tools, Game Engine, Script Programmer,…

Backend: Database Administrator, System Engineer, Network Programmer, Custorm Service Developer,…

Nhà tiếp thị game/PR game (Game Maketer)

Vai trò của nhà tiếp thị game cũng giống như bất cứ vị trí nhân viên marketing trong các ngành nghề khác,có chăng khác biệt lớn nhất là ở sản phẩm cần tiếp thị. Những công việc chính của một Game Maketer:

Tìm hiểu sản phẩm và lên ý tưởng quảng bá.Thiết lập và triển khai kế hoạch marketing cho dự án game.Viết content quảng bá sản phẩm game.Thực hiện tiếp thị đa kênh.Chăm sóc cộng đồng gamer.Quản lý các kênh.Kết hợp cùng bộ phận truyền thông quảng bá và ra đời sản phẩm mới.Kết hợp với bộ phận thiết kế game để tạo ra các ấn phẩm tiếp thị có chất lượng.

Kỹ sư âm thanh game

Nếu các bạn hiểu được tại sao người ta thường nói rằng xem phim của Christopher Nolan thì buộc phải ra rạp để thưởng thức ( tương tự với các dòng phim khoa học viễn tưởng, hành động, kinh dị,…) thì bạn sẽ hiểu được vai trò to lớn của kĩ sư âm thanh đến hai lĩnh vực đặc thù như điện ảnh và game. Cảm giác khi bạn áp tai nghe trong trò chơi cũng tương tự như khi ngồi trong phòng chiếu phim vậy, sự hoành tráng của dàn âm thanh sẽ tăng trải nghiệm của bạn lên đến cực độ.

Đó là lí do mà các kĩ sư âm thanh game ý thức được công việc thầm lặng của mình có ý nghĩa đến nhường nào.
Nếu không có bộ phận âm thanh này, các trò chơi của chúng ta chỉ có “xác” mà không có “hồn”. Chính họ đã thổi hồn vào những video đồ họa thông qua việc lên ý tưởng, phối theo từng bối cảnh, từng nhân vật, từng chuyển động,… Nghề này yêu cầu người tham gia có một tâm hồn nghệ sĩ, một khả năng cảm âm tuyệt vời cùng với sự linh hoạt trong sử dụng máy móc, thiết bị hỗ trợ.

Nhà kiểm nghiệm game (Game Tester)

Đây là nhân vật sẽ xuất hiện vào “cuối game” để “vạch lá tìm sâu”. Về cơ bản, một Game Tester sẽ là người trải nghiệm game sau khi nó đã trải qua nhiều công đoạn thiết kế game, thử nghiệm, kiểm duyệt, để tìm cho ra các lỗi, báo cáo lỗi, thậm chí can thiệp tạo ra một số lỗi để phía trên chỉnh lí sản phẩm trước khi nó được tung ra thị trường. Đa số các Game Tester đều không yêu cầu có chuyên môn quá sâu sắc, họ chỉ cần một đức tính tỉ mỉ, kiên nhẫn và cống hiến cho công việc là đủ.

Giám đốc sáng tạo game (Game Creative Director)

Game Creative Director là gần như vị trí cao nhất trong ngành thiết kế game và phát triển game. Họ đảm nhận công việc phát triển game và chịu trách nhiệm ở bộ phận thiết kế chính trong toàn bộ quá trình sản xuất của công ty. Bên cạnh đó, các giám đốc sáng tạo game cũng phải liên tục đưa ra ý tưởng, định hướng cho dự án trò chơi, quản lí và dẵn dắt đột nhóm đồng thời đảm bảo sự hợp tác đa chức năng với các phòng ban liên quan.

Đồ họa game là một ngành tiềm năng và đầy triển vọng tại Việt Nam. Tại Beelancer Việt Nam chúng tôi cung cấp các dịch vụ chất lượng từ game freelancer trên khắp cả nước. Tham gia làm việc cùng chúng tôi nhé!

Sandra Bae

Back to top button