Попытка ускорить разработку графического интерфейса игры на C++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Попытка ускорить разработку графического интерфейса игры на C++

Сообщение Anonymous »

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

    Qt и wxWidgets так и не вышли из стартовой панели — их слишком сложно настроить и интегрировать с моим собственным проектом. Казалось бы, бесконечные зависимости и сообщения об ошибках слишком раздражают меня.
Некоторые вещи я собираюсь попробовать в ближайшие несколько дней. недель.
  • Разработчик веб-приложений рассказал мне, что Claude AI может принимать макеты меню в качестве входных данных и генерировать код (Java, C++, что угодно) в качестве вывода. Честно говоря, это звучит слишком хорошо, чтобы быть правдой, но он клянется, что делает это сам. Я узнаю это сам через несколько недель, когда вернусь в страну, где я смогу настроить свою собственную учетную запись (мне нужно иметь возможность получать SMS).
  • Существует приложение Rive (https://rive.app), которое обещает позволить вам создавать пользовательский интерфейс и графику, а также экспортировать их. Кажется, нет никакой причины, почему это не сработает, но я уже делал это слишком много раз, поэтому не питаю больших надежд.
РЕДАКТИРОВАТЬ: Разумеется, для использования Rive требуется библиотека времени выполнения, и, хотя существуют среды выполнения для различных комбинаций платформы и средства рендеринга, нет никаких возможностей для серверной части C++/ Приложение SDL2, работающее без средства рендеринга. Чтобы использовать Rive, мне нужно было бы начать использовать что-то вроде OpenGL 4.2.

Подробнее здесь: https://stackoverflow.com/questions/793 ... pment-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»