Đồ Án Nhóm Phân Tích Thiết Kế Hệ Thống Game Tại Đại Học Duy Tân

Trường đại học

Đại Học Duy Tân

Người đăng

Ẩn danh
52
3
0

Phí lưu trữ

30 Point

Tóm tắt

I. Khám phá luận văn thiết kế game chiến thuật tại Duy Tân

Dự án phân tích và thiết kế hệ thống game chiến thuật là một ví dụ tiêu biểu cho hoạt động nghiên cứu khoa học sinh viên DTU. Đề tài này không chỉ là một đồ án CNTT Đại học Duy Tân thông thường mà còn là một minh chứng cho năng lực ứng dụng lý thuyết vào thực tiễn của sinh viên. Trọng tâm của dự án là việc phân tích yêu cầu hệ thống game một cách chi tiết và thiết kế hệ thống thông tin một cách bài bản trước khi bước vào giai đoạn lập trình. Việc này giúp giảm thiểu rủi ro, tối ưu hóa nguồn lực và đảm bảo sản phẩm cuối cùng đáp ứng đúng kỳ vọng. Tài liệu nghiên cứu này trình bày một cách tiếp cận có hệ thống, bắt đầu từ việc xác định các yêu cầu chức năng cốt lõi như mua bán, cường hóa, quản lý tài sản và chiến đấu. Đây là nền tảng vững chắc cho bất kỳ dự án phát triển game chiến thuật Unity nào trong tương lai. Các sinh viên Duy Tân làm game đã thể hiện sự am hiểu sâu sắc về quy trình phát triển phần mềm chuyên nghiệp. Thay vì bắt tay vào lập trình ngay, nhóm đã dành thời gian để mô hình hóa hệ thống bằng UML, một kỹ năng quan trọng trong ngành công nghệ phần mềm. Cách tiếp cận này đặc biệt hữu ích cho các hệ thống phức tạp như game, nơi có vô số tương tác giữa các đối tượng. Phân tích này không chỉ dành cho những người quan tâm đến đồ án tốt nghiệp ngành công nghệ phần mềm mà còn là tài liệu tham khảo quý giá cho bất kỳ ai muốn tìm hiểu quy trình tạo ra một trò chơi từ con số không, đặc biệt là trong môi trường học thuật. Toàn bộ quá trình được trình bày rõ ràng, từ việc xác định tác nhân (Player, Administrator) đến việc mô tả chi tiết các kịch bản sử dụng (use case), tạo thành một báo cáo đồ án tốt nghiệp game hoàn chỉnh và chuyên nghiệp.

1.1. Bối cảnh nghiên cứu khoa học của sinh viên DTU

Trong môi trường giáo dục đại học, đặc biệt tại Đại học Duy Tân, các dự án nghiên cứu khoa học của sinh viên ngày càng được chú trọng. Đề tài phân tích thiết kế hệ thống game chiến thuật là một minh chứng rõ nét. Nó không chỉ là bài tập cuối kỳ mà còn là cơ hội để sinh viên áp dụng kiến thức từ các môn học như Phân tích thiết kế hướng đối tượng (CS 353 B) vào một sản phẩm cụ thể. Dự án này cho thấy xu hướng sinh viên không chỉ học lý thuyết mà còn chủ động tạo ra các sản phẩm công nghệ có tính ứng dụng, phản ánh chất lượng đào tạo của ngành Công nghệ thông tin.

1.2. Mục tiêu chính của đồ án CNTT Đại học Duy Tân này

Mục tiêu chính của đồ án không phải là hoàn thiện một trò chơi có thể phát hành, mà là xây dựng một bản thiết kế hệ thống chi tiết và toàn diện. Cụ thể, dự án tập trung vào việc: (1) Phân tích yêu cầu hệ thống game một cách đầy đủ, bao gồm cả yêu cầu chức năng và phi chức năng. (2) Sử dụng Ngôn ngữ Mô hình hóa Hợp nhất (UML) để trực quan hóa kiến trúc, chức năng và hành vi của hệ thống. (3) Tạo ra một tài liệu thiết kế vững chắc, làm cơ sở cho việc lập trình và triển khai sau này. Đây là bước chuẩn bị quan trọng, quyết định sự thành công của các dự án xây dựng game RTS (Real-time strategy) hay game chiến thuật theo lượt.

