Với khả năng tạo ra một môi trườngsống động và tương tác, game bắn súng 3D mang đến trải nghiệm chơi game sôiđộng và mãn nhãn cho người chơi.. - Trong quá trình thực hiện dự án, chúng em
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
KHOA KHOA HỌC MÁY TÍNH
BÀI TẬP LỚN LẬP TRÌNH GAME
Lớp học phần : LẬP TRÌNH GAME (1) – GIT
Giảng viên hướng dẫn : THS TRỊNH THỊ NGỌC LINH
Đà nẵng, ngày 19 tháng 05 năm 2024
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
KHOA KHOA HỌC MÁY TÍNH
BÀI TẬP LỚN LẬP TRÌNH GAME
Lớp học phần : LẬP TRÌNH GAME (1) – GIT
Giảng viên hướng dẫn : THS TRỊNH THỊ NGỌC LINH
Trang 3NHẬN XÉT (Giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
Đà nẵng, ngày 19 tháng 05 năm 2024
Giảng viên hướng dẫn
(Kí và ghi rõ họ tên)
3
Trang 4LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn các thầy cô và các bạn đã dành thời giangiúp đỡ chúng em trong quá trình thực hiện đồ án này Đặc biệt, chúng em xinchân thành cảm ơn cô Trịnh Thị Ngọc Linh là người hướng dẫn cho đề tài củachúng em Là người tận tình giúp đỡ chúng em về thông tin của đồ án môn học.Nhờ vậy mà chúng em đã hoàn chỉnh được đồ án của mình và quan trọng hơn hết
là chúng em đã tiếp thu được những kinh nghiệm trong suốt quá trình thực hiện đồ
án Tuy nhiên, vì đây là một học phần mới và là lần đầu chúng em thực hiê jn mô jt
dự án cho bản thân mă jc dl đã tìm tmi nghiên cnu nhưng không tránh khoi nhữngthiếu sót
Dưới đây là kết quả của quá trình tìm hiểu, nghiên cnu và xây dựng lên mộttrm chơi mà chúng em đã thực hiện trong thời gian vừa qua Tuy có nhiều cố gắnghọc hoi trau dồi để nâng cao kiến thnc nhưng không thể tránh khoi những sai sót.Chúng em rất mong được những sự góp ý quý báu của các thầy giáo, cô giáo cũngnhư tất cả các bạn để đồ án của nhóm chúng em được hoàn thiện hơn
Sinh viên thực hiện
Trang 5BẢNG PHÂN CÔNG CÔNG VIỆC
Tên thành viên Công việc thực hiện Tỉ lệ đóng góp vào bài
Trang 6MỤC LỤC
LỜI CẢM ƠN 4
DANH MỤC HÌNH 7
MỞ ĐẦU 8
1 Giới thiệu về dự án 8
2 Mục tiêu và nhiệm vụ 8
3 Đóng góp 8
CHƯƠNG 1: XÂY DỰNG KỊCH BẢN GAME 9
1.1 Tổng quan về trò chơi 9
1.1.1 Bối cảnh 9
1.1.2 Cách chơi 9
1.2 Yếu tố trò chơi: 9
1.2.1 Con người (Đối tượng người chơi) 9
1.2.2 Cảnh vật (Ngoại cảnh) 10
1.2.3 Giới hạn khu vực chơi (Ngoại cảnh) 10
CHƯƠNG II KẾT QUẢ XÂY DỰNG GAME 11
2.1 Mô tả các scene 11
2.1.1 Menu Scene 11
2.1.2 Gameplay Scene 13
2.2 Mô tả các game object và các component liên quan 16
2.3 Mô tả các lớp C# Script 18
2.4 Âm thanh 19
2.5 Lưu thông tin 20
KẾT LUẬN 21
TÀI LIỆU THAM KHẢO 22
Trang 7DANH MỤC HÌNH
Hình 1: Menu 11
Hình 2: Hướng dẫn 11
Hình 3: Cài đặt đồ họa 12
Hình 4: Cài đặt âm thanh 12
Hình 5: Cài đặt độ nhạy 13
Hình 6: Giao diện load game 13
Hình 7: Màn chơi 14
Hình 8: Kết quả người thắng mỗi round 15
Hình 9: Kết quả người thắng chung cuộc 15
Hình 10: Animators 16
Hình 11: C# Script files 16
Hình 12: Âm thanh 18
Hình 13: Tly chỉnh âm thanh bằng Slider 18
7
Trang 8MỞ ĐẦU
1 Giới thiệu về dự án
- Game bắn súng 3D đã trở thành một trong những loại game phổ biến và được yêuthích rộng rãi trên các nền tảng khác nhau Với khả năng tạo ra một môi trườngsống động và tương tác, game bắn súng 3D mang đến trải nghiệm chơi game sôiđộng và mãn nhãn cho người chơi Việc phát triển một trm chơi bắn súng 3D yêucầu sự kết hợp giữa kỹ thuật lập trình, đồ họa 3D và âm thanh, clng với khả năngsáng tạo để tạo ra một trm chơi độc lập và hấp dẫn
- Trong quá trình thực hiện dự án, chúng em đã áp dụng những kiến thnc đã học và
công nghệ mới nhất để tạo ra một trm chơi bắn súng 3D, mô hình chất lượng đồhọa và hệ thống điều khiển mượt mà Những thử thách trong việc xây dựng môitrường trm chơi đa dạng, hệ thống vũ khí và trí tuệ nhân tạo cho kẻ thl đã đưachúng em nghiên cnu và áp dụng các kỹ năng sáng tạo kỹ thuật Chúng em đã
“XÂY DỰNG GAME 3D BẮN SÚNG ĐỐI KHÁNG (GUNFIRE OF RIVALS)”
2 Mục tiêu và nhiệm vụ
- Mục tiêu của chúng tôi trong dự án lập trình game bắn súng 3D là tạo ra một trmchơi hấp dẫn, mang đến trải nghiệm chơi game thú vị và thử thách cho người chơi.Chúng tôi đã đặt ra một số mục tiêu cụ thể để đảm bảo sự thành công của dự án:
Tạo ra một môi trường game 3D sống động: Chúng tôi tập trung vào việctạo ra một môi trường game 3D chân thực, với các cảnh quan, đối tượng vàchi tiết mô phong đời thực
Xây dựng hệ thống điều khiển mượt mà: Chúng tôi đặt ra nhiệm vụ tạo ramột hệ thống điều khiển linh hoạt và mượt mà cho người chơi Điều nàyđảm bảo rằng người chơi có thể dễ dàng di chuyển, nhắm mục tiêu và bắnđạn một cách tự nhiên và chính xác
Phát triển hệ thống vũ khí và máu vật : Một yếu tố quan trọng trong trm chơibắn súng là hệ thống vũ khí và máu nhân vật Chúng tôi đã đặt ra mục tiêuthiết kế súng và máu tương đối
Kỹ năng và phản xạ: Trm chơi bắn súng 3D yêu cầu người chơi phải phản
xạ nhanh, có khả năng quyết định và kỹ năng xử lý trong tình huống căngthẳng
Trang 9 Cải thiện khả năng tập trung và quyết định: Người chơi game bắn súng 3Dyêu cầu phải tập trung cao độ và quyết định nhanh chóng trong môi trườngđầy áp lực
9
Trang 10CHƯƠNG 1: XÂY DỰNG KỊCH BẢN GAME
1.1 Tổng quan về trò chơi
1.1.1 Bối cảnh
Trm chơi diễn ra trong bối cảnh một khu nhà máy bo hoang, với những tma nhà,máy móc hư hong và nhiều cảnh vật khác như cây cối Bối cảnh này không chỉ tạo ra mộtmôi trường đầy kịch tính và căng thẳng mà cmn cung cấp nhiều cơ hội để người chơi ẩnnấp và tạo ra chiến thuật độc đáo "Gunfire of Rivals" không chỉ là một trm chơi bắn súngđối kháng đơn thuần, mà cmn là một cuộc chiến về chiến thuật và kỹ năng, trm chơi hnahẹn mang đến những trải nghiệm đầy hấp dẫn và thách thnc
1.1.2 Cách chơi
"Gunfire of Rivals" là một trm chơi đối kháng bắn súng dành cho hai người chơi.Mỗi người chơi sẽ điều khiển một nhân vật với mục tiêu là tiêu diệt đối thủ Trm chơi bắtđầu với cả hai người chơi xuất hiện ở các điểm khác nhau trong khu nhà máy
Di Chuyển: Người chơi có thể di chuyển tự do trong khu vực nhà máy, sử dụng
địa hình để lợi dụng trong cuộc chiến Sử dụng các nút điều khiển để di chuyển,
Tận dụng môi trường xung quanh để che chắn và tạo lợi thế trong chiến đấu
Ẩn Nấp: Các điểm ẩn nấp như nhà máy, giàn khoan, cây cối và các tảng đá là
những nơi lý tưởng để người chơi nấp đạn và chờ thời cơ phản công
Giao chiến: Khi gặp đối thủ, người chơi sẽ sử dụng vũ khí để bắn hạ đối phương
Kết thúc trận đấu: Sẽ có tất cả 5 lượt chơi Lượt chơi sẽ kết thúc khi một tronghai người chơi bị tiêu diệt Người chơi chiến thắng chung cuộc sẽ là người có sốlượt chiến thắng nhiều hơn
Di chuyển theo mọi hướng và bắn đạn
+ Người chơi 1: Di chuyển bằng phím ASDW, tấn công bằng phím Space
+ Người chơi 2: Di chuyển bằng phím mũi tên lên, xuống, trái, phải và tấn công bằngphím Enter
Trang 111.2.2 Cảnh vật (Ngoại cảnh)
Mô tả:
Mô hình 3D của các nhà máy, nhà xưởng, cây cối và các tảng đá nằm rải rác khắp bản đồ
Chức năng:
Làm nơi ẩn nấp và chặn đạn cho người chơi
1.2.3 Giới hạn khu vực chơi (Ngoại cảnh)
Trang 12CHƯƠNG II KẾT QUẢ XÂY DỰNG GAME
Nút trò chơi mới: Khi nhấn vào, sẽ hiện lên thông báo, bằng cách nhấn vào nút
“Yes” màn hình chuyển sang cảnh trm chơi, bắt đầu từ điểm xuất phát trong khunhà máy bo hoang
Nút hướng dẫn: Khi nhấn vào sẽ hiện lên hướng dẫn cách chơi cho người chơi.
Trang 13 Nút cài đặt: Trong phần cài đặt bao gồm các cài đặt cho trm chơi như:
Cài đặt đồ họa: Khi nhấn vào, một bảng cài đặt hiện ra với các tly chọn: Độphân giải: Dropdown menu cho phép chọn các độ phân giải khác nhau như1920x1080, 1280x720, v.v
Chất lượng: Các tly chọn như Low, Medium, High, và Ultra
Trang 14 Cài đặt độ nhạy: Khi nhấn vào, một bảng cài đặt độ nhạy hiện ra với thanhtrượt để điều chỉnh độ nhạy của nhân vật.
Hình 5: Cài đặt độ nhạy
Nút thoát game: Khi nhấn vào, hộp thoại xác nhận hiện lên với 2 lựa chọn “Yes”
và “No” Nhấn “Yes” sẽ thoát, cmn nhấn “No” sẽ ở lại game
2.1.2 Gameplay Scene
Khi vào game sẽ hiển thị giao diện load game như bên dưới:
Hình 6: Giao diện load game
Trang 15Bắt Đầu Trận Đấu:
Khởi điểm: Người chơi bắt đầu ở hai điểm khác nhau trong khu nhà máy.
Mục tiêu: Người chơi di chuyển qua các khu vực khác nhau của map để khám phá
tìm kiếm và tiêu diệt đối thủ
Chạm trán đối thủ: Khi gặp đối thủ, người chơi sẽ phải tận dụng môi trường để
ẩn nấp, né tránh và phản công
Chiến đấu:
Ngưởi chơi 1: Di chuyển (ASDW), tấn công (Space)
Người chơi 2: Di chuyển (Left, Right, Up, Down), tấn công (Enter)
Các màn chơi: Có tất cả 5 lượt chơi.
Hình 7: Màn chơi
Kết quả: Trận đấu kết thúc khi một trong hai người chơi hết thanh máu tnc là bị tiêu diệt.
Sau mỗi round sẽ hiển thị kết quả người thắng của round đó và tỉ số hiện tại Sau đó sẽ tự động chuyển sang round đấu khác
15
Trang 16Hình 8: Kết quả người thắng mỗi round
Kết quả chung cuộc: Sau 5 lượt chơi, người chơi nào có số trận thắng nhiều hơn sẽ trở
thành người thắng chung cuộc
Hình 9: Kết quả người thắng chung cuộc
Trang 172.2 Mô tả các game object và các component liên quan
Animators: được sử dụng để các hoạt cảnh (animation) cho nhân vật và vật thể
trong game như các chuyển động cơ bản của nhân vật, hoạt cảnh chiến đấu bắnsung, thiết lập các chuyển cảnh giữa các hoạt cảnh khác nhau để đảm bảo sự mượt
mà và tự nhiên Ví dụ, chuyển từ trạng thái đnng yên sang chạy
Hình 10: Animators
Audio Mixer: dlng để control âm thanh trong game.
Spawn Point: là một vị trí cụ thể trong trm chơi mà các đối tượng(như nhân vật,
vật phẩm,…) sẽ xuất hiện hoặc được tạo ra(spawn) Spawn point rất quan trọngtrong thiết kế trm chơi vì chúng kiểm soát nơi các đối tượng mới xuất hiện trongtrm chơi
Game Object: gồm các idle nhân vật, súng, đạn ,và các object khác trong game:
Hình 11: Model nhân vật cầm súng
17
Trang 18Hình 12: địa hình
Hình 13: đạn
Các component được sử dụng:
Rigidbody: Rigidbody cho phép các GameObject của bạn hoạt động dưới
sự kiểm soát của vật lý Rigidbody cho phép người dung tương tác với vật
lý của các đối tượng và mô phong cách Unity cố gắng mô phong vật lý củathế giới thực
Box Collider: Box Collider là một hình không gian 3D dạng hộp được sửdụng để xử lý các va chạm vật lý cho một đối tượng Box Collider khôngcần phải có hình dạng chính xác giống như mesh của đối tượng
Audio Source: Audio Source phát lại một Audio Clip trong cảnh nguồn sẽđược phát lại tại một vị trí nhất định và sẽ giảm theo khoảng cách
Mesh Renderer: Mesh Renderer hiển thị một mesh Hoạt động với mộtthành phần Mesh Filter trên clng một GameObject, Mesh Renderer hiển thịmesh mà Mesh Filter tham chiếu
Capsule Collider: Capsule Collider là một collider dạng hình nón 3D đượcxây dựng sẵn, bao gồm hai nửa hình cầu được nối lại với nhau bởi một hìnhtrụ Capsule Collider hữu ích cho các mục trong nng dụng có hình dạnghình trụ, hoặc làm collider cho nhân vật người chơi và nhân vật khôngngười chơi trong một cảnh
Trang 192.3 Mô tả các lớp C# Script
Hình 14: C# Script files
Camera:
Theo dõi vị trí của người chơi và di chuyển camera theo một cách mượt mà
Duy trì khoảng cách cố định giữa camera và người chơi
Managers:
Quản lý trạng thái toàn cục của game
Chna logic để xử lý game
Quản lý các trạng thái và hành động liên quan đến người chơi
Menu:
Chuyển người chơi trở lại menu chính
Hiển thị và điều khiển menu tạm dừng, dừng và tiếp tục trm chơi
Player:
Quản lý và theo dõi lượng máu của người chơi
Xử lý sự kiện khi người chơi nhận sát thương và chết
Điều khiển chuyển động của người chơi dựa trên đầu vào từ bàn phím
Quản lý việc bắn súng của người chơi
Tạo đạn và thiết lập vận tốc cho đạn khi người chơi nhấn nút bắn
Shell:
Xử lý sự kiện nổ khi vo đạn va chạm
19
Trang 20 Gây sát thương và tạo lực nổ lên các đối tượng trong phạm vi nổ.
Hình 16: Tùy chỉnh âm thanh bằng Slider
Trang 212.5 Lưu thông tin
Tất cả thông tin trong game điều được lưu trong PlayerPref
PlayerPrefs trong Unity là một lớp tiện ích giúp lưu trữ và truy xuất dữ liệu người
dlng một cách đơn giản dưới dạng các cặp key-value Dữ liệu này có thể là những
thông tin như điểm số, tly chọn cấu hình, trạng thái của trm chơi, v.v PlayerPrefs
hỗ trợ ba kiểu dữ liệu chính: int, float, và string
Một số thông tin được lưu trong game:
Cài đặt: Đồ họa, âm thanh, độ nhạy
Button Continue Game
21
Trang 22KẾT LUẬN
Sau một thời gian tìm hiểu đề tài, nhóm chúng em đã thực hiện được đề tài củamình theo như dự kiến Thông qua việc tìm hiểu và xây dựng game dựa trên nền tảngUnity và ngôn ngữ lập trình C# ,nhóm chúng em đã thu được kết quả bước đầu như sau:
Nội dung đã làm được:
Xây dựng nên một trm chơi Multiple Player tương đối hoàn thiện, đúng với dựđịnh và ý tưởng đã đăng kí đề tài ban đầu của nhóm
Xây dựng được hệ thống điều khiển, quản lý trm chơi, và các chnc năng cơ bản chonhân vật và môi trường
Chnc năng của menu chính và các menu phụ hoạt động khá tốt
Chnc năng bắt đầu game, tạm dừng, và chơi lại được triển khai đầy đủ
Các hiệu nng âm thanh và nhạc nền phl hợp tăng cường trải nghiệm game
Nội dung chưa làm được:
Ở scene menu, phần cài đặt độ nhạy vẫn chưa hoạt động tốt
Chưa làm được chnc năng tiếp tục chơi khi thoát khoi nng dụng
Chưa áp dụng được nng dụng AI và các công nghệ mới cho game
Hướng phát triển:
Hoàn thiện và bổ sung thêm các tính năng mới:
Phát triển thêm các tính năng AI và các công nghệ mới cho game
Thêm hệ thống kỹ năng và nâng cấp cho nhân vật, triển khai các trang bị và vậtphẩm đặc biệt để người chơi có thể thu thập và sử dụng
Thiết kế thêm các màn chơi mới với môi trường đa dạng và phnc tạp hơn
Mở rộng nội dung, tối ưu hóa hiệu suất và cải thiện giao diện người dlng
Trang 23TÀI LIỆU THAM KHẢO
[1] Beginning C# Programming with Unity Visual Studio Edition – A.T Chamillard[2] Developing 2D Games with Unity (Independent Game Programming with C#) –Jared Halpern