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.