1.3. Tổng quan phạm vi và chức năng hệ thống game

Phạm vi của dự án tập trung vào các chức năng cốt lõi của một game chiến thuật. Theo tài liệu gốc, hệ thống bao gồm các chức năng chính: Mua đồ (nhân vật, trang bị, vật phẩm), Cường hóa (nâng cấp chỉ số nhân vật và trang bị), Quản lý tài sản (hành trang), và Chiến đấu. Hệ thống xác định hai tác nhân chính là Player (người chơi) và Administrator (quản trị viên). Các chức năng được mô tả chi tiết qua các kịch bản, ví dụ như cơ chế chiến đấu chọn 4 nhân vật chính và 2 hỗ trợ, hay hệ thống năng lượng tăng dần theo thời gian. Đây là những yếu tố định hình nên phần thiết kế gameplay chiến thuật của dự án.

II. Thách thức khi phân tích yêu cầu hệ thống game chiến thuật

Việc phân tích yêu cầu hệ thống game là giai đoạn phức tạp và ẩn chứa nhiều thách thức, quyết định toàn bộ kiến trúc của sản phẩm. Một trong những khó khăn lớn nhất là việc chuyển hóa ý tưởng về thiết kế gameplay chiến thuật thành các yêu cầu chức năng cụ thể, rõ ràng và có thể kiểm chứng. Ví dụ, yêu cầu "game phải hấp dẫn" là một yêu cầu mơ hồ. Dự án này đã thành công khi cụ thể hóa nó thành các chức năng rõ ràng như: "Player có thể cường hóa nhân vật và trang bị", "Mỗi nhân vật sở hữu các chiêu thức (SP) riêng", "Mỗi map có một loại Enemy và Boss riêng biệt". Thách thức thứ hai là việc cân bằng hệ thống. Trong game chiến thuật, sự cân bằng giữa các nhân vật, trang bị và độ khó của màn chơi là yếu tố sống còn. Tài liệu đề cập đến các quy tắc cụ thể như "Mỗi một level thì chỉ số nhân vật so với level trước cao hơn 10%" và "chỉ số trang bị... cao hơn 5%". Việc định lượng hóa các quy tắc này ngay từ giai đoạn phân tích là một bước đi thông minh. Một thách thức khác là quản lý sự phức tạp của các mối quan hệ trong game, từ đó xây dựng một cơ sở dữ liệu cho game online hiệu quả. Hệ thống cần quản lý dữ liệu về người chơi, nhân vật, trang bị, vật phẩm, kỹ năng, và các mối quan hệ giữa chúng (nhân vật nào đang đeo trang bị nào). Việc sử dụng các sơ đồ UML như Biểu đồ Lớp (Class Diagram) chính là giải pháp để giải quyết bài toán này, giúp trực quan hóa cấu trúc dữ liệu trước khi thiết kế database thực tế.

2.1. Xác định yêu cầu chức năng cho gameplay chiến thuật

Yêu cầu chức năng mô tả những gì hệ thống phải làm. Trong đồ án này, các yêu cầu chức năng được chia thành các nhóm rõ ràng: mua sắm, cường hóa, quản lý và chiến đấu. Ví dụ, chức năng mua đồ được chi tiết hóa: "Hiển thị các nhân vật, trang bị và vật phẩm cùng giá tiền", "Trừ số Gold hiện có", "Nhân vật bị mua sẽ biến mất khỏi danh sách cửa hàng". Việc mô tả chi tiết như vậy giúp loại bỏ sự mơ hồ và tạo ra một đặc tả rõ ràng cho đội ngũ phát triển, là bước đầu tiên trong việc tạo ra một luận văn thiết kế game chiến thuật chất lượng.

2.2. Vai trò của các tác nhân Player và Administrator

Việc xác định đúng và đủ các tác nhân (Actors) là cực kỳ quan trọng. Dự án này xác định hai tác nhân chính. Player là người dùng cuối, tương tác với hầu hết các chức năng của game mà "không cần thiết đăng nhập để chơi, nhưng phải có tên để bắt đầu". Ngược lại, Administrator có quyền hạn cao hơn, có thể "chỉnh sửa mọi thứ trong trò chơi" nhưng "cần đăng nhập". Sự phân chia vai trò rõ ràng này giúp thiết kế các luồng chức năng và cơ chế phân quyền một cách hợp lý, đặc biệt quan trọng khi thiết kế hệ thống thông tin có nhiều người dùng.

2.3. Bài toán cân bằng chỉ số và cơ chế cường hóa

Cân bằng game là một nghệ thuật, nhưng nó phải dựa trên các công thức toán học cụ thể. Đồ án đã đưa ra các quy tắc cơ bản để cân bằng sức mạnh, ví dụ: "Các nhân vật thuộc nhóm Enemy không có SP nhưng các chỉ số của chúng cao hơn". Hay cơ chế cường hóa có tỷ lệ cố định: "Mỗi một level thì chỉ số nhân vật... cao hơn 10%". Những quy tắc này, dù đơn giản, là nền tảng để xây dựng một hệ thống phức tạp hơn. Việc định nghĩa chúng ngay từ đầu giúp quá trình phát triển và kiểm thử sau này trở nên dễ dàng hơn, tránh tình trạng phải điều chỉnh lại toàn bộ hệ thống.

III. Phương pháp mô hình hóa hệ thống bằng UML hiệu quả nhất

Để giải quyết các thách thức trong phân tích, nhóm sinh viên Đại học Duy Tân đã áp dụng phương pháp mô hình hóa hệ thống bằng UML (Unified Modeling Language). Đây là một phương pháp tiêu chuẩn trong đồ án tốt nghiệp ngành công nghệ phần mềm, giúp trực quan hóa kiến trúc và hành vi của hệ thống một cách tường minh. Thay vì mô tả bằng hàng trăm trang văn bản, UML sử dụng các biểu đồ để thể hiện các khía cạnh khác nhau của hệ thống. Tài liệu gốc đã sử dụng một bộ biểu đồ UML phong phú. Biểu đồ Use Case được dùng để xác định phạm vi hệ thống và các tương tác chính giữa tác nhân và game. Biểu đồ Lớp (Class Diagram) đóng vai trò xương sống, định nghĩa các thực thể chính trong game (Nhân vật, Trang bị, Kỹ năng) cùng các thuộc tính và phương thức của chúng. Đây là bước quan trọng để thiết kế hệ thống thông tin theo hướng đối tượng. Các biểu đồ này không chỉ là hình vẽ minh họa. Chúng là bản thiết kế chi tiết, là ngôn ngữ chung giữa các nhà phân tích, thiết kế và lập trình viên. Việc sử dụng UML trong một đồ án CNTT Đại học Duy Tân cho thấy sự tiếp cận chuyên nghiệp và bài bản, giúp đảm bảo tất cả các thành viên trong nhóm đều có chung một sự hiểu biết về hệ thống đang được xây dựng. Cách làm này đặc biệt hữu ích cho các dự án game, nơi logic và các mối quan hệ thường rất phức tạp, từ việc lập trình game chiến thuật theo lượt đến các hệ thống thời gian thực.

3.1. Phân tích chức năng tổng quan với biểu đồ Use Case

Biểu đồ Use Case là công cụ đầu tiên được sử dụng để nắm bắt các yêu cầu chức năng ở mức cao. Nó trả lời câu hỏi: "Hệ thống làm gì và ai sử dụng nó?". Trong đồ án, các use case chính được xác định bao gồm: Mua đồ, Cường hoá, Quản lý tài sản, Chuẩn bị chiến đấu, Chiến đấu. Mỗi use case đại diện cho một mục tiêu mà người dùng (Player) muốn đạt được. Ví dụ, use case "Mua đồ" được mô tả chi tiết qua các kịch bản con như "Mua nhân vật", "Mua trang bị". Cách tiếp cận này giúp nhóm phát triển có cái nhìn tổng quan về các tính năng cần xây dựng.

3.2. Thiết kế cấu trúc tĩnh với biểu đồ lớp Class Diagram

