Số Ít nhất, có lẽ không.
Đây là một trường hợp rất thường xuyên của việc phát minh lại bánh xe là phát triển trò chơi, một sai lầm vẫn còn khá phổ biến.
Nếu bạn đang hỏi câu hỏi này, bạn rất có thể bị ảnh hưởng bởi những gì người khác làm, vì vậy hãy nhìn vào những gì Epic Games vừa làm với Unreal Engine:
- UE3 có một điều UnrealScript tùy chỉnh, kỳ lạ, không được tối ưu hóa, khó gỡ lỗi,
- Nếu tin đồn là sự thật, sự hỗ trợ của nó đang bị xóa trong UE4 , có lợi cho các DLL C ++ có thể tải lại nóng.
Bạn có nghĩ rằng bạn có thể làm tốt hơn Epic?
Tạo ngôn ngữ progamming thuộc về người tạo ngôn ngữ lập trình , không phải kỹ sư trò chơi.
Phải mất nhiều năm và một năm để một ngôn ngữ trở nên hoàn thiện và bộ công cụ đi kèm của nó (trình biên dịch, trình liên kết, trình thông dịch, trình gỡ lỗi ..) có thể sử dụng được. Ngày nay bạn có rất nhiều giải pháp khả dụng trong tay nên hoàn toàn không có lý do thực sự để bắt đầu một điều mới từ đầu, ít nhất là không nếu mục tiêu chỉ đơn giản là tạo ra một trò chơi. Giai đoạn.
Để trả lời các câu hỏi phụ của bạn, không, vì những lý do này, tôi chưa bao giờ thực hiện ngôn ngữ kịch bản của riêng mình. Nhưng tôi đã chịu đựng rất nhiều với một số người nửa nướng. Bởi vì chúng được tạo ra với một tính năng rất hẹp được đặt ra trong tâm trí, chúng luôn có những điều kỳ quặc nhỏ bé khiến bạn phát điên. Thông thường, bạn sẽ thấy mình mất rất nhiều thời gian chỉ để cố gắng khắc phục giới hạn ngôn ngữ thay vì chỉ làm trò chơi của bạn.
Nếu lý do bạn muốn tạo ngôn ngữ là vì nó được sử dụng cho những người không biết lập trình rất tốt hoặc nếu bạn tin rằng bạn cần ngôn ngữ đó vì bạn muốn một thứ gì đó rất đặc trưng cho miền, hãy để tôi nói với bạn những điều này cũng lý do xấu. Bạn có thể viết một API cấp độ rất cao với các chức năng đó do_what_they_say_and_say_what_they_do()
và một số mã soạn sẵn rất đơn giản cho thấy cách sử dụng cơ bản của nó. Người dùng không có kỹ thuật của bạn sẽ rất vui khi học một chút về lập trình và bạn sẽ rất vui khi không bị giới hạn bởi một số ngôn ngữ được triển khai kém.
Vì vậy, vì điều này nghe có vẻ hơi đột ngột hoặc thậm chí khắc nghiệt, tôi sẽ nói rằng có một trường hợp có thể có ý nghĩa: nếu bạn muốn tìm hiểu cách tạo ra một ngôn ngữ kịch bản. Nhưng làm ơn, làm ơn, nếu bạn làm như vậy: đừng ép người khác sử dụng nó.
Chỉnh sửa
Tôi vừa xem danh sách lệnh Cave Story mà bạn đã liên kết. Ôi:
<ECJx:y [EC?] Jump @ Jump to event Y if any npc with ID X is present
Tôi không muốn thể hiện sự thiếu tôn trọng với nhà phát triển đằng sau Cave Story, nhưng đây là một ví dụ hoàn hảo về danh sách lệnh đơn giản bị đột biến trong ngôn ngữ kịch bản tùy chỉnh không kiểm soát được. Điều này có thể vẫn có thể sử dụng được cho một nhà phát triển hoặc một nhóm rất nhỏ, nhưng ở giai đoạn này tôi khuyên bạn nên chuyển sang một ngôn ngữ Turing đầy đủ và được thử tốt (ví dụ: Lua), nơi bạn có thể làm:
if (npc.id == x) then
jump_to_event(y)
end
Điều này sẽ làm cho mọi thứ dễ dàng hơn rất nhiều khi, ví dụ, bạn sẽ cần một điều kiện phức tạp hơn:
if (npc.id == x) or (npc.type == "enemy") then
jump_to_event(y)
end