Довольно широкий вопрос. Я собираюсь реорганизовать существующее игровое приложение, чтобы у нас была базовая платформа для игр, которая расширена некоторой модульной архитектурой плагинов. Итак имеем:
GameCore - множество базовых классов и т. Д.
GameBundle A / B / C ... - пакеты с множеством подклассов в ядре и множеством ресурсов
Игра не будет функционировать вообще без конкретного пакета, который реализует саму игру. Теоретически было бы также возможно разбить эти связки дальше и смешать и сопоставить. Это очень привлекательный дизайн.
Использование NSBundle кажется лучшим решением, но я столкнулся с некоторыми трудностями: код в GameBundle должен быть связан с GameCore, иначе он не скомпилируется, но затем, когда код GameCore загружается из NSBundle, Вы получаете дубликаты всех основных классов. Это говорит о том, что я не в курсе того, как я к этому подхожу!
Это может быть легко реализовано с помощью статических библиотек, но тогда невозможно легко включить ресурсы ...
Итак, кто-нибудь может предложить работоспособную архитектуру, которая будет делать, как я хочу? Подводя итог;
Абстрактное ядро игры
Неопределенное количество GameBundles, добавленных к цели, которые (в идеале) загружаются динамически во время выполнения.
Надеюсь, кто-то может помочь!