01. Thiết lập khu vực trò chơi (Setting up the game area)
Trong phần đầu tiên này, chúng ta sẽ thiết lập khu vực chơi của game. Hãy bắt đầu bằng việc nhập (import) các tài nguyên khởi tạo và tạo scene chính của trò chơi.
Nhập tài nguyên khởi tạo
Chúng tôi đã chuẩn bị sẵn một dự án Godot chứa các mô hình 3D và âm thanh sẽ được sử dụng trong suốt hướng dẫn này. Nếu bạn chưa tải về, hãy tải file nén tại đây:
🔗 Tải tài nguyên Squash the Creeps Starter (.zip)
Sau khi tải xong:
1. Giải nén file .zip vào một thư mục trên máy tính của bạn.
2. Khởi động Godot Project Manager và nhấn vào nút Import (Nhập).

- Trong cửa sổ hiện ra, duyệt đến thư mục
3d_squash_the_creeps_starter/vừa giải nén và chọn fileproject.godot.

- Nhấn Import & Edit để mở dự án trong Godot Editor.


Dự án mẫu gồm có file icon và hai thư mục chính:
- art/: Chứa các tài nguyên đồ họa (hai mô hình 3D player.glb, mob.glb, các material vật liệu) và file nhạc nền.
- fonts/: Chứa các font chữ được sử dụng cho giao diện.

Thiết lập khu vực sàn đấu (Playable Area)
Chúng ta sẽ tạo scene chính của trò chơi với gốc là một node cơ bản:
- Trong thanh Scene dock (ở góc trên bên trái), nhấn vào nút dấu cộng
+(Add Child Node) hoặc dùng phím tắtCtrl + A(Cmd + Atrên macOS). - Chọn loại node
Nodethông thường (màu trắng). - Đổi tên node này thành
Main(nhấn đúp chuột hoặc phímF2). - Lưu scene lại bằng cách nhấn
Ctrl + S(Cmd + S), đặt tên file làmain.tscn.

Main (Node)
Thêm mặt sàn (Floor / Ground)
Để các nhân vật không bị rơi vào khoảng không vô tận, chúng ta cần tạo một sàn đấu vững chắc. Trong Godot 3D, các vật cản tĩnh (như sàn, tường, trần nhà) được tạo bằng node StaticBody3D.
Một StaticBody3D bắt buộc phải có ít nhất một node con CollisionShape3D để xác định hình dạng va chạm vật lý:
- Chọn node
Main, nhấnCtrl + Avà thêm một nodeStaticBody3D. Đổi tên node này thànhGround. - Chọn node
Ground, nhấnCtrl + Avà thêm một node conCollisionShape3D.

Cây node của bạn sẽ trông như sau:
Main
└── Ground (StaticBody3D)
└── CollisionShape3D

Lúc này, một biểu tượng cảnh báo màu vàng tam giác sẽ xuất hiện bên cạnh CollisionShape3D vì nó chưa được gán hình dạng (shape):

- Chọn node
CollisionShape3D. - Sang bảng Inspector bên phải, tìm thuộc tính Shape (đang hiển thị
<empty>). - Nhấp vào và chọn New BoxShape3D (Hình hộp va chạm).

- Nhấp trực tiếp vào biểu tượng khối hộp BoxShape3D vừa tạo để mở rộng các thuộc tính của nó.
- Đặt kích thước Size thành:
- X:
60- Y:2- Z:60

Thêm phần hiển thị trực quan cho mặt sàn
Khung va chạm CollisionShape3D chỉ là vùng vật lý vô hình. Chúng ta cần thêm một khối mesh để người chơi có thể nhìn thấy mặt đất:
- Chọn node
Ground. - Nhấn
Ctrl + Ađể thêm một node conMeshInstance3D.

- Trong bảng Inspector, tìm thuộc tính Mesh (đang là
<empty>) và chọn New BoxMesh.

- Nhấp vào khối BoxMesh vừa tạo để mở rộng thuộc tính, và đặt kích thước Size khớp với hình dạng va chạm:
- X:
60- Y:2- Z:60
Cây node hiện tại:
Main
└── Ground (StaticBody3D)
├── CollisionShape3D (BoxShape3D 60x2x60)
└── MeshInstance3D (BoxMesh 60x2x60)
Bạn sẽ thấy một phiến đá màu xám rộng lớn bao phủ khung nhìn trong viewport 3D.

Căn chỉnh vị trí mặt sàn
Hiện tại mặt sàn đang nằm ở tâm tọa độ Y = 0, che mất lưới tọa độ (grid). Chúng ta sẽ hạ sàn xuống 1 mét dọc theo trục Y để mặt trên của sàn nằm chính xác tại mặt phẳng Y = 0:
- Bật chế độ bám lưới (Grid Snapping) bằng cách nhấn vào biểu tượng nam châm trên thanh công cụ 3D (hoặc phím tắt
Y).

- Chọn node
Ground(lưu ý: chọn đúng node chaGround, không chọn các node conMeshInstance3DhayCollisionShape3D). - Dùng chuột kéo mũi tên màu xanh lá cây (trục Y) của con trỏ gizmo xuống dưới
1mét.

- Hoặc trong bảng Inspector của
Ground, tìm mục Transform (như hình bên dưới):

-> Position và nhập giá trị:
- X: 0
- Y: -1
- Z: 0

Thêm ánh sáng định hướng (DirectionalLight3D)
Hiện tại khung cảnh của chúng ta trông phẳng và xám xịt do thiếu ánh sáng. Chúng ta sẽ thêm một nguồn sáng mô phỏng ánh nắng mặt trời:
- Chọn node gốc
Main. - Nhấn
Ctrl + Avà thêm một node conDirectionalLight3D.

- Sử dụng công cụ xoay (phím tắt
Ehoặc biểu tượng xoay trên thanh công cụ) để xoay đèn quanh trục X (vòng tròn màu đỏ) nghiêng xuống dưới sân đấu. - Trong bảng Inspector của
DirectionalLight3D: - Mở mục Shadow và tích chọn ô Enabled để bật bóng đổ cho ánh sáng.

Bây giờ bạn sẽ thấy mặt sàn xuất hiện độ sáng tối rõ rệt với bóng đổ chân thực.

Tổng kết bài 1
Bạn đã hoàn tất việc thiết lập cơ bản cho khu vực chơi:
- Nhập dự án tài nguyên mẫu vào Godot 4.
- Tạo scene chính Main (main.tscn).
- Tạo sàn đấu Ground bằng StaticBody3D, bao gồm khối va chạm CollisionShape3D và khối hiển thị MeshInstance3D.
- Thêm nguồn sáng mặt trời DirectionalLight3D có bóng đổ.