Nếu từng có ý tưởng tự làm một trò chơi của riêng mình, có lẽ bạn đã không ít lần nghĩ rằng phát triển game là công việc khá phức tạp. Chúng ta thường hình dung đến rất nhiều dòng code, đồ họa, âm thanh, vật lý và hàng loạt hệ thống phải xử lý phía sau một trò chơi hoàn chỉnh. Tuy nhiên, với sự phát triển của các game engine hiện nay, việc bắt đầu làm game đã trở nên dễ tiếp cận hơn rất nhiều.
GameMaker là một trong những công cụ như vậy. Với cách tiếp cận trực quan, hệ thống quản lý tài nguyên rõ ràng và ngôn ngữ lập trình GML, GameMaker cho phép người mới từng bước biến một ý tưởng đơn giản thành một trò chơi có thể chạy được.
Trong bài viết này, chúng ta sẽ cùng làm quen với GameMaker từ những khái niệm cơ bản nhất như Sprite, Object, Room cho đến GML, Event và quy trình xây dựng một game 2D. Nếu bạn đang tìm một điểm bắt đầu để bước vào thế giới phát triển game, đây có thể là một lựa chọn đáng để khám phá.
1. GameMaker là gì?

1.1. Khái niệm GameMaker
GameMaker là một công cụ phát triển game, được thiết kế đặc biệt để hỗ trợ quá trình xây dựng các trò chơi 2D. Thay vì phải tự mình xây dựng từ đầu những thành phần phức tạp của một game engine, developer có thể tận dụng hệ thống có sẵn của GameMaker để tập trung nhiều hơn vào gameplay và ý tưởng của trò chơi.
Điểm thú vị của GameMaker nằm ở sự kết hợp giữa giao diện trực quan và lập trình. Người mới có thể bắt đầu bằng việc tạo Sprite, Object, Room rồi thiết lập các hành vi cơ bản thông qua hệ thống Event. Khi đã quen với cách hoạt động của engine, bạn có thể sử dụng GML để kiểm soát sâu hơn logic của trò chơi.
GameMaker có thể được sử dụng để phát triển nhiều thể loại game 2D khác nhau như platformer, RPG, puzzle, arcade, top-down hay action. Một game đơn giản có thể bắt đầu chỉ với một nhân vật, một màn chơi và một vài dòng code, sau đó từng bước mở rộng thành một project hoàn chỉnh.
1.2. GameMaker phù hợp với ai?
GameMaker đặc biệt phù hợp với những người mới bắt đầu tìm hiểu về lập trình game. Bạn không nhất thiết phải có nhiều kinh nghiệm về game development trước đó để bắt đầu.
Công cụ này có thể phù hợp với:
- Người mới học lập trình game.
- Học sinh, sinh viên muốn tự xây dựng game đầu tiên.
- Developer muốn thử nghiệm nhanh một ý tưởng gameplay.
- Người có ý tưởng về game 2D nhưng chưa muốn bắt đầu với một engine quá phức tạp.
- Những người muốn học lập trình thông qua một sản phẩm trực quan.
Một điểm tôi khá thích ở cách tiếp cận này là kết quả của code có thể được nhìn thấy rất nhanh. Thay vì chỉ chạy một chương trình và nhận về một dòng kết quả trong terminal, bạn có thể thấy nhân vật di chuyển, va chạm hoặc tương tác ngay trên màn hình game. Điều này khiến việc học lập trình trở nên trực quan và có cảm giác “đang tạo ra một thứ gì đó” hơn.
1.3. GameMaker khác gì so với một số game engine phổ biến?
GameMaker không phải game engine duy nhất dành cho developer. Hiện nay có rất nhiều công cụ khác như Unity, Unreal Engine hay Godot.
Mỗi công cụ có định hướng riêng. GameMaker tập trung mạnh vào phát triển game 2D và hướng đến quy trình tạo game tương đối nhanh. Unity hỗ trợ cả 2D và 3D với hệ sinh thái lớn, trong khi Unreal Engine nổi bật với khả năng phát triển game 3D và đồ họa chất lượng cao. Godot lại được nhiều developer quan tâm nhờ tính mã nguồn mở và khả năng hỗ trợ cả 2D lẫn 3D.
Vì vậy, thay vì xem GameMaker như một công cụ cạnh tranh trực tiếp với tất cả các engine khác, có thể xem đây là một lựa chọn phù hợp khi mục tiêu của bạn là phát triển game 2D và muốn bắt đầu từ một môi trường tương đối dễ tiếp cận.
2. Những thành phần quan trọng trong GameMaker
Để hiểu cách GameMaker hoạt động, trước tiên cần làm quen với một số thành phần cơ bản trong project. Đây cũng là những khái niệm bạn sẽ thường xuyên gặp khi bắt đầu xây dựng game.

2.1. Workspace và giao diện làm việc
Sau khi tạo một project, bạn sẽ làm việc chủ yếu trong workspace của GameMaker. Đây là nơi chứa các khu vực phục vụ cho việc quản lý tài nguyên, chỉnh sửa code, thiết kế Room và kiểm tra game.
Thay vì phải nhớ vị trí của mọi thành phần ngay từ đầu, người mới nên tập trung vào một quy trình đơn giản:
Tạo tài nguyên → thiết lập Object → viết logic → đưa vào Room → chạy thử.
Khi đã thực hiện quy trình này vài lần, cách tổ chức của GameMaker sẽ trở nên quen thuộc hơn.
2.2. Asset và Asset Browser
Trong một game, chúng ta sẽ có rất nhiều tài nguyên khác nhau. GameMaker gọi chung chúng là Asset.
Một project có thể bao gồm:
- Sprite.
- Object.
- Room.
- Sound.
- Font.
- Script.
- Tile Set.
- Các tài nguyên phục vụ giao diện và gameplay khác.
Asset Browser giúp bạn quản lý những tài nguyên này trong project. Việc đặt tên rõ ràng ngay từ đầu rất quan trọng, đặc biệt khi project bắt đầu có nhiều màn chơi và hàng chục hoặc hàng trăm đối tượng.
Ví dụ, thay vì đặt tên một Sprite đơn giản là player, bạn có thể sử dụng quy tắc như:
spr_player
spr_enemy
spr_coin
spr_background
Cách đặt tên này giúp nhanh chóng nhận biết loại tài nguyên khi làm việc với project.
2.3. Sprite
Sprite là hình ảnh được sử dụng để hiển thị nhân vật, vật phẩm hoặc các thành phần trực quan khác trong game.

Ví dụ, một nhân vật có thể có nhiều Sprite tương ứng với những trạng thái khác nhau:
spr_player_idle
spr_player_run
spr_player_jump
spr_player_attack
Một Sprite cũng có thể chứa nhiều frame để tạo animation. Khi các frame được hiển thị liên tiếp, người chơi sẽ cảm nhận được chuyển động của nhân vật.
2.4. Object
Nếu Sprite chủ yếu đại diện cho phần hình ảnh thì Object có thể xem là nơi chứa hành vi của một đối tượng trong game.

Ví dụ:
obj_player
obj_enemy
obj_coin
obj_bullet
Một Object có thể sử dụng Sprite để hiển thị và chứa nhiều Event để xử lý hành vi.
Chẳng hạn, obj_player có thể đảm nhiệm việc đọc bàn phím, di chuyển nhân vật và xử lý va chạm. obj_coin có thể xử lý việc người chơi chạm vào đồng xu và cộng điểm.
Có thể hình dung đơn giản:
Sprite = đối tượng trông như thế nào
Object = đối tượng hoạt động như thế nào
Đây là một trong những khái niệm quan trọng nhất khi bắt đầu làm quen với GameMaker.
2.5. Room
Room là không gian nơi game diễn ra. Bạn có thể hình dung Room như một màn chơi, một khu vực hoặc một màn hình trong game.

Một project có thể có nhiều Room:
rm_menu
rm_level_01
rm_level_02
rm_game_over
Trong Room, bạn có thể đặt các Object, background, tile và những thành phần cần thiết khác để tạo nên màn chơi.
Ví dụ, trong một game platformer, Room có thể chứa nhân vật, nền đất, kẻ địch, vật phẩm và điểm kết thúc của màn chơi.
3. Làm quen với GML – ngôn ngữ lập trình của GameMaker
Sau khi hiểu Sprite, Object và Room, bước tiếp theo là tìm hiểu GML. Đây là phần giúp bạn chuyển từ việc sử dụng các thành phần có sẵn sang chủ động điều khiển logic của game.

3.1. GML là gì?
GML là ngôn ngữ lập trình được sử dụng trong GameMaker để xây dựng logic cho trò chơi.
Thông qua GML, bạn có thể điều khiển rất nhiều thành phần như:
- Chuyển động nhân vật.
- Va chạm.
- Điểm số.
- Máu.
- Vật phẩm.
- Kẻ địch.
- Âm thanh.
- Chuyển màn chơi.
- Trạng thái của game.
Cú pháp của GML tương đối dễ tiếp cận đối với người mới. Nếu đã từng học một ngôn ngữ lập trình như C, C++, JavaScript hoặc Python, bạn cũng sẽ dễ dàng nhận ra nhiều khái niệm quen thuộc.
3.2. Biến trong GML
Biến được sử dụng để lưu trữ dữ liệu trong quá trình game hoạt động.
Ví dụ:
score = 0;
speed_player = 4;
player_name = "Player";
Ở đây, score có thể lưu điểm số, speed_player lưu tốc độ di chuyển và player_name lưu tên nhân vật.
Trong game, giá trị của biến thường xuyên thay đổi. Chẳng hạn, khi người chơi nhặt được một đồng xu:
score += 1;
Điểm số sẽ tăng lên một đơn vị.
3.3. Câu lệnh điều kiện
Câu lệnh if giúp game đưa ra quyết định dựa trên một điều kiện cụ thể.
Ví dụ:
if (score >= 10) {
show_message("You Win!");
}
Đoạn code trên có thể hiểu đơn giản là: nếu điểm số lớn hơn hoặc bằng 10 thì thực hiện hành động thông báo người chơi chiến thắng.
Từ những câu lệnh điều kiện đơn giản như vậy, chúng ta có thể xây dựng rất nhiều cơ chế gameplay khác nhau.
3.4. Event và cách GameMaker xử lý logic
Một đặc điểm quan trọng của GameMaker là hệ thống Event. Thay vì viết toàn bộ logic vào một chương trình duy nhất, bạn có thể gắn code vào những sự kiện khác nhau của Object.
Một số Event thường gặp gồm:
- Create Event: chạy khi một Instance được tạo.
- Step Event: được xử lý liên tục trong quá trình game chạy.
- Draw Event: dùng để kiểm soát việc vẽ.
- Collision Event: xử lý tương tác giữa các đối tượng khi xảy ra va chạm.
- Keyboard/Mouse Event: phản hồi thao tác từ người chơi.
Ví dụ, thông thường logic di chuyển của Player có thể được đặt trong Step Event vì nó cần được cập nhật liên tục khi người chơi nhấn phím.
3.5. GML Visual và GML Code
GameMaker cũng cung cấp cách tiếp cận trực quan thông qua GML Visual. Với cách này, người dùng có thể xây dựng logic bằng các khối hành động thay vì viết trực tiếp toàn bộ code.
Đây có thể là điểm bắt đầu khá dễ chịu đối với người hoàn toàn mới.
Tuy nhiên, khi project trở nên phức tạp, việc hiểu và viết GML Code sẽ giúp bạn kiểm soát logic tốt hơn. Vì vậy, nếu mục tiêu lâu dài là trở thành developer game, tôi cho rằng không nên chỉ dừng lại ở thao tác trực quan mà nên từng bước làm quen với code.
4. Bắt đầu tạo game đầu tiên với GameMaker
Sau khi đã nắm những khái niệm cơ bản, chúng ta có thể thử xây dựng một game rất đơn giản. Mục tiêu ở đây không phải tạo ra một sản phẩm hoàn chỉnh mà là hiểu cách các thành phần của GameMaker kết nối với nhau.

