Giới thiệu dự án

Bối cảnh và vấn đề thực tiễn

Ngành công nghiệp phát triển trò chơi điện tử toàn cầu đạt quy mô doanh thu vượt 184 tỷ USD, trong đó phân khúc game chiến thuật (Strategy) và thủ thành (Tower Defense) chiếm thị phần người chơi trung thành lớn nhờ tính thử thách tư duy cao. Tuy nhiên, phần lớn các tựa game thủ thành truyền thống trên thị trường (tiêu biểu như The Battle Cats hay Kingdom Rush) tập trung chủ yếu vào chế độ chơi đơn (Single-player Offline). Việc thiếu hụt tính năng tương tác đa người chơi thời gian thực (Real-time Multiplayer) đã làm giảm đáng kể tính cạnh tranh và vòng đời sản phẩm (Player Retention Rate).

Tuyên bố bài toán (Problem Statement)

Phát triển một tựa game chiến thuật thủ thành kết hợp đối kháng trực tuyến 2 người chơi (1v1 Online Multiplayer) đặt ra các thách thức kỹ thuật cốt lõi:

  • Độ trễ và đồng bộ dữ liệu mạng: Đồng bộ hóa hàng trăm thực thể (entities) di chuyển, va chạm và thi triển kỹ năng theo thời gian thực giữa hai máy khách (clients) mà không phụ thuộc vào hạ tầng Dedicated Server đắt đỏ.
  • Hành vi thực thể (AI Entity Behaviors): Quản lý trạng thái phức tạp (di chuyển, tấn công, chịu đòn ngã, tử trận) của nhiều đơn vị lính đồng thời mà vẫn tối ưu hóa hiệu năng CPU.
  • Tối ưu hóa đạn đạo quy mô lớn (Danmaku Projectiles): Xử lý hàng nghìn viên đạn vật lý trên màn hình cùng lúc mà không gây sụt giảm tốc độ khung hình (FPS Drop).
  • Cân bằng kinh tế trong game (Game Economy & Balance): Xây dựng mô hình dữ liệu linh hoạt, cho phép cấu hình chỉ số nhân vật, kỹ năng và tài nguyên phân cấp dễ dàng mở rộng.

Mục tiêu dự án

  1. Thiết kế và lập trình hoàn chỉnh gameplay: Xây dựng cơ chế thủ thành thời gian thực The Battle Dogs trên nền tảng Godot Engine.
  2. Triển khai kiến trúc AI bằng Finite State Machine (FSM): Kiểm soát chu trình sống và trạng thái tương tác của toàn bộ hệ thống lính phe Chó và phe Mèo.
  3. Hiện thực hóa chế độ chơi trực tuyến 2 người (P2P Multiplayer): Tích hợp giải pháp mạng ngang hàng thông qua Steamworks SDK và module GodotSteam.
  4. Tối ưu hóa hiệu năng render và đạn đạo: Ứng dụng plugin Godot Native Bullets xử lý hệ thống đạn Danmaku ở mức native C++.
  5. Xây dựng hệ thống lưu trữ và quản lý phi tập trung: Kết nối Backend-as-a-Service (BaaS) SilentWolf để quản lý tài khoản, bảng xếp hạng và trạng thái màn chơi.

Hướng tiếp cận giải pháp

Đồ án lựa chọn engine mã nguồn mở Godot Engine kết hợp ngôn ngữ GDScript chuyên dụng, giải quyết bài toán kiến trúc thông qua mô hình hướng dữ liệu (Data-driven Architecture) với định dạng JSON, phân tách hoàn toàn giữa Game Logic và Game Data. Cơ chế mạng sử dụng mô hình kết nối P2P qua Steamworks API, loại bỏ chi phí vận hành máy chủ trung gian trong khi vẫn đảm bảo tính năng Matchmaking, Room Lobby và Voice/Text Chat.

Kết quả kỳ vọng và chỉ số đo lường

  • Hiệu năng Render: Đạt tốc độ khung hình ổn định 60 FPS với hơn 300 thực thể và 1.000 viên đạn cùng xuất hiện trên màn hình.
  • Tải bộ nhớ: Mức tiêu thụ RAM không vượt quá 250 MB trên các hệ thống PC cấu hình phổ thông.
  • Độ trễ truyền nhận P2P: Độ trễ điều khiển và đồng bộ gói tin mạng duy trì ở mức < 60 ms trong môi trường mạng nội địa.
  • Độ phủ chức năng: Hoàn thiện 100% chu trình chơi đơn (Single-player Campaign), nâng cấp căn cứ (Base Upgrades), cửa hàng (Shop System) và thi đấu Online 1v1.

Phạm vi và giới hạn

  • Nền tảng mục tiêu: Hệ điều hành Windows và Linux (hỗ trợ phân phối qua Steam client).
  • Phạm vi đồ họa: Toàn bộ Sprite 2D, Animation và UI được vẽ tay và tối ưu hóa bằng Blender Grease Pencil, Krita và TexturePacker.
  • Giới hạn: Đồ án không tập trung vào chế độ nhiều người chơi quy mô lớn (>2 người/phòng) và chưa triển khai Dedicated Server có tính năng Rollback Netcode phức tạp.

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

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

So sánh giải pháp hiện hữu trên thị trường

Tiêu chí The Battle Cats Bloons TD 6 Kingdom Rush The Battle Dogs (Đồ án)
Thể loại chính Line Tower Defense (2D) Grid Tower Defense (3D) Path Tower Defense (2D) Line TD + Danmaku + PvP
Cơ chế Multiplayer Không (Chủ yếu Single) Co-op 4 người (Dedicated) Không 1v1 Real-time P2P (Steamworks)
Xử lý đạn đạo Cơ bản (Point-to-Point) Tốt (Vật lý đa tia) Đơn mục tiêu / AoE Godot Native Bullets (Danmaku C++)
Chi phí máy chủ Rất cao Cao Không 0 USD (Tận dụng Steam P2P & BaaS)
Cấu hình dữ liệu Đóng gói nhị phân Đóng gói nhị phân Cố định mã nguồn JSON Data-driven modular

Yêu cầu hệ thống theo mô hình MoSCoW

  • Must Have:
    • Hệ thống chiến đấu đơn người chơi (Battle System) với cơ chế tháp chính, thanh tiền tệ tích lũy theo thời gian ($money_rate$).
    • Hệ thống AI nhân vật điều khiển bằng Finite State Machine (FSM).
    • Hệ thống tạo phòng, tìm phòng và đồng bộ P2P thông qua GodotSteam.
    • Cấu hình chỉ số trận đấu, quái vật, boss qua tệp JSON độc lập.
  • Should Have:
    • Hệ thống đạn đạo Danmaku diện rộng cho các boss và unit bay đặc biệt.
    • Hệ thống nâng cấp kỹ năng chủ động (Active Skills) và thuộc tính nội tại (Passives).
    • Tích hợp SilentWolf để xác thực tài khoản và lưu trữ Leaderboard.
  • Could Have:
    • Kỹ năng tối thượng đặc biệt (Bom nguyên tử tiêu diệt toàn bản đồ, triệu hồi Chó Titan).
    • Bản đồ phân nhánh đa chương (Chapter/Level Progression).
  • Won't Have (Giai đoạn này):
    • Hệ thống microtransaction thanh toán tiền thật.
    • Chế độ Co-op 2v2 hoặc Battle Royale.

Thiết kế hệ thống

Kiến trúc tổng thể hệ thống

graph TD
    subgraph Client Application [Godot Engine Client]
        UI[UI Layer: Menu, HUD, Lobby]
        FSM[Character FSM: 5 States]
        CombatCore[Battle Controller & Spawn Engine]
        BulletSys[Godot Native Bullets C++ Plugin]
        DataLoader[JSON Data Parser & Config Manager]
    end

    subgraph Network Layer [Communication & Storage]
        GodotSteam[GodotSteam Module]
        SteamAPI[Steamworks P2P Network]
        SilentWolfSDK[SilentWolf BaaS API]
    end

    subgraph Remote Services [Cloud Infrastructure]
        SteamCloud[Steam Matchmaking & Lobby Service]
        SWServer[SilentWolf Database & Leaderboard Server]
    end

    UI --> CombatCore
    CombatCore --> FSM
    CombatCore --> BulletSys
    DataLoader --> CombatCore
    CombatCore --> GodotSteam
    GodotSteam --> SteamAPI
    SteamAPI <--> SteamCloud
    UI --> SilentWolfSDK
    SilentWolfSDK <--> SWServer

Technology Stack và phiên bản chi tiết

  • Game Engine: Godot Engine v3.5.x LTS / v4.x (Tối ưu hóa tài nguyên phần cứng, hỗ trợ đa nền tảng).
  • Ngôn ngữ cốt lõi: GDScript 2.0 (Logic chính và UI), Godot Shading Language (Hiệu ứng shader làm mờ, phát sáng, cháy nổ).
  • Multiplayer & Networking Module: GodotSteam v3.20+ (Giao tiếp trực tiếp với Steamworks SDK API qua GDScript binding).
  • Backend-as-a-Service: SilentWolf Backend REST API v0.8 (Quản lý User Session, Cloud Save, Bảng xếp hạng).
  • Xử lý tối ưu đạn: Godot Native Bullets (Plugin C++ Native quản lý Bullet Pool).
  • Công cụ thiết kế đồ họa & Animation: Blender 3.6 (Grease Pencil cho hoạt họa 2D Frame-by-Frame), Krita, Clip Studio Paint, TexturePacker 7.0 (Xuất Sprite Sheet tối ưu hóa Draw Call).

Thiết kế cấu trúc dữ liệu JSON (Data Schema)

Hệ thống sử dụng các tệp JSON cấu trúc hóa để định nghĩa toàn bộ logic màn chơi và nhân vật. Ví dụ lược đồ cấu hình màn chơi (battle_stage_config.json):

{
  "theme": "dog_sanctuary_grassland",
  "music": "bgm_battle_normal.ogg",
  "boss_music": "bgm_boss_clash.ogg",
  "cat_tower_health": 5000,
  "reward_bone": 250,
  "power_scale": 1.25,
  "battlefield": "basic",
  "spawn_patterns": [
    {
      "id": "long_legs_cat",
      "duration": 4.5,
      "delay": 2.0,
      "props": { "health": 450, "damage": 65, "speed": 80 }
    }
  ],
  "bosses": [
    {
      "health_at": 2000,
      "name": "ramiel_cat",
      "props": { "health": 12000, "damage": 350, "attack_range": 450 }
    }
  ]
}

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

Đồ án áp dụng quy trình phát triển phần mềm theo phương pháp Agile/Scrum với chu kỳ 2 tuần/Sprint:

  • Sprint 1 (11/09/2023 – 30/09/2023): Phân tích đặc tả yêu cầu, thiết lập kiến trúc dự án trên Godot, tích hợp GodotSteam SDK.
  • Sprint 2 (01/10/2023 – 31/10/2023): Thiết kế Sprite Sheets, hiện thực hóa FSM cho nhân vật, xây dựng Game Core Loop (triệu hồi, kinh tế, tấn công).
  • Sprint 3 (01/11/2023 – 14/11/2023): Tích hợp hệ thống Native Bullets, Danmaku Boss, xây dựng hệ thống UI nâng cấp và kho đồ.
  • Sprint 4 (15/11/2023 – 30/12/2023): Hiện thực P2P Online Lobby, kiểm thử tải, cân bằng công thức toán học và đóng gói báo cáo khóa luận.

Implementation và kết quả

Quá trình phát triển và thuật toán cốt lõi

1. Hệ thống Finite State Machine (FSM) cho nhân vật

Toàn bộ hành vi của nhân vật (Chó và Mèo) được chuẩn hóa qua 5 trạng thái độc lập kế thừa từ State: MoveState, AttackState, IdleState, KnockbackState, và DieState.

# CharacterFSM.gd - Điều khiển chuyển đổi trạng thái thực thể
extends KinematicBody2D
class_name BattleCharacter

enum State { MOVE, ATTACK, IDLE, KNOCKBACK, DIE }
var current_state: int = State.MOVE

export var health: int = 1000
export var damage: int = 50
export var speed: int = 100
export var attack_range: int = 150
export var attack_cooldown: float = 1.5
export var knockback_threshold: int = 300

var cooldown_timer: float = 0.0
var hitbox_facing_side_x: float = 0.0

func _physics_process(delta: float) -> void:
    if cooldown_timer > 0:
        cooldown_timer -= delta

    match current_state:
        State.MOVE:
            _handle_move(delta)
        State.IDLE:
            _handle_idle()
        State.ATTACK:
            _handle_attack()
        State.KNOCKBACK:
            _handle_knockback(delta)
        State.DIE:
            _handle_die()

func _handle_move(delta: float) -> void:
    var target = _detect_target_in_range(attack_range)
    if target != null:
        if cooldown_timer <= 0:
            _change_state(State.ATTACK)
        else:
            _change_state(State.IDLE)
    else:
        position.x += speed * delta

func take_damage(incoming_dmg: int) -> void:
    health -= incoming_dmg
    if health <= 0:
        _change_state(State.DIE)
    elif incoming_dmg >= knockback_threshold:
        _change_state(State.KNOCKBACK)

func _change_state(new_state: int) -> void:
    current_state = new_state
    # Kích hoạt Animation tương ứng thông qua AnimationPlayer

2. Thuật toán xác định tầm ảnh hưởng đòn đánh (Attack Area Calculation)

Để xác định chính xác phạm vi gây sát thương diện rộng mà không sử dụng Raycasting liên tục gây tốn CPU, vị trí tâm ảnh hưởng $x$ được tính toán trực tiếp:

$$x = hitbox_facing_side_x + attack_range$$

Đối với các nhân vật đặc biệt như Chó Bắn Tỉa hoặc Mèo Phù Thủy, hệ thống chuyển sang sử dụng custom_attack_area kế thừa từ Area2D với collision layer được lọc theo phe đồng minh/kẻ địch.

3. Mô hình toán học tính toán chỉ số nâng cấp (Game Balance Formulas)

Hệ thống áp dụng các phương trình toán học chuẩn để mở rộng chỉ số nhân vật, kỹ năng và kinh tế theo cấp độ ($level$):

  • Sát thương kỹ năng Mưa Cầu Lửa / Đường Sấm Chớp: $$damage = base_damage + \left(0.5 \times base_damage \times (level - 1)\right)$$ (Với $base_damage = 10$)

  • Tỷ lệ làm chậm của Đường Sấm Chớp: $$slow_scale = base_slow_scale - \left(level_slow_scale \times (level - 1)\right)$$

  • Tỷ lệ đẩy lùi của Trống Trận Cẩu Sơn: $$kb_scale = base_kb_scale + \left(level_kb_scale \times (level - 1)\right)$$

  • Lượng máu hồi phục thành trì: $$healing_health = base_hh + \left(2 \times base_hh \times (level - 1)\right)$$ (Với $base_hh = 250$)

  • Thu nhập tiền thụ động ($money_rate$): $$money_rate = base_money_rate \times (1 + level_money_rate \times level)$$ (Với $base_money_rate = 15$ ₵/s)

  • Máu tối đa của Thành Chó (Tăng trưởng hàm mũ): $$max_health = base_mh \times 1.5^{level}$$ (Với $base_mh = 500$ HP)

  • Tầm bắn và hồi chiêu của Thần Hộ Vệ Gandolfg: $$radius = base_radius + (level_radius \times level) \quad (base_radius = 1500px, level_radius = 150px)$$ $$attack_cooldown = \max(1.0, base_ac - level) \quad (base_ac = 13s)$$

Kiểm thử và đánh giá hiệu năng (Testing & Validation)

Kết quả Benchmark hệ thống

+-----------------------------------------------------------------------+
|                      BENCHMARK PERFORMANCE METRICS                     |
+------------------------------------+------------------+---------------+
| Chỉ số kiểm thử                    | Mục tiêu đặt ra  | Đạt được thực tế|
+------------------------------------+------------------+---------------+
| Tốc độ khung hình (Frame Rate)    | 60 FPS           | 59.8 - 60 FPS |
| Số thực thể xử lý đồng thời        | 100 thực thể     | 350+ thực thể |
| Số đạn Danmaku cùng xuất hiện     | 500 đạn          | 1.500+ đạn    |
| Tải RAM trung bình (Client)        | < 300 MB         | 185 MB        |
| Tải CPU (Intel Core i5 Gen 8th)    | < 25%            | 11.4%         |
| Ping đồng bộ P2P (Mạng LAN/Vùng)  | < 50 ms          | 18 - 32 ms    |
| Tỉ lệ mất gói tin P2P             | < 1.0%           | 0.05%         |
+------------------------------------+------------------+---------------+

User Acceptance Testing (UAT)

  • Mẫu thử nghiệm: 35 người chơi tham gia trải nghiệm cả 2 chế độ Chơi đơn và Đấu mạng 1v1.
  • Tỉ lệ hài lòng về tính năng điều khiển: 94.2%.
  • Tỉ lệ đánh giá tích cực về độ mượt mà của Animation: 91.5%.
  • Thời gian trung bình một trận đấu: $3.5 - 5.2$ phút (Đạt chuẩn nhịp độ game chiến thuật di động/PC casual).

Đổi mới và đóng góp kỹ thuật

Đổi mới công nghệ nổi bật

  1. Tích hợp cơ chế Bullet Hell (Danmaku) vào thể loại Tower Defense: Thay vì chỉ tính toán va chạm hình chữ nhật đơn giản giữa hai hàng quân, The Battle Dogs tích hợp hệ thống mẫu đạn xoay vòng phức tạp cho Boss thông qua plugin native C++, tạo ra trải nghiệm né đạn và kích hoạt khiên thủ công độc đáo.
  2. Kiến trúc P2P Hybrid tiết kiệm chi phí vận hành: Sử dụng giải pháp Steamworks P2P socket kết hợp BaaS SilentWolf để giải quyết bài toán kết nối mạng cho game Indie mà không cần máy chủ riêng lẻ, tiết kiệm 100% chi phí hạ tầng hàng tháng.
  3. Data-driven Level Pipeline: Toàn bộ dữ liệu quái vật, boss, bùa lợi, bối cảnh và nhạc nền được module hóa hoàn toàn dưới dạng tệp JSON, cho phép Game Designer cân bằng lại game mà không cần biên dịch lại mã nguồn (Recompile Engine).

Đóng góp cho cộng đồng phát triển phần mềm

  • Đóng góp một kiến trúc mẫu hoàn chỉnh về tích hợp GodotSteamSilentWolf dành cho sinh viên và lập trình viên độc lập nghiên cứu phát triển game nhiều người chơi trên Godot Engine.
  • Cung cấp bộ công thức toán học cân bằng game phân cấp lũy thừa và tuyến tính có thể tái sử dụng cho các dự án game chiến thuật 2D.

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

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

  • Phát hành thương mại trên Steam: Tựa game có thể phát hành trực tiếp lên nền tảng phân phối Steam dưới dạng Free-to-Play hoặc Buy-to-Play nhờ tích hợp sẵn Steam AppID, Steam Cloud, và Steam Leaderboards.
  • Nền tảng kiểm thử thuật toán AI: Kiến trúc FSM có thể mở rộng thành môi trường kiểm thử cho các mô hình học tăng cường (Reinforcement Learning) trong việc ra quyết định điều binh thời gian thực.

Yêu cầu cấu hình triển khai hệ thống (System Requirements)

CẤU HÌNH TỐI THIỂU (MINIMUM):
- OS: Windows 7/8.1/10/11 (64-bit) hoặc Ubuntu 20.04+
- CPU: Intel Core i3-3220 / AMD FX-6300
- RAM: 2 GB RAM
- GPU: Intel HD Graphics 4000 hoặc card đồ họa hỗ trợ OpenGL 3.3 / Vulkan
- DirectX: Version 11
- Network: Kết nối Internet băng thông rộng (dành cho chế độ Multiplayer)
- Storage: 500 MB dung lượng trống

CẤU HÌNH ĐỀ NGHỊ (RECOMMENDED):
- OS: Windows 10/11 (64-bit)
- CPU: Intel Core i5-8400 / AMD Ryzen 5 2600
- RAM: 4 GB RAM
- GPU: NVIDIA GeForce GTX 1050 / AMD Radeon RX 560
- Storage: 1 GB dung lượng trống (SSD)

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

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

  • Mạng P2P phụ thuộc chất lượng Host: Do sử dụng mạng ngang hàng P2P thuần túy, nếu người chơi chủ phòng (Host) gặp sự cố mất kết nối mạng hoặc cấu hình máy quá yếu, trải nghiệm của người chơi tham gia (Client) sẽ bị ảnh hưởng.
  • Hệ thống nhân vật: Số lượng nhân vật phe Mèo và phe Chó hiện dừng lại ở mức 10+ nhân vật cơ bản, chưa có hệ thống tiến hóa ngoại hình đa cấp (Evolution Forms).

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

  1. Nâng cấp Netcode: Nghiên cứu và triển khai cơ chế Client-side Prediction & Rollback Netcode (thông qua thư viện GodotRollbackNetcode) để đảm bảo trải nghiệm thi đấu thể thao điện tử (Esports) không độ trễ.
  2. Đa nền tảng (Cross-Platform Mobile): Đóng gói và tối ưu hóa giao diện cảm ứng (Touch Controls) cho hệ điều hành Android và iOS, tích hợp Google Play Games Services.
  3. Mở rộng tính năng cộng đồng: Xây dựng tính năng Level Editor cho phép người chơi tự thiết kế màn chơi và chia sẻ thông qua Steam Workshop.

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

Lợi ích cụ thể theo nhóm đối tượng

  • Sinh viên ngành Kỹ thuật Phần mềm / Game Development: Nguồn tài liệu tham khảo thực tế về quy trình phát triển game hoàn chỉnh từ khâu phân tích Use Case, thiết kế cơ sở dữ liệu, dựng FSM đến đóng gói sản phẩm.
  • Lập trình viên độc lập (Indie Game Developers): Cung cấp giải pháp mẫu để tích hợp mạng P2P qua Steamworks và kiến trúc tối ưu đạn Native Bullets trên Godot Engine hoàn toàn miễn phí.
  • Doanh nghiệp / Studio Game vừa và nhỏ: Tiếp cận mô hình kiến trúc Data-driven giúp rút ngắn $40%$ thời gian phát triển và cân bằng các tựa game chiến thuật 2D.
  • Giảng viên và Nghiên cứu sinh: Bộ khung thực nghiệm trực quan để giảng dạy các môn học Thiết kế và Phát triển Game, Mạng máy tính trong GameTrí tuệ nhân tạo trong trò chơi.

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

1. Yêu cầu kỹ thuật cốt lõi để triển khai và chạy bản build dự án là gì?

Dự án được đóng gói dưới dạng Portable Executable trên nền tảng Godot Engine. Máy trạm chỉ cần cài đặt Steam Client đang đăng nhập tài khoản (để kích hoạt API Steamworks P2P) và hỗ trợ driver đồ họa OpenGL 3.3/GLES3 trở lên.

2. Trò chơi giải quyết giới hạn nghẽn mạng P2P giữa hai người chơi như thế nào?

Game chỉ đồng bộ các tín hiệu sự kiện (Event-driven Actions) như: Lệnh triệu hồi quân ($id$, $timestamp$), Lệnh kích hoạt bùa chú ($skill_id$, $target_pos$) thay vì liên tục truyền tải toàn bộ vị trí $x, y$ của từng đơn vị lính. Logic di chuyển và va chạm được tính toán cục bộ (Deterministic Simulation) trên máy của mỗi người chơi dựa trên cùng một giá trị hạt giống ngẫu nhiên (Random Seed).

3. Tệp cấu hình JSON của trận đấu có thể mở rộng thêm các cơ chế mới không?

Hoàn toàn có thể. Nhờ thiết kế phân tách theo mô hình Data-driven, người phát triển chỉ cần bổ sung các trường dữ liệu tùy biến vào dictionary props trong tệp JSON. Lớp nạp dữ liệu (DataLoader.gd) sẽ tự động ánh xạ các thuộc tính này vào thực thể nhân vật khi được khởi tạo.

4. Chi phí duy trì hệ thống máy chủ và cơ sở dữ liệu hàng tháng là bao nhiêu?

Chi phí vận hành là 0 VNĐ/tháng. Dịch vụ Steamworks P2P do Valve tài trợ cho các tựa game tích hợp Steam API, và gói dữ liệu tài khoản/bảng xếp hạng sử dụng hạn mức miễn phí (Free Tier) của SilentWolf Backend Cloud.

5. Plugin Godot Native Bullets cải thiện hiệu năng đạn đạo so với Node tiêu chuẩn ra sao?

Nếu sử dụng các Node thông thường (Area2D + Sprite), mỗi viên đạn là một đối tượng trong SceneTree gây overhead lớn về bộ nhớ và Draw Call. Godot Native Bullets quản lý đạn dưới dạng một mảng cấu trúc C++ tuyến tính trong bộ nhớ (Contiguous Memory Array), tính toán vị trí theo lô (Batch Processing) và render trực tiếp trên GPU thông qua MultiMeshInstance2D, giúp tăng hiệu năng xử lý lên gấp 8 - 10 lần.


Kết luận

Đồ án tốt nghiệp "Phát triển game chiến thuật thủ thành online multiplayer" (The Battle Dogs) của nhóm sinh viên Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM đã giải quyết trọn vẹn bài toán xây dựng một tựa game chiến thuật trực tuyến 2D hoàn chỉnh. Dự án chứng minh tính khả thi vượt trội của Godot Engine trong việc phát triển các dòng game độc lập chất lượng cao, đồng thời đề xuất giải pháp kiến trúc mạng P2P chi phí 0 đồng kết hợp hệ thống AI FSM và tối ưu hóa Danmaku C++. Đây là tiền đề kỹ thuật vững chắc để tiếp tục hoàn thiện, mở rộng và phát hành thương mại chính thức trên các kho ứng dụng quốc tế.