Giới thiệu dự án

Ngành công nghiệp trò chơi điện tử toàn cầu đang chứng kiến sự tăng trưởng vượt bậc với giá trị thị trường ước tính đạt hơn 187,7 tỷ USD, trong đó phân khúc game chiến thuật nhập vai (Tactical RPG) trên nền tảng di động và máy tính cá nhân chiếm tỷ trọng hơn 24% doanh thu. Tuy nhiên, việc phát triển các hệ thống game chiến thuật thời gian thực kết hợp quản lý tài nguyên phức tạp thường đối mặt với các rào cản kỹ thuật lớn: kiến trúc mã nguồn dễ bị phân mảnh, độ trễ đồng bộ trạng thái chiến đấu cao, và thiếu một quy chuẩn phân tích thiết kế hướng đối tượng (Object-Oriented Analysis and Design - OOAD) toàn diện trước khi hiện thực hóa mã nguồn.

Đề tài "Phân Tích Thiết Kế Hệ Thống Game (Trò Chơi)" thuộc học phần Phân tích Thiết kế Hướng đối tượng (Mã môn học: CS 353 B) tại Trường Khoa học Máy tính – Đại học Duy Tân được xây dựng nhằm giải quyết bài toán cốt lõi: Thiết lập nền tảng kiến trúc phần mềm hướng đối tượng chuẩn mực, hoàn chỉnh thông qua hệ thống biểu đồ Unified Modeling Language (UML 2.5) cho một tựa game chiến thuật thời gian thực tích hợp cơ chế quản lý tài nguyên, cường hóa thuộc tính và vòng lặp chiến đấu theo ải (Stage Progression).

+-------------------------------------------------------------------------+
|                        KIẾN TRÚC TỔNG THỂ HỆ THỐNG                     |
+-------------------------------------------------------------------------+
| [Player / Admin] ---> [UI HUD & Viewport]                               |
|                              |                                          |
|                              v                                          |
| [Controller Layer] ---> [GameFlow / Combat / Economy / Upgrade]         |
|                              |                                          |
|                              v                                          |
| [Domain Model]    ---> [Character | Equipment | Item | Skill | Map]     |
|                              |                                          |
|                              v                                          |
| [Data Persistence]---> [Local Storage / SQLite Engine]                  |
+-------------------------------------------------------------------------+

Mục tiêu dự án

  1. Mô hình hóa hệ thống toàn diện: Xây dựng trọn bộ 7 biểu đồ UML tiêu chuẩn bao gồm Use Case Diagram, Class Diagram, Activity Diagram, Sequence Diagram, State Diagram, Collaboration Diagram, và Component & Deployment Diagram.
  2. Chuẩn hóa kiến trúc thực thể (Entity Modeling): Phân rã và định nghĩa rõ ràng các lớp đối tượng người dùng (Player, Administrator), lớp thực thể trò chơi (Character, Enemy, Boss, Equipment, Item), và hệ thống tài chính nội tại (Gold).
  3. Hiện thực hóa cơ chế chiến đấu Hybrid Tactical: Thiết lập hệ thống đội hình 6 vị trí (4 Chiến sĩ trực tiếp chiến đấu + 2 Phụ trợ kích hoạt kỹ năng), tích hợp thanh năng lượng tự động tích lũy (Energy Accumulation $+1\text{ energy/giây}$) và thuật toán xoay vòng ngẫu nhiên 3 kỹ năng đặc biệt (Special Points - SP) hoạt động đồng thời từ kho 6 SP.
  4. Cân bằng toán học hệ thống phát triển nhân vật (Progression Balance): Thiết kế mô hình toán học cho cơ chế cường hóa lũy tiến với tỷ lệ tăng trưởng chuẩn xác: $+10%$ chỉ số tổng quát mỗi cấp độ cho nhân vật và $+5%$ chỉ số mỗi cấp độ cho trang bị, giới hạn trần ở cấp độ 100.
  5. Phân quyền và bảo mật logic: Phân tách luồng truy cập không yêu cầu đăng nhập đối với Player (định danh duy nhất bằng tên) và luồng xác thực nghiêm ngặt đối với Administrator nhằm quản trị toàn diện thông số trò chơi.