Nếu Use Case mô tả "cái gì", thì Biểu đồ Lớp mô tả "cấu trúc của cái gì". Đây là biểu đồ quan trọng nhất trong thiết kế hướng đối tượng. Nó xác định các lớp (ví dụ: Player, Character, Item, Skill), các thuộc tính của chúng (ví dụ: HP, Attack, Gold) và các phương thức (ví dụ: buyItem(), upgrade()). Biểu đồ này cũng thể hiện các mối quan hệ giữa các lớp như kế thừa, liên kết, tổng hợp. Nó là bản thiết kế trực tiếp cho cấu trúc code và cơ sở dữ liệu cho game online, đảm bảo hệ thống có cấu trúc logic, dễ bảo trì và mở rộng.

IV. Hướng dẫn thiết kế luồng hoạt động và tương tác trong game

Sau khi xác định cấu trúc tĩnh của hệ thống qua Biểu đồ Lớp, bước tiếp theo là mô hình hóa hành vi động. Đây là lúc các biểu đồ như Biểu đồ Hoạt động (Activity Diagram) và Biểu đồ Trình tự (Sequence Diagram) phát huy tác dụng. Trong báo cáo đồ án tốt nghiệp game này, các biểu đồ này được sử dụng để làm rõ luồng xử lý của từng chức năng phức tạp. Biểu đồ Hoạt động mô tả các bước trong một quy trình nghiệp vụ, tương tự như một lưu đồ. Ví dụ, Biểu đồ Hoạt động cho chức năng "Cường hoá trang bị" sẽ chỉ rõ các bước: chọn trang bị, hệ thống hiển thị vật phẩm cần thiết, người chơi xác nhận, hệ thống kiểm tra điều kiện (đủ Gold, đủ vật phẩm), và cuối cùng là cập nhật chỉ số hoặc thông báo lỗi. Trong khi đó, Biểu đồ Trình tự tập trung vào sự tương tác và thông điệp trao đổi giữa các đối tượng theo thời gian. Nó cho thấy đối tượng nào gọi phương thức của đối tượng nào và theo thứ tự nào. Ví dụ, Biểu đồ Trình tự cho chức năng "Sử dụng SP" sẽ mô tả rõ Player chọn SP, giao diện người dùng gửi yêu cầu đến đối tượng quản lý trận đấu, đối tượng này kiểm tra năng lượng, sau đó ra lệnh cho đối tượng nhân vật thực hiện kỹ năng. Việc sử dụng các biểu đồ này giúp hiện thực hóa thiết kế gameplay chiến thuật, đảm bảo logic game chạy đúng như ý đồ và là tài liệu quan trọng cho các lập trình viên khi hiện thực hóa hệ thống.

4.1. Mô hình hóa quy trình nghiệp vụ với biểu đồ hoạt động

Biểu đồ Hoạt động được sử dụng để mô tả chi tiết luồng công việc của một use case cụ thể. Tài liệu gốc đã trình bày các biểu đồ cho nhiều hoạt động quan trọng như "Mua nhân vật", "Cường hoá trang bị", "Bắt đầu chiến đấu". Ưu điểm của biểu đồ này là tính trực quan, dễ hiểu, giúp tất cả các bên liên quan (kể cả những người không chuyên về kỹ thuật) có thể nắm bắt được quy trình xử lý của hệ thống. Nó chỉ rõ các điểm bắt đầu, kết thúc, các hành động, các điểm quyết định (rẽ nhánh) và các luồng song song nếu có.

4.2. Phân tích luồng tương tác với biểu đồ trình tự

Biểu đồ Trình tự (Sequence Diagram) lại đi sâu vào khía cạnh kỹ thuật, mô tả sự tương tác giữa các đối tượng (instances of classes) để thực hiện một chức năng. Nó thể hiện các thông điệp (method calls) được gửi giữa các đối tượng theo một trình tự thời gian từ trên xuống dưới. Ví dụ, trong kịch bản "Mua trang bị", biểu đồ sẽ cho thấy đối tượng Player tương tác với ShopUI, ShopUI gọi đến ShopController, ShopController kiểm tra PlayerInventoryGold, sau đó cập nhật dữ liệu. Đây là công cụ không thể thiếu để các lập trình viên hiểu và triển khai code cho các chức năng của game.

4.3. Trực quan hóa trạng thái đối tượng với biểu đồ trạng thái

