Как встроить Ruby в движок XNA? - PullRequest
3 голосов
/ 22 октября 2008

Мне интересно, возможно ли встраивать Ruby в качестве языка сценариев в Microsoft XNA и как это лучше всего сделать. Я ищу что-то вроде Xnua , кроме Ruby.

Я наткнулся на Ruby.NET и IronRuby, и оба они, похоже, находятся на очень ранних стадиях, поэтому я не уверен, насколько они полезны. Кроме того, я не уверен, будут ли они работать на Xbox 360. В этой теме на форумах XNA говорится, что, например, IronPython не будет работать.

Ответы [ 5 ]

8 голосов
/ 22 октября 2008

IronRuby и IronPython не работают на Xbox 360, потому что они основаны на DLR (динамическая языковая среда выполнения), а DLR интенсивно использует типы System.Reflection.Emit которые в настоящее время недоступны в Xbox 360 .Net Framework (модифицированная версия Compact .Net Framework).

Что касается лучшего способа сделать это, к сожалению, это зависит от остальной части вашей игры. Работа по оценке сценариев IronRuby в контексте вашей программы XNA довольно проста, посмотрите, например, это сообщение в блоге . Кроме того, вы захотите показать некоторые интересные объекты вашим сценариям, и это немного зависит от остальной части вашего игрового кода / дизайна. Вы можете взглянуть на документацию по сценариям для Unity , чтобы получить представление о том, какие типы и команды нужно предоставлять.

2 голосов
/ 22 октября 2008

Почти гарантировано, что IronRuby не будет работать на Xbox, но если вы просто хотите разработать игру XNA для Windows, то вы сможете использовать ее так же, как и для любого другого приложения.

Я не могу вам сказать как вы бы поступили так, просто это должно быть возможно.

1 голос
/ 12 марта 2009

Хотя я согласен с замечаниями Лиф Гарланда, позвольте мне предложить вам альтернативу:

«Предпочтительным» языком сценариев для игр является Lua. Например, игры Crysis и Far Cry широко используют LUA. Пролистайте Википедия , чтобы увидеть список известных игр, в которых он используется.

С точки зрения использования этого с XNA, я только поцарапал поверхность, так как только начал заниматься хобби XNA, но я знаю, что вы не можете использовать LUA напрямую в XNA. Это потому, что LUA встроен в C ++ (неуправляемый), и поэтому вы не сможете развернуть его на своем XBOX360.

Существует проект, который разрабатывает версию lua для XNA на http://www.xnua.com/. Это также бесплатный продукт, и исходный код также доступен для скачивания.

Если игровая индустрия считает, что LUA достаточно хорош для коммерческих игр AAA, я бы лично следовал этому направлению (исходя из того, что у них гораздо больше опыта в этой области, чем у меня)

0 голосов
/ 29 июня 2012

Хотя это не Ruby и это старый вопрос, я хотел бы рассказать вам о новом скриптовом движке, который я создавал. Он будет работать в основном везде, где есть .Net Framework, в том числе на Xbox360 под XNA. Он не использует Reflection.Emit, поэтому он работает там, где другие языки этого не делают. Это также полностью управляемый код, поэтому P / Invokes также как Lua.

Вы можете получить дополнительную информацию из моего блога и попробовать ее на этой демонстрационной странице

Он почти готов к бета-тестированию, но после бета-тестирования это будет коммерчески лицензированный компонент

0 голосов
/ 12 марта 2009

Почему бы не использовать Ruby для разработки на ПК и Lua для 360?

РЕДАКТИРОВАТЬ: возможно это будет полезно.

...