Tutorial làm game Xếp Hình 2D với Unity3D (Phần 1)
Hiện nay, Unity3D đang là xu hướng của giới lập trình game. Để tạo điều kiện cho các bạn đam mê và yêu thích lập trình game có thể thoả sức sáng tạo, làm quen với môi trường Unity, các bạn đang muốn tìm hiểu về lập trình game chưa có cơ hội tiếp xúc và tự tay phát triển một game,… Chúng tôi chia sẻ tới các bạn 1 tutorial hướng dẫn làm 1 game đơn giản – game Xếp hình. Phiên bản đầu tiên của game này được xuất hiện vào tháng 6 năm 1984. Đây là một game gây nghiện cho tuổi thơ các thế hệ 8x trở về trước.
Game Xếp Hình vô cùng đơn giản chỉ với khoảng 130 dòng code và 2 file ảnh. Tuy rằng game này khá đơn giản nhưng nó sẽ mang đến cho người chơi nhiều cảm xúc thú vị.
Trước khi bắt đầu tutorial này, chúng ta cùng tìm hiểu sơ qua về môi trường làm việc với Unity3D nhé.
I. Giới thiệu về Unity
- Unity3D là một môi trường phát triển tích hợp, mạnh mẽ, hỗ trợ thao tác kéo thả, tuỳ biến giao diện nhanh chóng, trực quan.
- Cung cấp các công cụ xử lý đồ hoạ, tích hợp sẵn thư viện vật lý, tính toán va chạm…
- Hỗ trợ phát triển cả game 2D và 3D.
- Hỗ trợ nhiều nền tảng thông dụng như OSX, Linux, Window, Web, iOS, Window Phone 8, Android, PS3, BB…
- Cộng đồng người dùng, hỗ trợ rộng lớn.
- Có phiên bản miễn phí có thể chạy được trên Window và Mac OSX
Unity3D hướng tới người sử dụng chuyên nghiệp và cả nghiệp dư, nên khá dễ để sử dụng. Với ngôn ngữ lập trình bằng C#, JavaScript hoặc BOO.
Ngày nay rất nhiều nhà phát triển game lựa chọn Unity3D để phát triển bởi khả năng hỗ trợ đa nền tảng và sự mạnh mẽ tiện dụng của Unity3D.
Đến với Unity, các bạn sẽ không cần phải băng khoăn về các vấn đề xử lý, các khái niệm đồ hoạ phức tạp… tất cả đều trở nên dễ dàng và nhanh chóng với Unity. Một số game được phát triển trên Unity như Angry Bird, Elegy of War,…
Các bạn có thể vào đây để download và cài đặt Unity3D : http://unity3d.com/unity/download/
II. Các khái niệm cơ bản
1. GameObject
- Một đối tượng cụ thể trong game gọi là một game object, có thể là nhân vật, đồ vật nào đó.
Ví dụ: cây cối, xe cộ, nhà cửa, người…
2. Component
- Một GameObject sẽ có nhiều thành phần cấu tạo nên nó như là hình ảnh (sprite render), tập hợp các hành động (animator), thành phần xử lý va chạm (collision), tính toán vật lý (physical), mã điều khiển (script), các thành phần khác… mỗi thứ như vậy gọi là một component của GameObject.
3. Sprite
- Là một hình ảnh 2D của một game object có thể là hình ảnh đầy đủ, hoặc có thể là một bộ phận nào đó.
Bunny sprite
Sprite cho game xếp hình
4. Animation
- Là tập một hình ảnh động dựa trên sự thay đổi liên tục của nhiều sprite khác nhau. Ví dụ trong game Flappy bird, hiệu ứng con chim bay là animation kết hợp từ 3 hình ảnh của con chim với các trạng thái bay khác nhau.
5. Key Frame
- Key Frame hay Frame là một trạng thái của một animation. Có thể được tạo nên từ 1 sprite hay nhiều sprite khác nhau.
6. Prefabs
- Là một khái niệm trong Unity, dùng để sử dụng lại các đối tượng giống nhau có trong game mà chỉ cần khởi tạo lại các giá trị vị trí, tỉ lệ biến dạng và góc quay từ môt đối tượng ban đầu.
Ví dụ: Các đối tượng là ống cống trong game Flappy Bird đều có xử lý giống nhau, nên ta chỉ việc tạo ra một đối tượng ban đầu, các ống cống còn lại sẽ sử dụng prefabs. Hoặc khi ta lát gạch cho một cái nền nhà, các viên gạch cũng được sử dụng là prefabs.
7. Sounds
- Âm thanh trong game.
8. Script
- Script là tập tin chứa các đoạn mã nguồn, dùng để khởi tạo và xử lý các đối tượng trong game.
- Trong Unity có thể dùng C#, Java Script, BOO để lập trình Script.
9. Scenes
- Quản lý tất cả các đối tượng trong một màn chơi của game.
Một scene trong game xếp hình
10. Assets
- Bao gồm tất cả những gì phục vụ cho dự án game như sprite, animation, sound, script, scenes…
11. Camera
Là một game object đặc biệt trong scene, dùng để xác định tầm nhìn, quan sát các đối tượng khác trong game.
12. Transform
Là 3 phép biến đổi tịnh tiến, quay theo các trục, và phóng to thu nhỏ một đối tượng
III. Làm quen với môi trường Unity
1. Các thành phần và bố trí
- Để khỏi bỡ ngỡ chúng ta sẽ để bố trí mặc định của Unity.
Bố trí mặc định
a. Scenes
- Phần màu vàng số 1.
- Phần này phần hiển thị các đối tượng trong scenes một cách trực quan, có thể lựa chọn các đối tượng, kéo thả, phóng to, thu nhỏ, xoay các đối tượng …
- Phần này có để thiết lập một số thông số như hiển thị ánh sáng, âm anh, cách nhìn 2D hay 3D .
b. Game
- Phần số 2
- Phần này hiển thị game khi thực thi, một tab bên cạnh của tab Scenes.
c. Inspector
- Phần số 3
- Phần này hiển thị các component của một Game Object và các thông số của các component.
d. Project
- Phần số 4
- Phần này hiển thị thư mục Assets, chứa tất cả các tài nguyên của dự án game.
- Ở phần này, bên cạnh tab khác, có phần Console để hiển thị các log trong quá trình debug.
e. Hierarchy
- Phần 5
- Phần này quản lý tất cả các đối tượng trong scenes, có thể chọn lựa, đổi tên, xoá các đối tượng ra khỏi game.
f. Top bar
- Phần đóng khung màu đỏ: chứa các nút chuyên dụng:
+ Bốn nút bên trái: (1) tuỳ chọn cho phép dùng chuột kéo toàn bộ scenes, phóng to, thu nhỏ, lựa chọn các đối tượng trong scenes… (2) cho phép dùng chuột di chuyển các đối tượng trong scenes, (3) cho phép dùng chuột quay các đối tượng (4) cho phép dùng chuột phóng to, thu nhỏ các đối tượng
+ Ba nút ở giữa: (1) cho phép chạy demo game, (2) cho phép dừng game tại một frame nào đó, (3) cho phép chạy từng frame.
+ Hai drop list bên phải: (1) cho phép tuỳ chọn hiển thị các layer, (2) cho phép chọn và lưu các bố trí do người dùng thiết lập.
Ngoài ra còn có các cửa sổ khác của Unity, như Sprite Editor, Animation, Animator, Console… và các bạn có thể tự tuỳ biến cho mình một bố cục sao cho thuận tiện với mình nhất… nhưng khuyến cáo thì vẫn nên dùng bố cục mặc định. (Chọn ở Top bar chọn Layout –> Default) .
Vậy là các bạn đã làm quen với một số thuật ngữ trong game và giao diện của Unity. Phần tiếp theo mình sẽ hướng dẫn tạo, cấu hình game 2D với game Xếp hình nhé.
Một số trang web hay về Unity cho các bạn tham khảo:
https://unity3d.com/unity/2d-3d
http://sachdayunity.blogspot.com/2014/03/sach-day-unity-2d-engine.html
CDIT Training Center
Website khóa học: http://khoahoc.cdit.com.vn/khoa-hoc-phat-trien-mini-game/
Fanpage: https://www.facebook.
Email: training@cdit.com.vn/ da
Mobile: 0979 455 436 (Ms Oanh) – 043 557 0504