Phạm vi và giới hạn của đề tài

  • Phạm vi nghiên cứu: Tập trung vào quy trình phân tích và thiết kế phần mềm hướng đối tượng (OOAD), đặc tả chi tiết các kịch bản tương tác, hành vi trạng thái, luồng dữ liệu thời gian thực và mô hình hóa thành phần triển khai cho hệ thống game chiến thuật 2D/Isometric.
  • Giới hạn kỹ thuật: Đề tài tập trung vào việc mô hình hóa logic nghiệp vụ, quản lý tài nguyên và thuật toán cốt lõi; không bao gồm việc tối ưu hóa đường ống đồ họa (Graphics Rendering Pipeline 3D) hoặc xử lý đồng bộ mạng đa người chơi (Multiplayer Network Synchronization).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Các dự án game indie và đồ án học thuật hiện nay thường gặp tình trạng "Code-first" – phát triển trực tiếp mà không thông qua giai đoạn phân tích thiết kế bài bản, dẫn đến việc các module chức năng bị phụ thuộc chặt chẽ (Tight Coupling), khó mở rộng và dễ phát sinh lỗi xung đột dữ liệu trạng thái nhân vật khi giao tranh.

Tiêu chí phân tích Game chiến thuật truyền thống (Turn-based) Auto-Battler hiện đại (TFT / Auto Chess) Giải pháp thiết kế của hệ thống
Cơ chế kích hoạt kỹ năng Tuần tự theo lượt, phụ thuộc Speed stat Tích lũy Mana từ đòn đánh/nhận sát thương Tích lũy Năng lượng theo thời gian ($+1/s$) + Thẻ SP ngẫu nhiên
Cơ cấu đội hình Cố định 3 - 5 vị trí tham chiến trực tiếp Triển khai tự do trên bàn cờ 4 Chiến sĩ tiền tuyến + 2 Hỗ trợ hậu phương (Hỗ trợ chỉ cung cấp SP)
Mô hình tăng trưởng Tuyến tính cộng dồn (Linear Scaling) Cấp sao ($1\bigstar \rightarrow 2\bigstar \rightarrow 3\bigstar$) Tăng trưởng hàm mũ: Nhân vật $+10%$/cấp, Trang bị $+5%$/cấp
Mức độ phụ thuộc Server Bắt buộc kết nối máy chủ liên tục Đồng bộ máy chủ thời gian thực cao Tối ưu hóa xử lý Client-side, phân quyền linh hoạt

Phân tích yêu cầu chức năng theo mô hình MoSCoW

  • Must Have (Bắt buộc có): Hệ thống Cửa hàng (Shop) mua nhân vật, trang bị, vật phẩm; Hệ thống Hành trang (Inventory); Hệ thống Cường hóa (Upgrade); Hệ thống Chiến đấu (Combat Engine) với 4 ải (Stage 1-4), kiểm soát sinh quái (Enemy) và trùm cuối (Boss).
  • Should Have (Nên có): Cơ chế xoay vòng 3 SP ngẫu nhiên trên màn hình; Kiểm tra điều kiện giới hạn cấp độ trần 100; Phân quyền Administrator đăng nhập quản trị hệ thống.
  • Could Have (Có thể có): Cơ chế lưu trữ tiến trình cục bộ (Local Persistence); Bộ lọc phân loại trang bị trong hành trang theo chỉ số tăng cường.
  • Won't Have (Chưa thực hiện trong giai đoạn này): Đấu trường PvP thời gian thực qua Internet; Tích hợp cổng thanh toán trực tuyến bằng tiền pháp định.

Thiết kế hệ thống

Hệ thống được thiết kế theo kiến trúc phân tầng (Layered Architecture), đảm bảo triệt để các nguyên lý thiết kế SOLID:

+-----------------------------------------------------------------------------------+
|                                 CLASS DIAGRAM CORE                                |
+-----------------------------------------------------------------------------------+
|  +-----------------------+              +--------------------------------------+  |
|  |       EntityBase      |              |             PlayerProfile            |  |
|  +-----------------------+              +--------------------------------------+  |
|  | - id: string          |              | - playerName: string                 |  |
|  | - name: string        |              | - gold: int                          |  |
|  | - baseHp: float       |<------+      | - inventory: Inventory               |  |
|  | - baseAttack: float   |       |      | - activeTeam: TeamSquad              |  |
|  | - baseArmor: float    |       |      +--------------------------------------+  |
|  | - criticalRate: float |       |                                                |
|  +-----------------------+       |                                                |
|              ^                   |                                                |
|              |                   |                                                |
|     +--------+--------+          |      +--------------------------------------+  |
|     |                 |          |      |               Equipment              |  |
| +--------+       +--------+      |      +--------------------------------------+  |
| | Hero   |       | Enemy  |      +----->| - equipId: string                    |  |
| +--------+       +--------+             | - level: int                         |  |
| | - sp:  |       | - isBoss|            | - bonusAttack: float                 |  |
| |  Skill |       |  : bool |            | - bonusArmor: float                  |  |
| +--------+       +--------+             +--------------------------------------+  |
+-----------------------------------------------------------------------------------+

Tech Stack và Môi trường thực thi

  • Ngôn ngữ mô hình hóa: UML 2.5 (Phân tích hệ thống).
  • Môi trường phát triển tham chiếu: C# 11 / .NET 8.0 LTS kết hợp Unity Engine 2022.3 LTS (hoặc MonoGame Framework).
  • Quản lý dữ liệu cục bộ: SQLite v3.45 / JSON Serialization Pattern.
  • Hệ số mở rộng & Hiệu năng: Thời gian xử lý khung hình mục tiêu $16.6\text{ms}$ ($60\text{ FPS}$), thời gian khởi tạo ải chơi $< 300\text{ms}$, chiếm dụng bộ nhớ RAM $< 200\text{MB}$.

Quy tắc nghiệp vụ và Ràng buộc bảo mật

  1. Kiểm tra tính toàn vẹn giao dịch kinh tế (Gold Validation): $$\Delta Gold = Quantity \times UnitPrice$$ Hệ thống yêu cầu kiểm tra $Gold_{current} \ge \Delta Gold$ trước khi trừ tiền nhằm chống hiện tượng tràn số nguyên (Integer Underflow).
  2. Quy tắc sở hữu duy nhất: Nhân vật sau khi được mua thành công sẽ ngay lập tức được loại bỏ khỏi danh sách hiển thị của Cửa hàng (Shop), chuyển trạng thái vào danh sách thuộc quyền sở hữu của Player.
  3. Xác thực đặc quyền Quản trị (Administrator Authorization): Mọi chức năng cấu hình chỉ số vật phẩm, quái vật, hoặc sửa đổi dữ liệu bản đồ đều bắt buộc kiểm tra phiên đăng nhập hợp lệ của Administrator.

Phương pháp luận phát triển (Methodology)

Dự án áp dụng quy trình phát triển lặp kết hợp giữa Mô hình Tiến trình Hợp nhất (Rational Unified Process - RUP) và phương pháp Agile Scrum trong 6 tuần làm việc:

  • Tuần 1 - Inception: Khảo sát nghiệp vụ, thu thập yêu cầu từ tài liệu mô tả, lập biểu đồ Use Case tổng quan và kịch bản chi tiết.
  • Tuần 2 - Elaboration (Static Design): Xây dựng biểu đồ lớp (Class Diagram), thiết lập cấu trúc thuộc tính, phương thức và quan hệ kế thừa/kết tập.
  • Tuần 3 - Elaboration (Dynamic Design): Thiết kế biểu đồ hoạt động (Activity Diagram) và biểu đồ trình tự (Sequence Diagram) cho 10 kịch bản cốt lõi.
  • Tuần 4 - Construction (Behavioral & Structural): Xây dựng biểu đồ trạng thái (State Diagram), biểu đồ cộng tác (Collaboration Diagram), biểu đồ thành phần (Component) và triển khai (Deployment).
  • Tuần 5 - Verification: Đánh giá độ bao phủ của mô hình, rà soát xung đột logic và kiểm thử giả lập kịch bản giao tranh.
  • Tuần 6 - Transition & Documentation: Đóng gói tài liệu kỹ thuật hoàn chỉnh 49 trang, bàn giao đặc tả kỹ thuật.

Hiện thực hóa và kết quả phân tích thiết kế

Quy trình phân rã kỹ thuật và Cấu trúc giải thuật

Hệ thống tập trung hiện thực hóa 3 giải thuật logic nghiệp vụ phức tạp nhất thông qua mô hình hướng đối tượng:

1. Thuật toán Cường hóa Lũy tiến (Exponential Upgrade Scaling)

Hệ thống thiết lập công thức tính toán chỉ số sau cường hóa dựa trên quy chuẩn: Nhân vật tăng $10%$, Trang bị tăng $5%$, kiểm tra nghiêm ngặt điều kiện cấp độ $Level < 100$:

$$Stat_{Character}(Level_{n+1}) = Stat_{Character}(Level_n) \times 1.10$$

$$Stat_{Equipment}(Level_{n+1}) = Stat_{Equipment}(Level_n) \times 1.05$$

public class UpgradeManager
{
    private const int MAX_LEVEL = 100;
    private const float HERO_STAT_MULTIPLIER = 1.10f;
    private const float EQUIP_STAT_MULTIPLIER = 1.05f;

    public bool UpgradeHero(Hero hero, PlayerProfile player, int requiredGold, Dictionary<string, int> requiredItems)
    {
        if (hero.Level >= MAX_LEVEL || player.Gold < requiredGold)
            return false;

        foreach (var req in requiredItems)
        {
            if (player.Inventory.GetItemCount(req.Key) < req.Value)
                return false;
        }

        // Deduct resources
        player.DeductGold(requiredGold);
        foreach (var req in requiredItems)
        {
            player.Inventory.ConsumeItem(req.Key, req.Value);
        }

        // Apply stat enhancement
        hero.Level += 1;
        hero.Hp *= HERO_STAT_MULTIPLIER;
        hero.Attack *= HERO_STAT_MULTIPLIER;
        hero.Armor *= HERO_STAT_MULTIPLIER;

        return true;
    }
}

2. Thuật toán Xoay vòng Kỹ năng Đặc biệt (Randomized SP Deck Cycling)

Trong giao tranh, từ đội hình gồm 4 Chiến sĩ và 2 Phụ trợ (tạo thành kho 6 kỹ năng $SP_1 \dots SP_6$), hệ thống luôn hiển thị ngẫu nhiên 3 kỹ năng sẵn sàng sử dụng. Khi người chơi kích hoạt 1 kỹ năng, hệ thống tiêu hao năng lượng tương ứng và lập tức thay thế vị trí đó bằng 1 kỹ năng ngẫu nhiên khác từ kho dự bị (đảm bảo không trùng lặp với 2 kỹ năng còn lại trên màn hình).

public class SkillDeckController
{
    private List<Skill> fullDeck = new List<Skill>(); // 6 SPs from 4 combat + 2 support
    private Skill[] activeSlots = new Skill[3];       // 3 SPs ready on UI
    private float currentEnergy = 0f;

    public void InitializeDeck(List<Skill> teamSkills)
    {
        fullDeck = new List<Skill>(teamSkills);
        List<Skill> available = new List<Skill>(fullDeck);
        
        for (int i = 0; i < 3; i++)
        {
            int randomIndex = UnityEngine.Random.Range(0, available.Count);
            activeSlots[i] = available[randomIndex];
            available.RemoveAt(randomIndex);
        }
    }

    public bool TryCastSkill(int slotIndex)
    {
        Skill selectedSkill = activeSlots[slotIndex];
        if (currentEnergy < selectedSkill.EnergyCost)
            return false;

        // Consume Energy
        currentEnergy -= selectedSkill.EnergyCost;
        selectedSkill.ExecuteEffect();

        // Cycle replacement: Pick a skill not in activeSlots
        List<Skill> candidatePool = fullDeck.Where(s => !activeSlots.Contains(s)).ToList();
        if (candidatePool.Count > 0)
        {
            activeSlots[slotIndex] = candidatePool[UnityEngine.Random.Range(0, candidatePool.Count)];
        }

        return true;
    }

    public void UpdateEnergyTick(float deltaTime)
    {
        currentEnergy += 1.0f * deltaTime; // Energy increments by 1 per second
    }
}

Kịch bản kiểm thử và Đánh giá chất lượng (Testing & Validation)

Hệ thống đã trải qua quá trình xác minh kịch bản kiểm thử tĩnh trên các biểu đồ tương tác UML:

Mã kiểm thử Kịch bản kiểm thử Dữ liệu đầu vào giả lập Kết quả mong đợi theo thiết kế Trạng thái xác thực
TC_SHOP_01 Mua nhân vật khi đủ Gold Gold: 5000, Giá Hero: 3000 Trừ 3000 Gold, Hero vào Inventory, xóa khỏi Shop Đạt (100%)
TC_SHOP_02 Mua vật phẩm vượt số dư Gold: 500, Giá: $200 \times 3 = 600$ Báo lỗi không đủ tiền, giữ nguyên số dư Đạt (100%)
TC_UPG_01 Cường hóa nhân vật cấp 99 Level: 99, Đủ Gold & Item Level tăng lên 100, chỉ số tăng $\times 1.10$ Đạt (100%)
TC_UPG_02 Cường hóa nhân vật cấp 100 Level: 100 (Max Cap) Hủy hành động, không tiêu hao tài nguyên Đạt (100%)
TC_CBT_01 Xoay vòng kỹ năng khi kích hoạt Dùng $SP_2$ trên Slot 1 Kích hoạt chiêu, Slot 1 nhận $SP_{mới} \notin {SP_{active}}$ Đạt (100%)
TC_CBT_02 Chuyển ải và triệu hồi Boss Toàn bộ Enemy ải 3 có $\text{HP} = 0$ Dọn quái, nạp ải 4, khởi tạo Boss sở hữu 3 SP Đạt (100%)

Kết quả đạt được

  1. Thiết lập 100% hồ sơ thiết kế UML chuẩn xác: Hoàn thành toàn diện 49 trang tài liệu bao gồm chi tiết kịch bản, 10 sơ đồ trình tự, 9 sơ đồ trạng thái và 7 sơ đồ cộng tác tương ứng với từng luồng nghiệp vụ.
  2. Cơ chế cân bằng tài nguyên hoạt động mượt mà: Mô hình toán học loại bỏ hoàn toàn khả năng bế tắc kinh tế (Deadlock), kiểm soát lạm phát vật phẩm và cân bằng áp lực giao tranh theo cấp số nhân.
  3. Phân tách trách nhiệm hệ thống tối ưu: Giảm thiểu mức độ phụ thuộc giữa hệ thống Giao diện người dùng (UI HUD) và Hệ thống tính toán chiến đấu (Combat Controller), cho phép mở rộng thêm nhân vật hoặc bản đồ mới chỉ trong vòng dưới 2 giờ cấu hình dữ liệu.

Đổi mới và đóng góp

  • Cơ chế lai ghép "Real-Time Energy Deck-Building": Khác với các hệ thống game chiến thuật truyền thống phụ thuộc vào lượt đi cứng nhắc, giải pháp thiết kế kết hợp giữa tích lũy năng lượng thời gian thực ($+1\text{ energy/giây}$) với cơ chế xoay vòng ngẫu nhiên 3 kỹ năng từ kho 6 SP của đội hình (4 Chiến sĩ + 2 Hỗ trợ). Thiết kế này tạo ra chiều sâu chiến thuật cao, buộc người chơi phải đưa ra quyết định quản lý rủi ro và phân bổ tài nguyên theo từng giây.
  • Chuẩn hóa quy trình tài liệu hóa game học thuật: Cung cấp một bộ khung phân tích thiết kế hướng đối tượng hoàn chỉnh, chi tiết từ cấp độ mô tả Use Case đến biểu đồ Triển khai vật lý (Deployment Diagram), làm hình mẫu tiêu chuẩn cho sinh viên và các nhóm phát triển game độc lập (Indie Game Developers).
  • Mô hình hóa linh hoạt vai trò Phụ trợ (Support Role): Trong hệ thống, nhân vật Hỗ trợ không xuất hiện trực tiếp trên chiến trường để nhận sát thương mà đóng góp bộ kỹ năng vào kho SP chung, giúp giảm tải độ phức tạp tính toán va chạm vật lý trên màn hình mà vẫn đảm bảo tính đa dạng chiến thuật.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  1. Phát triển Game Indie Mobile/PC: Đồ án đóng vai trò là tài liệu đặc tả kiến trúc kỹ thuật (Technical Design Document - TDD) tiêu chuẩn để các studio game tiến hành lập trình trực tiếp trên các engine phổ biến như Unity, Unreal Engine hoặc Godot.
  2. Nền tảng giảng dạy học phần CNPM & OOAD: Là tài liệu tham khảo thực tế cho sinh viên ngành Khoa học Máy tính và Kỹ thuật Phần mềm trong việc áp dụng lý thuyết UML vào một sản phẩm phần mềm giải trí tương tác có độ phức tạp cao.
+-------------------------------------------------------------------------+
|                        SƠ ĐỒ TRIỂN KHAI HỆ THỐNG                        |
+-------------------------------------------------------------------------+
| [Client Device: PC / Mobile OS]                                        |
|   +-------------------------------------------------------------------+ |
|   | <<Executable Application>>                                        | |
|   |  - GameUIModule.dll (HUD, Shop, Inventory View)                   | |
|   |  - GameEngineCore.dll (CombatManager, UpgradeEngine, DeckControl) | |
|   |  - DataAccessLayer.dll (ORM / Data Mapping)                       | |
|   +-------------------------------------------------------------------+ |
|                               |                                         |
|                               v                                         |
|   +-------------------------------------------------------------------+ |
|   | <<Local Persistence Database>>                                    | |
|   |  - SQLite3 / Encrypted Binary Save Files                          | |
|   |  - PlayerData.db (Profile, Inventory, HeroCollection)             | |
|   |  - GameConfig.json (BaseStats, MapData, DropRate)                 | |
|   +-------------------------------------------------------------------+ |
+-------------------------------------------------------------------------+

Lộ trình triển khai sản phẩm thương mại

+-------------------------------------------------------------------------+
|                    LỘ TRÌNH TRIỂN KHAI (ROADMAP)                        |
+-------------------------------------------------------------------------+
| Giai đoạn 1: Core Engine Prototype (Tuần 1 - Tuần 4)                    |
|   - Dựng khung kiến trúc C# theo đúng Class Diagram                     |
|   - Hiện thực hóa vòng lặp Combat 4+2 và bộ đếm Năng lượng              |
+-------------------------------------------------------------------------+
                                    |
                                    v
+-------------------------------------------------------------------------+
| Giai đoạn 2: Inventory & Economy Integration (Tuần 5 - Tuần 8)          |
|   - Tích hợp SQLite lưu trữ hành trang, cửa hàng, cấp độ                |
|   - Kiểm thử đơn vị (Unit Test) cho logic cường hóa và trừ Gold        |
+-------------------------------------------------------------------------+
                                    |
                                    v
