0

Tại sao ChatGPT viết code game sai: 4 lỗi phổ biến với GDScript

Giới thiệu

Việt Nam chiếm 37.3% lượt tải game app toàn cầu. Nhưng khi dev Việt thử dùng ChatGPT để viết code cho Godot Engine, kết quả thường không như mong đợi.

Bài viết này phân tích 4 lỗi cụ thể mà AI mắc phải khi viết GDScript, và cách khắc phục.

1. Trộn cú pháp Godot 3 và Godot 4

ChatGPT được train trên cả tutorial Godot 3 lẫn Godot 4. Godot 4 đã thay đổi hàng trăm API nhưng AI không phân biệt được version.

Ví dụ: move_and_slide(velocity, Vector2.UP) là cú pháp Godot 3. Trong Godot 4, move_and_slide() không nhận argument. Code compile được nhưng chạy sai.

2. Không dùng Signal

Signal là hệ thống giao tiếp giữa các node trong Godot. AI thường tạo direct function call (get_node("../Player").take_damage(10)) thay vì dùng signal. Khi node bị di chuyển, code crash ngay.

# Cách đúng - dùng signal
signal health_changed(new_health: int)

func take_damage(amount: int) -> void:
    health -= amount
    health_changed.emit(health)

3. Bỏ qua static typing

GDScript hỗ trợ static typing tùy chọn, giúp tăng hiệu suất lên đến 59% cho Vector2 operations. Nhưng AI gần như luôn viết var speed = 200 thay vì var speed: float = 200.0.

4. Không hiểu Scene Tree

Kiến trúc Godot dựa trên scene tree. Mỗi node một trách nhiệm. AI tạo monolithic script nhét tất cả logic vào một file.

Nguyên nhân gốc

GDScript là ngôn ngữ nhỏ trong training data của AI. Python có hàng triệu repo, GDScript chỉ vài nghìn. Cú pháp giống Python nên output trông hợp lý nhưng chứa lỗi engine-specific.

Theo khảo sát GDC 2026, 74% game dev dùng AI dùng ChatGPT. Công cụ chung cho lĩnh vực chuyên biệt.

Tôi nói điều này với bias rõ ràng: tôi đang xây dựng Ziva, một AI tool chuyên cho Godot. Nhưng vấn đề với ChatGPT và GDScript là thực tế mà bất kỳ dev nào cũng có thể kiểm chứng.

Lời khuyên thực tế

  1. Đừng dùng AI chung để sinh code game engine. Dùng cho research, brainstorming.
  2. Luôn kiểm tra version API. So sánh với official docs.
  3. Thêm static typing. Bắt bug sớm, tăng performance.
  4. Học signal trước. Hiểu signal rồi mới nhờ AI tạo code signal-based.

All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí