2015-07-27 2 views
-1

Извините за любые орфографические ошибки или основные ошибки грамматики, я никогда не был хорош на английском языке в школе ... И, конечно же, спасибо заранее.Внедрение специального языка программирования игрового движка

Моя цель - создать игровой движок и редактор, который прост в использовании для своих пользователей, но все равно можно использовать для разработки качественных 3D-игр.

Чтобы облегчить пользователям, я хотел бы реализовать пользовательский язык программирования для разработки логики игры, поведения AI, систем оружия и т. Д. Но ограничивая их с низкоуровневыми аспектами двигателя.

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

Мое первое понятие заключалось в том, чтобы создать язык сценариев, но я очень беспокоюсь о системных издержках, когда не выполнялся собственный код пользователя. Потому что мне также хотелось бы, чтобы пользователь мог, например, редактировать сетчатые вершины, создавать настраиваемую систему поиска путей или другие более интенсивные вычисления.

Так что я предполагал, что компиляция кода пользователя в двоичный файл была наилучшим вариантом. И здесь возникает много вопросов.

Я предпочитаю знать, что происходит в сгенерированном исполняемом файле, и иметь полный контроль над результатом. И поэтому я не очень люблю использовать существующие инструменты, такие как llvm, для создания исполняемого файла, опасаясь потерять контроль. И я хотел бы узнать больше о том, как работает код на процессоре на более низком уровне и управлении памятью и т. Д. Но в основном потому, что мне просто нравится делать столько, сколько я могу.

Проблемы, с которыми я столкнулся, являются: - Учитывая выше, генерирует двоичный код действительно лучший вариант? (Или я должен придерживаться языка сценариев)

  • В настоящее время я пишу программу для создания файла окна ехе и вставив опкоды. это нормально, или я должен использовать существующие инструменты как llvm?

  • Есть ли какие-либо юридические действия, лицензии или такие, о которых я должен знать, прежде чем создавать пользовательские файлы exe windows?

  • Как одна из моих целей состоит в том, чтобы позднее развернуть движок на нескольких платформах, вручную написание специальной программы для перевода кода пользователя на конкретный набор команд платформы, аналогичный набору инструкций x86. или это будет намного сложнее?

Я надеюсь, что я объяснил проблему достаточно подробно. если у кого есть какие-либо вопросы, вы можете свободно отправлять сообщения, и я объясню сам.

Спасибо.

Chris

+0

Посмотрите на LPC, https://en.wikipedia.org/wiki/LPC_%28programming_language%29 и его интеграцию с LPmud –

ответ

-2

Прежде всего и должны действительно пересмотреть это представление. Если вы действительно хотите, чтобы ваш игровой движок использовался людьми в обоих аспектах для создания игр, а затем модифицировал существующую игру, вам придется придерживаться уже установленных стандартов. Причина в этом проста: моддеры в основном новички в программировании, были трудные времена, изучая Lua, Boo, ... У них действительно нет времени и позволить перейти на урский язык. Поэтому для сценариев u действительно следует придерживаться отраслевых стандартов.

С другой стороны, вам действительно нужно отделить дизайн ур между модом и расширением контента, который не нуждается в доступе на низком уровне или имел высокий уровень использования процессора.

Принимая во внимание все эти факты, я настоятельно рекомендую следующее:

  • установить мод системы для двигателя (на основе хорошо известных языков, как C# или Java Script)
  • установить скриптовый интерфейс для управления поведение его сущностей/компонентов.

Это обычный способ. Если вы уйдете от такого установленного стандарта, у вас, вероятно, возникнут серьезные проблемы.

+0

спасибо за ваш ответ. Я не имел в виду, что у двигателя есть мода-система, жаль, что это было написано очень неясно, поэтому я отредактировал эту часть в сообщении. Я был бы очень признателен, если бы вы могли снова взглянуть на него. Спасибо – ChrisH

+0

Sr, но даже это редактор forr или сама игра, концепция всегда такая же, как описано выше. Придерживайтесь значений по умолчанию и разделяйте между mod/script при необходимости доступа к низкому уровню. Это все –