Вопрос: существует ли способ быстро и легко перерабатывать и интегрировать проекты графического интерфейса для игры C++/SDL2, которая не разрабатывается внутри игрового движка?
Я делаю игру на C++/SDL2. Это текстовая ролевая игра, поэтому она не отличается высокой производительностью, но я использую проект с открытым исходным кодом C++ в качестве основы с момента создания игры, и портирование десятков тысяч строк кода на другой язык не является проблемой. Это реалистичный вариант. Я приближаюсь к моменту, когда мне придется пересмотреть существующий графический интерфейс игры: изменить и переработать меню, добавить значки на границы игры и так далее. Устаревшие меню многочисленны, жестко запрограммированы и в большинстве случаев выглядят плохо. Я хочу, чтобы у моей игры был лучший графический интерфейс, но я уже знаю, что прописание каждой строки каждого меню в коде будет очень трудоемким и, скорее всего, даст плохие результаты.
Многие современные Разработчики игр, похоже, создают свой пользовательский интерфейс вместе со своей игрой в рамках установленного игрового движка, например Unity, или своего собственного индивидуального решения. Но полный перенос моего проекта на движок занял бы довольно много времени, и его было бы трудно оправдать, если бы единственным преимуществом было упрощение разработки графического интерфейса.
Вот некоторые из вещей, с которыми я экспериментировал ранее.
Я пытался посмотреть, смогу ли я создавать меню в Godot, а затем экспортировать их. Мне не удалось это сделать, но это было чуть больше года назад, поэтому подробностей я не знаю. ChatGPT кажется весьма оптимистичным в отношении того, что это может сработать, но, только что пересмотрев документацию, я не вижу возможности экспорта меню.
Я также пытался посмотреть, смогу ли я запустить элементы графического интерфейса в проекте Godot и связать их с кодом моего игрового движка, причем последний будет представлен как библиотека. Я думаю, что это должно быть возможно, но я, вероятно, недостаточно хорошо знал Годо, чтобы это сработало, когда я попробовал.
ImGui — это Библиотека графического интерфейса с большим количеством примеров кода. Мне удалось интегрировать его в свой код рендеринга, только чтобы понять, что вся моя игра была построена на рендеринге с сохранением режима и поэтому несовместима с подходом немедленного режима ImGui. Я осмелюсь предположить, что мог бы переделать код своей игры, но не уверен, что это того стоит. Кажется, многие люди используют ImGui для создания инструментов редактирования и интерфейсов игровых движков, но я еще не нашел ни одного случая, чтобы графические интерфейсы конечных пользователей (например, в играх) создавались таким образом.
Qt и wxWidgets так и не вышли из стартовой панели — я столкнулся с множеством сообщений об ошибках и проблемами с зависимостями, поэтому принял решение перейти к другие возможные решения.
[b]Вопрос: существует ли способ быстро и легко перерабатывать и интегрировать проекты графического интерфейса для игры C++/SDL2, которая не разрабатывается внутри игрового движка?[/b] Я делаю игру на C++/SDL2. Это текстовая ролевая игра, поэтому она не отличается высокой производительностью, но я использую проект с открытым исходным кодом C++ в качестве основы с момента создания игры, и портирование десятков тысяч строк кода на другой язык не является проблемой. Это реалистичный вариант. Я приближаюсь к моменту, когда мне придется пересмотреть существующий графический интерфейс игры: изменить и переработать меню, добавить значки на границы игры и так далее. Устаревшие меню многочисленны, жестко запрограммированы и в большинстве случаев выглядят плохо. Я хочу, чтобы у моей игры был лучший графический интерфейс, но я уже знаю, что прописание каждой строки каждого меню в коде будет очень трудоемким и, скорее всего, даст плохие результаты. Многие современные Разработчики игр, похоже, создают свой пользовательский интерфейс вместе со своей игрой в рамках установленного игрового движка, например Unity, или своего собственного индивидуального решения. Но полный перенос моего проекта на движок занял бы довольно много времени, и его было бы трудно оправдать, если бы единственным преимуществом было упрощение разработки графического интерфейса. Вот некоторые из вещей, с которыми я экспериментировал ранее. [list] [*]Я пытался посмотреть, смогу ли я создавать меню в Godot, а затем экспортировать их. Мне не удалось это сделать, но это было чуть больше года назад, поэтому подробностей я не знаю. ChatGPT кажется весьма оптимистичным в отношении того, что это может сработать, но, только что пересмотрев документацию, я не вижу возможности экспорта меню.
[*] Я также пытался посмотреть, смогу ли я запустить элементы графического интерфейса в проекте Godot и связать их с кодом моего игрового движка, причем последний будет представлен как библиотека. Я думаю, что это должно быть возможно, но я, вероятно, недостаточно хорошо знал Годо, чтобы это сработало, когда я попробовал.
[*]ImGui — это Библиотека графического интерфейса с большим количеством примеров кода. Мне удалось интегрировать его в свой код рендеринга, только чтобы понять, что вся моя игра была построена на рендеринге с сохранением режима и поэтому несовместима с подходом немедленного режима ImGui. Я осмелюсь предположить, что мог бы переделать код своей игры, но не уверен, что это того стоит. Кажется, многие люди используют ImGui для создания инструментов редактирования и интерфейсов игровых движков, но я еще не нашел ни одного случая, чтобы графические интерфейсы конечных пользователей (например, в играх) создавались таким образом. [*]Qt и wxWidgets так и не вышли из стартовой панели — я столкнулся с множеством сообщений об ошибках и проблемами с зависимостями, поэтому принял решение перейти к другие возможные решения.