Có một số ứng dụng như Blitz3D hoặc các loại công cụ xây dựng trò chơi khác biên dịch tập lệnh hoặc dữ liệu trò chơi khác thành một tệp thực thi duy nhất. Làm thế nào để họ làm điều đó?
Có một số ứng dụng như Blitz3D hoặc các loại công cụ xây dựng trò chơi khác biên dịch tập lệnh hoặc dữ liệu trò chơi khác thành một tệp thực thi duy nhất. Làm thế nào để họ làm điều đó?
Câu trả lời:
Các công cụ khác nhau tiếp cận theo những cách khác nhau, nhưng cách Blitz3D thực hiện là gói mã và trình thông dịch thành một gói. Sau đó, khi bạn chạy exe, nó sẽ khởi chạy trình thông dịch và chuyển vào mã được gói. Nó khá giống với cách mà Python hoạt động khi sử dụng py2exe.
Trong nhiều công cụ phát triển trò chơi, mã được gói cùng với tệp thực thi chỉ đơn giản là văn bản thô mà trình thông dịch phân tích cú pháp. Tuy nhiên, một số sử dụng cách tiếp cận mã byte như Java, trong đó mã nguồn được chuyển thành dạng trung gian mà máy ảo sử dụng. Tôi nghĩ Unity sử dụng phương pháp sau này nhưng tôi không chắc.
Ngoài đầu tôi, tất cả các công cụ phát triển trò chơi tôi có thể nghĩ rằng các gói thực thi gói đó dựa trên cách tiếp cận này của trình thông dịch lõi / máy ảo và sau đó đóng gói nó bằng mã hoặc là các thư viện mà bạn biên dịch trong Visual Studio hoặc bất cứ thứ gì.
Luồng chương trình, xử lý biến và tương tự được biên dịch thành mã máy thuần túy, trong khi các lệnh cấp cao được triển khai dưới dạng các hàm thư viện C ++ được gọi từ thư viện thời gian chạy được biên dịch thành mọi tệp thực thi do Blitz tạo. Non thuộc họ Blitz Basic được hiểu như Python.