Đối với các đối tượng có vòng đời phức tạp, Biểu đồ Trạng thái (State Diagram) là công cụ mô hình hóa hữu hiệu. Nó mô tả các trạng thái khác nhau mà một đối tượng có thể trải qua và các sự kiện gây ra sự chuyển đổi giữa các trạng thái đó. Ví dụ, một đối tượng Battle (trận đấu) có thể có các trạng thái như: Preparing (chuẩn bị), InProgress (đang diễn ra), Paused (tạm dừng), Finished (kết thúc). Việc mô hình hóa này giúp quản lý logic của các đối tượng phức tạp một cách chặt chẽ, đặc biệt hữu ích trong lập trình game chiến thuật theo lượt.

V. Ứng dụng từ đồ án phần mềm vào phát triển game thực tế

Bản phân tích thiết kế này không chỉ là một tài liệu học thuật. Nó là một cầu nối vững chắc giữa lý thuyết và thực tiễn, là nền tảng để bắt đầu dự án phát triển game chiến thuật Unity hoặc bất kỳ game engine nào khác. Từ Biểu đồ Lớp, đội ngũ phát triển có thể trực tiếp tạo ra các class trong C# (ngôn ngữ chính của Unity). Các thuộc tính trong biểu đồ sẽ trở thành các biến thành viên, và các phương thức sẽ trở thành các hàm. Logic trong các Biểu đồ Hoạt động và Trình tự sẽ được chuyển thể thành mã lệnh bên trong các hàm đó. Hơn nữa, bản thiết kế này cũng là tiền đề cho các công việc phức tạp hơn như lập trình AI cho game. Logic hành vi của Enemy và Boss đã được mô tả ở mức yêu cầu, và từ đó, lập trình viên AI có thể phát triển các thuật toán cụ thể như máy trạng thái hữu hạn (Finite State Machine) hay cây hành vi (Behavior Tree) để điều khiển chúng. Cấu trúc dữ liệu được định nghĩa trong Biểu đồ Lớp cũng là cơ sở để thiết kế cơ sở dữ liệu cho game online, dù là sử dụng SQL hay NoSQL. Cuối cùng, Biểu đồ Thành phần và Biểu đồ Triển khai (mặc dù ít được đề cập sâu) cung cấp cái nhìn tổng quan về cách đóng gói và triển khai sản phẩm. Tóm lại, đồ án tốt nghiệp ngành công nghệ phần mềm này không chỉ là một bài tập, mà là một bộ khung thiết kế hoàn chỉnh, sẵn sàng để các sinh viên Duy Tân làm game biến ý tưởng thành một sản phẩm có thể chơi được.

5.1. Chuyển đổi từ thiết kế UML sang mã nguồn Unity C

Quá trình chuyển đổi từ thiết kế sang mã nguồn là bước hiện thực hóa quan trọng nhất. Mỗi lớp trong Biểu đồ Lớp sẽ tương ứng với một file script C# trong Unity. Ví dụ, lớp Character sẽ trở thành public class Character : MonoBehaviour {...}. Các thuộc tính như HP, Attack sẽ là các biến public float HP;. Các phương thức như TakeDamage(int amount) sẽ được lập trình để xử lý logic khi nhân vật nhận sát thương. Các Biểu đồ Trình tự cung cấp hướng dẫn chi tiết về cách các phương thức này gọi lẫn nhau để hoàn thành một chức năng.

5.2. Nền tảng cho việc lập trình AI và cơ sở dữ liệu

Một bản thiết kế tốt sẽ giúp việc tích hợp các hệ thống phức tạp như AI trở nên dễ dàng hơn. Dựa trên các yêu cầu về Enemy và Boss, lập trình viên AI có thể xây dựng các kịch bản hành vi. Ví dụ, một Enemy có thể có các trạng thái: Idle (đứng yên), Chase (đuổi theo người chơi), Attack (tấn công). Tương tự, cấu trúc dữ liệu đã được định nghĩa rõ ràng giúp việc lựa chọn và thiết kế cơ sở dữ liệu cho game online trở nên thuận lợi, đảm bảo dữ liệu người chơi được lưu trữ và truy xuất một cách hiệu quả.

5.3. Vai trò của biểu đồ thành phần và triển khai

Biểu đồ Thành phần (Component Diagram) và Biểu đồ Triển khai (Deployment Diagram) thuộc về giai đoạn cuối của thiết kế. Biểu đồ Thành phần mô tả cách hệ thống được chia thành các thành phần phần mềm (ví dụ: GameLogic.dll, DatabaseConnector.dll, UI.exe). Biểu đồ Triển khai mô tả kiến trúc vật lý của hệ thống, chỉ ra phần mềm sẽ chạy trên phần cứng nào (ví dụ: máy chủ game, máy khách, máy chủ cơ sở dữ liệu). Dù đồ án này tập trung vào phân tích, việc có các biểu đồ này cho thấy một tầm nhìn hoàn chỉnh về toàn bộ vòng đời phát triển sản phẩm.

VI. Tương lai của dự án và kinh nghiệm viết báo cáo đồ án game

Dự án phân tích thiết kế hệ thống game chiến thuật của sinh viên Đại học Duy Tân đã đặt một nền móng vững chắc. Hướng phát triển trong tương lai cho dự án này là vô cùng rộng mở. Giai đoạn tiếp theo rõ ràng là việc hiện thực hóa bản thiết kế này bằng một game engine cụ thể như Unity hoặc Unreal Engine. Trong quá trình đó, nhóm có thể mở rộng các tính năng, chẳng hạn như thêm chế độ chơi nhiều người (multiplayer), hệ thống nhiệm vụ, bảng xếp hạng, hoặc phát triển hệ thống lập trình AI cho game phức tạp hơn. Một hướng cải tiến khác là tối ưu hóa hệ thống, đặc biệt là phần cơ sở dữ liệu cho game online để có thể chịu tải lớn. Đồ án này cũng là một kinh nghiệm quý báu cho việc hoàn thành một luận văn thiết kế game chiến thuật hay bất kỳ báo cáo đồ án tốt nghiệp game nào. Bài học rút ra là tầm quan trọng của giai đoạn phân tích và thiết kế. Việc đầu tư thời gian vào việc mô hình hóa hệ thống bằng UML sẽ tiết kiệm rất nhiều thời gian và công sức ở giai đoạn lập trình và sửa lỗi. Một bản báo cáo tốt cần trình bày logic, rõ ràng, đi từ tổng quan đến chi tiết, và sử dụng các công cụ trực quan như biểu đồ để minh họa. Đây là kỹ năng mà mọi sinh viên ngành công nghệ phần mềm cần trang bị để thành công trong các dự án thực tế.

6.1. Tổng kết giá trị của báo cáo đồ án tốt nghiệp game

Giá trị lớn nhất của đồ án này không nằm ở sản phẩm game cuối cùng, mà ở quy trình và tài liệu thiết kế mà nó tạo ra. Nó chứng minh năng lực phân tích vấn đề, thiết kế giải pháp một cách có hệ thống của người thực hiện. Đối với sinh viên, đây là một sản phẩm học thuật thể hiện sự tổng hợp kiến thức và kỹ năng. Đối với ngành công nghiệp game, đây là minh chứng cho thấy tầm quan trọng của việc có một bản thiết kế vững chắc trước khi viết những dòng code đầu tiên. Nó giúp giảm thiểu rủi ro, dễ dàng bảo trì và mở rộng sản phẩm.

6.2. Hướng phát triển và cải tiến cho hệ thống trong tương lai

Hệ thống game được thiết kế có thể được mở rộng theo nhiều hướng. Về gameplay, có thể thêm các lớp nhân vật mới, hệ thống kỹ năng phức tạp hơn, hay các chế độ chơi PvP (Player vs. Player). Về kỹ thuật, có thể nghiên cứu áp dụng các mẫu thiết kế (Design Patterns) để tối ưu cấu trúc code, xây dựng một API mạnh mẽ để quản lý dữ liệu người chơi, và triển khai hệ thống trên nền tảng đám mây để đảm bảo tính sẵn sàng và khả năng mở rộng. Việc áp dụng các kỹ thuật mới trong phát triển game chiến thuật Unity sẽ là bước đi tiếp theo đầy hứa hẹn.

10/07/2025
Đồ án nhóm phân tích thiết kế hướng đối tượng đề tài phân tích thiết kế hệ thống game trò chơi