Tôi đã thử viết mã trò chơi bằng ChatGPT, đây là cách nó diễn ra

Tác giả AI+, T.Năm 22, 2024, 05:49:26 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Viết mã một trò chơi tốn rất nhiều công sức, nhưng ChatGPT có thể làm việc đó dễ dàng hơn không? Sự thật là bạn vẫn cần biết cách viết mã.

  • Các công cụ trò chơi được ChatGPT hiểu là phù hợp để mã hóa các nguyên mẫu trò chơi.
  • Hỗ trợ mã hóa từ ChatGPT đòi hỏi sự hiểu biết sâu sắc về công cụ trò chơi đang được sử dụng.
  • Mong đợi ChatGPT cung cấp các giải pháp gần gũi nhưng không chính xác cho các vấn đề về mã hóa. Bạn vẫn cần xem lại và sửa lại mã do ChatGPT cung cấp.


AI là từ thông dụng mới mà dường như mọi người đang nói đến. Ngay cả điện thoại cũng đang được triển khai đầy đủ các ứng dụng AI, nhưng bạn có thể làm được nhiều việc hơn nữa với các công cụ như ChatGPT, bao gồm cả việc viết mã trò chơi. Tôi đã phát triển trò chơi được gần một thập kỷ và thậm chí đã phát hành một số dự án và tham gia vào một số trò chơi trên Itch.

Khi tôi phát hiện ra ChatGPT, điều đầu tiên tôi muốn làm là xem liệu tôi có thể sử dụng nó trong việc phát triển trò chơi hay không. Như mọi khi, ChatGPT luôn sẵn sàng giúp đỡ và gần như cảm thấy mình là thực tập sinh nhiệt tình nhất thế giới.

1. ChatGPT có thể viết mã trò chơi cho bạn không?


Rõ ràng là việc GPT sẵn sàng dạy bạn viết mã trò chơi là có ý nghĩa tốt nhưng yêu cầu bạn phải hiểu một chút về những gì bạn đang làm. Là một nhà phát triển trò chơi nghiệp dư hơn một thập kỷ, tôi biết một chút về cách viết mã trò chơi. Khi sử dụng GPT để hỗ trợ, tôi muốn biết việc tạo ra một nguyên mẫu trò chơi có thể chơi được phức tạp đến mức nào.

1.1. Nó chắc chắn hiểu được công cụ trò chơi

Công cụ trò chơi là thứ mà nhà phát triển sử dụng để tạo trò chơi. Một số công cụ trò chơi có sẵn, bao gồm Unreal Engine, Godot và Unity. Là một người hiểu rõ về Unity, tôi quyết định sử dụng nó làm công cụ phát triển của mình. Tôi đã hỏi một số câu hỏi chung (mà tôi biết câu trả lời) để đảm bảo rằng ChatGPT sẽ không bắt đầu gây ảo giác về công cụ phát triển trò chơi của tôi.


Sau khi phân loại rằng ít nhất nó cũng biết nó đang làm gì, tôi quyết định đưa ra khuôn khổ cho dự án của mình, bao gồm:

  • Tạo ngẫu nhiên nền cuộn
  • Có nhân vật người chơi được điều khiển bằng các nút định hướng, có nút chuột để bắn
  • Hệ thống điểm có bảng xếp hạng
  • Số lượng kẻ thù vô tận nên người chơi có thể chơi thoải mái

ChatGPT rất hữu ích trong việc cung cấp giải pháp mã cho một số thứ tôi cần để tạo trò chơi này. Ví dụ: tôi đã yêu cầu nó cung cấp một số mã cho một viên đạn mà tôi sẽ bắn từ vị trí của người chơi khi họ nhấn nút "Bắn" và nó đưa ra cho tôi điều này:

Mã nguồn [Chọn]
using UnityEngine;

public class Projectile : MonoBehaviour
{
    public float speed = 10f; // Adjust this value to control projectile speed

    void Start()
    {
        // Move the projectile forward in its local space (assuming it's facing right)
        GetComponent<Rigidbody2D>().velocity = transform.right * speed;
    }

    void OnTriggerEnter2D(Collider2D other)
    {
        // Check if the projectile collides with an enemy or other objects
        if (other.CompareTag("Enemy"))
        {
            // Handle enemy damage or destruction
            Destroy(other.gameObject); // Destroy the enemy
            Destroy(gameObject); // Destroy the projectile
        }
        else if (other.CompareTag("Wall"))
        {
            // Destroy the projectile if it collides with a wall
            Destroy(gameObject);
        }
    }
}

Đáng chú ý, nó cung cấp cho tôi mã được nhận xét tốt để tôi có thể theo dõi với tư cách là một lập trình viên mới bắt đầu. Nhiều nơi gợi ý rằng bạn có thể học cách viết mã bằng AI và việc đưa mã được nhận xét tốt là một phần trong đó. Bạn sẽ không phải lo lắng nếu có lỗi trong mã của mình nếu bạn có thể theo dõi chúng bằng từng nhận xét. Tuy nhiên, khi sử dụng GPT để xây dựng trò chơi, tôi đã gặp phải một số vấn đề có thể khiến người mới tham gia phát triển trò chơi gặp khó khăn.

1.2. ChatGPT còn lâu mới hoàn hảo