4.1. Tạo project mới
Bước đầu tiên là tạo một project mới trong GameMaker.
Bạn có thể bắt đầu bằng một project đơn giản, đặt tên phù hợp với ý tưởng muốn thực hiện. Ở giai đoạn này, không cần quá quan tâm đến việc thiết lập mọi thứ hoàn hảo.
Điều quan trọng hơn là tạo được một project và bắt đầu khám phá cấu trúc bên trong.
4.2. Tạo Sprite cho nhân vật
Tiếp theo, tạo một Sprite dành cho nhân vật. Nếu chưa có hình ảnh riêng, bạn có thể sử dụng một hình ảnh đơn giản để phục vụ việc thử nghiệm.
Ví dụ đặt tên:
spr_player
Khi project phát triển, bạn có thể thay Sprite này bằng hình ảnh hoàn chỉnh hơn mà không nhất thiết phải thay đổi toàn bộ logic của Object.
4.3. Tạo Object Player
Sau khi có Sprite, hãy tạo một Object và gắn Sprite đó vào Object.
Ví dụ:
obj_player
Đây là lúc chúng ta bắt đầu thấy rõ mối quan hệ:
Sprite → hình ảnh của nhân vật
Object → hành vi của nhân vật
Ví dụ, spr_player quyết định nhân vật trông như thế nào, còn obj_player chịu trách nhiệm cho việc nhân vật di chuyển, nhảy, tấn công hoặc tương tác với môi trường.
4.4. Tạo chuyển động cho nhân vật
Một cách đơn giản để điều khiển nhân vật là kiểm tra trạng thái của các phím mũi tên.
Ví dụ:
var move_x = keyboard_check(vk_right) - keyboard_check(vk_left);
var move_y = keyboard_check(vk_down) - keyboard_check(vk_up);
x += move_x * 4;
y += move_y * 4;
Ở đây, keyboard_check() được sử dụng để kiểm tra phím đang được nhấn.
Nếu người chơi nhấn phím phải, giá trị move_x sẽ tăng. Nếu nhấn phím trái, giá trị này giảm. Sau đó vị trí x và y của nhân vật được cập nhật.
Đây là một ví dụ nhỏ nhưng rất có ý nghĩa khi học lập trình game. Bạn có thể nhìn thấy ngay mối quan hệ giữa input → code → hành động trên màn hình.
4.5. Tạo Room và đưa nhân vật vào game
Sau khi có Player, hãy tạo một Room rồi đặt obj_player vào đó.
Room chính là nơi chúng ta kiểm tra những gì vừa xây dựng. Khi chạy game, nhân vật sẽ xuất hiện trong Room và có thể phản hồi thao tác điều khiển.
Đến đây, bạn đã có một game rất đơn giản: có nhân vật, có không gian chơi và có khả năng di chuyển.
4.6. Thêm vật phẩm để tạo tương tác
Bước tiếp theo có thể là tạo một đồng xu để người chơi thu thập.
Giả sử Object của đồng xu là:
obj_coin
Khi Player va chạm với Coin, chúng ta có thể tăng điểm:
score += 1;
instance_destroy();
score += 1 tăng điểm của người chơi, còn instance_destroy() loại bỏ Instance của Coin khỏi Room.
Chỉ với vài thành phần đơn giản, chúng ta đã bắt đầu có một gameplay loop:
Người chơi di chuyển → tiếp cận vật phẩm → thu thập → nhận điểm.
Đây chính là cách nhiều tính năng phức tạp hơn trong game cũng được hình thành: kết hợp input, logic, tương tác và trạng thái của game.
5. Quy trình phát triển một game bằng GameMaker
Khi đã thử nghiệm một game nhỏ, bạn sẽ nhận ra rằng viết code chỉ là một phần của quá trình phát triển. Một game hoàn chỉnh cần được xây dựng theo từng bước.

