2010-07-29 33 views
7

Điều tôi đang tìm kiếm là một công cụ tạo kịch bản cho Java cho phép người dùng viết các kịch bản đơn giản để kiểm soát hành vi và sự kiện của trò chơi. Cái gì mà:Ngôn ngữ kịch bản tốt, đơn giản để nhúng vào một công cụ trò chơi Java là gì?

  • rất đơn giản - một cái gì đó dễ dàng để chọn lên, đặc biệt là cho những người có một số kinh nghiệm lập trình/kịch bản cơ bản

  • cung cấp rất nhiều kiểm soát - Tôi có thể dễ dàng bắt đầu/dừng/tạm dừng các kịch bản và kiểm soát bao nhiêu thời gian thực hiện từng nhận được, có lẽ bao nhiêu dung lượng bộ nhớ mà họ có thể sử dụng

  • được tách ra khỏi môi trường Java bản thân - Không truy cập từ kịch bản cho bất kỳ đối tượng Java hoặc các lớp học, chỉ cho những chức năng tôi một cách rõ ràng cung cấp

Tôi đã xem xét công cụ JavaScript Rhino, và nó phù hợp với mục đích của tôi, nhưng từ những gì tôi đọc (example), nó được thiết kế để tích hợp với Java nhiều đến mức hộp cát sẽ an toàn. Tôi muốn bắt đầu với một công cụ cung cấp cho các kịch bản không có quyền truy cập vào bất cứ điều gì theo mặc định, hơn là có một hoàn toàn mở mà tôi phải đóng lên. Các tập lệnh có thể không phải lúc nào cũng đáng tin cậy, vì vậy môi trường không dễ bị phá vỡ.

Tôi cũng muốn xem xét việc phát triển ngôn ngữ của riêng tôi với một cái gì đó như ANTLR, nhưng nó có thể là nỗ lực nhiều hơn hơn tôi muốn đưa vào.

Bất kỳ lời đề nghị?

Trả lời

4

Bạn đã xem Lua chưa?

Google docs preview của một pdf về đề tài này

Lyrio, G.H.S.O; Seixas, R.B .; Sử dụng Lua như Script Ngôn ngữ trong Games Coded trong Java, Kỷ yếu Các khu vực Bắc Mỹ mô phỏng và AI trong Games Hội nghị - GAMEON-NA, EUROSIS, Montreal, Canada, 2008.

+1

Đó là Lua, chứ không phải LUA.Xem http://www.lua.org/about.html#name – lhf

+0

Cảm ơn bạn đã chỉ ra cho tôi, đã chỉnh sửa. –

2

Bạn nên cung cấp cho một cố gắng để Groovy, một ngôn ngữ kịch bản easily integrates với nền tảng Java.

Cú pháp của nó tương thích 100% với Java, nhưng nó cũng có một cú pháp đơn giản làm cho nó trở thành một ngôn ngữ phù hợp để triển khai DSL.

Tôi không biết chắc liệu bạn có thể dừng/tạm dừng việc thực thi mã Groovy từ một chương trình Java hay không, bạn nên đọc số Groovy API.

Khi thực thi mã Groovy từ bên trong một chương trình Java, bạn có thể chỉ định ngữ cảnh được truyền cho tập lệnh và bạn có thể truy vấn ngữ cảnh được sửa đổi bởi tập lệnh cho các biến đầu ra. Tập lệnh có thể được phân lập hoàn toàn khỏi môi trường Java cơ bản bằng cách tạo một GroovyShell với một CompilerConfiguration thích hợp.

1

JACL là một ngôn ngữ như vậy. Nó dựa trên TCL. Dù bạn làm gì, đừng phát minh ra ngôn ngữ khác. Có rất nhiều lựa chọn tốt ngoài kia.

0

Theo ý kiến ​​của tôi không chỉ ngôn ngữ, nhưng cách giao tiếp là quan trọng. JSR 223 tương thích nhất giữa các ngôn ngữ khác nhau, nhưng "gốc" có vẻ tốt nhất (tức là tích hợp đối tượng đầy đủ của groovy)

Các vấn đề liên quan