- ĐiPu khiển: NgưNi chơi điPu khiển nhân vật bXng các button trên màn hình điện thoạilên, xuống, trái, phải.. - Kỹ thuật tải v đệm t i nguyên: Do tài nguyên trong game chỉ gồm các hình ả
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA ĐA PHƯƠNG TIỆN - -
BÁO CÁO MÔN: LẬP TRÌNH GAME CƠ BẢN
Giảng viên: Đỗ Văn Hanh
Họ và tên: Lê Thành Đạt
Mã SV: B19DCPT045
Hà Nô -i, 2023
Trang 2MỤC LỤC
I Ý tưởng và phân tích game 1
1 Idea 1
2 Concept 1
3 Pitch 1
4 Game document design 1
5 Phương pháp tiếp cận và hướng giải quyết 7
6.Các kỹ thuật lập trình 7
II Phân tích hệ thống 8
1 Mô hình Use Case 8
2 Domain Model 12
III Thiết kế hệ thống 14
1 Class Diagram 14
2 Sequence Diagram 15
3.Biểu đồ trạng thái 19
Trang 3NỘI DUNG BÁO CÁO
I Ý tưởng và phân tích game
1 Idea
- Game mobile 2D dành cho 1 ngưNi chơi
- Nhân vật đưOc điPu khiển trên map n攃Ā tránh các cạm bRy, tiêu diệt các kethU và ăn các vật phWm để cải thiện điểm số
2 Concept
- Game giải trí, đơn giản
- NgưNi chơi điPu kiển bXng các button trên màn hình game khi chơi
- Nhân vật Bob:
- Camera: g漃Āc nhìn chính diện, tracking theo nhân vật
3 Pitch
- Title: Bob World
- Thể loại: Phiêu lưu, giải đố
- Premise of the game (logic): Nhân vật di chuyển xung quanh bản đồ, vưOtchướng ngại vật và ăn vật phWm => Điểm tăng lên
- Gameplay: Khi bắt đầu trò chơi, nhân vật đứng tại 1 điểm xuất phát ĐiPukhiển nhân vật để di chuyển Tính toán lực để vưOt chướng ngại vật và ănvật phWm Nếu va phải các chướng ngại vật thì sẽ mất mạng và trò chơi kếtthúc
- Số ngưNi chơi: 1
- NPn tảng phát hành: Mobile - Phát hành: 01/2022
4 Game document design
4.1 Trang 1- Title
- Tên game: Bob World
- Các nPn tảng phát hành android và ios - Công cụ hỗ trO phát triển: Unity3D
- Lứa tuổi: Dành cho tất cả mọi ngưNi
- Chỉ số ESRB dư kiến E (everyone) chứa các hình ảnh, hoạt cảnh, hành động nhẹ nhàng
4.2 Trang 2- Outline
Trang 4- Cốt chuyện: Ngày xửa ngày xưa c漃Ā 1 nh漃Ām bạn gồm 4 ngưNi: Bob, Bin, Jin, Santa sống trong ngôi làng nhỏ Và 4 con ngưNi đ漃Ā c漃Ā chung một niPm đam mê với phiêu lưu và khám phá Một ngày nọ, 4 con ngưNi đ漃Ā quyết định rNi làng và đi khám phá thế giới xung quanh Trong cuộc phiêu lưu đ漃Ā từng ngưNi họ đã trải qua những gì haycUng đi khám phá
- Luồng trò chơi:
4.3 Trang 3- Character
- Concept Art: Pixel 2D, đồ họa đơn giản bắt mắt ngưNi chơi
- ĐiPu khiển: NgưNi chơi điPu khiển nhân vật bXng các button trên màn hình điện thoạilên, xuống, trái, phải
4.4 Trang 4- GamePlay
- NPn tảng vận hành yêu cầu: Android và IOS
- GamePlay cơ bản: Game đưOc chia làm nhiPu màn chơi và đưOc cập nhật thưNng xuyên Trong game, ngưNi chơi cần điPu khiển nhân vật n攃Ā tránh hoă ~c giết quái vật rồi nhă ~t các vật phWm để tăng điểm thưởng
DiemThuong = Tổng điểm ăn vật phWm + điểm giết quái vật
4.5 Trang 5- GameWord
- Âm nhạc sử dụng trong game: Sống động, âm thanh vui nhộn, … (Nhạc nPn,
âm thanh khi ăn vật phWm, âm thanh khi kết thúc lưOt chơi, âm thanh khi dính
Trang 54.6 Trang 6- GameExperience
- Hài hước, kịch tính, vui nhộn, …
- Đồ họa đơn giản vui nhộn, nhí nhảnh
4.7 Trang 7- GameRule
- Luật chơi đưOc thiết kế thân thiện, ngưNi chơi c漃Ā thể dễ dàng nắm bắt
- Cách di chuyển: Khi bắt đầu, Bob sẽ chỉ di chuyển vP phía trước và chú sẽ hành động theo những vật phWm điPu khiển mà chú gă ~p phải trên đưNng đi cƒa mình
- Bị thua: Khi Bob chạm vào các loại quái vật đang hoạt động, ngưNi chơi thua cuộc
và màn chơi sẽ kết thúc NgưNi chơi c漃Ā thể chơi lại 1 màn chơi nhiPu lần
- Thắng cuộc: Khi Bob chạm tới đích, ngưNi chơi sẽ chiến thắng màn chơi đ漃Ā và tiếp tục qua màn chơi mới
Trang 6- Setting:
- Shop:
- ChooseLevel:
Trang 7- GamePlay:
- Pause:
- Hồi sinh:
Trang 8- GameOver:
- GameCompelete:
5 Phương pháp tiếp cận và hướng giải quyết
- Phương pháp xây dựng phần mPm: phương pháp hướng đối tưOng
- Kiến trúc phần mPm: 3 lớp (Game Application, Game Logic, Game View)
- Công nghệ: sử dụng game engine (Unity bản 2019)
Trang 96 Các kỹ thuật lập trình
- Ki Ān tr甃Āc game actor v c愃Āc component trong game:
- Kỹ thuật điều khiển vòng lặp chính:
Kỹ thuật điPu khiển vòng lă ~p chính đưOc áp dụng là kỹ thuật cập nhật cứng Tất cả các thành phần trong hệ thống đPu đưOc cập nhật mỗi khung hình Các hàm update () trong các class sẽ đưOc gọi mỗi lần game cập nhật khung hình Quá trình cập nhật từng khung hình bao gồm:
Process player input: nhận dữ liệu đầu vào từ các button trên màn hình do ngưNi chơi truyPn vào
Perform Game Logic: xử lý logic cho các đối tưOng trong game và tương tác giữa các đối tưOng trong game
Render Scene: cập nhật trạng thái cƒa các đối tưOng trong game lên giao diện
- Kỹ thuật tải v đệm t i nguyên:
Do tài nguyên trong game chỉ gồm các hình ảnh animation cƒa nhân vật và tile set
để tạo bản đồ cUng với các audio nên tài nguyên cƒa game c漃Ā dung lưOng không cao, c漃Ā thể tải toàn bộ vào game khi bắt đầu game mà không gây ảnh hưởng đến tốc độ tải game và trải nghiệm chơi game cƒa ngưNi chơi
- Kỹ thuật lưu trữ dữ liệu:
Dữ liệu đưOc lưu lại trong quá trình chơi game bao gồm dữ liệu mà level mà ngưNi chơi đã đạt đưOc và vị trí cƒa chekpoint cuối cUng mà ngưNi chơi đi qua, từ lần vào game sau ngưNi chơi c漃Ā thể tiếp tục tiến trình Dữ liệu đưOc lưu rNi rạc dưới dạng Key-Value vào bộ nhớ thiết bị Để lưu trữ dữ liệu dưới dạng Key-Value, trong Unity
sử dụng PlayerRefs để lưu trữ
- Kỹ thuật xử lý input đầu v o từ người dùng:
Để xử lý input đầu vào từ ngưNi dUng, game sử dụng phương pháp Callbacks Các Phương pháp Callbacks đã đưOc tích hOp sẵn trong Unity Game Engine Các input
Trang 10từ ngưNi dUng nhập vào sẽ đưOc game engine xử lý ở tầng dưới Nh漃Ām lập trình chỉ cần đăng ký các input cần xử lý, khi đ漃Ā các callbacks sẽ đưOc gọi
- Kỹ thuật xử lý sự kiện trong game:
Onclick (): điPu khiển GUI
OnCollision2D: Kiểm tra va chạm giữa Character và các Monster, các interactive object
OnTrigger2D: Kiểm tra va chạm giữa Character và các địa hình đă ~c biệt
1 Mô hình Use Case
1.1 Biểu đồ Use Case tổng quát
Sơ đồ tổng qu愃Āt Use Case
Trang 111.2 Scenerio mô tả từng chức năng
- Use Case Start Game:
Usecase Start Game
Tác nhân NgưNi chơi
ĐiPu kiện trước Game ở màn hình Home
ĐiPu kiện đảm bảo thành
công
Màn hình hiển thị Chooselevel Chuỗi sự kiện chính:
1 NgưNi chơi click vào biểu tưOng Start game
2 Màn hình “PanelHome” Wn đi, chuyển sang màn hình hiển thị “PanelChooseLevel”
Ngoại Lệ:
- Use Case Setting:
Usecase Setting
Tác nhân NgưNi chơi
ĐiPu kiện trước Game ở màn hình Home
ĐiPu kiện đảm bảo thành
- Use case Bật Tắt Sound và Mussic
Usecase Bật Tắt Sound và Mussic
Tác nhân NgưNi chơi
ĐiPu kiện trước Game ở màn hình Home
ĐiPu kiện đảm bảo thành
công
Game bật hoă ~c tắt nhạc và âm thanhtheo ý ngưNi chơi
Trang 12Chuỗi sự kiện chính:
1 NgưNi chơi sẽ đưOc click vào button hiển thị trên màn hình
2 Hệ thống sẽ thực hiện dựa vào button mà ngưNi chơi vừa ấn
để bật hoă ~c tắt âm thanh, nhạc
Ngoại Lệ:
- Use Case Shop:
Usecase Shop
Tác nhân NgưNi chơi
ĐiPu kiện trước Game ở màn hình Home
ĐiPu kiện đảm bảo thành
công
Màn hình hiển thị giao diện shop vàthực hiện mua các vật phWm trongshop
Chuỗi sự kiện chính:
1 NgưNi chơi click vào biểu tưOng Shop trên màn hình Home
2 Màn hình hôm hiển thị “PanelShop”
3 NgưNi chơi thực hiện các thao tác với shop như mua vật phWm hay thay đổi các hình ảnh nhân vật
4 Các thao tác sẽ đưOc thực hiện và lưu lại
Ngoại Lệ:
Trang 13Tác nhân NgưNi chơi
ĐiPu kiện trước Màn hình Home hiển thị
1 NgưNi chơi click vào 1 level đã đưOc mở trên màn hình Home
2 Màn hình Home chuyển qua màn hình GamePlay và hiển thị level đã chọn
- Use Case ControlCharacter:
Usecase CharacterController
Tác nhân NgưNi chơi
ĐiPu kiện trước NgưNi chơi vào đưOc màn hình
GamePlay ĐiPu kiện đảm bảo thành công Nhân vật di chuyển hay thực
hiện theo điPu khiển cƒa ngưNichơi
Chuỗi sự kiện chính:
1 NgưNi chơi ấn vào các button điPu khiển trên màn hình
2 Nhân vật sẽ di chuyển theo điểu khiển cƒa ngưNi chơi và hiện thị chuyển động đ漃Ā trên màn hình
Ngoại Lệ:
2 Domain Model
Trang 15III Thiết kế hệ thống
1.Class Diagram
Trang 162 Sequence Diagram
- Use Case Start Game:
Trang 17- Use Case Setting:
Trang 18- Use case Bật Tắt Sound và Mussic
Trang 19- Use Case Shop:
- Use Case ChooseLevel:
Trang 20- Use Case ControlCharacter:
3 Biểu đồ trạng thái
- Nhân vật:
- Slime:
Trang 21- Snail: