Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.84 MB, 36 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN</b>
<b>KHOA CƠNG NGHỆ PHẦN MỀM</b>
<b>BÁO CÁO MÔN HỌC</b>
<b>ĐỒ ÁN 2 – SE122</b>
<b>Game 3D chiến đấu theo lượt – AssaultBooming</b>
<b>Giảng viên hướng dẫn: Ths. Trần Anh Dũng</b>
<b>Sinh viên thực hiện: Nguyễn Hoàng Nam - 20520643</b>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">Em trân trọng cảm ơn thầy Trần Anh Dũng đã tạo điều kiện và hướng dẫn em đểem có cơ hội thử thách bản thân trong môn học này. Trải qua 14 tuần tìm tịi, nghiêncứu và phát triển đã cho em cái nhìn chi tiết về những thách thức vừa hấp dẫn vừachông gai của một nhà phát triển game. Em tin rằng những kiến thức và kinh nghiệmnày sẽ hỗ trợ em rất nhiều trên con đường sự nghiệp sắp tới. Một lần nữa, cảm ơn thầyđã đồng hành và hỗ trợ em trong môn học này.
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
<b>TRƯỜNG ĐẠI HỌCCƠNG NGHỆ THƠNG TIN</b>
<b>CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAMĐộc Lập - Tự Do - Hạnh Phúc</b>
<b>ĐỀ CƯƠNG CHI TIẾT</b>
<b>TÊN ĐỀ TÀI: Game 3D chiến đấu theo lượtCán bộ hướng dẫn: THS. TRẦN ANH DŨNG</b>
<b>Thời gian thực hiện:Từ ngày 23/08/2023 đến ngày 31/12/2023Sinh viên thực hiện:</b>
Nguyễn Hoàng Nam – 20520643
<i><b>Nội dung đề tài:(Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp thực hiện,</b></i>
<i>kết quả mong đợi của đề tài)</i>
<b>1. Mục tiêu của đề tài:1.1. Bối cảnh chọn đề tài:</b>
Ngành cơng nghiệp trị chơi đang từng bước chuyển mình để trở thành một ngànhcơng nghiệp trọng tâm trên tồn thế giới. Trị chơi điện thử hiện tại khơng cịn đơn thuầnlà cơng cụ giải trí thuần túy, nó đã và đang trở thành phương tiện truyền tải các thôngđiệp nhân văn, mang giá trị nghệ thuật cao thông qua góc nhìn của người làm game. Quathời gian dài quan sát và trải nghiệm trực tiếp, em nhận thấy thị trường game di độnghiện tại đang chiếm phần lớn so với các nền tảng khác. Tuy nhiên, khơng vì thế mànhững tựa game trên các hệ máy Console, PC đánh mất vị thế và trở nên kém hấp dẫnvới người chơi, bởi vì một tựa game hay, chất lượng, được đầu tư kĩ càng về mặt nộidung, cốt truyện hay âm thành đa phần đều đến từ những hệ máy này.
Chính vì lẽ đó, em mong muốn phát triển đề tài “Xây dựng game 3D chiến đấu theolượt” để hiện thực hóa những ý tưởng của bản thân và đem đến cho người chơi một sảnphẩm chất lượng cao được đầu tư kĩ càng về mặt gameplay, đồ họa, âm thanh.
<b>1.2. Mục đích của đề tài:</b>
Xây dựng trị chơi thốt khỏi cơ chế chiến đấu theo lượt thơng thường. Cho phép người chơi xây dựng chiến lược, tính tốn để giành chiến thắng. Ứng dụng có giao diện bắt mắt, dễ làm quen và sử dụng.
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">o Chức năng về thay đổi chiến lượt: cho phép người chơi thay đổi các ôchiến lược dựa vào tính chất và bản đồ màn chơi để đưa ra phương án tốiưu trước khi bắt đầu chơi.
o Chức năng ô bàn cờ: bản đồ, đường đi sẽ được hiển thị dưới dạng các ôvuông như bàn cờ tướng. Cho phép người dùng lựa chọn đường đi ngắnnhất, thuận lợi nhất cho chiến thuật cá nhân.
o Bản đồ nhiều tầng và vật cản: bản đồ được thiết kế với nhiều tầng và cóvật cản để tăng thêm trải nghiệm chơi so với một bản đồ phẳng thôngthường.
o Hệ thống vũ khí chiến lượt: tương ứng mỗi màn chơi sẽ có một ơ vũ khíchiến lượt đặc trưng để giúp người dùng trải nghiệm các tính năng đặc biệtcủa bản đồ.
o Hệ thống tự động tìm đường đi ngắn nhất: hệ thống cung cấp đường đingắn nhất cho người chơi lựa chọn và tự động di chuyển NPC dựa trênthuật tốn dị vật cản và phát hiện đối tượng.
o Trị chơi có nhạc nền, âm thanh hiệu ứng và âm thanh môi trường.
<b>3. Đối tượng sử dụng</b>
Người chơi sử dụng máy tính hệ điều hành Window.
<b>4. Phương pháp thực hiện</b>
Tìm hiểu về các cơng nghệ được sử dụng trong môn học.
Sáng tạo một số chủ đề trọng tâm của ứng dụng, sau đó tìm hiểu các ứngdụng liên quan đến chủ đề này để chọn lọc và kết hợp nội dung phù hợp.
Tiến hành phân tích và thiết kế hệ thống.
Tìm hiểu UI/UX và tiến hành thiết kế giao diện cho ứng dụng. Tiến hành triển khai và kiểm thử.
<b>5. Cơng nghệ sử dụng</b>
Ngơn ngữ lập trình: C#.
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6"> Giao diện ứng dụng đơn giản và dễ sử dụng đối với người dùng.
<b>7. Định hướng phát triển</b>
Chuyển đổi sang nền tảng mobile.
Thêm màn chơi hướng dẫn cho người dùng.
Thêm các chức năng như thay đổi hình ảnh nhân vật, vũ khí.
<i><b>Kế hoạch thực hiện:(Mô tả kế hoạch làm việc và phân công công việc cho từng sinh</b></i>
<i>viên tham gia)</i>
Chuẩn bị kiếnthức về công nghệ
Từ 23/08/2023 đến
12/09/2023 <sup> Khảo sát các ứng dụng có chủ đề </sup><sub>tương tự.</sub> Tìm hiểu về cơng nghệ được sử
dụng cho khóa luận.
Tìm kiếm tài nguyên (model 3D, hoạt ảnh, sprite, sfx, bmg,...)Phân tích, thiết
kế hệ thống
Từ 13/09/2023 đến
02/10/2023 <sup> Phân tích, xác định, đặc tả chức </sup><sub>năng.</sub> Vẽ các lưu đồ, các luồng xử lý
thiết kế UI.Xây dựng ứng
Từ 03/10/2023 đến
04/12/2023 <sup> Xây dựng bản thử nghiệm </sup><sub>các cơ chế gameplay chính.</sub>
Lần lượt phát triển các chức năngđã đề ra.
Kiểm thử và sửalỗi
Từ 05/12/2023 đến
18/12/2023 <sup> Thực hiện kiểm thử các luồng </sup><sub>chức năng.</sub> Tiến hành sửa lỗi phát sinh nếu có. Cải thiện giao diện.
Cân bằng game.Hồn thiện báo
cáo và slidethuyết trình
(Ký tên và ghi rõ họ tên)
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">THS. TRẦN ANH DŨNG <sup>Nguyễn Hoàng Nam</sup>
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><b>LỜI CẢM ƠN...2</b>
<b>NHẬN XÉT CỦA GIẢNG VIÊN...3</b>
<b>ĐỀ CƯƠNG CHI TIẾT...4</b>
4.2. Thiết kế giao diện...31
<i>4.2.1. Giao diện màn hình “Main menu”...31</i>
<i>4.2.2. Giao diện màn hình “Màn chơi chính”...31</i>
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><i>5.4.2. Cải thiện trải nghiệm gameplay...34</i>
<i>5.4.3. Cải thiện trải nghiệm đồ họa...34</i>
<i>5.4.4. Cải thiện trải nghiệm âm thanh...35</i>
<b>TÀI LIỆU THAM KHẢO...35</b>
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Figure 1: Cơng cụ Blender...14
Figure 2: Giao diện cơng cụ Blender...15
Figure 3: Công cụ quản lý source code Github...15
Figure 4: Giao diện Github...16
Figure 5: Game engine Unity...17
Figure 6: Giao diện Unity...18
Figure 7: Sơ đồ Use Case...19
Figure 8: Sơ đồ lớp hệ thống...29
Figure 9: Sơ đồ lớp kỹ năng...29
Figure 10: Giao diện màn hình "Main menu"...31
Figure 11: Giao diện màn hình "Màn chơi chính"...32
Figure 12: Giao diện màn hình "Kết thúc game"...33
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">Table 1: Danh sách actor...19
Table 2: Danh sách use case...19
Table 3: Đặc tả use case "Tính tốn hành vi của máy"...23
Table 4: Đặc tả use case "Xem kết quả màn chơi"...24
Table 5: Danh sách class thuộc hệ thống Kỹ năng...30
Table 6: Danh sách class thuộc hệ thống Bàn cờ...30
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12"> Tên ứng dụng: AssaultBooming
Chủ đề chính: Game 3D chiến đấu theo lượt
Nền tảng phát triển: PC standalone (Windows, Linux) Công nghệ: Unity game engine
Đề tài là một sản phẩm trò chơi với thể loại chiến đấu theo lượt. Điểm nhấn củasản phẩm nằm ở lối chơi mới lạ, sáng tạo, khác biệt so với các trò chơi chiến đấutheo lượt khác đang có trên thị trường. Với bản thiết kế game mới lạ,AssaultBooming mang người chơi vào một ván cờ trí tuệ, phải tận dụng mọi tàinguyên và các giác quan của người chơi để tìm ra chiến lượt hợp lí nhất.
Sự sáng tạo, mới lạ trong tính năng cũng là một điểm giúp AssaultBoomingđánh bật các sản phẩm khác trên thị trường, với cơ chế “Action Point”, buộc ngườichơi phải tiêu hao điểm Hành vi sau mỗi lần thực hiện các thao tác sẽ giúp chongười chơi phải tính toán cẩn thận, tối đa hoá được lượng sát thương lẫn hành độngvới việc tiêu hao ít điểm hành vi nhất. Đem đến cho người chơi một cảm giác căngthẳng, tính tốn có chiến lượt, như đang đấu một ván cờ căng não hơn là một mànchơi game thông thường.
Hiện nay trên thị trường có rất nhiều tựa game Turned-Based chiến đấu theolượt, nhưng chưa có tựa game nào thật sự thốt khỏi gamefeel thơng thường của thểloại này. Đối với các tựa game thuộc thể loại đánh theo lượt, người chơi thường cócảm nhận về một màn chơi rằng đây là một trận đánh khốc liệt, cứ tới lượt củangười chơi thì cần phải bung hết kĩ năng để tối đa hoá sát thương, khơng cần suynghĩ đến đường đi nước bước tiếp theo.
Chính vì thế, em muốn tạo ra một sản phẩm mà trong đó, trị chơi của em cóthể thốt ra khỏi sự cảm nhận thơng thường đó, mang lại cho người chơi một cảmgiác đối kháng có tính tốn, tận dụng khả năng suy nghĩ, định hình chiến lượt trongđầu người chơi để đưa ra quyết định hợp lí. Giúp người chơi không bị nhàm chán
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">bởi lối chơi đơn giản, đánh hết tài nguyên, không cần suy nghĩ như những tựa gamekhác cùng thể loại
Với đề tài này, em mong muốn có thể hồn thành được trị chơi với các tínhnăng đã đề ra. Đi sâu vào lập trình C# với các kỹ thuật nâng cao như event,delegate, generic… kết hợp với các mẫu thiết kế đã học để mã nguồn có thể dễdàng mở rộng và phát triển, phục vụ cho Khoá Luận Tốt Nghiệp.
Trị chơi sẽ được hồn thiện với core gameplay đặc trưng của thể loại chiến đấutheo lượt. Ưu tiên các tính năng sáng tạo, mới lạ như tiêu hao điểm Hành vi, bản đồơ bàn cờ.... Bản thiết kế trị chơi được hoàn thành với các kiến thức ở mức độ trungbình như level design, game balancing, user’s gamefeel.
Tối ưu đồ hoạ để thân thiện với người dùng, tận dụng các asset và model có sẵntrên các store để tránh mất nhiều thời gian, dành thời gian cho việc sửa lỗi và pháttriển các tính năng của trị chơi.
Đề tài chủ yếu tập trung xây dựng hoàn thiện những gameplay cơ bản của dịnggame turn-based. Bên cạnh đó, em sẽ thử nghiệm một vài cơ chế đặc biệt. Để đảmbảo trải nghiệm công bằng giữa mọi người chơi, yếu tố cân bằng game cũng sẽđược em xem xét.
Đồ họa cũng là một khía cạnh quan trọng, quyết định độ thu hút của một tựagame. Tuy nhiên, vì nhận thức được giới hạn kiến thức, kỹ thuật về thiết kế đồ họa,em tự đặt yêu cầu về giao diện ở mức độ thân thiện với người chơi.
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14"><i>Figure 1: Công cụ Blender</i>
Blender là một phần mềm mã nguồn mở được sử dụng rộng rãi trong lĩnh vựcđồ họa 3D, hoạt hình, và hiệu ứng đặc biệt. Nó cung cấp một loạt các công cụ mạnhmẽ để tạo ra đồ họa 3D, mô phỏng, hiệu ứng đặc biệt, và thậm chí là video trị chơi.
Một số tính năng chính của Blender có thể kể đến:
<b>Mã nguồn mở: Blender là một phần mềm mã nguồn mở, điều này có</b>
nghĩa là mọi người có thể xem, chỉnh sửa, và phân phối mã nguồn của nó miễnphí. Điều này đã tạo nên cộng đồng sáng tạo mạnh mẽ.
<b>Đồ họa 3D: Blender cung cấp một bộ cơng cụ tồn diện để tạo ra đồ họa</b>
3D, từ mơ hình hóa đến ánh sáng, vật liệu, và kết xuất. Người dùng có thể tạora các đối tượng phức tạp, môi trường, và kịch bản.
<b>Hoạt hình: Blender hỗ trợ việc tạo hoạt hình 3D với khả năng kiểm sốt</b>
chính xác về chuyển động, rigging, và animation. Điều này làm cho nó trởthành một cơng cụ phổ biến trong ngành cơng nghiệp hoạt hình và phim hoạthình.
<b>Game Development: Blender cung cấp tính năng mạnh mẽ cho phát</b>
triển trò chơi, với khả năng nhập khẩu và xuất khẩu dữ liệu game, tạo ra mơitrường trị chơi, và thậm chí là tạo các trị chơi đơn giản bằng sự tích hợp củaBlender Game Engine.
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15"> <b>Cộng đồng mạnh mẽ: Cộng đồng người dùng Blender rất lớn và tích</b>
cực. Người dùng có thể chia sẻ kiến thức, tài nguyên, và thậm chí là tạo ra cácadd-on mở rộng chức năng của Blender
<i>Figure 2: Giao diện công cụ Blender</i>
Blender đã trở thành một công cụ quan trọng trong ngành công nghiệp đồ họa3D và hoạt hình, và sự kết hợp giữa tính năng mạnh mẽ và tính cộng đồng đónggóp đã làm cho nó trở thành lựa chọn phổ biến cho nhiều người nghệ sĩ và nhà pháttriển.
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16"><i>Figure 3: Công cụ quản lý source code Github</i>
GitHub là một nền tảng lưu trữ mã nguồn và quản lý dự án phần mềm hàng đầutrên thế giới. Được ra mắt vào năm 2008, GitHub nhanh chóng trở thành trung tâmcủa cộng đồng phần mềm mã nguồn mở và doanh nghiệp, cung cấp một loạt cáccông cụ giúp các nhà phát triển làm việc cùng nhau, theo dõi sự thay đổi trong mãnguồn, và quản lý dự án.
Một số tính năng quan trọng của Github có thể kể đến như:
<b>Lưu trữ Mã nguồn (Version Control): GitHub sử dụng hệ thống quản</b>
lý phiên bản git, giúp theo dõi sự thay đổi trong mã nguồn của dự án. Điều nàycho phép nhiều nhà phát triển làm việc cùng một lúc mà không gặp xung đột.
<b>Hợp tác và Quản lý Dự án: GitHub cung cấp các công cụ cho việc</b>
quản lý dự án, theo dõi công việc, giao việc, và tạo các bảng (boards) để quảnlý công việc. Điều này giúp đội ngũ phát triển hợp tác một cách hiệu quả.
<b>Issue Tracking: GitHub cho phép người dùng tạo và quản lý các vấn đề</b>
(issues) để báo cáo lỗi, yêu cầu tính năng mới, và thảo luận về các vấn đề liênquan đến dự án.
<b>Tích Hợp Cơng Cụ Bên Ngồi: GitHub tích hợp với nhiều cơng cụ bên</b>
ngồi như Slack, Jira, và nhiều cơng cụ khác để tối ưu hóa quy trình làm việc.
Ngồi ra, GitHub có một cộng đồng lớn và đa dạng, với hàng triệu nhà phát triểntrên toàn thế giới. Người dùng có thể theo dõi, đánh giá, và đóng góp vào các dự ánmã nguồn mở.
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17"><i>Figure 4: Giao diện Github</i>
GitHub không chỉ là nơi lưu trữ mã nguồn, mà còn là một nền tảng đầy đủ tínhnăng giúp đội ngũ phát triển làm việc một cách hiệu quả, theo dõi tiến trình dự án, vàhợp tác tồn cầu.
có cả nền tảng mục tiêu của là PC. Đặc biệt, những công cụ xây dựng game 2D củaUnity rất nổi trội khi so sánh với những engine khác như Unreal.
Một số tính năng của Unity có thể kể đến:
<b>Phát Triển Đa Nền Tảng: Unity cho phép phát triển trò chơi và ứng</b>
dụng cho nhiều nền tảng khác nhau, bao gồm PC, điện thoại di động (iOS,Android), máy chơi game (PlayStation, Xbox, Nintendo Switch), máy tínhbảng, trình duyệt web và nhiều hệ điều hành khác.
<b>Ngơn Ngữ Lập Trình: Unity hỗ trợ nhiều ngơn ngữ lập trình, nhưng</b>
ngơn ngữ phổ biến nhất và được khuyến khích sử dụng là C#. Sự linh hoạt nàygiúp đội ngũ phát triển tận dụng sức mạnh của C# trong việc phát triển ứngdụng và trò chơi
<b>Giao Diện Người Dùng (UI) Thân Thiện: Giao diện người dùng của</b>
Unity được thiết kế để dễ sử dụng và thân thiện với người dùng. Nó bao gồmmột loạt các cơng cụ và trình chỉnh sửa cho phép nhà phát triển tạo, quản lý, vàđiều chỉnh nhanh chóng các yếu tố trong trị chơi.
<b>Tích Hợp VR/AR: Unity hỗ trợ phát triển ứng dụng và trò chơi thực tế</b>
ảo (VR) và thực tế ảo (AR), đặc biệt quan trọng trong bối cảnh xu hướng côngnghiệp thực tế ảo và thực tế ảo
<b>Physically Based Rendering (PBR): Unity hỗ trợ PBR, mang lại hình</b>
ảnh chân thực và hiệu quả cao.
Ngồi ra, nguồn tài nguyên asset và plugin phong phú, bao gồm cả miễn phí lẫncó phí, giúp nới rộng giới hạn sáng tạo.
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19"><i>Figure 6: Giao diện Unity</i>
Unity có một cộng đồng lớn và đa dạng. Diễn đàn, blog, và các sự kiện cộngđồng giúp nhà phát triển chia sẻ kinh nghiệm, học hỏi, và giải quyết vấn đề kỹthuật.
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20"><i>Figure 7: Sơ đồ Use Case</i>
<i><b>3.1.1. Danh sách actor</b></i>
<i>Table 1: Danh sách actor</i>
1 Người chơi Người dùng ứng dụng bình thường2 Hệ thống
<i><b>3.1.2. Danh sách use case</b></i>
<i>Table 2: Danh sách use case</i>
1 Tạo màn chơi Hệ thống tự động sinh màn chơi2 Thực hiện màn chơi Người chơi thực hiện màn chơi
3 Điều khiển camera Người chơi điều khiển camera để quan sát bàncờ
4 Di chuyển quân cờ Người chơi di chuyển một quân cờ trên bàn cờ5 Thi triển kỹ năng Người chơi thi triển kỹ năng của một quân cờ6 Kết thúc lượt Người chơi kết thúc lượt hành động của mình
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">7 Tính tốn hành vi của qncờ máy
AI máy phân tích tình huống và đưa ra hànhđộng
8 Xem kết quả màn chơi Người chơi xem kết quả của màn chơi
Điều kiện kích hoạt Khơng.Điều kiện cần Khơng.
Kết quả Người chơi bắt đầu màn chơi với phần điều kiển quân cờđồng mình ở lượt đầu tiên
<i>3.1.3.2.Use case “Thực hiện màn chơi”</i>
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">3.1. Di chuyển quân cờ.
3.2. Thi triển kỹ năng của qn cờ.
Luồng thay thế Khơng.Điều kiện kích hoạt Khơng.Điều kiện cần Khơng.
Kết quả Người chơi hồn thành màn chơi với 2 kết quả khác nhau(chiến thắng, thất bại).
<i>3.1.3.3.Use case “Điều khiển camera”Table 3: Đặc tả use case "Điều khiển camera"</i>
Mô tả Người chơi điều khiển camera để quan sát thế cục màn chơi
Luồng chính Người chơi có thể điều hướng, thay đổi tiêu cự camera bằngthao tác phím hoặc chuột.
Bấm các phim A, W, S, D, Q, E để di chuyển camera. Lăn chuột để thay đổi tiêu cự camera, giúp phóng to
thu nhỏ bàn cờ.
Luồng thay thế Camera sẽ bị chặn lại khi đi đến biên của bản đồ.Điều kiện kích hoạt Khơng.
Điều kiện cần Khơng.
Kết quả Hiển thị đủ quân cờ đồng minh và quân cờ kẻ địch.
<i>3.1.3.4.Use case “Di chuyển quân cờ”Table 4: Đặc tả use case “Di chuyển quân cờ"</i>
Mô tả Người chơi di chuyển một quân cờ trên bản đồ
Luồng chính 1. Người chơi chọn một quân cờ trên bản đồ.2. Thanh tác vụ “Action” của quân cờ đó hiện lên.3. Bấm nút “Move” trong cửa sổ “Action”.
</div>