Trước đây, vào những năm đầu có sự xuất hiện của trò chơi điện tử, mọi ngườithường phải mua những bộ máy chơi game hay những chiếc máy tính cồng kénhkhông có khả năng di động dé có thé t
Trang 1BO THONG TIN VÀ TRUYEN THONG HỌC VIỆN CONG NGHỆ BƯU CHÍNH VIỄN THONG
ĐỎ ÁN TÓT NGHIỆP ĐẠI HỌC
PHÁT TRIÊN ỨNG DỤNG GAME THỦ THÀNH 2D SỬ
DỤNG THUẬT TOÁN TIM DUONG ĐI NGAN NHẤT
Người hướng dẫn: ThS Nguyễn Thị Thanh Tâm Sinh viên thực hiện: Nguyễn Quang An
Lớp: DI9PTDPT
Hệ đào tạo: Đại học chính quy
Hà Nội, 11/2023
Trang 2Đồ án tốt nghiệp đại học Danh mục các bang
BO THONG TIN VÀ TRUYEN THONG
HỌC VIEN CONG NGHỆ BƯU CHÍNH VIỄN THONG
ĐỎ ÁN TÓT NGHIỆP ĐẠI HỌC
Người hướng dẫn: ThS Nguyễn Thi Thanh Tâm Sinh viên thực hiện: Nguyễn Quang An
Lớp: DI9PTDPT
Hệ đào tạo: Đại học chính quy
Hà Nội, 11/2023
Trang 3Đồ án tốt nghiệp đại học Danh mục các bang
HỌC VIEN CÔNG NGHỆ BƯU CHÍNH VIÊN THONG CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA ĐA PHƯƠNG TIỆN Độc lập — Tự do — Hanh phúc
DE TÀI DO AN TOT NGHIỆP ĐẠI HỌC
Họ và tên sinh viên: Nguyễn Quang An
Lớp: DI9PTDPT Khoá: 2019-2023 Ngành đào tạo: Công Nghệ Đa Phương Tiện Hệ đào tạo: Đại học chính quy
1 Tên đồ án/khoá luận tốt nghiệp: Phát triển ứng dụng game thủ thành 2D sử dụng
thuật toán tìm đường đi ngắn nhất
2 Lý do chọn đề tài:
Giải trí là một nhu cầu thiết thực đối với mỗi người, nhất là trong bối cảnh xãhội như hiện nay, những hoạt động giải trí trong thời gian ngăn (10 - 30p) là cầnthiết dé mọi người có khoảng thời gian vui vẻ và giải tỏa áp lực giữa những giờlàm việc, học tập căng thăng hoặc đơn giản là giết thời gian cho việc chờ đợi haynhững lúc rảnh rỗi, nhàm chán Sự phát triển nhanh chóng của các thiết bị thôngminh cầm tay nhỏ gọn đi kèm với sự nổi lên của các trò chơi điện tử trên các thiết
bị đó đang mở ra nhiều cơ hội cho lĩnh vực trò chơi điện tử phát triển nhanh chónghơn bao giờ hết
Trước đây, vào những năm đầu có sự xuất hiện của trò chơi điện tử, mọi ngườithường phải mua những bộ máy chơi game hay những chiếc máy tính cồng kénhkhông có khả năng di động dé có thé trải nghiệm những tựa game yêu thích thì hiệnnay, những trò chơi mới có thể được chơi ngay trên chính những chiếc điện thoạithông minh cam tay rất phổ biến với rất nhiều thé loại khác nhau nhằm phục vụ
nhiều đối tượng người sử dụng Trong số đó, những dòng game mang thé loại
chiến thuật thuộc dòng mid-core nhận được rất nhiều sự quan tâm của người sửdụng với các số liệu thống kê rất khả quan về lượng người chơi gắn bó, khả năng
tạo ra dòng tiền cho nhà phát triển và cơ hội thành công của các trò chơi mang thểloại này cũng tương đối cao, có thé kế đến nhiều tựa game đang thịnh hành trên thị
Trang 4Đồ án tốt nghiệp đại học Danh mục các bang
trường như: Clash Royale, Clash of Clans (Supercell), Kingdom Rush (Ironhide
Games), Plants vs zombies(EA), Các tựa game vừa nêu trên du ra mắt đã lâu
nhưng vẫn có một lượng người chơi đông đảo.
Đối với thê loại game này, đối tượng người chơi nhằm đến thường là nhữngngười chơi đã có kinh nghiệm với các thé loại game midcore, yêu thích các dòng
game chiến thuật đặc biệt là đặt trụ thủ thành
Với những lý do trên, em đã lựa chọn đề tài “ Phát triển ứng dụng game thủthành 2D sử dụng thuật toán tìm đường đi ngắn nhất.” Điểm đặc biệt của sản pham
là ứng dụng thêm thuật toán tìm đường đi ngắn nhất BFS để tính toán đường cho
kẻ địch từ vị trí bắt đầu đến kết thúc Khác với các trò chơi thủ thành khác trên thị
trường hiện nay, khi một màn chơi sẽ có 1 đường di có định từ đầu đến cuối cho kẻđịch thì sản phẩm của em sẽ chia bản đồ màn chơi thành 1 ma trận các ô vuông vàđường đi kẻ địch sẽ là các ô vuông liên tiếp nhau theo 4 hướng lên xuống trái phảiđược tính toán dựa trên cách sắp xếp trụ bảo vệ và các vật can có san Chi tiết về
cách chơi được giới thiệu ở link sau:
https://docs.google.com/document/d/
17_Au_jltwpTG1K7GeLc2 YWtnGqtZHRUeFzRPdc83fr0/edit?usp=sharing
Nội dung chính của đ án:
Đồ án được chia làm các chương như sau:
Chương 1: Tổng quan về dé tai
e Giới thiệu về dé tài, mục tiêu và ý nghĩa của việc phát triển trò chơi chiến thuật
2D.
Chương 2 : Công nghệ sử dụng
e Giới thiệu về các loại công nghệ và ngôn ngữ lập trình được sử dụng trong qua
trình phát triển (lich sử ra đời, các tinh năng nồi bật, lý do lựa chọn)Chương 3: Phân tích và thiết kế tiền sản xuất
e Xây dựng tài liệu thiết kế (GDD) mô tả các yêu cầu của trò chơi, bao gồm cốt
truyện, gameplay, hình ảnh, âm thanh, nhân vật và các tính năng khác.
Trang 55.
6.
Đồ án tốt nghiệp dai học Danh mục các bang
Thiết kế hệ thống trò chơi, bao gồm biểu đồ use case, biểu đồ lớp cho các đốitượng trong trò chơi, và biểu đồ tuần tự cho các tương tác chính
Xác định và nêu chi tiết nguyên lý va cách sử dụng thuật toán tìm đường đingắn nhất trong trò chơi
Chương 4: Thuật toán tìm kiếm đường đi ngắn nhất
Cơ sở lý thuyết của các thuật toán tìm đường đi ngắn nhất phổ biến trong phát
triển trò chơi
Phân tích và đánh giá ưu và nhược điểm của các loại thuật toán,
Kết luận và chọn ra thuật toán tối ưu cho ứng dụng
Chương 5: Phát triển ứng dụng game thủ thành chiến thuật 2D
Mô tả chỉ tiết quá trình phát triển các tính năng quan trọng của trò chơi, baogồm cách ứng dụng thuật toán tìm đường đi ngắn nhất dé điều hướng đối tượng
Trang 6CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
Hà Nội, ngày — thang 12 năm 2023
NHAN XÉT CUA GIÁO VIÊN HƯỚNG DAN
ĐỎ ÁN/KHÓA LUẬN TÓT NGHIỆP ĐẠI HỌC
Tên đề tài: Phát triển ứng dụng game thủ thành 2D sử dụng thuật toán tìm đường đi
ngăn nhất.
Sinh viên: Nguyễn Quang An MSV: BI9DCPT002 Lớp: D19PTDPT
Giáo viên hướng dẫn: ThS Nguyễn Thị Thanh Tâm
Nơi công tác : Học viện Công nghệ Bưu chính Viễn thông
NỘI DUNG NHAN XÉT
Trang 7LỜI CÁM ƠN
Trước tiên, em xin gửi lời cảm ơn chân thành đến giảng viên hướng dẫn của em,
cô Nguyễn Thị Thanh Tâm, người đã luôn tạo điều kiện và hỗ trợ em trong suốt quátrình thực hiện dự án Những kiến thức, hướng dẫn và góp ý của cô đã giúp em hoàn
thành được sản phâm một cách hoàn chỉnh nhất
Đồng thời, xin cảm ơn các anh chị, bạn bè, người thân đã chia sẻ những kinhnghiệm quý giá và cung cấp những hình ảnh, tài nguyên, tư liệu quan trọng đã hỗ trợ
em rất nhiều trong quá trình xây dựng sản phẩm
Cuối cùng, em xin được gửi lời cảm ơn tới toàn thể thầy cô giáo đã và đang công
tác tại Học viện Công nghệ Bưu Chính Viễn thông nói chung và các thầy cô trongkhoa Đa Phương Tiện nói riêng đã tận tình chỉ bảo và truyền đạt lại cho em và các bạnsinh viên những kiến thức quý báu làm hành trang dé có thé phát triển trên con đường
tri thức trong tương lai.
Nguyễn Quang An - BI9DCPT002 i
Trang 8LOI CAM KET
Em xin cam đoan rằng Đồ an Tốt nghiệp này là công trình nghiên cứu của bản
thân em dưới sự hướng dẫn của ThS Nguyễn Thị Thanh Tâm Các phần trình bày và
kết quả nêu trong đồ án tốt nghiệp là trung thực, là thành quả của riêng em và không
sử dụng hay sao chép theo bất kỳ công trình nào khác Mọi nguồn tài liệu tham khảo
trong đồ án tốt nghiệp (bao gồm hình ảnh, bảng biểu, số liệu và các câu từ trích dẫn)
đều được ghi rõ ràng và đầy đủ nguồn gốc trong danh mục tài liệu tham khảo Em xin
hoàn toàn chịu trách nghiệm với dù chỉ một sao chép vi phạm quy chế của nhà trường
Ha Nội, ngày 03 thang 11 năm 2023
Người thực hiện
Nguyễn Quang An
Nguyễn Quang An - BI9DCPT002 ii
Trang 9Đồ án tốt nghiệp đại học Mục lục
MỤC LỤC
CHƯƠNG 1 CƠ SỞ LÝ THUYET VÀ NEN TANG CÔNG NGHỆ SỨ
In c1 ::(A,||:-1-1
1.1.2 Game d6 họa 2.5D là Ì2 -¿- 5c + S1 E2 1EE11211211111211211 111211 11111 1 111 111k
I9) .-.-4141a4444AAA.AÁ Ô 29 1.2.3 Các đặc tính cơ bản của Q L2 111112231111 12231 111110211 1111103 111g ng vn ng
1.3.1 Téng 010077
1.3.3 Các thành phan quan trong cơ bản cho việc phát triển ứng dụng game trong
IS 0003 da LdẢ
(in
1.8.3 SOUTC€ TTT€ Lọ ng n1 1111 111k 3)
Nguyễn Quang An - BI9DCPT002 iv
Trang 10Đồ án tốt nghiệp đại học Mục lục
2.1.1 Biéu đồ Use Case tổng quát +: 2 ©s SE SE E19 12E121121121121121121121121121111 1111111111111.
2.1.2 Bảng mô tả các chức năng chính trong se Case - 5c 2 3223211121111 Ervre
2.1.4 Biéu dé lop thiét ké chi 1n ẽ 5
2.1.4.b Biéu đồ lớp thiết kế cho thực thé kẻ địch và các đối tượng liên quan -s
2.1.5 Dac ta CHUC NANG ee ẢỒÔ€£Ởd£ÓĐ®Ồ®ỔỒỶỶŸ
3.2.1 Thuật toán BFS (Breadth-First Searcl)) c2 2c 3213211211151 111 1111111111112 1 11101 11 1 1x HH
3.2.2 hở no 1
3.2.2.a Giới thiệu tóm tắt cc+cc22ttttttHnHH tren
3.2.2.0 s 011i 1 3.2.3 Thuat toan Dijkstra a
3.2.3.a Giới thiệu tóm tt eeccceecccsssesessseesesssnecessnneeeesnneceessneessnnseecssnmeecesnesecsnneesesnneeeesnneeessen
3.2.3.b Luồng hoạt động cơ bản 5c 6s EEE211271711211111111 1111211211111 0111 re
3.2.4 Thuật toán Bellman-FFord - - << + 21111622311 111 1911111129311 1291111110211 111g 11g 1g vn
k6 NG uốn aA
3.2.5 Phân tích ưu nhược điểm by 3700/7011
Nguyễn Quang An - BI9DCPT002 iv
Trang 11Đồ án tốt nghiệp đại học Mục lục
3.3.1 Bài tốn Gat ra - -. - 1111112311111 29 111110 11g KTS 1 EEHgưy
4.1.2 Chuẩn bị tài nguyên -¿- 2-52 1 2E E12 12112112111211211111211 111111101 1101111210111 re
4.1.3.a Giao diện chính chính 2 E2 2221111 1293118111953 81 531111183511 11183 11kg vn ket
CN HU AC) it 2ì0ii9::5Ä 2/0 0n 'iẳỶỎỠỎŨỒỖỮ
6n uc nh
4.1.3.c Lớp GameManaØ€T - - - - c1 TH TH HH HH HH ki
4.3 Kết quả đạt được và đánh giá -: 5c s9 E1 E12112112211211211 111211 T1 11 11 1011011 ru
sen - ƠỎ.
Nguyễn Quang An - BI9DCPT002 Vv
Trang 12Đồ án tốt nghiệp đại học Mục lục
DANH MỤC CÁC BANG
BANG 2.1 Mô tả các chức năng chính trong S€CaS€ - 2 222 1321112 11511115111 Ekrrrke
BANG 3.1 So sánh ưu và nhược điểm của 3 loại thuật toán tìm đường ngắn nhất phố
AK
Nguyễn Quang An - BI9DCPT002 vi
Trang 13Đồ án tốt nghiệp đại học Danh mục hình vẽ
DANH MỤC CÁC HÌNH VỀ
Hình 1.1 Minh hoạ trò chơi điện tử trên thiết bị đi 50277
Hình 1.3.Giao diện tựa game Boom Beach - +11 32211191112 111911191119 11 01111 HH ng Hư
Hình 1.4 Giao diện tựa game Plants vs ZOrmbI€S c2 3321112111391 11511111 5811181151111 1 ke
Hình 1.6 Giao diện trang web Unity Asset S†OTC - . - T0 1n St SH SH TH 111111111111 81 1k Hưku Hình 1.7 Giao diện trang web Google APIs for nIfy - - + SH ng ng nành
Hình 1.10 Mô tả vòng đời của | ứng dụng xây dựng trên nIfy - -. 25 + * +2 xssvsseerssereee
Hinh 1.11 NgOn ngtt CH eee
Hình 1.13 Logo phần mềm Bilenider 2-5 656 S9SEEESE£EEE£EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEErkrrrrre,
Hình 1.14 Giao diện làm việc trong Blender(Ver 3.3) - - c1 1S v1 111111111111 11 1g như
Hinh 1.15 Framework Dotween 218
Hình 1.16 Phần mềm quan lý phiên bản Qit c.cecccececcseescssescsessesessessesessesssessessssesesssesesetseeessees
Hình 1.17 Logo dịch vụ Github - c 1121111111211 1211 1181111311101 1 0111 011 011111 H1 ng HH kg Hy rg
Hình 2.5 Bản đỗ level (1 ¿- 2-52 2S E2EEEXEE1EE18112112112112112111111 2111111111111 rre
Hình 3.1 Lưu đồ cơ bản thuật toán BFS ¿25+ 222v 2222122211122
Hình 3.4 Lưu đồ thuật toán ứng dụng BFS vào hệ thống tìm đường đi ngắn nhất trong
tO COL e((d4ä433
Nguyễn Quang An - BI9DCPT002 Viii
Trang 14Đồ án tốt nghiệp đại học Danh mục hình vẽ
Hình 4.7 Đường di chuyền của kẻ địch cập nhật theo vị trí người chơi đặt
Hình 4.11 Ví dụ cho việc lớp cây con ghi đẻ lại lên phương thức Attack() có hành vi
[4.1400 ⁄00810ãv 0i 0P ea
Hình 4.13 Dữ liệu tĩnh của lớp cây Pea Shooter được lưu trong Scriptable ObJect asset
Hình 4.14 Ví dụ sử dụng PlayerPref lưu dt liệu người dùng trong SCTIpE . 52-5 +5<<<<<++
Hình 4.16 Quá trình rig humanoid cho nhân vật zombIe - ¿5c 22c 33221322 %2E+2E+sexssseeses
Nguyễn Quang An - BI9DCPT002 Viii
Trang 15Đồ án tốt nghiệp đại học Mớ đầu
MỞ ĐẦU
Giải trí là một nhu cầu thiết thực đối với mỗi người, nhất là trong bối cảnh xã hộinhư hiện nay, những hoạt động giải trí trong thời gian ngắn (10 - 30p) là cần thiết dé
mọi người có khoảng thời gian vui vẻ và giải tỏa áp lực giữa những giờ làm việc, học
tập căng thăng hoặc đơn giản là giết thời gian cho việc chờ đợi hay những lúc rảnh rỗi,nhàm chán Sự phát triển nhanh chóng của các thiết bị thông minh cầm tay nhỏ gọn đikèm với sự nỗi lên của các trò chơi điện tử trên các thiết bi đó đang mở ra nhiều cơ hộicho lĩnh vực trò chơi điện tử phát triển nhanh chóng hơn bao giờ hết
Trong những năm gần đây, những dòng game mang thể loại chiến thuật thuộcnhận được rất nhiều sự quan tâm của người sử dụng với các số liệu thống kê rất khả
quan về lượng người chơi gắn bó, khả năng tạo ra dòng tiền cho nhà phát triển và co
hội thành công của các trò chơi mang thể loại này cũng tương đối cao, có thé kế đến
nhiều tựa game đang thịnh hành trên thị trường như: Clash Royale, Clash of Clans
(Supercell), Kingdom Rush (Ironhide Games), Plants vs zombies(EA), Các tựa
game vừa nêu trên dù ra mắt đã lâu nhưng vẫn có một lượng người chơi đông đảo Đốivới thê loại game này, đối tượng người chơi nhằm đến thường là những người chơi đã
có kinh nghiệm với các thê loại game casual và midcore, yêu thích các dòng game
chiến thuật đặc biệt là đặt trụ thủ thành
Với mong muốn được tạo ra một trò chơi đáp ứng được nhu cầu hiện nay củangười dùng, em sẽ xây dựng một ứng dụng trò chơi theo thé loại đặt trụ thủ thành
(tower-defense) với đồ họa 2.5D chạy trên nền tảng điện thoại thông minh Trò chơi
được thiết kế với mục tiêu mang lại trải nghiệm giải trí và thách thức cho người chơi
Dự án bao gồm các giai đoạn quan trọng như thiết kế concept, phát triển gameplay, đồhọa và âm thanh, kiểm thử và tối ưu hóa
1 Đặt vấn đề
Hiện nay, trên thị trường có rất nhiều game chiến thuật chạy trên các nên tảng điện
thoại thông minh; và thực tế đã có rất nhiêu con game đã thành công rực rỡ, đạt được
nhiều thành tựu về số lượng tải, lượt chơi, doanh thu, Tuy nhiên, theo quan sát của
cá nhân em, dòng game này vẫn còn rất nhiều các khía cạnh khác để có thể tiếp tục
khai thác( cơ chế gameplay, đồ hoạ, 7) nhằm tao ra một san phẩm tiềm năng có thé
đáp ứng được nhu cau của đa số người choi yêu thích dòng game này
Với những yếu tố đã nêu cùng với mong muốn nghiên cứu và phát triển một sảnphẩm game hoàn chỉnh phục vụ đồ án tốt nghiệp này đã đặt ra một van dé: Lam thénào để tạo ra một sản phẩm game chiến thuật thủ thành chất lượng, hấp dẫn và thu hút
được sự quan tâm của nhiều người chơi?
Trên thực tế, đòng game chiến thuật thủ thành không chỉ đòi hỏi kỹ năng lập trình
và thiết kế đồ họa, cơ chế mà còn phải đảm bảo được tính hấp dẫn, sáng tạo, tương
thích với nhiều thiết bị khác nhau Nếu giải quyết được van dé này, chúng ta có thé tạoNguyễn Quang An - BI9DCPT002 1
Trang 16Đồ án tốt nghiệp đại học Mớ đầu
ra một sản phẩm game chiến thuật thủ thành đạt chất lượng cao, thu hút được sự quan
tâm của người chơi và có thể mang lại lợi nhuận từ những con game của mình Trongnhững phân tiếp theo của đồ án tốt nghiệp này,em sẽ tập trung vao việc nghiên cứu và
phát triển một game chiến thuật thủ thành hoàn chỉnh dé giải quyết van đề trên.
2 Mục tiêu nghiên cứu
Trong phần này, em sẽ trình bày về mục tiêu và phạm vi của đề tài với game
chiến thuật thủ thành nhằm có một cái nhìn tong quan về các sản phẩm game chiến
thuật thủ thành hiện tại và việc đánh giá các hạn chế của chúng
Thị trường đang chứng kiến nhiều sản phẩm game chiến thuật thủ thành đa dạng
về cốt truyện, đồ họa, âm thanh, tính năng và gameplay Tuy nhiên, sau khi phân tích
và đánh giá, chúng em nhận thấy rằng vẫn tồn tại một số hạn chế cụ thể:
Hạn chế về chiều sâu chiến thuật và trải nghiệm người chơi: Các game chiến thuậtthủ thành hiện tại chưa thực sự đáp ứng được mong đợi về chiều sâu trong chiến thuật
và trải nghiệm của người chơi Có thể thiếu tính tương tác và sự linh hoạt trong việcxây dựng và bảo vệ thành trì, gây hạn chế trong việc thực hiện chiến lược vả quản lý
tải nguyên.
Hạn chế về độ khó và cảm giác thách thức: Một sỐ game chiến thuật thủ thành có
thé qua dé hoặc quá khó, không cân nhắc đúng mức độ thách thức phù hợp cho người
chơi Điều này có thé gây cảm giác mat hứng thú hoặc thiếu sự hứng khởi dé tiếp tục
chơi.
Hạn chế về đa dạng và sáng tạo: Các sản phẩm game hiện tại chưa đáp ứng được
nhu cầu của người chơi về đa dạng và sự sáng tạo trong cốt truyện, tính năng, bảo vệ,
v.v Điều này có thé gây cảm giác nhàm chán khi chơi lâu dai
Dựa trên những hạn chế trên, mục tiêu của dự án là xây dựng một sản phẩm game
chiến thuật thủ thành có độ sâu chiến lược cao, mang lại trải nghiệm thú vị và cảm
giác thách thức phù hợp cho người chơi.
3 Phạm vỉ nghiên cứu
Đồ án tập trung vào việc phân tích, nghiên cứu các thuật toán phù hợp, xây dựng
và phát triển ứng dụng trò chơi thể loại thủ thành chiến thuật theo lượt trên nền tảng
thiết bi android sử dụng công cụ phát triển Unity với
5 Bố cục đồ án
Đồ án gồm tat cả 6 chương, mỗi chương có các phan nho hon tap trung trinh
bay một nội dung cụ thé liên quan đến sản pham cuối cùng Các phan tiếp theo của báo cáo dé án tốt nghiệp này được tô chức như sau:
Nguyễn Quang An - BI9DCPT002 2
Trang 17Đồ án tốt nghiệp đại học Mớ đầu
Chương 2 sẽ giới thiệu sơ lược những công nghệ, công cụ hỗ trợ trong quá
trình xây dựng và phát triển sản phẩm và lý do lựa chọn những công nghệ đó
bao gồm: Ngôn ngữ C#, Unity Engine, phần mềm tích hợp môi trường Rider,
phần mềm xử lý chuyên đồ họa 3D Blender va framework hỗ trợ hiển thị animation DOTween v2 cùng với bộ quản lý mã nguồn Git, Github, SourceTree
Chương 3 chương này sẽ có nhiệm vụ trình bày các tài liệu phân tích thiết kế
chi tiết hệ thống với các biểu đồ thé nhằm xây dựng và trực quan hóa các mối quan hệ và mục đích của các thành phần hệ thống trong hệ thống, giúp có cái
nhìn tổng quát về cau trúc của hệ thống trước khi tiến hành xây dựng phần mềm.
Ngoài ra, phần này cũng trình bày các tài liệu thiết kế tiền sản xuất của sản pham bao gồm kịch bản 1 trang, kịch ban 10 trang.
Trong chương 4, em sẽ đi sâu vào trình bày các thuật toán nhằm giải quyết
bài toán tìm đường đi ngắn nhất cho tựa game; đưa ra các lý thuyết nền tảng của
3 thuật toán phổ biến nhất cho phát triển sản phẩm game, đánh giá ưu và nhược
điểm của từng thuật toán và cuối dùng đưa ra quyết định sẽ triển khai thuật toán
nào dựa trên các phân tích.
Chương 5 sẽ trình bày về các bước chỉ tiết trong quá trình thực hiện xây
dựng và nêu ra một số khó khăn trong quá trình cùng với cách giải quyết van dé
tương ứng.
Chương 6 trình bày và đánh giá các kết quả sản phẩm, đưa ra đánh giá về một số các yếu tố cả về làm tốt và chưa được Cuối cùng là đưa ra các hướng
phát triển tiếp theo dé b6 sung và hoàn thiện sản phẩm.
Nguyễn Quang An - BI9DCPT002 3
Trang 18cung cấp trải nghiệm giải trí hoặc giáo dục cho người chơi thông qua các thiết bị điện
tử đi kèm với các giao diện tương tác Game có thể được chơi trên nhiều nền tảng khácnhau như máy tính, điện thoại di động, console (máy chơi game), hoặc các thiết bị điện
tử khác Các game có thé bao gồm nhiều thé loại và mức độ phức tap, từ những trò chơi đơn giản cho đến các trò chơi có đồ họa phức tạp, cốt truyện sâu sắc và yêu cầu chiến thuật cao.
Trên các thiết bị điện thoại thông minh hiện nay, do bị giới hạn về phần cứng vàcác tương tác giữa người dùng và thiết bị nên các phần mềm game trên điện thoại sẽ có
một số hạn chế và ít phức tạp được như trên các nền tảng thiết bị chơi game khác như
máy tính, máy chơi game chuyên dụng: nhưng số lượng game hiện nay trên nền tảng
thiết bị di động thông minh cũng rất đa dạng và có các cơ chế riêng biệt dựa trên đặc
thù của thiết bị Một số các thể loại game pho bién duoc nhiéu người choi trên các
thiết bị điện thoại thông minh hiện nay như:
Nguyễn Quang An - BI9DCPT002 4
Trang 19Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
e Hyper Casual: những game có các tương tác đơn giản và dé chơi, nhắm đến
nhiều đối tượng người chơi
e Game hành động: những game liên quan đến thử thách vật lý,, hoặc lối chơi
nhanh, tập trung vào việc chiến đấu với đối thủ qua các đòn tấn công, kỹ năng
và phát triển nhân vật
e Game giải đố: những game yêu cầu kỹ năng logic, chiến lược, hoặc giải quyết
van đề
e Game Nhập Vai (RPG - Role-Playing Games): Có cốt truyện sâu sắc, người
chơi thường đóng vai một nhân vật và tham gia vào cuộc phiêu lưu, chiến đấu,
và phát triển kỹ năng của nhân vật theo tiến trình game
1.1.2 Game đồ họa 2.5D là gì?
Game 2.5D là một thuật ngữ được sử dung dé mô tả loại game kêt hợp giữa các
yếu tô 2D và 3D Trong game 2.5D, thường có sự sử dụng của hình ảnh, đồ họa, và
cách diễn đạt không gian trong game một cách đặc biệt dé tạo ra ấn tượng về sự sâu
rộng của không gian 3D nhưng vẫn giữ lại cảm giác chơi game 2D truyền thống
Một số đặc điểm của game 2.5D bao gồm:
Góc nhìn chơi game: Thường là từ trên cao hoặc từ một góc độ có định, giúp
người chơi có thé nhìn thấy cả môi trường xung quanh và các chi tiết 3D nhưng di
chuyên hoặc tương tác với đối tượng trong một mặt phẳng
Cách xử lý vật lý: Thường là sử dụng các kỹ thuật vật lý 3D để tạo ra cảm giácchuyên động, va chạm, và tương tác giữa các đối tượng trong game
Mục tiêu: Game 2.5D thường nhằm tận dụng cảm giác không gian rộng lớn của
3D nhưng vẫn giữ được độ thú vị và sự dé dang chơi của game 2D.
1.1.3 Thể loại game chiến thuật thủ thành theo lượt
Game chiên thuật thủ thành theo lượt là một dạng game chiên thuật, trong đó
người chơi phải tính toán và xây dựng cơ sở thủ thành của mình và chiến đấu chống lại
kẻ địch Đặc điểm chính của thé loại này là sự kết hợp giữa yếu tố chiến thuật (tư duychiến lược) và việc xây dựng cơ sở (xây thành, tạo ra các hệ thống phòng thủ) Trongquá trình chơi, người chơi thường có thể điều chỉnh và nâng cấp cơ sở của mình đểchống lại những đợt tấn công từ đối thủ
Các đặc điểm nỗi bật của thê loại game thủ thành theo lượt:
Nguyễn Quang An - BI9DCPT002 5
Trang 20Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
e Chiến thuật: Người chơi cần có chiến lược phù hợp để xây dung và bảo vệ cơ
sở khỏi tấn công của đối thủ
e Xây dựng: Tính cơ bản của thé loại này là việc xây dựng và phát triển cơ sở,
bao gồm việc xây tường, trạm phòng thủ, và tối ưu hóa cấu trúc để tăng cường
khả năng phòng thủ.
e Lượt chơi: Trò chơi diễn ra theo lượt, người chơi có thời gian cố định dé thực
hiện các hành động của mình trước khi đối thủ tiến hành lượt tiếp theo
Một số tựa game nỗi tiếng thé loại này trên có thể ké đến như:
a Clash of Clans
Một trong những tựa game chiến thuật xây dựng căn cứ và tấn công hàng đầu trên
di động Người chơi xây dựng làng, huấn luyện quân lính và tham gia vào các cuộc tấncông nhằm đánh bại người chơi khác hoặc NPC Những tựa game này thường có cau
trúc phòng thủ chiến lược, giao diện đơn giản nhưng có chiều sâu với việc quản lý tài
Trang 21c Plants vs Zombies
Tựa game kết hop giữa yêu tô thủ thành và game casual Người choi sử dung cácloại cây dé ngăn chan các dot tan công cua zombie
Đặc điểm: Gameplay đơn giản nhưng có chiều sâu trong việc xây dựng chiến
thuật, có yếu tố hài hước và đồ họa độc đáo, khác biệt
One te one:
Nguyễn Quang An - B19DCPT002
Trang 22Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
1.2 Kiến trúc lập trình hướng đối tượng
Kiên trúc OOP (Object-Oriented Programming) là một phương pháp lập trình
hướng đối tượng Nó tập trung vào việc mô hình và trừu tượng hóa các đối tượng trong
thế giới thực thành các đối tượng trong chương trình Trong OOP, các đối tượng được
xem như là các thực thé, mỗi thực thé có các thuộc tinh và phương thức riêng biệt
_ 1.2.1 Object ; Ộ
Đôi tượng trong OOP bao gôm 2 thành phân chính:
e Thuộc tính (Attribute): là những thông tin, đặc điểm của đối tượng.
e Phương thức (Method): là những hành vi mà đối tượng có thê thực hiện.
Ví dụ thực tế về đối tượng là smartphone Đối tượng này sẽ có:
e Thuộc tính: màu sắc, bộ nhớ, hệ điều hành
e Phương thức: gọi điện, chụp ảnh, nhắn tin, ghi 4m
1.2.2 Class
Lớp là sự trừu tượng hóa của đối tượng Những đối tượng có những đặc tính tương
tự nhau sẽ được tập hợp thành một lớp Lớp cũng sẽ bao gồm 2 thông tin là thuộc tính
và phương thức Một đối tượng sẽ được xem là một thực thể của lớp.
1.2.3 Các đặc tính cơ bản của OOP
a Tính đóng gói (Encapsulation)
Tính đóng gói cho phép che giấu thông tin và những tính chat xử lý bên trong củađối tượng Các đối tượng khác không thể tác động trực tiếp đến đữ liệu bên trong vàlàm thay đổi trạng thái của đối tượng mà bắt buộc phải thông qua các phương thức
công khai do đối tượng đó cung cấp
Tính chất này giúp tăng tính bảo mật cho đối tượng và tránh tình trạng dữ liệu bị
hư hỏng ngoài ý muốn
b Tính kế thừa (Inheritance)
Đây là tinh chat đặc trưng nhất và được sử dụng nhiều cho việc thiết kế các hệthống Tính kế thừa cho phép xây dựng một lớp mới (lớp con), kế thừa và tái sử dụngcác thuộc tính, phương thức dựa trên lớp cũ (lớp cha) đã có trước đó Các lớp Con kếthừa toàn bộ thành phần của lớp Cha và không cần phải định nghĩa lại Lớp Con có thé
mở rộng các thành phan ké thừa hoặc bé sung những thành phan mới
Vị dụ:
e Lớp Cha là smartphone, có các thuộc tính: màu sắc, bộ nhớ, hệ điều hành .
e Các lớp Con là iPhone, Samsung, Oppo cũng có các thuộc tinh: màu sắc, bộ
nhớ và hệ điều hành .Nguyễn Quang An - BI9DCPT002 8
Trang 23Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
c Tinh đa hình (Polymorphism)
Tính đa hình trong lập trình OOP cho phép các đối tượng khác nhau thực thi
chức năng giống nhau theo những cách khác nhau.Tính đa hình giúp tăng khả năng tái
sử dụng, linh hoạt, và trừu tượng hóa code.
Vi dụ, một biến có kiểu Shape có thể tham chiếu đến một đối tượng Rectanglehoặc Square, một hàm có thé được ghi đè (override) ở các lớp con để thực hiện các
chức năng khác nhau, một phương thức có thé được nạp chồng (overload) dé có thé
nhận số lượng các tham số khác nhau
d Tính trừu tượng (Abstraction)
Tính trừu tượng được thực hiện bằng cách sử dụng các lớp trừu tượng và phương
thức trừu tượng Một lớp trừu tượng là một lớp mà không thể tạo ra đối tượng của nótrực tiếp, nhưng chỉ có thê sử dụng nó đề tạo các lớp con Một phương thức trừu tượng
là một phương thức mà không có thân hàm, chỉ có khai báo, và được kế thừa bởi cáclớp con để triển khai
Tính trừu tượng giúp giảm sự phức tạp của một chương trình bằng cách tập trung
vào các khái niệm trừu tượng chính thay vì chi tiết bên trong của đối tượng Nó cũng
giúp cải thiện tính tái sử dụng mã, vì các đối tượng có thé được tạo ra dựa trên các lớptrừu tượng và các phương thức trừu tượng có thể được sử dụng để triển khai các lớpcon khác nhau mà không cần phải viết lại một đoạn mã tương tự
1.3 Giới thiệu về phần mềm Unity
1.3.1 Tông quan về Unity ; Ộ ; Unity là một trình giúp phát trién game và ứng dụng đa nên tảng được phat triên
bởi Unity Technologies Unity cho phép người dùng phát triển các trò chơi trên nhiềunền tảng như Windows, macOS, Linux, Android, 1OS, Xbox, PlayStation, NintendoSwitch và nhiều hơn nữa Unity được sử dụng phô biến trong ngành công nghiệp game
dé phát triển các trò chơi 2D và 3D
Nguyễn Quang An - BI9DCPT002 9
Trang 24Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
< unity
Hinh 1.5 Logo phan mém Unity
Unity được thiết kế dé cung cấp cho các nhà phat triên một môi trường làm việc
linh hoạt va dé sử dụng, bao gồm một bộ công cụ đồ họa, một bộ công cụ lập trình vàmột bộ công cụ hỗ trợ game đa nên tảng Ngoài ra, Unity cũng cung cấp cho các nhàphát triển một thư viện phong phú của các công cụ và tải liệu học tập dé giúp họ pháttriển các trò chơi đa dạng và phức tạp
Với Unity, các nhà phát triên có thê tạo ra các trò chơi với đô họa ân tượng, hiệu
ứng âm thanh, hệ thống vật lý, các tính năng AI và đa dạng các cơ chế gameplay khác
nhau Ngoài ra, Unity cũng hỗ trợ các công nghệ mới như VR và AR, cho phép người
dùng tạo ra các trò chơi trải nghiệm thực tế ảo và thực tế tăng cường Việc sử dụngUnity nhằm phát triển ứng dụng game có rất nhiều lợi thế:
Đa Nền Tang: Unity cho phép phát triển trên nhiều nền tang từ iOS, Android
đến Windows, macOS và các thiết bị VR/AR như Oculus Rift, HTC Vive
Đồ Họa và Hiệu Ứng: Hỗ trợ đồ họa 2D và 3D, với khả năng tạo ra các hiệu
ứng đa dạng như ánh sáng, bóng, đồ bóng, hiệu ứng hấp dẫn
Cộng Đồng: Unity có cộng đồng lớn mạnh, cung cấp tài liệu, hướng dẫn và các
tài nguyên miễn phí hoặc trả phí để hỗ trợ cho việc phát triển và học hỏi dễ dàng
Scripting Linh Hoạt: Sử dụng ngôn ngữ lập trình C# cùng với cấu trúc
Object-Component giúp người dùng có thể linh hoạt tạo ra các script cho các đối tượng
trong Unity
Asset Store: Cửa hang chứa các tài nguyên san có đa dạng như 3D models,
textures, scripts, plugins dap ứng nhiều yêu cầu người sử dung và giúp tăng tốc
quá trình xây dựng và phát triển game.
Nguyễn Quang An - BI9DCPT002 10
Trang 25Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
0 Lsox] MORE MOUNTAIN JUTONG GAMES L DEN
DeepVoice AI - Text To Poly Universal Pack RENIX i Playmaker DOTween Pro
*xw+** ° 9) xw*w*++* on Odin Inspector and Seri *ww##% (292) | | (8342) wok tok ke (339 8185) keke wk (785) | | (6606)
Hinh 1.6 Giao dién trang web Unity Asset Store
e Được hỗ trợ bởi Google: có nhiều gói công cụ và APIs hỗ trợ từ Google, cho
phép người dùng tích hợp các tính năng và dịch vụ của Google vào trò chơi của
họ, như Google Play Games Services, Firebase, AdMob, ARCore và nhiêu hơn
nữa.
Google APIs for Unity Q search @ Language ~
Build your game in Unity
Unity is a game engine used by developers to produce engaging 2D or 3D cross-platform games Google's
official packages for Unity extend the default capabilities of Unity, allowing your games to fully realize their
potential within the Google ecosystem
Q Advertising am Android @ AR
Tools to monetize your games Optimize your games for Android, Build augmented reality experiences that
seamlessly blend the digital and physical worlds °É'
» Firebase )b Google Play » Tools
The tools and infrastructure you need to improve APIs to interface with the Google Play Store General tools for working in Unity.
your games, and grow your business.
mz”
Create immersive cross-platform virtual reality
experiences.
Hình 1.7 Giao diện trang web Google APIs for Unity
e Unity có nhiều tính năng va công cu mạnh mẽ, cho phép người dùng tạo ra các
trò chơi mobile hấp dẫn và chất lượng cao, như Enlighten, Universal Render
Pipeline, Shader Graph, Cinemachine, Timeline, Particle System, Animation,
UI, Scriptable ObJects.
Bên cạnh những ưu điểm trên, việc sử dung unity cũng con 1 số hạn chế như là
ứng dụng phát triển bằng Unity có thê tốn nhiều tài nguyên hệ thống, đòi hỏi kỹ nănglập trình và hiểu biết kỹ thuật cao dé tối ưu và việc tối ưu hóa cho nhiều nên tảng thiết
bị có thé là một thách thức lớn kể cả đối với những người chuyên nghiệp
Nguyễn Quang An - BI9DCPT002 11
Trang 26Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
1.3.2 Lịch sử ra đời và phát triển ;
Unity ra đời vào năm 2005, khi ba nhà phat triên trò choi người Dan Mach là
David Helgason, Joachim Ante va Nicholas Francis quyét định tạo ra một công cụ dé
phát triển trò chơi cho Mac OS X Ho đặt tên cho công cụ là Unity, với ý nghĩa là sự
thống nhất giữa các nhà làm game và các nền tảng Unity được công bé lần dau tiên tại
hội nghị Apple’s Worldwide Developers Conference vào năm 2005, và nhận được giải
thưởng Best Use of Mac OS X Graphics.
Sau đó, Unity được mở rộng dé hỗ trợ nhiều nền tang khác, bao gồm Windows,Linux, Web, iOS, Android, Console, VR, AR và nhiều hơn nữa Unity cting lién tuc
cập nhật va nâng cap các tính năng và công nghệ của minh, dé đáp ứng nhu cầu và xu
hướng của ngành công nghiệp trò chơi Hiện nay, Unity đã phát hành phiên ban
2020.3, với nhiều cải tiến và sửa lỗi
Unity đã trở thành một trong những công cụ phát triển trò chơi phố biến và ưachuộng nhất hiện nay, bởi vì nó có nhiều ưu điểm như khả năng hỗ trợ đa nền tảng, dễ
sử dụng, mạnh mẽ, linh hoạt và có một cộng đồng lớn và năng động Unity đã được sử
dụng dé tạo ra nhiều tựa game nồi tiếng và thành công, như Pokemon GO, Call of
Duty: Mobile, Monument Valley, Temple Run, Angry Birds, Subway Surfers và nhiều
hơn nữa Theo thống kê của Unity, một nửa số trò chơi trên tất cả các nền tảng được
tạo ra dựa trên Unity, và 55% game mobile mới được thiết kế bằng Unity Unity hiện
là nền tảng tạo nội dung 3D thời gian thực hàng đầu thế giới
1.3.3 Các thành phần quan trọng cơ bản cho việc phát triển ứng dụng game
trong Unity
1.3.3.a Tổng quan về giao diện làm việc co ban
Nguyễn Quang An - BI9DCPT002 12
Trang 27z z
Đồ an tot nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
ds
1 Cira sé Scene
Phan nay phan 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; ngoai ra, người
dùng có thê thiết lập một sé thong số như hién thị ánh sáng, âm anh, cách nhìn 2D hay
3D
Khung nhìn Scene là nơi bố trí các Gameobject như cây cối, cảnh quan, enemy,player, camera trong game Sự bố trí hoạt cảnh là một trong những tính năng quantrọng và tiện lợi nhất của Unity
2 Cửa số Hierarchy
Tab hierarchy là nơi hiển thị các Gameobject trong Scenes hiện hành Khi các đốitượng được thêm hoặc xóa trong Scenes, tương ứng với các đối tượng đó trong cửa số
Hierarchy.
Tương tự trong tab Project, Hierarchy cũng có một thanh tim kiếm giúp quan ly và
thao tác với các Gameobject hiệu quả hơn đặc biệt là với các dự án lớn.
3 Cửa số Game
Đây là màn hình demo Game, là góc nhìn từ camera trong game.
Thanh công cụ trong cửa số game cung cấp các tùy chỉnh về độ phân giải màn
hình, thông số (stats), gizmos, tùy chọn bật tắt các component
4 Cửa số Project
Đây là cửa số explorer của Unity, hiển thị thông tin của tất cả các tài nguyên
(Assets) trong game của bạn.
Cột bên trái hiển thị assets và các mục yêu thích dưới dạng cây thư mục tương tự
như Windows Explorer Khi click vào một nhánh trên cây thư mục thì toàn bộ nội
Nguyễn Quang An - BI9DCPT002 13
Trang 28Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
dung của nhánh đó sẽ được hiển thị ở khung bên phải Ta có thể tạo ra các thư mục
mới bằng cách Right click -> Create -> Folder hoặc nhân vào nút Create ở góc trên
bên trái cửa số Project và chon Folder Các tài nguyên trong game cũng có thé được
tạo ra bằng cách này
Phía trên cây thư mục là mục Favorites, giúp chúng ta truy cập nhanh vào những
tài nguyên thường sử dụng Chúng ta có thể đưa các tài nguyên vào Favorites bằng
thao tác kéo thả.
Đường dẫn của thư mục tài nguyên hiện tại Chúng ta có thể đễ dàng tiếp cận các
thư mục con hoặc thư mục gốc bằng cách click chuột vào mũi tên hoặc tên thư mục
5 Cửa số InspectorCửa số Inspector hiển thi chỉ tiết các thông tin về Gameobject đang làm việc, ké cảnhững component được đính kèm và thuộc tính của nó Bạn có thê điều chỉnh, thiết lậpmoi thông số và chức năng của Gameobject thông qua cửa số Inspector
Moi thuộc tính thể hiện trong Inspector đều có thé dễ dàng tùy chỉnh trực tiếp mà
không cần thông qua một kịch bản định trước Tuy nhiên Scripting API cung cấp một
số lượng nhiều và đầy đủ hơn do giao diện Inspector là có giới hạn
Các thiết lập của từng component được đặt trong menu Các bạn có thể click chuột
phải, hoặc chọn icon hình bánh răng nhỏ dé xuất hiện menu
Ngoài ra Inspector cũng thể hiện mọi thông số Import Setting của asset đang làm
việc như hiển thị mã nguồn của Script, các thông số animation,
1.3.3.b Các thành phần quan trọng khác
1 Scene: Scene là một không gian làm việc trong Unity, cho phép bạn thêm và
sắp xếp các đối tượng trong trò chơi Mỗi trò chơi có thể được chia thành nhiều Scene
khác nhau.
2 GameObject: GameObject là thành phan cơ ban của Unity, được sử dụng déđại diện cho một đối tượng trong trò chơi Mỗi GameObject sẽ có một hoặc nhiều
Component dé xác định các thuộc tinh, tính chất và hành vi cho GameObject đó
3 Component: Component là các thành phần cơ bản của một GameObject, chophép bạn thêm các tính năng vào GameObject Vi dụ như Component Rigidbody dé xử
lý vật lý, Component Mesh Renderer để hiển thị hình ảnh, hoặc Component Script dé
thém cac kich ban logic vao GameObject.
4 Prefab: Prefab là một GameObject được lưu trữ dé tái sử dung trong các Scene
khác nhau Nó cho phép bạn tạo ra một đối tượng chỉnh sửa một lần và sử dụng nhiều
lần trong toàn bộ trò chơi
Nguyễn Quang An - BI9DCPT002 14
Trang 29Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
Ví dụ: Các đối tượng là đồng tiền trong game Mario đề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 tiền còn lại sẽ sử dung prefabs.Hoặc khi ta lát gach cho một cai nền nha, các viên gạch cũng được sử dung là prefabs
5 Asset: Asset là bất kỳ tài nguyên nào được sử dụng trong trò chơi, bao gồm cáchình ảnh, âm thanh, video, văn bản, v.v ở nhiều định dạng khác nhau
6 Inspector: Inspector là giao diện đồ hoa trong Unity, cho phép bạn chỉnh sửa
các thuộc tính của một GameObject hoặc Component.
7 Script: Script là một đoạn mã lập trình được sử dụng như một component mà
người dùng tự định nghĩa dé thêm các tinh năng vào trò chơi Nó được viết bang các
ngôn ngữ lập trình như C#, JavaScript, hoặc Boo.
8 Animation: Animation là một thành phần trong Unity cho phép bạn tạo ra cáchoạt hình và điều khiển chuyên động của các đối tượng trong trò chơi
9 Camera: Là một gameobject đặ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
10 Frames: Frame trong Unity là một đơn vị thời gian để đo lường hiệu năng củagame Mỗi frame là một lần cập nhật trạng thái của các đối tượng trong game, bao
gồm vị trí, hướng, hình dạng, màu sắc, âm thanh, hình ảnh v.v Frame cũng là một lần
vẽ lại các đối tượng trên màn hình, tạo ra hiệu ứng chuyền động Tốc độ frame là số
lượng frame có thể được xử lý trong một giây, được đo bằng đơn vị frame trên giây
(FPS) Tốc độ frame cao sẽ mang lại trải nghiệm trực quan tốt hơn cho người chơi,
nhưng cũng đòi hỏi nhiều tài nguyên hơn từ CPU và GPU
11.Coroutine: Một coroutine cho phép bạn phân bổ các tác vụ trên nhiều khungkhung hình liên tục Trong Unity, coroutine là một phương thức có thể tạm dừng thựcthi và trả lại quyền kiểm soát cho Unity nhưng sau đó tiếp tục ở nơi nó dừng lại ở
khung hình sau.
1.3.3.c Vong đời các events trong Unity
Vòng đời trong Unity là quá trình mà các đối tượng game (game objects) hoạtđộng thông qua các giai đoạn khác nhau từ khi được tạo ra đến khi bị hủy Các giai
đoạn này thường bao gồm các sự kiện và phương thức xảy ra tại mỗi giai đoạn Dưới
đây hình ảnh mô tả về các giai đoạn cơ bản trong vòng đời của một đối tượng trong
Unity:
Nguyễn Quang An - BI9DCPT002 15
Trang 30Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
Hình 1.10 Mô tả vòng đời của 1 ứng dụng xây dung trên Unity
* Giải thích một số event quan trọng trong vòng đời ứng dụng Unity:
1 Awake
Sự kiện này xảy ra khi đối tượng được tạo ra, trước khi bắt đầu vòng đời của nó.
Trong sự kiện này, đối tượng đã được khởi tạo nhưng chưa hoạt động, thường được sử
dụng dé khởi tạo dit liệu hoặc thiết lập các tham chiếu giữa các đối tượng.
2 Start
Sự kiện này xảy ra ngay sau khi Awake kết thúc Đây là nơi lý tưởng dé khởi tạo
các giá trị hoặc tài nguyên mà bạn muốn sử dụng trong game, thường được sử dụng dé
khởi tạo các thiết lập ban đầu cho đối tượng
Nguyễn Quang An - BI9DCPT002 16
Trang 31Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
3 Update
Sự kiện này xảy ra trong mỗi frame của game, tức là khoảng 60 lần mỗi giây (đối
với frame rate 60 FPS) Nó là nơi chính đề thực hiện logic chạy trong game, thường
được sử dụng dé cap nhat vi tri, kiém tra tương tac của người choi và thực hiện các
hành động trong game.
4 FixedUpdate
Sự kiện này xảy ra tại các khoảng thời gian có định (không phụ thuộc vào frame
rate), thường được sử dụng dé xử lý vật lý, được sử dụng đề điều khiển các thuộc tính
vật lý như di chuyền, va chạm, hoặc tương tác với các vật thé khác.
5 LateUpdate
Mô tả: Sự kiện này xây ra sau khi tất cả các Update đã được gọi, thường được sử
dụng khi cần chắc chắn rằng tất cả các Update khác đã hoàn thành, thường được sử
dụng dé điều chỉnh vị trí của camera sau khi tất cả các đối tượng di chuyên đã hoàn
thành.
6 OnDestroy
Sự kiện này xảy ra khi đối tượng bị hủy hoặc xóa khỏi scene, thường được sử
dụng dé giải phóng tài nguyên hoặc don đẹp trước khi đối tượng bị hủy
1.3.4 Lý do lựa chọn
Unity là một công cụ phát triển game đa nền tảng và được sử dụng rộng rãi trongngành công nghiệp game Nó có khả năng hỗ trợ phát triển game 2D và 3D với các
tính năng như đồ họa tuyệt vời, hệ thống vật lý và âm thanh chất lượng cao, hỗ trợ
nhiều nền tảng và cộng đồng đông đảo Ngoài ra, Unity cũng có thê tích hợp dễ dàng với các công cụ khác dé phát triển game như Blender, Maya và Photoshop Tat cả
những lý do trên đã khiến Unity trở thành một lựa chọn tốt dé em có thé phát triển sảnphẩm game chiến thuật thủ thành trên nền tảng di động một cách nhanh chóng và dễ
hiệu qua của các dự án phần mềm
Mono Framework là một nền tảng ứng dụng đa nền tảng, cung cấp môi trường
chạy ứng dụng NET trên các hệ điều hành khác nhau, bao gồm cả hệ điều hành di
động như iOS và Android Mono cung cấp một số thành phần chính dé phát triển game
Nguyễn Quang An - BI9DCPT002 17
Trang 32Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
Trên Unity, C# được sử dụng dé phát triển các script điều khiển hành động của các
đối tượng trong game, xử lý sự kiện và tương tác với các thành phần khác của game
Mono Framework cung cấp môi trường chạy các script C# trong Unity, cho phép phát
triển game đa nền tang và tích hợp các tính năng bảo mật và xử lý nhanh
1.4.2 Lịch sử và Phát triển
C# ra đời vào năm 2000 và từ đó đã trở thành một trong những ngôn ngữ lập trình
phổ biến và được sử dụng rộng rãi trên toàn cầu Nó được tích hợp chặt chẽ với
Framework NET, cung cấp môi trường phát triển mạnh mẽ cho việc xây dựng các ứngdụng đa dạng trên nền tảng Windows
Microsoft
1.4.3 Đặc điểm nỗi bậtC# hỗ trợ nhiều tính năng quan trọng, bao gồm:
e Lập trình hướng đối tượng (OOP): Cho phép cấu trúc ứng dụng theo mô hình
lớp và đối tượng, tạo ra mã nguồn có cấu trúc, linh hoạt và đễ bảo trì.
e An toàn về kiểu dữ liệu: C# cung cấp kiểm tra kiểu tĩnh, giúp ngăn chặn các lỗi
kiểu dữ liệu tại thời điểm biên dịch
e Thu gom rác tự động (Garbage Collection): Loại bỏ nhu cầu phải quản lý bộ
nhớ thủ công, giúp giảm thiểu rủi ro lỗi và tăng hiệu suất ứng dụng
e Tích hợp mạnh mẽ với Framework NET: Cho phép sử dụng các thư viện chuẩn
và mở rộng, giúp việc phát triển ứng dụng trở nên nhanh chóng và linh hoạt
e Đa nền tang: C# thường được sử dụng cho việc phát triển ứng dung desktop,
ứng dụng di động, web, game và nhiều loại ứng dụng khác trên nên tảng
Windows Sự tích hợp mạnh mẽ với môi trường phát triển Visual Studio cũng
là một điểm mạnh, giúp nhà phát triển tận dụng tối đa tiềm năng của ngôn ngữ
này.
Nguyễn Quang An - BI9DCPT002 18
Trang 33Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
C# đã chứng minh sức mạnh của mình trong việc xây dựng các ứng dụng phần
mềm đa dạng và hiệu quả trên nền tảng Windows và là một lựa chọn hàng đầu cho các
dự án phần mềm đòi hỏi tính ôn định và linh hoạt cao
1.5 Giới thiệu về phần mềm Rider
Rider là một môi trường phát triển tích hợp cho các ngôn ngữ lập trình NET, đặcbiệt là cho các ứng dụng ASP.NET và NET Core Được phát triển bởi công tyJetBrains, Rider cung cấp một loạt các tính năng mạnh mẽ như trình chỉnh sửa mãthông minh, debugging tiên tiến, refactoring thông minh và tích hợp với các công cụ
agi RiderHình 1.12 Phần mềm tích hợp môi trường phát triển Rider
Với Rider, người dùng có thé làm việc hiệu quả trên các dự án NET của mình
băng cách tận dụng tính năng đa nền tảng của nó, hỗ trợ cả Windows, macOS vàLinux Phần mềm này cung cấp môi trường làm việc linh hoạt, tối ưu hóa quy trình
phát triển và giúp nhóm làm việc cùng nhau một cách hiệu quả hơn thông qua khả
năng tích hop và chia sẻ cai đặt cũng như các công cụ.
Rider cung cấp khả năng tự động hoá các công việc lập trình phố biến, giúp tăng
năng suất và giảm thời gian làm việc, đồng thời đảm bảo chất lượng mã nguồn thông
qua các tính năng kiểm tra mã, phân tích và gợi ý sửa lỗi.
Với giao điện thân thiện và dễ sử dụng, Rider là một công cụ hỗ trợ mạnh mẽ chocác nhà phát triển NET, giúp họ tập trung vào việc viết mã chất lượng và triển khai
ứng dụng một cách hiệu quả Đặc biệt, Rider còn hỗ trợ rất tốt cho việc lập trình game
với Unity , một số ưu điểm nổi bật như:
e Hỗ trợ Unity: Rider cung cấp tích hợp mạnh mẽ với Unity, bao gồm hỗ trợ cho
các phiên ban Unity mới nhật, cũng như dự an Unity đang hoạt động.
e Debug: IDE hỗ trợ debugging chặt chẽ cho các dự án Unity Bạn có thé debug
code của minh với các công cụ mạnh mẽ như Breakpoints, Watches, và thậm
chí là xem trực tiếp giá trị biến trong game của mình trong quá trình chạy
e Code Insight va Refactoring: Rider cung cap tính năng thông minh giúp nhận
diện code và các đối tượng của Unity, cung cap gợi ý thông minh va hỗ trợ cho
việc refactor code, giúp tăng hiệu suất lập trình
° Hỗ trợ C# tốt: Được xây dựng trên nền tảng của JetBrains cho C#, Rider cung
cấp một số tinh năng tuyệt vời cho ngôn ngữ lập trình này, bao gồm tinh năng
tự động chèn gợi ý, navigation thông minh, và nhiều công cụ refactoring code
Nguyễn Quang An - BI9DCPT002 19
Trang 34Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
e Integration với các công cụ khác: Rider tích hợp tốt với các công cụ và dịch vụ
khác như Version Control (Git, SVN), Unity Test Framework, và các plugin
hữu ich khác.
e Hỗ trợ nên tang đa nền tang: Rider không chỉ hỗ trợ Windows mà còn có phiên
bản dành cho macOS và Linux, tạo điều kiện thuận lợi cho việc làm việc trênnhiều nền tảng khác nhau
e Hiệu suất tốt: IDE được tối ưu dé hoạt động mượt mà và hiệu quả với các dự án
Unity lớn, giúp tăng năng suất lập trình
1.6 Giới thiệu về phan mềm Blender
Blender là một phần mềm mã nguồn mở miễn phí chuyên về dựng và xử lý đồ họa
3D vô cùng mạnh mẽ, đa năng và được sử dụng rộng rãi trong ngành công nghiệp trò
chơi, phim ảnh, thiết kế sản pham và nhiều lĩnh vực khác Với Blender, người dùng cóthể tạo ra các mô hình 3D, hoạt cảnh, hoặc thậm chí là game hoàn chỉnh với chấtlượng cao mà không cần phải chi trả phí cho các phần mềm đắt đỏ khác
Hình 1.13 Logo phan mềm Blender
Một trong những điểm mạnh của Blender là tính linh hoạt Nó cung cấp một loạt
các công cụ mạnh mẽ cho việc tạo ra mô hình, hoạt cảnh, kỹ xảo, và thậm chí cả việc
lập trình game thông qua Blender Game Engine Điều này cho phép người dùng thực
hiện mọi thứ từ việc tạo ra những chi tiết tinh vi đến việc tạo ra môi trường game rộnglớn Trong sản phẩm ứng dụng, Blender đã hỗ trợ em trong việc xây dựng model cho
các nhân vật và làm các hoạt ảnh (animation) phục vụ cho tựa game.
Nguyễn Quang An - BI9DCPT002 20
Trang 35Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
Một sô tính năng nôi bật của phân mêm Blender có thê kê đên như:
Mô hình hoạt cảnh 3D: Blender cung cấp các công cụ mạnh mẽ dé tạo ra và
chỉnh sửa các mô hình 3D, từ đơn giản đến phức tạp Nó bao gồm các tính năng
như sculpting, modeling, texturing va rigging.
Hoạt cảnh va Animation: Có kha năng tạo ra các hoạt cảnh phong phú voi hệ thống animation linh hoạt Blender cho phép tạo và điều chỉnh chuyển động,
keyframe, hoạt hình vật lý và cả mô phỏng hệ thống hạt (particles).
Render Engine mạnh mẽ: Blender đi kèm với một render engine tích hợp, Cycles, và một engine khác là Eevee cho việc xem trước real-time Cycles cung
cấp chất lượng cao trong việc render ảnh động và tĩnh, trong khi Eevee cung
cấp tốc độ xem trước nhanh chóng
VFX và Simulations: Blender cung cấp các công cụ mạnh mẽ dé tạo ra hiệu ứng
đặc biệt (VFX) như mô phỏng hệ thống hạt, nước, khói và các hiệu ứng khác
Game Development: Blender cũng có Blender Game Engine, một công cụ déphat triển trò chơi 3D Mặc dù không con được phat triển chủ động nhưng vancung cấp một nền tang dé thử nghiệm và tạo game nhanh chóng
Python Scripting và Customization: Blender hỗ trợ việc lập trình Python dé tạo
ra các công cụ và addon tùy chỉnh, mở ra khả năng mở rộng chức năng theo ý
muốn của người dùng
Hỗ trợ đa nên tảng và Cộng đồng mạnh mẽ: Blender hoạt động trên nhiều nền
tảng, bao gồm Windows, macOS và Linux Đồng thời, cộng đồng người dùng
Blender rất lớn, với nhiều tài liệu, hướng dẫn và trợ giúp sẵn có.
Nguyễn Quang An - BI9DCPT002 21
Trang 36Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
Những tính năng này giúp Blender trở thành một công cụ đồ họa 3D linh hoạt và
mạnh mẽ, phục vụ cho nhiều mục đích từ việc tạo ra nội dung đa phương tiện đến phát
triển trò chơi
1.7 Giới thiệu về framework hỗ trợ DOTween v2
DOTween là một thư viện hỗ trợ animation và tweening (chuyên động mượt magiữa các giá trị) mạnh mẽ cho Unity DOTween cung cấp một cách tiếp cận dễ dàng vàlinh hoạt để tạo ra các hiệu ứng chuyên động mượt mà, từ các animation đơn giản đến
những chuyền động phức tạp
_ Được thiết kế dé tối ưu hóa hiệu suất và dé sử dụng, DOTween giúp người phát
triên tập trung vào việc tạo ra các animation một cách nhanh chóng và hiệu quả.
T 5
Animates Animates other
and
Hình 1.15 Framework Dotween y2
Các tính năng chính của DOTween bao gồm:
® Tweening da dạng: DOTween hỗ trợ tweening giữa các loại giá trị khác nhau
như số, vector, màu sắc, v.v Điều này cho phép tạo ra các hiệu ứng chuyển
động phong phú.
e Các loại Tween đa dạng: Nó cung cấp các loại tween khác nhau như move,
scale, rotate, fade, và nhiều loại khác, cho phép tạo ra nhiều loại animation khác
nhau.
e Tích hợp dễ dàng: DOTween tích hợp một cách thuận tiện với Unity, đi kèm
với giao diện người dùng dễ sử dụng và tương tác trực quan.
e Hỗ tro Callback: Cung cấp khả năng thiết lập các hàm callback cho các sự kiện
tween như khi hoàn thành tween, khi bắt đầu tween, v.v.
Nguyễn Quang An - BI9DCPT002 22
Trang 37Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
e Tối ưu hóa hiệu suất DOTween được tối ưu hóa dé làm việc hiệu qua trên
nhiều loại thiết bị, giúp giảm thiểu tải nguyên tài nguồn.
e Hỗ trợ và cập nhật liên tục: Cộng đồng sử dụng DOTween lớn, và nó nhận
được sự hỗ trợ và cập nhật định kỳ, cải thiện tính năng và sửa lỗi.
® Với sự tích hợp mạnh mẽ và tính linh hoạt trong việc tạo ra các hiệu ứng
chuyên động mượt mà, DOTween trở thành một công cụ quan trọng giúp cho
việc phát triên game và animation trong Unity một cách hiệu quả và nhanh
chóng
1.8 Giới thiệu bộ công cụ quản lý mã nguồn Git, GitHub, SourceTree
1.8.1 Git ;
Git là một hệ thông quan lý phiên ban phân tan (Distributed Version Control
System — DVCS) được phat triển bởi Linus Torvalds vào năm 2005 Git được thiết kế
dé xử lý các dự án từ nhỏ đến lớn với tốc độ và hiệu quả cao Git là một phần mềm mã
nguồn mở được phân phối theo giấy phép công cộng GPL2 Với Git, mỗi lập trình
viên có thé có kho lưu trữ (repository) riêng chứa toàn bộ lịch sử thay đổi Sử dung Git
sẽ giúp nhà phát triển có thé dé dàng tìm lại, quay lại các phiên bản cũ hơn và giúpviệc kiểm soát dé dàng hon Git cũng có các lợi ích tuyệt vời đối với các dự án đang
chạy song song Đặc biệt là các dự án có cùng một cơ sở code Việc sử dung Git sẽ
giúp phân nhánh tốt hơn, giúp việc thực hiện các dự án dé dang và hiệu quả hơn
øIt
Hình 1.16 Phần mềm quản lý phiên bản git
Các tính năng chính của Git bao gồm:
e Hệ thống phiên bản phân nhánh (Branching): Cho phép nhóm phát triển làm
việc song song trên nhiều nhánh riêng biệt của mã nguôn mà không ảnh hưởng
đến nhau Điều này giúp tách rõ ràng các tính năng, cải tiến và sửa lỗi.
e Lịch sử thay đổi linh hoạt: Git ghi lại toàn bộ lich sử thay đồi, cho phép xem,
so sánh và khôi phục các phiên bản cũ một cách dé dàng.
e Phục hồi dễ dàng: Các thao tác như revert, reset và cherry- pick cho phép khôi
phục, điều chỉnh hoặc chọn lựa các thay đổi cụ thé trong mã nguôn.
e Cộng tác và tích hợp dễ dàng: Git cho phép nhiều người cùng làm việc trên
cùng một dự án một cách hiệu quả thông qua việc trao đổi và tích hợp mã
nguôn.
Nguyễn Quang An - BI9DCPT002 23
Trang 38Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
° Hỗ trợ cho nhiều nền tảng: Git hoạt động trên nhiều hệ điều hành và tích hợp
tốt với nhiều dịch vụ lưu trữ trực tuyến (như GitHub, GitLab, Bitbucket)
Sử dung Git trong dự an phan mém mang lai những lợi ich lớn:
e Quan lý mã nguôn hiệu qua: Theo dõi sự thay đổi, đơn giản hóa quá trình hợp
nhất (merge) mã nguồn, và giúp giảm xung đột trong việc cập nhật mã nguồn.
e Hỗ trợ quy trình làm việc nhóm: Cho phép nhiều người cùng làm việc mà
không làm mat dữ liệu và dé dàng phối hợp trên cùng một dự án.
e Lưu trữ an toàn và tin cậy: Luu trữ mã nguồn trên các hệ thống quản lý phiên
bản tránh mat mát dit liệu không mong muôn.
Việc hiểu rõ và sử dụng Git hiệu quả là một kỹ năng quan trọng đối với các nhà
phát triển phần mềm và nhóm làm việc trong lĩnh vực công nghệ thông tin, đặc biệt là
trong các dự án sản xuất game
1.8.2 GitHub ; ¬
GitHub là một dịch vụ lưu trữ mã nguôn và hợp tác phô biên dành cho các dự án
phần mềm Được thành lập vào năm 2008, GitHub đã trở thành một trong những nềntảng quản lý mã nguồn mở và dự án phần mềm lớn nhất trên thế giới
GitHub
Hình 1.17 Logo dịch vụ Github
Tính năng chính của GitHub bao gồm:
e Lưu trữ mã nguồn: GitHub cung cấp không gian lưu trữ trực tuyến cho mã
nguồn của các dự án Người dùng có thể tải lên mã nguồn của họ lên GitHub dé
theo dõi và quản lý phiên bản mã nguồn một cách dé dàng.
e Hệ thống kiểm soát phiên bản (Version Control System - VCS): Sử dụng hệ
thống kiểm soát phiên ban Git, GitHub cho phép người dùng theo dõi lịch sử
thay đối của mã nguồn, quản lý nhánh (branch) và hợp nhất (merge) các phiênbản mã nguồn một cách hiệu quả
e Cộng tac và hợp tác: GitHub cung cấp các công cụ dé người dùng có thé cộng
tác với nhau trên cùng một dự án Điều này bao gồm việc theo dõi thay đối, dé
xuất sửa đối (pull request), bình luận, và giải quyết xung đột.
Nguyễn Quang An - BI9DCPT002 24
Trang 39Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
e Quản lý dự án: GitHub có các tính năng dé quản: ly các task, issues, và
milestones trong dự án Điều này giúp nhóm làm việc té chức công việc và theo
dõi tiến độ một cách hiệu quả.
e Cộng đồng lớn mạnh mẽ: GitHub là nơi giao lưu, học hỏi và chia sẻ kiến thức
với cộng đồng lập trình viên trên khắp thé giới thông qua các dự án mã nguồn
mở và các diễn đàn thảo luận.
Lợi ích của việc sử dụng GitHub:
e Hỗ trợ quản lý dự án hiệu quả: Từ quản lý phiên bản mã nguồn đến quan lý
nhiệm vụ và cộng tác, GitHub cung cấp một nên tảng linh hoạt cho việc quản lý
dự án.
e Giao lưu và học hỏi từ cộng đồng: GitHub là nơi để chia sẻ mã nguồn mở,
học hỏi từ các dự án khác và tham gia vào các dự án cộng đồng
e Tang tính chuyên nghiệp: Sử dụng GitHub có thé giúp cá nhân và tô chức xây
dựng một hồ sơ chuyên nghiệp với mã nguồn và dự án của họ.
GitHub đã trở thành một phần quan trọng của nền tảng công nghệ thông tin và là
một công cụ quan trọng cho những ai làm việc trong lĩnh vực phần mềm và công nghệ
1.8.3 SourceTree ; - ;
SourceTree là một ứng dụng giao diện đô hoa (GUI) miễn phi được cung cap bởi
Atlassian, được thiết kế dé giúp người dùng quan ly mã nguồn và thực hiện các hoạtđộng Git một cách dễ dàng và trực quan.
@ Sourcetree
Các tính năng chính của SourceTree bao gồm:
e Giao diện người dùng thân thiện: SourceTree cung cấp một giao diện đồ họa
dễ sử dụng và trực quan, cho phép người dùng thực hiện các hoạt động Git mà
không cần gõ lệnh
e Hỗ trợ đa nền tang: SourceTree có sẵn trên cả Windows và macOS, mang lại
tính linh hoạt cho người dùng trên nhiều hệ điều hành
e© Quản lý nhánh và hợp nhất (branching and merging): Ung dụng cho phép
người dùng dễ dàng tạo, xem và quản lý các nhánh của mã nguồn, cũng như
thực hiện việc hợp nhất các nhánh một cách trực quan.
Nguyễn Quang An - BI9DCPT002 25
Trang 40Đồ án tốt nghiệp đại học Chương I: Cơ sở lý thuyết và nền tảng
công nghệ sử dụng
e Xem lịch sử và thay doi: Người dùng có thể xem lịch sử thay đổi, so sánh các
phiên bản khác nhau của mã nguồn và hiển thi chỉ tiết về các thay đối đã được
thực hiện.
e Hỗ trợ tương tác với các dịch vụ lưu trữ: SourceTree tích hợp tốt với các
dich vụ lưu trữ mã nguồn như GitHub, Bitbucket và GitLab, giúp người dùng
quản lý và tương tác với các dự án trên các nền tảng này
e Công cụ quản lý hunk: Cho phép người dùng chọn và quan lý từng phan thay
đổi (hunk) dé commit, giúp kiểm soát và tach biệt các thay đổi trong một tập
tin.
Những lợi ích của việc sử dụng SourceTree:
e Dễ sử dụng: Giao diện đồ họa trực quan giúp người dùng làm quen nhanh
chóng và thực hiện các hoạt động Git một cach dễ dàng.
e© Quan lý mã nguồn linh hoạt: SourceTree cung cap công cu mạnh mẽ để quản
lý, theo đõi và hợp nhất các thay đồi trong mã nguồn.
e Tích hợp với dich vụ lưu trữ: Cho phép người dùng tương tác với các nền
tảng lưu trữ phô biên như GitHub, Bitbucket và GitLab một cách thuận tiện.
SourceTree là một công cụ hữu ích cho các nhà phát triên phân mêm và người làm
việc với mã nguồn, cung cấp một cách tiếp cận dé dàng và hiệu quả đối với Git thông
qua giao diện đồ hoa
Nguyễn Quang An - BI9DCPT002 26