Tôi đang viết một hệ thống hạt. (đối với trò chơi và trình chỉnh sửa hạt) Trong hệ thống này có từ 0 đến n công cụ sửa đổi. Những thay đổi các hạt trong hệ thống hạt mỗi khung.Tôi nên sử dụng phương pháp nào cho C# scripting
Ví dụ: bạn có thể có một công cụ sửa đổi được xác định trước có tên "GravityModifier" chỉ làm như sau cho mọi hạt mỗi khung: "particle.Velocity.Y + = 9.81" hoặc một cái gì đó tương tự.
Bây giờ tôi muốn người dùng có thể viết các công cụ sửa đổi bổ sung khi chạy (trong trình chỉnh sửa). Tôi muốn có thể sử dụng C# cho việc này. Và kể từ khi hệ thống hạt được ghi vào tệp JSON, các tập lệnh sửa đổi tùy chỉnh phải được viết dưới dạng mã nguồn (có thể mã hóa base64) thành tệp.
-
Câu hỏi của tôi là: Giả sử trò chơi muốn nạp như một tập tin hệ thống hạt. Làm cách nào để biên dịch các công cụ sửa đổi tùy chỉnh thành mã thực thi?
Một điều rất quan trọng khác cần xem xét khi trả lời câu hỏi này: Lưu ý rằng đây sẽ là hệ thống hạt cho trò chơi. Mã được biên dịch sẽ được gọi nhiều hơn 3000 lần mỗi khung hình. (chủ yếu là 60fps) Vì vậy, điều rất quan trọng là mã được biên dịch không mất nhiều thời gian để thực thi hơn các chức năng trò chơi khác. Sẽ thật tuyệt nếu có các tập lệnh bổ trợ được biên dịch thành các đại biểu của biểu mẫu: delegate void ModifyParticle (ref Particle p);
Điều này có khả thi không? Nếu vậy, làm thế nào?
Bạn cũng có thể nhận được một số ý tưởng hay bằng cách tìm kiếm chủ đề này trên [gamedev] (http://gamedev.stackexchange.com/). Nhưng, tôi nghĩ rằng đó vẫn là một câu hỏi hay cho trang web này. – jadarnel27
Tôi nghĩ rằng có một số trò chơi thương mại (Second Life) sử dụng Mono như một công cụ tạo kịch bản: http://www.mono-project.com/Scripting_With_Mono –