5.1. Xác định ý tưởng và gameplay
Trước khi tạo hàng loạt Asset, hãy xác định game của mình sẽ hoạt động như thế nào.
Một số câu hỏi cần trả lời:
- Game thuộc thể loại nào?
- Người chơi cần làm gì?
- Mục tiêu của người chơi là gì?
- Điều kiện thắng và thua ra sao?
- Cơ chế chơi chính là gì?
Đừng bắt đầu với một ý tưởng quá lớn. Một game đơn giản nhưng hoàn thành được sẽ mang lại nhiều kinh nghiệm hơn một dự án có hàng chục tính năng nhưng nhanh chóng bị bỏ dở.
5.2. Chuẩn bị Asset
Sau khi có gameplay cơ bản, bạn có thể chuẩn bị các tài nguyên cần thiết:
- Sprite.
- Background.
- Sound.
- Music.
- Font.
- UI.
Ở giai đoạn prototype, Asset không cần quá đẹp. Điều quan trọng là game có thể chơi được. Sau khi gameplay ổn định, bạn có thể quay lại cải thiện hình ảnh và âm thanh.
5.3. Xây dựng Gameplay Core
Gameplay Core là những cơ chế quan trọng nhất tạo nên trải nghiệm của trò chơi.
Ví dụ với một platformer:
- Điều khiển nhân vật.
- Chạy.
- Nhảy.
- Va chạm với nền.
- Kẻ địch.
- Vật phẩm.
- Điều kiện thắng/thua.
Nên ưu tiên hoàn thành những thành phần này trước khi dành quá nhiều thời gian cho hiệu ứng hoặc trang trí.
5.4. Thiết kế Level
Khi gameplay đã hoạt động, bạn có thể bắt đầu xây dựng các màn chơi.
Room trong GameMaker có thể được sử dụng để thiết kế từng Level. Bạn cần bố trí nền, vật cản, kẻ địch và vật phẩm sao cho tạo ra thử thách hợp lý.
Độ khó cũng nên được tăng dần. Một màn chơi đầu tiên nên giúp người chơi hiểu cách điều khiển trước khi giới thiệu những cơ chế phức tạp hơn.
5.5. Thêm UI và âm thanh
Sau gameplay, UI và âm thanh sẽ giúp game có cảm giác hoàn thiện hơn.
Bạn có thể thêm:
- Điểm số.
- Thanh máu.
- Menu.
- Nút Pause.
- Màn hình Game Over.
- Hiệu ứng âm thanh.
- Nhạc nền.
Những yếu tố này không trực tiếp tạo ra gameplay nhưng đóng vai trò quan trọng trong trải nghiệm tổng thể.
5.6. Test và Debug
Không có project game nào hoàn thành chỉ bằng việc viết code một lần.
Bạn cần liên tục chạy thử và kiểm tra:
- Nhân vật có di chuyển đúng không?
- Va chạm có chính xác không?
- Điểm số có cập nhật không?
- Enemy có hành động đúng không?
- Có lỗi khi chuyển Room không?
- Game có hoạt động ổn định không?
Debug là một phần không thể thiếu của quá trình phát triển. Càng kiểm tra thường xuyên, bạn càng dễ xác định nguyên nhân khi có lỗi xảy ra.
6. Một số khái niệm GameMaker người mới nên nắm
Khi đã làm được một game đơn giản, bạn có thể bắt đầu tìm hiểu sâu hơn về cách GameMaker quản lý các đối tượng và trạng thái trong game.

6.1. Instance
Một trong những khái niệm dễ gây nhầm lẫn với người mới là Object và Instance.
Object có thể hiểu như một khuôn mẫu định nghĩa cách một đối tượng hoạt động. Khi Object được đưa vào Room, GameMaker tạo ra một Instance cụ thể của Object đó.
Ví dụ, bạn có Object:
obj_enemy
Trong Room, bạn có thể tạo ra nhiều Instance của obj_enemy. Các Enemy này có thể sử dụng chung logic nhưng tồn tại ở những vị trí khác nhau.
6.2. Collision
Collision là cơ chế xử lý va chạm giữa các đối tượng.
Ví dụ:
- Player chạm Enemy.
- Player nhặt Coin.
- Bullet chạm Enemy.
- Player chạm tường.
Collision là thành phần rất quan trọng trong nhiều thể loại game. Một game platformer chẳng hạn sẽ cần xử lý va chạm giữa nhân vật và nền, trong khi game bắn súng cần xử lý va chạm giữa đạn và kẻ địch.
6.3. Animation
Animation giúp các đối tượng trong game có chuyển động tự nhiên hơn.
Một nhân vật có thể có nhiều trạng thái:
Idle
Run
Jump
Attack
Mỗi trạng thái có thể sử dụng một Sprite hoặc một tập hợp frame khác nhau. Khi trạng thái của nhân vật thay đổi, animation cũng được thay đổi theo.
6.4. Camera
Camera quyết định phần nào của Room mà người chơi nhìn thấy.
Với một màn chơi nhỏ, camera cố định có thể là đủ. Nhưng với một bản đồ lớn, camera thường cần theo dõi Player khi nhân vật di chuyển.
Camera đặc biệt quan trọng đối với platformer, RPG hoặc các game có bản đồ rộng.
6.5. Game State
Game State là trạng thái hiện tại của trò chơi.
Một game có thể có những trạng thái như:
Menu
Playing
Paused
Game Over
Victory
Việc tổ chức game theo trạng thái giúp developer quản lý logic tốt hơn. Ví dụ, khi game đang ở trạng thái Paused, người chơi không nên tiếp tục điều khiển nhân vật như khi đang Playing.
Đây là một bước quan trọng để chuyển từ việc viết những đoạn code nhỏ sang tư duy thiết kế hệ thống game.
7. Ưu điểm và hạn chế của GameMaker
7.1. Ưu điểm
GameMaker có một số điểm mạnh đáng chú ý đối với developer muốn phát triển game 2D.
Đầu tiên là khả năng tiếp cận tương đối tốt. Người mới có thể làm quen với Sprite, Object, Room và Event trước khi đi sâu vào GML.
Thứ hai là tốc độ xây dựng prototype. Khi đã quen với công cụ, việc tạo một cơ chế gameplay mới có thể diễn ra khá nhanh.
Ngoài ra, GameMaker tập trung mạnh vào 2D nên nhiều thành phần phục vụ loại game này được tích hợp trực tiếp vào quy trình phát triển.
Một điểm khác là GML cho phép developer chuyển từ việc sử dụng giao diện trực quan sang lập trình để kiểm soát game sâu hơn.
7.2. Hạn chế
Bên cạnh những ưu điểm, GameMaker cũng có những giới hạn nhất định.
Đây không phải công cụ được định hướng chủ yếu cho những dự án game 3D phức tạp. Nếu mục tiêu của bạn là phát triển một game 3D với hệ thống đồ họa hiện đại, bạn có thể cần cân nhắc những engine có định hướng mạnh hơn về 3D.
Ngoài ra, việc GameMaker dễ tiếp cận không có nghĩa là bạn có thể bỏ qua lập trình. Khi project trở nên lớn, bạn vẫn cần hiểu về cấu trúc dữ liệu, logic, tổ chức code, debugging và kiến trúc game.
Nói cách khác, GameMaker có thể giúp giảm rào cản ban đầu, nhưng để phát triển một game phức tạp, kỹ năng của developer vẫn đóng vai trò quyết định.
8. Lộ trình học GameMaker cho người mới
Nếu mới bắt đầu, việc học theo một lộ trình rõ ràng sẽ giúp tránh cảm giác “học rất nhiều nhưng không biết mình đang đi đến đâu”.

8.1. Giai đoạn 1: Làm quen công cụ
Trước tiên, hãy tập trung vào:
- Giao diện.
- Asset Browser.
- Sprite.
- Object.
- Room.
- Event.
Mục tiêu của giai đoạn này là hiểu cách một project GameMaker được tổ chức.
8.2. Giai đoạn 2: Học GML cơ bản
Tiếp theo, hãy học những kiến thức lập trình nền tảng:
- Biến.
- Kiểu dữ liệu.
- Toán tử.
- Câu lệnh điều kiện.
- Vòng lặp.
- Function.
- Array.
- Struct.
Không cần học tất cả trong một lần. Tốt hơn hết là học một khái niệm rồi áp dụng ngay vào một tính năng nhỏ trong game.
8.3. Giai đoạn 3: Làm game nhỏ
Khi đã hiểu GML cơ bản, hãy bắt tay vào một project nhỏ.
Một số ý tưởng phù hợp gồm:
- Pong.
- Game kiểu Flappy Bird.
- Platformer đơn giản.
- Top-down shooter.
- Puzzle game.
Mục tiêu không phải tạo ra một game thương mại ngay lập tức mà là hoàn thành một sản phẩm từ đầu đến cuối.
8.4. Giai đoạn 4: Học gameplay nâng cao
Sau những project đầu tiên, bạn có thể tiếp tục tìm hiểu:
- State machine.
- Enemy AI.
- Inventory.
- Save/Load.
- Particle.
- Animation.
- Camera.
- UI.
Đây là giai đoạn bạn bắt đầu giải quyết những bài toán phức tạp hơn và xây dựng các hệ thống có thể tái sử dụng.
8.5. Giai đoạn 5: Hoàn thiện một project cá nhân
Cuối cùng, hãy chọn một ý tưởng vừa sức và cố gắng hoàn thiện nó.
Quá trình có thể bao gồm:
Ý tưởng
↓
Prototype
↓
Gameplay
↓
Level
↓
UI & Audio
↓
Testing
↓
Debug
↓
Hoàn thiện
Nếu có thể, hãy sử dụng Git hoặc một công cụ quản lý phiên bản để theo dõi thay đổi trong project. Đây cũng là thói quen hữu ích nếu sau này bạn làm việc trong một đội phát triển game.
10. GameMaker có thể dùng để làm những loại game nào?
GameMaker đặc biệt phù hợp với nhiều thể loại game 2D.

10.1. Platformer
Platformer là thể loại khá phù hợp để bắt đầu học GameMaker.
Bạn có thể thực hành:
- Di chuyển.
- Nhảy.
- Trọng lực.
- Collision.
- Enemy.
- Vật phẩm.
- Level.
Đây cũng là thể loại giúp người mới hiểu rõ mối quan hệ giữa Player, Room và Collision.
10.2. Top-down game
Trong game top-down, người chơi thường nhìn nhân vật từ phía trên xuống.
Bạn có thể xây dựng:
- Di chuyển bốn hướng.
- Combat.
- NPC.
- Inventory.
- Bản đồ.
- Vật phẩm.
Đây là nền tảng phù hợp để tiến tới những game RPG 2D phức tạp hơn.
10.3. Puzzle game
Puzzle game tập trung nhiều vào logic và tương tác.
Ví dụ, người chơi cần di chuyển vật thể, kích hoạt công tắc hoặc tìm cách mở cửa.
Loại game này giúp rèn luyện khả năng xây dựng điều kiện, trạng thái và logic gameplay.
10.4. Arcade game
Arcade game thường có gameplay đơn giản nhưng yêu cầu người chơi phản ứng nhanh.
Bạn có thể xây dựng hệ thống:
- Điểm số.
- Combo.
- Tăng độ khó.
- Leaderboard.
- Thời gian giới
11. Kết luận
GameMaker là một lựa chọn đáng để khám phá nếu bạn muốn bắt đầu hành trình phát triển game, đặc biệt với các dự án 2D. Từ những thành phần cơ bản như Sprite, Object, Room cho đến Event và GML, GameMaker cung cấp một quy trình tương đối trực quan để người mới từng bước biến ý tưởng thành một trò chơi có thể tương tác.
Điều quan trọng khi học GameMaker không phải là cố gắng ghi nhớ tất cả tính năng ngay từ đầu. Thay vào đó, hãy bắt đầu với một project nhỏ, nắm chắc những khái niệm nền tảng rồi từng bước mở rộng sang chuyển động, va chạm, animation, UI, AI và các hệ thống gameplay phức tạp hơn. Quá trình vừa học vừa xây dựng sản phẩm sẽ giúp kiến thức lập trình trở nên dễ hiểu và thực tế hơn.
Với nền tảng GML cùng hệ thống công cụ dành cho phát triển game 2D, GameMaker có thể trở thành bước khởi đầu thú vị cho những ai muốn tìm hiểu sâu hơn về game development. Khi đã hoàn thành được những project đầu tiên, bạn cũng sẽ có nền tảng tốt hơn để tiếp tục khám phá các kỹ thuật lập trình game nâng cao và xây dựng những sản phẩm mang dấu ấn riêng.
Tài liệu tham khảo
[1] YoYo Games, “GameMaker,” GameMaker. [Online]. Available: https://gamemaker.io/. [Accessed: Sep. 26, 2026].
[2] YoYo Games, “GameMaker Manual,” GameMaker. [Online]. Available: https://manual.gamemaker.io/. [Accessed: Sep. 26, 2026].
[3] YoYo Games, “GameMaker Help Centre,” GameMaker. [Online]. Available: https://help.gamemaker.io/. [Accessed: Sep. 26, 2026].
[4] YoYo Games, “GameMaker Features,” GameMaker. [Online]. Available: https://gamemaker.io/en/features. [Accessed: Sep. 26, 2026].
[5] YoYo Games, “GameMaker Language,” GameMaker. [Online]. Available: https://manual.gamemaker.io/monthly/en/GameMaker_Language/GML_Reference/GML_Reference.htm. [Accessed: Sep. 26, 2026].
[Tài nguyên buổi 6 + 7 +8] https://drive.google.com/file/d/1M1koYhXmsTIOX6WkfMXfjIIsvXndVAoY/view?usp=drive_link