1. Trang chủ
  2. » Cao đẳng - Đại học

đồ án 2 se122 game 3d chiến đấu theo lượt assaultbooming

36 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Game 3D chiến đấu theo lượt – AssaultBooming
Tác giả Nguyễn Hoàng Nam
Người hướng dẫn Ths. Trần Anh Dũng
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh, Trường Đại học Công nghệ Thông tin, Khoa Công nghệ Phần mềm
Chuyên ngành Công nghệ phần mềm
Thể loại Đồ án môn học
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 36
Dung lượng 6,68 MB

Cấu trúc

  • Chương 1. TỔNG QUAN ĐỀ TÀI (12)
    • 1.1. Tổng quan (12)
    • 1.2. Lý do chọn đề tài (12)
    • 1.3. Mục tiêu (13)
    • 1.4. Phạm vi (13)
  • Chương 2. TỔNG QUAN CÔNG NGHỆ (14)
    • 2.1. Blender (14)
    • 2.2. Github (0)
    • 2.3. Unity (17)
  • Chương 3. Đặc tả (20)
    • 3.1. Use case diagram (20)
      • 3.1.1. Danh sách actor (20)
      • 3.1.2. Danh sách use case (20)
      • 3.1.3. Đặc tả use case (21)
    • 3.2. Sequence Diagram (25)
      • 3.2.1. Danh sách các Sequence Diagram (25)
      • 3.2.2. Sơ đồ (26)
  • Chương 4. THIẾT KẾ (30)
    • 4.1. Thiết kế Class (30)
      • 4.1.1. Class diagram (30)
      • 4.1.2. Danh sách class (31)
    • 4.2. Thiết kế giao diện (32)
      • 4.2.1. Giao diện màn hình “Main menu” (32)
      • 4.2.2. Giao diện màn hình “Màn chơi chính” (32)
  • Chương 5. TỔNG KẾT (35)
    • 5.1. Kết quả (35)
    • 5.2. Hạn chế (35)
    • 5.3. Source Code (35)
    • 5.4. Hướng phát triển (35)
      • 5.4.1. Nâng cấp và mở rộng Hệ thống Bàn cờ (35)
      • 5.4.2. Cải thiện trải nghiệm gameplay (0)
      • 5.4.3. Cải thiện trải nghiệm đồ họa (0)
      • 5.4.4. Cải thiện trải nghiệm âm thanh (36)
  • TÀI LIỆU THAM KHẢO (36)

Nội dung

TỔNG QUAN CÔNG NGHỆ

Blender

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ạnh mẽ để 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:

 Mã nguồn mở: Blender là một phần mềm mã nguồn mở, điều này có 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ễn phí Điều này đã tạo nên cộng đồng sáng tạo mạnh mẽ.

 Đồ họa 3D: Blender cung cấp một bộ công cụ toàn diện để tạo ra đồ họa

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ạo ra các đối tượng phức tạp, môi trường, và kịch bản.

 Hoạt hình: Blender hỗ trợ việc tạo hoạt hình 3D với khả năng kiểm soát 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ạt hình.

 Game Development: Blender cung cấp tính năng mạnh mẽ cho phát 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ôi trườ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.

 Cộng đồng mạnh mẽ: Cộng đồng người dùng Blender rất lớn và tích 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ác add-on mở rộng chức năng của Blender

Figure 2: Giao diện công cụ Blender

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 đóng gó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át triển.

Figure 3: Công cụ quản lý source code Github

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 đầu trên thế giới Được ra mắt vào năm 2008, GitHub nhanh chóng trở thành trung tâm của cộng đồng phần mềm mã nguồn mở và doanh nghiệp, cung cấp một loạt các cô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ư:

 Lưu trữ Mã nguồn (Version Control): GitHub sử dụng hệ thống quản 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ày cho 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.

 Hợp tác và Quản lý Dự án: GitHub cung cấp các công cụ cho việc quản lý dự án, theo dõi công việc, giao việc, và tạo các bảng (boards) để quản lý 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ả.

 Issue Tracking: GitHub cho phép người dùng tạo và quản lý các vấn đề

(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ên quan đến dự án.

 Tích Hợp Công Cụ Bên Ngoài: GitHub tích hợp với nhiều công cụ bên ngoài như Slack, Jira, và nhiều công cụ khác để tối ưu hóa quy trình làm việc.

Ngoà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ển trê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ự án mã nguồn mở.

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ính nă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 toàn cầu.

2.3 Unity 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ủa Unity 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:

 Phát Triển Đa Nền Tảng: Unity cho phép phát triển trò chơi và ứng 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ính bảng, trình duyệt web và nhiều hệ điều hành khác.

 Ngôn Ngữ Lập Trình: Unity hỗ trợ nhiều ngôn ngữ lập trình, nhưng ngôn ngữ phổ biến nhất và được khuyến khích sử dụng là C# Sự linh hoạt này giú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 ứng dụng và trò chơi

 Giao Diện Người Dùng (UI) Thân Thiện: Giao diện người dùng của

Unity

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ủa Unity 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:

 Phát Triển Đa Nền Tảng: Unity cho phép phát triển trò chơi và ứng 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ính bảng, trình duyệt web và nhiều hệ điều hành khác.

 Ngôn Ngữ Lập Trình: Unity hỗ trợ nhiều ngôn ngữ lập trình, nhưng ngôn ngữ phổ biến nhất và được khuyến khích sử dụng là C# Sự linh hoạt này giú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 ứng dụng và trò chơi

 Giao Diện Người Dùng (UI) Thân Thiện: Giao diện người dùng của

Unity được thiết kế để dễ sử dụng và thân thiện với người dùng Nó bao gồm mộ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.

 Tích Hợp VR/AR: Unity hỗ trợ phát triển ứng dụng và trò chơi thực tế ảo (VR) và thực tế ảo (AR), đặc biệt quan trọng trong bối cảnh xu hướng công nghiệp thực tế ảo và thực tế ảo

 Physically Based Rendering (PBR): Unity hỗ trợ PBR, mang lại hình ảnh chân thực và hiệu quả cao.

Ngoài ra, nguồn tài nguyên asset và plugin phong phú, bao gồm cả miễn phí lẫn có phí, giúp nới rộng giới hạn sáng tạo.

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.

Đặc tả

Use case diagram

Figure 7: Sơ đồ Use Case 3.1.1 Danh sách actor

STT Tên actor Mô tả

1 Người chơi Người dùng ứng dụng bình thường

Table 2: Danh sách use case

STT Tên use case Mô tả

1 Tạo màn chơi Hệ thống tự động sinh màn chơi

2 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àn cờ

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

7 Tính toán hành vi của quân cờ 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

3.1.3.1 Use case “Tạo màn chơi”

Table 1: Đặc tả use case "Tạo màn chơi"

Mô tả Hệ thống tự động sinh màn chơi

Luồng chính 1 Người chơi bấm nút “Start”.

2 Hệ thống sẽ sinh màn chơi.

3 Sinh bản độ Tạo ra bản đồ gồm các ô Grid vuông.

4 Sinh nhóm kẻ địch Kẻ địch được sinh theo từng nhóm nằm rải rác trên khắp bản đồ.

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 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

3.1.3.2 Use case “Thực hiện màn chơi” thể.

3.2 Thi triển kỹ năng của quân 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 hoàn thành màn chơi với 2 kết quả khác nhau

3.1.3.3 Use case “Điều khiển camera”

Table 3: Đặc tả use case "Điều khiển camera"

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ằng thao 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.

3.1.3.4 Use case “Di chuyển quân cờ”

Table 4: Đặc tả use case “Di chuyển quân cờ"

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.

4 Hiển thị tầm mà nhân vật có thể di chuyển đến.

 Chỉ có thể di chuyển trong phạm vi cho phép.

 Không thể di chuyển xuyên qua quân cờ cùng phe.

 Điểm đến không được có quân cờ nào đứng trên đó.

5 Khi người chơi di chuột vào ô không nằm trong tầm di chuyển của đơn vị đó, hiển thị đánh dấu cảnh báo.

6 Chọn một ô trong tầm di chuyển.

7 Quân cờ thực hiện hoạt ảnh di chuyển.

Luồng thay thế Không. Điều kiện kích hoạt Không. Điều kiện cần Quân cờ không bị giới hạn di chuyển trong lượt.

Quân cơ còn đủ Action Point để thực hiện hành vi di chuyển Kết quả Cập nhật vị trí của đơn vị và thực hiện hoạt ảnh di chuyển.

3.1.3.5 Use case “Thi triển kỹ năng”

Table 5: Đặc tả use case "Thi triển kỹ năng"

Mô tả Người chơi thi triển kỹ năng của một quân cờ

Luồng chính 1 Người chơi chọn một quân cờ trên bàn cờ.

2 Thanh tác vụ “Action” của quân cờ đó hiện lên.

3 Người chơi chọn kỹ năng muốn thi triển.

4 Hiển thị tầm thi triển và vùng thi triển của kỹ năng đó.

5 Khi người chơi di chuột vào ô không nằm trong tầm

3.1.3.6 Use case “Kết thúc lượt”

Table 6: Đặc tả use case "Kết thúc lượt"

Mô tả Người chơi kết thúc lượt hành động của mình

Luồng chính 1 Bấm nút “End Turn” để chuyển quyền điều khiển cho máy.

2 Ở lượt của máy, các quân cờ địch thực hiện use case

“Tính toán hành vi của quân cờ máy”, sau đó áp dụng những hành vi tương tự quân cờ đồng minh

3 Ở đầu lượt của người chơi, tất cả các quân cờ sẽ được hồi phục lại Action Point.

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ả Lượt điều khiển được chuyển cho máy Trong lượt của máy, người chơi không thể kích hoạt các hành động của quân cờ.

3.1.3.7 Use case “Tính toán hành vi cúa quân cờ máy”

Table 3: Đặc tả use case "Tính toán hành vi của máy"

Mô tả AI máy phân tích tình huống và đưa ra hành động

Luồng chính 1 Tìm mục tiêu là quân cờ gần nhất của người chơi.

2 Chọn một kỹ năng có sẵn dựa trên thuật toán ưu tiên khoảng cách và điểm dư Action Point để quyết định kỹ năng sẽ thi triển.

3 Nếu không, tìm đường di chuyển đến quân cờ mục tiêu và di chuyển với số ô bằng với tầm di chuyển. Luồng thay thế Không. Điều kiện kích hoạt Không.

Kết quả Quân cờ do máy điều khiển nhận và thực hiện nhiệm vụ khi tới lượt, nhận được phần thưởng nếu có.

3.1.3.8 Use case “Xem kết quả màn chơi”

Table 4: Đặc tả use case "Xem kết quả màn chơi"

Mô tả Người chơi xem kết quả của màn chơi

Luồng chính 1 Sau khi kết thúc màn chơi, dựa trên số lượng quân cờ còn sót lại để cho ra kết quả màn chơi.

2 Người chơi bấm nút “Main menu” để quay lại màn hình chính.

Luồng thay thế Người chơi bấm nút “Restart” để chơi lại màn chơi vừa rồi. Điều kiện kích hoạt Người chơi vừa kết thúc một màn chơi. Điều kiện cần Không.

Kết quả Lưu dữ liệu sau khi người chơi nhận phần thưởng và hình phạt.

Sequence Diagram

3.2.1 Danh sách các Sequence Diagram

3.2.2.1 Sơ đồ “Tạo màn chơi”

3.2.2.2 Sơ đồ “Thực hiện màn chơi”

3.2.2.3 Sơ đồ “Điều kiển camera”

3.2.2.4 Sơ đồ “Di chuyển quân cờ”

3.2.2.5 Sơ đồ “Thi triển kỹ năng”

3.2.2.6 Sơ đồ “Kết thúc lượt”

3.2.2.7 Sơ đồ “Tính toán hành vi của quân cờ máy”

3.2.2.8 Sơ đồ “Xem kết quả màn chơi”

THIẾT KẾ

Thiết kế Class

Figure 8: Sơ đồ lớp hệ thống

Figure 9: Sơ đồ lớp kỹ năng

4.1.2.1 Danh sách class thuộc hệ thống Kỹ năng

Table 5: Danh sách class thuộc hệ thống Kỹ năng

GameplayAttribute Đại diện cho một thuộc tính của nhân vật.

GameplayAttributeData Biểu thị giá trị của một GameplayAttribute.

GameplayEffect Định nghĩa cho một hoặc nhiều hiệu ứng ảnh hưởng lên các GameplayAttribute khác nhau.

GameplayModifier Là bộ hỗ trợ cho phép thực hiện các phép tính lên

GameplayEffectSpec Là một instance của GameplayEffect.

GameplayAbility Định nghĩa cho một kỹ năng mà nhân vật có thể kích hoạt, chứa một hoặc nhiều GameplayEffect.

AbilitySystemComponent Là một MonoBehaviour, cho phép GameObject chứa component này có thể chứa một bộ GameplayAttributeData, kích hoạt GameplayAbility, và chứa những GameplayEffect có thể được kích hoạt trong tương lai

4.1.2.2 Danh sách class thuộc hệ thống Bản cờ

Table 6: Danh sách class thuộc hệ thống Bàn cờ

MapManager Quản lý việc truy xuất, sửa các tilemap.

Thiết kế giao diện

4.2.1 Giao diện màn hình “Main menu”

Figure 10: Giao diện màn hình "Main menu"

- Mô tả các đối tượng trong giao diện

Table 7: Bảng mô tả giao diện "Bảng chọn chính"

STT Tên Kiểu Ý nghĩa Ghi chú

1 Background Image Background khái quát trò chơi

2 Start game Button Nhấn vào để bắt đầu trò chơi

3 Quit game Button Nhấn để thoát trò chơi

4.2.2 Giao diện màn hình “Màn chơi chính”

Figure 11: Giao diện màn hình "Màn chơi chính"

- Mô tả các đối tượng trong giao diện

Table 8: Bảng mô tả giao diện "Màn chơi chính"

STT Tên Kiểu Ý nghĩa Ghi chú

1 Bảng hành vi Button Hiển thị các loại hành

2 Điểm hành vi Text vi Hiển thị điểm khả dụng để sử dụng các hành vi

3 Quân cờ đồng minh Game object Quân cờ để người chơi điều khiển

4 Quân cờ kẻ địch Game object Quần cờ do hệ thống

Figure 12: Giao diện màn hình "Kết thúc game"

- Mô tả các đối tượng trong giao diện

Table 9: Mô tả giao diện màn hình "Kết thúc game"

STT Tên Kiểu Ý nghĩa Ghi chú

1 Kết quả game Text Hiển thị kết quả màn

2 Restart Button chơiNhấn vào để chơi lại màn chơi

3 Main menu Button Nhấn vào để quay lại màn hình chính (1)

TỔNG KẾT

Kết quả

Sản phẩm đã hoàn thành được các tính năng đề ra với mức độ hoàn thành 100% Khả năng dễ mở rộng, phát triển được đảm bảo bởi các kỹ thuật lập trình nâng cao trong C# như event, delegate, generic.

Gameplay đổi mới, sáng tạo, cảm giác khi chơi giống với mục tiêu đề ra, mang lại cho người chơi cảm giác đấu trí, phải có chiến lượt rõ ràng trong từng lượt chơi.

AI game được phát triển dựa trên các hành vi chơi của người dùng, với tri thức máy và hành động dựa trên số diểm Hành vi còn lại của máy.

Các hiệu ứng VFX và animation tạo được cảm giác kích thích cho người chơiTrò chơi có phần thiết kế đồ hoạ thân thiện với người dùng, dễ nhìn, dễ hiểu.

Hạn chế

Game chưa có vòng lặp hoàn chỉnh, chưa có hiệu ứng âm thanh.

Tình trạng game khi chơi có giật lag Hệ thống camera khó điều khiển khi mới chơi lần đầu

Source Code

https://github.com/NAM2412/AssaultBooming.git

Hướng phát triển

5.4.1 Nâng cấp và mở rộng Hệ thống Bàn cờ

 Multifloor: tạo hệ thống bản đồ nhiều tầng

5.4.4 Cải thiện trải nghiệm âm thanh

 Bổ sung các hiệu ứng âm thanh, lời thoại của nhân vật.

Ngày đăng: 15/05/2024, 09:24

HÌNH ẢNH LIÊN QUAN

Figure 7: Sơ đồ Use Case 3.1.1.  Danh sách actor - đồ án 2 se122 game 3d chiến đấu theo lượt assaultbooming
igure 7: Sơ đồ Use Case 3.1.1. Danh sách actor (Trang 20)
3.2.2.1. Sơ đồ “Tạo màn chơi” - đồ án 2 se122 game 3d chiến đấu theo lượt assaultbooming
3.2.2.1. Sơ đồ “Tạo màn chơi” (Trang 26)
3.2.2.3. Sơ đồ “Điều kiển camera” - đồ án 2 se122 game 3d chiến đấu theo lượt assaultbooming
3.2.2.3. Sơ đồ “Điều kiển camera” (Trang 27)
3.2.2.5. Sơ đồ “Thi triển kỹ năng” - đồ án 2 se122 game 3d chiến đấu theo lượt assaultbooming
3.2.2.5. Sơ đồ “Thi triển kỹ năng” (Trang 28)
3.2.2.6. Sơ đồ “Kết thúc lượt” - đồ án 2 se122 game 3d chiến đấu theo lượt assaultbooming
3.2.2.6. Sơ đồ “Kết thúc lượt” (Trang 28)
3.2.2.8. Sơ đồ “Xem kết quả màn chơi” - đồ án 2 se122 game 3d chiến đấu theo lượt assaultbooming
3.2.2.8. Sơ đồ “Xem kết quả màn chơi” (Trang 29)
3.2.2.7. Sơ đồ “Tính toán hành vi của quân cờ máy” - đồ án 2 se122 game 3d chiến đấu theo lượt assaultbooming
3.2.2.7. Sơ đồ “Tính toán hành vi của quân cờ máy” (Trang 29)
Figure 8: Sơ đồ lớp hệ thống - đồ án 2 se122 game 3d chiến đấu theo lượt assaultbooming
igure 8: Sơ đồ lớp hệ thống (Trang 30)
Figure 9: Sơ đồ lớp kỹ năng - đồ án 2 se122 game 3d chiến đấu theo lượt assaultbooming
igure 9: Sơ đồ lớp kỹ năng (Trang 30)
Table 7: Bảng mô tả giao diện "Bảng chọn chính" - đồ án 2 se122 game 3d chiến đấu theo lượt assaultbooming
able 7: Bảng mô tả giao diện "Bảng chọn chính" (Trang 32)
Table 8: Bảng mô tả giao diện "Màn chơi chính" - đồ án 2 se122 game 3d chiến đấu theo lượt assaultbooming
able 8: Bảng mô tả giao diện "Màn chơi chính" (Trang 33)
w