LLM chỉ tốt (hoặc tệ) khi người dùng đưa ra lời nhắc. Ví dụ: người dùng có thể dễ dàng tạo các ký tự kiểu anime bằng MidJourney bằng cách đưa vào một số từ để làm rõ kết quả cuối cùng của lời nhắc. Tuy nhiên, khi xây dựng trò chơi bằng ChatGPT, tôi nhận thấy rằng đôi khi công cụ không tiếp nhận những gì tôi đặt xuống.


Trong ví dụ này, tôi gặp phải sự cố khi tạo ra đường đạn của mình, với tất cả các "viên đạn" bị lệch khi người chơi di chuyển. Mặc dù điều này có thể tạo ra một số kiểu chơi thú vị nhưng tôi quyết định yêu cầu nó khắc phục sự cố và nó đề xuất cách khắc phục. Thật không may, bản sửa lỗi không hoạt động.


Cuối cùng, tôi đã tự sửa lỗi nhưng nó nêu bật một vấn đề lớn khi sử dụng ChatGPT để mã hóa trò chơi: có một số điều nó không biết.


Cuối cùng, tôi đã kết hợp trò chơi lại với nhau bằng cách sử dụng một số gợi ý từ GPT về điểm số liên tục cũng như thuật toán tạo ngẫu nhiên và cuộn cho nền trò chơi. Bạn có thể chơi trò chơi cuối cùng ở đây.

2. Nó có hoạt động với các công cụ trò chơi khác không?

Tôi biết ChatGPT hoạt động rất tốt với Unity khi tôi có thể giải quyết một số vấn đề tôi gặp phải ở trên. Tuy nhiên, tôi tự hỏi việc viết mã trò chơi bằng ChatGPT sẽ hoạt động như thế nào đối với một công cụ ít phổ biến hơn như Godot. Tôi thực sự không phải là chuyên gia về Godot, vì tôi sử dụng nó ít hơn nhiều so với Unity. Tôi quyết định hỏi ChatGPT một vài câu hỏi:


Đối với những người sử dụng Godot thường xuyên, vấn đề sẽ được nhận thấy ngay lập tức. ChatGPT đã ngừng học vào năm 2021 hoặc khoảng thời gian đó (ít nhất là đối với phiên bản miễn phí). Kịch bản GPT đưa cho tôi dựa trên kiến thức về Godot 2.x, đây là phiên bản đã lỗi thời nặng nề của phiên bản 4.x hiện tại. Vấn đề rõ ràng là việc sử dụng KinematicBody2D, được thay thế bằng CharacterBody2D trong các phiên bản ngôn ngữ sau này.

3. Bạn cần bao nhiêu kỹ năng để viết mã trò chơi bằng ChatGPT?

Nếu bạn đang cân nhắc việc tạo ra Legend of Zelda: Breath of the Wild tiếp theo bằng ChatGPT, có lẽ bạn nên tiết chế kỳ vọng của mình. Bạn cần hiểu rõ về công cụ bạn đang làm việc để sử dụng ChatGPT làm trợ lý mã hóa.

Các trợ lý khác như Microsoft Copilot có thể tốt hơn với mã chung và có thể trợ giúp ở mức độ lớn hơn. Vấn đề lớn là những LLM này đang xem xét một vấn đề trừu tượng và họ nhìn thấy nó mà không thực sự nhìn thấy nó.

Bằng ngôn ngữ đơn giản hơn, bạn biết trò chơi bạn đang tạo sẽ trông như thế nào và mọi thứ trong đó sẽ hoạt động như thế nào. Bạn có thể giải thích với ChatGPT những gì bạn muốn và nó sẽ cung cấp cho bạn những gì gần với (nhưng không hoàn toàn) những gì trò chơi của bạn cần. Để làm cho nó hoạt động theo cách bạn muốn, bạn sẽ phải tìm hiểu mã mà GPT cung cấp cho bạn.

4. Bạn có nên viết mã trò chơi bằng ChatGPT không?

Phát triển trò chơi là một lĩnh vực phức tạp, nhưng nhờ có các công cụ như những công cụ được đề cập ở trên, công chúng nói chung dễ tiếp cận hơn nhiều. Một nhà phát triển lành nghề có thể dành vài giờ để tạo ra một trò chơi hoạt động được và có tất cả những thứ họ muốn trong đó.

Dự án đặc biệt này đã khiến tôi mất tổng cộng 48 giờ từ đầu đến cuối. Trò chơi càng phức tạp thì càng tốn nhiều thời gian và công sức. Đó là chưa kể lượng thời gian bạn phải dành cho việc tìm nguồn cung ứng và phát triển tài sản. Nó có thể trở thành một dự án khá lớn.

Nếu bạn quyết định viết mã trò chơi với sự hỗ trợ của ChatGPT thì đây là một số điều cần lưu ý:

  • ChatGPT có thể mắc lỗi trong mã.
  • ChatGPT có thể cung cấp cho bạn mã lỗi thời, khiến bạn phải mất hàng giờ tìm kiếm trên Google để tìm cách khắc phục.
  • AI hiện chưa thể tạo nội dung trò chơi (dù sao cũng không phải là nội dung 2D tốt), vì vậy bạn sẽ phải tìm nguồn tài sản riêng.
  • Một số đề xuất mà ChatGPT đưa ra sẽ không hiệu quả và có thể khiến bạn đi vào ngõ cụt, buộc bạn phải suy nghĩ lại việc triển khai của mình.

Nếu hôm nay có ai hỏi tôi liệu họ có thể học cách viết mã trò chơi bằng ChatGPT từ đầu mà không cần bất kỳ kiến thức nào về công cụ này hay không, tôi sẽ nói với họ là không.