Извините за любые орфографические ошибки или основные ошибки грамматики, я никогда не был хорош на английском языке в школе ... И, конечно же, спасибо заранее.Внедрение специального языка программирования игрового движка
Моя цель - создать игровой движок и редактор, который прост в использовании для своих пользователей, но все равно можно использовать для разработки качественных 3D-игр.
Чтобы облегчить пользователям, я хотел бы реализовать пользовательский язык программирования для разработки логики игры, поведения AI, систем оружия и т. Д. Но ограничивая их с низкоуровневыми аспектами двигателя.
В конце концов я хотел бы, чтобы игровой движок мог поддерживать несколько платформ, но поскольку у меня нет денег на покупку платформ, которые я бы хотел включить, это не может быть реализовано сейчас ...
Мое первое понятие заключалось в том, чтобы создать язык сценариев, но я очень беспокоюсь о системных издержках, когда не выполнялся собственный код пользователя. Потому что мне также хотелось бы, чтобы пользователь мог, например, редактировать сетчатые вершины, создавать настраиваемую систему поиска путей или другие более интенсивные вычисления.
Так что я предполагал, что компиляция кода пользователя в двоичный файл была наилучшим вариантом. И здесь возникает много вопросов.
Я предпочитаю знать, что происходит в сгенерированном исполняемом файле, и иметь полный контроль над результатом. И поэтому я не очень люблю использовать существующие инструменты, такие как llvm, для создания исполняемого файла, опасаясь потерять контроль. И я хотел бы узнать больше о том, как работает код на процессоре на более низком уровне и управлении памятью и т. Д. Но в основном потому, что мне просто нравится делать столько, сколько я могу.
Проблемы, с которыми я столкнулся, являются: - Учитывая выше, генерирует двоичный код действительно лучший вариант? (Или я должен придерживаться языка сценариев)
В настоящее время я пишу программу для создания файла окна ехе и вставив опкоды. это нормально, или я должен использовать существующие инструменты как llvm?
Есть ли какие-либо юридические действия, лицензии или такие, о которых я должен знать, прежде чем создавать пользовательские файлы exe windows?
Как одна из моих целей состоит в том, чтобы позднее развернуть движок на нескольких платформах, вручную написание специальной программы для перевода кода пользователя на конкретный набор команд платформы, аналогичный набору инструкций x86. или это будет намного сложнее?
Я надеюсь, что я объяснил проблему достаточно подробно. если у кого есть какие-либо вопросы, вы можете свободно отправлять сообщения, и я объясню сам.
Спасибо.
Chris
Посмотрите на LPC, https://en.wikipedia.org/wiki/LPC_%28programming_language%29 и его интеграцию с LPmud –