Khám Phá Cấu Trúc Chi Tiết Của Game EzySmashers
Trong bài viết trước, chúng ta đã cùng nhau chạy EzySmashers trên localhost. Hôm nay, chúng ta sẽ đi sâu vào tìm hiểu cấu trúc của game EzySmashers, từ thư mục cho đến mã nguồn, để nắm rõ cách mà trò chơi này được tổ chức và hoạt động.
Mở Project EzySmashers Bằng Unity
Các bước cài đặt và mở project đã được hướng dẫn chi tiết trong phần #3, ở các bước 1 và 2. Các bạn có thể tham khảo lại để nắm rõ cách thức khởi động project.
1. Tìm Hiểu Cấu Trúc Thư Mục EzySmashers
Khi bạn mở thư mục EzySmashers trong Unity, giao diện sẽ hiển thị như sau: dưới mục Project >
sẽ có các thư mục chứa tài nguyên game của bạn. Dưới đây là cấu trúc của các thư mục quan trọng trong EzySmashers:
- StreamingAssets: Chứa file
config.json
, nơi bạn có thể tùy chỉnh các thông tin cấu hình như đường dẫn web, socket, autoLogin hoặc logger. - WebGLTemplates: Thư mục này chứa mẫu thiết kế dành riêng cho trò chơi web như logo, nền,...
youngmonkeys/EzySmashers
_ Project
- Resources: Chứa tất cả tài nguyên của game như animators, images, textures,...
- Actions: Chứa các hành động của nhân vật trong game, chẳng hạn như di chuyển.
- Prefabs: Lưu trữ các đối tượng có thể tái sử dụng trong game như nhân vật, vũ khí, hoặc các vật phẩm loot.
- Scenes: Ghi lại các cảnh game như cảnh loading, cảnh login, cảnh sảnh trò chơi, và cảnh phòng chờ trận đấu.
- ScriptableObjects: Chứa các đối tượng có thể lập trình phản ánh các sự kiện UI.
- Scripts: Chứa các tập lệnh C#. Phần này sẽ được mô tả chi tiết hơn trong mục tiếp theo.
- Extensions: Thư mục chứa
ezyfox-server-csharp-sdk
để tương tác với máy chủ socket ezyfox. - JsonDotNet: Thư viện hỗ trợ quá trình tuần tự hóa và hủy tuần tự hóa JSON.
- TextMesh Pro: Hệ thống hiển thị văn bản có sức mạnh tốt hơn trong Unity, cung cấp khả năng hiển thị văn bản đẹp mắt cho trò chơi.
2. Cấu Trúc Thư Mục Scene
Như các bạn thấy, thư mục Scene
chứa các scene quan trọng như:
- PreLoaderScene: Tải cấu hình trò chơi và khởi tạo các singleton cần thiết cho các cảnh.
- LoginScene: Giao diện đăng nhập của người chơi.
- ForgotPasswordScene: Giao diện hỗ trợ người dùng trong việc đặt lại mật khẩu.
- LobbyScene: Hiển thị phòng sảnh nơi người dùng có thể tìm và tham gia game.
- GameLoungeScene: Hiển thị phòng chờ chơi khi chờ một người tham gia.
- Game2DScene: Phòng trò chơi đang hoạt động.
3. Cấu Trúc Mã Nguồn
Cấu trúc mã nguồn trong EzySmashers được tổ chức như sau:
- config: Chứa các cấu trúc dữ liệu từ file
StreamingAssets/config.json
. - constant: Chứa các hằng số và phép liệt kê được sử dụng trong toàn bộ dự án.
- controller: Chịu trách nhiệm giao tiếp với máy chủ HTTP hoặc socket.
- converter: Chuyển đổi giữa các loại đối tượng khác nhau như yêu cầu, mô hình, và phản hồi.
- event: Chứa các lớp sự kiện trong trò chơi dựa trên đối tượng có thể lập trình.
- http: Chứa lớp xử lý yêu cầu và phản hồi HTTP.
- manager: Quản lý trạng thái và dữ liệu khác nhau trong game.
- model: Chứa các đối tượng dữ liệu sử dụng trong dự án, thường được kiểm soát bởi các trình quản lý.
- presenter: Xử lý logic, tương tác dữ liệu và điều khiển hiển thị thành phần trò chơi.
- request: Đối tượng biểu diễn yêu cầu HTTP gửi tới máy chủ.
- response: Đối tượng biểu diễn phản hồi từ máy chủ HTTP/Socket.
- util: Nhóm các lớp tiện ích hỗ trợ trong quá trình phát triển game.
- view: Chứa các thành phần MonoBehaviour hiển thị trong game.
Liên Kết Tham Khảo
Kết Luận
Trên đây là cái nhìn tổng quan về cấu trúc thư mục và mã nguồn của game EzySmashers. Hy vọng những thông tin này sẽ hữu ích cho các bạn trong quá trình phát triển. Trong phần tiếp theo, chúng ta sẽ chạy và thực hiện một số thay đổi nhỏ trên game. Cảm ơn các bạn đã theo dõi bài viết này!
source: viblo