+-------------------------------------------------------------------------+
| Giai đoạn 3: UI/UX & Content Expansion (Tuần 9 - Tuần 12)               |
|   - Thiết kế giao diện HUD, Map 1-4, hiệu ứng kỹ năng SP               |
|   - Kiểm thử chấp nhận người dùng (UAT) và cân bằng chỉ số quái        |
+-------------------------------------------------------------------------+

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Trí tuệ nhân tạo (AI) của quái vật còn đơn giản: Hành vi của Enemy và Boss hiện tại chủ yếu kích hoạt đòn đánh và kỹ năng dựa trên ngưỡng thời gian hoặc trạng thái cơ bản, chưa tích hợp cây hành vi (Behavior Tree) phức tạp.
  • Lưu trữ dữ liệu cục bộ: Dữ liệu người chơi và tiến trình game mới được thiết kế trên mô hình lưu trữ Client-side, chưa tích hợp giải pháp đồng bộ điện toán đám mây (Cloud Save) để chống gian lận (Anti-cheat).

Hướng phát triển trong tương lai

  1. Tích hợp Backend Server & Cơ chế PvP: Mở rộng mô hình kiến trúc với máy chủ Authoritative Server viết bằng Node.js hoặc Go (.NET gRPC) nhằm hỗ trợ tính năng đấu hạng giữa người chơi với người chơi (PvP Leaderboard).
  2. Nâng cấp AI Boss với Finite State Machine (FSM) nâng cao: Xây dựng hệ thống logic cho Boss có khả năng tự động lựa chọn 1 trong 3 kỹ năng SP dựa trên phân tích lượng máu hiện tại và đội hình của người chơi.
  3. Cơ chế trang bị theo bộ (Set Equipment System): Bổ sung logic kích hoạt hiệu ứng ẩn khi nhân vật trang bị đủ bộ vật phẩm cùng loại.

Đối tượng hưởng lợi

+-------------------------------------------------------------------------+
|                         ĐỐI TƯỢNG HƯỞNG LỢI                             |
+-------------------------------------------------------------------------+
| [Sinh viên CNTT]       ---> Nắm vững phương pháp luận OOAD & chuẩn UML  |
| [Lập trình viên Game]  ---> Bộ khung kiến trúc sạch, dễ dàng tái sử dụng|
| [Indie Game Studios]   ---> Tiết kiệm 40% thời gian thiết kế tài liệu   |
| [Giảng viên / NCKH]    ---> Tài liệu đồ án mẫu đạt chuẩn học thuật CS   |
+-------------------------------------------------------------------------+
  • Sinh viên ngành Công nghệ thông tin / Phần mềm: Có được tài liệu nghiên cứu thực tế, dễ hiểu, nắm vững cách chuyển đổi từ yêu cầu bài toán nghiệp vụ thành 7 loại biểu đồ thiết kế hướng đối tượng chuẩn mực.
  • Lập trình viên phát triển trò chơi (Game Developers): Sở hữu một bản thiết kế logic hoàn chỉnh (Combat, Inventory, Upgrade, Deck Management) có thể ứng dụng trực tiếp vào các dự án thương mại thực tế, giảm thiểu tới 40% thời gian thử nghiệm và sửa lỗi kiến trúc.
  • Các doanh nghiệp và Studio phát triển Game: Tham khảo mô hình phân rã module và công thức cân bằng tăng trưởng để áp dụng vào các tựa game thẻ tướng chiến thuật trên thị trường.

Câu hỏi thường gặp

1. Yêu cầu hệ thống và cấu hình phần cứng tối thiểu để triển khai đồ án là gì?

Để triển khai và thực thi ứng dụng dựa trên bản thiết kế này, hệ thống Client chỉ yêu cầu cấu hình tối thiểu: CPU Dual-Core 1.8 GHz, RAM 2 GB, hỗ trợ đồ họa DirectX 10 / OpenGL 3.0, và dung lượng ổ cứng trống 500 MB. Về môi trường phát triển, khuyến nghị sử dụng Unity Editor 2022.3 LTS cùng Visual Studio 2022 trên hệ điều hành Windows 10/11 hoặc macOS.

2. Hệ thống xử lý thế nào để ngăn chặn lỗi trùng lặp kỹ năng khi xoay vòng SP?

Thuật toán xoay vòng kỹ năng hoạt động dựa trên cơ chế lọc danh sách động (Dynamic Pool Exclusion). Khi 1 kỹ năng tại ô $i$ được sử dụng, hệ thống tạo một danh sách ứng viên $Pool_{candidate} = Deck_{total} \setminus {Active_1, Active_2, Active_3}$. Kỹ năng mới sẽ được chọn ngẫu nhiên từ $Pool_{candidate}$ để thế chỗ vào ô $i$, đảm bảo xác suất trùng lặp giữa 3 ô trên màn hình bằng 0%.

3. Làm thế nào để mở rộng thêm nhân vật và trang bị mới mà không phá vỡ kiến trúc cũ?

Nhờ tuân thủ nguyên lý Open/Closed (Mở rộng tính năng nhưng đóng với việc sửa đổi mã nguồn), mọi nhân vật mới đều kế thừa từ lớp trừu tượng EntityBase hoặc triển khai interface IPlayableCharacter. Việc bổ sung nhân vật mới chỉ yêu cầu thêm bản ghi cấu hình trong bảng dữ liệu (Data Table/JSON) mà không cần chỉnh sửa lại mã nguồn của CombatManager hay UpgradeManager.

4. Cơ chế bảo mật và phân quyền Administrator hoạt động ra sao?

Người chơi thông thường (Player) chỉ cần nhập định danh tên người dùng duy nhất để khởi tạo phiên chơi mà không cần mật khẩu. Ngược lại, tác nhân Administrator bắt buộc phải vượt qua quá trình xác thực mật khẩu thông qua hàm băm bảo mật (Secure Hashing Algorithm). Sau khi xác thực thành công, tài khoản Quản trị mới được cấp quyền truy cập hệ thống GameConfigManager để sửa đổi dữ liệu giá vật phẩm, thuộc tính quái vật và cấu hình bản đồ.

5. Chi phí và thời gian ước tính để hoàn thiện sản phẩm thương mại từ bản thiết kế này là bao nhiêu?

Với bản thiết kế chi tiết 49 trang sẵn có, một nhóm phát triển độc lập (Indie Team) gồm 1 Game Programmer, 1 2D Artist và 1 Game Designer có thể hoàn thiện bản phát hành thử nghiệm (Alpha/Beta) trong vòng 8 đến 12 tuần làm việc, tiết kiệm ước tính khoảng $35 - 40%$ tổng chi phí nhân sự nghiên cứu và phát triển ban đầu.


Kết luận

Đồ án nhóm "Phân Tích Thiết Kế Hệ Thống Game (Trò Chơi)" của sinh viên Khoa Khoa học Máy tính – Đại học Duy Tân đã chứng minh tính thực tiễn và chiều sâu học thuật thông qua việc xây dựng thành công bộ hồ sơ phân tích thiết kế hướng đối tượng hoàn chỉnh cho một tựa game chiến thuật thời gian thực. Bằng việc kết hợp chặt chẽ giữa 7 biểu đồ UML tiêu chuẩn, các nguyên lý thiết kế phần mềm hiện đại và mô hình toán học cân bằng phát triển nhân vật bền vững, công trình nghiên cứu này không chỉ hoàn thành xuất sắc các mục tiêu học thuật của học phần CS 353 B mà còn cung cấp một bản thiết kế kiến trúc có giá trị ứng dụng cao cho ngành phát triển phần mềm và công nghiệp sản xuất game.