Задать вопрос
EnDeRJaY
@EnDeRJaY
cout >> "Hello World!" >> endl;

Как программировать игру в игре?

Множество игр в общем зависят от их аудитории, это обычно происходит, либо когда автор игры исписался, либо когда игра так и задумывалась. Реализовано это разными способами. Одни делают посторонние программы для создания модов, другие вшивают какой-то конструктор для создания уровней. Так вот, а как создавать игру в самой игре??

Лол, я опять почти ответил на свой вопрос. Но мне интересен сам механизм. Вот допустим, я хочу создать врага в самой игре. Как я должен реализовать это в самом создателе? Может использовать обычный класс, имеющий обычную физику для врага, и сделать ему атаку из второстепенных функций спавна пуль, и обычных мувов. Но меня интересует другое. Как он будет жить без кода?
Ведь напишу я его в игре, а в программе он прописан не будет.
Долго ломаю голову над такой простой фичей, помогите понять концепт программирования игры в самой игре
  • Вопрос задан
  • 306 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Вот допустим, я хочу создать врага в самой игре. Как я должен реализовать это в самом создателе? Может использовать обычный класс, имеющий обычную физику для врага, и сделать ему атаку из второстепенных функций спавна пуль, и обычных мувов. Но меня интересует другое. Как он будет жить без кода?

Точно так же и любой другой объект. Что значит "жить без кода"? Враг — это просто объект со своими свойствами. Объект — это просто набор связанных свойств и объединенных некоторым абстрактным названием. Куб — это набор точек и отрезков прямых линий между этими точками. Точно так же и с любыми другими объектами. Программный код — это просто инструкция для процессора что и как делать. Не более того. Так что в вашем случае, надо просто написать код для создания врага, добавить в игру кнопку "создать врага" и привязать данный код к этой кнопке.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
Ведь напишу я его в игре, а в программе он прописан не будет.
Долго ломаю голову над такой простой фичей, помогите понять концепт программирования игры в самой игре

А как пишут плагины для софта? Предоставляется документированный API, доступный из скриптового (проще для юзера, но инструменты предоставить придется самому)/компилируемого (хуже для юзера, лучше для программиста, инструменты разработки, как правило уже поставляются другими компаниями) языка. И вперед.
Либо же предоставить "кирпичики" - простейшие объекты с некоторым базовым функционалом, которые игрок сможет комбинировать в более сложные объекты. Как в Factorio, например.
Ответ написан
@Mercury13
Программист на «си с крестами» и не только
Обычно для этого используют скриптовый движок. Наиболее известный — Lua.

Также используют триггеры, эталонный пример — StarCraft.
Но, работая с триггерами, надо разделять «условие» и «повод». Повод — это событие-импульс, которое МОЖЕТ спровоцировать срабатывание триггера. Условия — это уже дополнительные вещи, которые проверяются потом.

Третья возможность — движок, основанный на данных. Например, задаём тип атаки, количество HP, тип движения и прочее, и вся эта библиотека уже записана в коде. Эталонный пример — Doom (самый ещё первый, 1993 года). Кстати, в его последователе Hexen появились скрипты.
Ответ написан
@ZZahar
Если решил проблему - нажми "отметить решением"
Давайте рассмотрим такую ситуацию на примере 3д-шутера, где у нас есть редактор карт.
Например у нас есть класс врага(У него есть переменные урона, здоровье и т.д) и игрок хочет его заспавнить, также допустим что всё спавнятся на ЛКМ. После нажатия ЛКМ игроком, мы спавним противника где урон и здоровье выбираются игроком заранее(Т.е мы спавним противника так-же как в обычной игре, но при нажатие ЛКМ с другими параметрами здоровья и урона, или такими же). Ещё игрок хочет заспавнить стену(Допустим место спавна выбирает игрок с помощью x,y,z в редакторе). Мы просто стапвним ту же стену, но её x,y,z выбирает игрок. Для указания переменных x,y,z, урона, здоровье и т.д допустим справа в игре есть отделка под переменные(Также как в Unity, UE4 и т.д) в них игрок вписывает переменные для предмета(класса, объекта) который он выбрал при помощи мышки, потом вводит туда переменную и при нажатии Enter подтверждает что переменная EnemyDamage = 23, ту же переменную мы используем для обозначения урона когда спавним врагов. Есть много деталей по типу захождение объектов в текстуры, максимальный допустимый урон что-бы переменная int не была переполнена, вместо указания x,y,z летающия камера с выбранным предметом и т.д. Но надеюсь основу я вам хоть чуть-чуть объяснил.
Ответ написан
emil333
@emil333
Seo специалист
А это легко,сначало создаете искуственный интелект и даете ему задачи
Ответ написан
Комментировать
@gnevotch
Работая с триггерами, надо разделять «условие» и «повод». Повод — это событие-импульс, которое МОЖЕТ спровоцировать срабатывание триггера. Условия — это уже дополнительные вещи, которые проверяются потом. Я в Космолот нашел искомое, когда играл на слотах.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы