Вопрос

Игровой скрипт будет управлять логикой NPC / AI.

Если бы я хотел реализовать функцию создания игровых сценариев, какой язык она должна была бы поддерживать?

Имейте в виду, что моя реализация будет работать на нескольких платформах, таких как .net, flash, javascript и java.

Каковы плюсы и минусы перечисленных возможностей?Сколько времени потребуется для внедрения интерпретатора?

Какие функции ищут разработчики игровых сценариев?Что реализуют другие игры?

Я думаю проголосовать за javascript из-за того факта, что каждый может читать и писать на нем.

О чем вы думаете?

Это было полезно?

Решение

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

Это Ссылка может быть полезно в дальнейшем, если вы хотите узнать больше о встраивании Lua и его преимуществах / недостатках.

Другие советы

Используйте Lua. Это прекрасный язык, широко принятый в игровой индустрии.

Для большинства ваших платформ существуют привязки Lua:

Существует также проект llvm-lua, что может быть полезно для переноса Lua на другие платформы.

Что касается JavaScript в качестве хост-платформы...Эта тема постоянно появляется в Список рассылки Lua, но никакого серьезного решения пока опубликовано не было.Если вы действительно нужно разместить Lua в JS, пожалуйста, спросите в списке рассылки Lua, возможно, некоторые люди могли бы поделиться своим опытом по этому вопросу.

Я бы предпочел Python из-за его привязок ко многим языкам.

Я думаю, вы имеете в виду "интегрировать" интерпретатор, а не "реализовать" его.В зависимости от ваших навыков, создание интерпретатора для языка сценариев может занять много времени.

Я точно знаю, что Python и Lua имеют привязки для .NET и Java - вы можете встроить интерпретаторы.Не знаю, существуют ли какие-либо привязки для Javascript и Flash.

Проблема с Python заключается в том, что существует три варианта, все созданные разными людьми.

  • IronPython для .NET
  • Jython для Java
  • и обычный CPython

Я не работал над Jython, поэтому не буду комментировать это.Но есть определенные проблемы с переносимостью между IronPython и CPython.Например:IronPython не поддерживает собственные расширения C.Если есть сценарии, написанные на CPython, которые используют их, вам будет трудно перенести их на IronPython.Кроме того, если скрипты IronPython используют какие-либо .Библиотеки NET, вам будет сложно перенести их на CPython.

Реализации Lua, с другой стороны, берутся из одного места, и я не ожидаю таких проблем.

Это зависит от того, насколько сложным будет ваш код (насколько сложным может стать поведение NPC).Tcl, Lua и JavaScript предназначены для простых задач.Написание больших фрагментов кода на этих языках быстро становится недоступным (особенно для обычных пользователей).

Squirrel использует C-подобный синтаксис, который устроит большинство людей, но как насчет поддержки инструментов?Если вам придется записывать все в Блокнот, это тоже сильно ограничит вас.

Python - это зрелый язык, который прост в освоении (просто сравните "учебник" Lua с тем, который поставляется вместе с Python).Хотя различные версии Python могут показаться пугающими (см. Ответ Рохита), код Python в вашей игре будет одинаковым для всех них.Он поставляется с IDE (IDLE), и есть другие IDE, которые поддерживают Python, который обеспечивает завершение кода, отладку, запуск тестовых примеров и т.д.

Если вы хотите использовать Python, рассмотрите возможность использования Без штабелей поскольку он намного лучше работает с потоками, чем стандартный CPython.Он используется в некоторых MMORPG (EVE Online, IIRC), так что у него есть некоторый послужной список в играх.Кроме того, он очень хорош для продолжений (отчасти по этой причине он был разработан в первую очередь), что является довольно хорошей моделью для логики типа "симуляция", используемой в играх.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top