Дизайн игры: является ли плагин лучшим решением для этой проблемы?(Какао, Objective-C) - PullRequest
1 голос
/ 10 декабря 2010

Я начал помогать с игрой с открытым исходным кодом (на основе Cocoa, Obejctive-C, Xcode).Существующий игровой движок уже настроен на то, чтобы позволить персонажу бегать по всему миру, встречать врага, и, когда начинается сражение, персонаж-объект вызывается с объектом врага, который должен быть атакован.Этот персонажObject имеет метод по умолчанию для атаки противника.

Я хотел улучшить этот дизайн, расширив программу, чтобы позволить другим разрабатывать плагин battleUnit, который обрабатывал бы боевые действия их собственным запрограммированным способом.Это может открыть сообщество для разработки различных стилей боя и придумать свой собственный уникальный стиль игры.

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

Однако в этом случае разработчик боевого отряда может захотеть иметь доступ к многочисленным внешним объектам в существующей игре: разработчик может также захотеть узнать о любых ближайших вражеских отрядах, чтобы избежать любых потенциальных добавок в бою.и чтобы получить эти данные, ему нужно было бы получить доступ к нескольким существующим объектам среды, персонаж может быть в группе, а разработчику может потребоваться доступ к информации о группе и данным каждого игрока, чтобы определить, должны ли они исцелиться, и т. д. Не знаяРазработчик имеет в виду, что было бы невозможно попытаться предсказать и передать всю потенциальную информацию, которую они могут использовать.

Итак, мой вопрос: это хорошее приложение для плагина??Если да, то при разработке плагина я могу открыть другие объекты, которые разработчик плагина будет кодировать?

Есть ли другой подход для решения этой проблемы?Что-то еще, чем «Плагин», который более подходил бы для кода, чтобы иметь доступ к объектам игры?

Спасибо за помощь!

1 Ответ

0 голосов
/ 10 декабря 2010

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

Самый простой способ сделать это - определить интерфейс к игре (в виде протокола или базового класса) и передать его плагину. Используя этот объект, плагин может запросить все, что ему нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...