Программирование игр - GUI - PullRequest
2 голосов
/ 19 мая 2010

Я уже некоторое время кодирую и хотел бы начать изучать программирование игр. Я знаю, что стандартным языком в отрасли является C ++, для 3D-графики основной выбор - между Direct 3D и OpenGL, но что является наиболее широко используемым каркасом GUI? В настоящее время я нахожусь на Mac, так что если нативный Windows API является ответом, то какой выбор кроссплатформенный?

Чтобы быть ясным, я не ищу людей в избранном, а просто выбираю обычную или стандартную игровую индустрию, чтобы я мог изучить и ознакомиться с ней.

Спасибо, Спенсер

Ответы [ 4 ]

6 голосов
/ 19 мая 2010

Scaleform используется во многих играх ААА. К сожалению, это идет с ценником, чтобы соответствовать! По сути, он позволяет вам разрабатывать пользовательский интерфейс во флэш-памяти и затем импортировать его в свою игру (поскольку дизайнеры, как правило, хорошо знакомы с инструментами Adobe, это делает их довольно простыми).

Для решений с открытым исходным кодом, на самом деле их довольно много. CEGUI довольно популярен (хотя, как правило, страдает синдромом «кухонной раковины» - в нем есть все, кроме кухонной раковины). Я также видел GLO и Awesomium (что на самом деле довольно интересно).

Кроме этого, большинство игровых движков (например, Unity, UDK и т. Д.) Имеют свои собственные встроенные каркасы GUI.

5 голосов
/ 19 мая 2010

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

В играх, как правило, имеется множество пользовательских рисунков и анимаций, которые сложно реализовать с помощью виджетов общего назначения; и более того, большинство наборов инструментов не очень хорошо работают с D3D или OpenGL или имеют хорошие порты для Xbox и PS3. Таким образом, вы увидите множество реализаций пользовательского интерфейса, построенных с нуля, которые имеют виджеты, в конечном счете совершающие прямые вызовы рисования для текстурированных полигонов и шрифтовых глифов.

За пределами игры в «склеивающих экранах» , т. Е. - установщик и другие части приложения, не относящиеся к D3D, обычно мы просто используем собственный API для рассматриваемой операционной системы то есть Какао или (тьфу) MFC.

3 голосов
/ 19 мая 2010

http://librocket.com/ - действительно хороший инструментарий пользовательского интерфейса. он использует верстку макета html / css для описания ваших окон и стилей и позволяет выполнять рендеринг в любой системе, которую вы выберете.

Мы выбрали его вместо масштабной формы из-за гибкости, которую он дал нам, чтобы позволить клиентские пользовательские интерфейсы.

3 голосов
/ 19 мая 2010

Прошу прощения, но пока нет. Каждая игра требует особого вида пользовательского интерфейса, и для загрузки d3d / ogl очень мало общедоступных структур пользовательского интерфейса (а те, которые достаточно настраиваемы, слишком медленны).

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

Когда я сделал это, я попытался сделать его легко расширяемым, с помощью диалогов с изменяемым размером и Swing-подобных контейнеров, которые выравнивают элементы управления для вас, действительно круто в теории, но это сделало реализацию этого кошмаром, мне потребовались месяцы, чтобы сделать это правильно , Придерживайтесь основ, и у вас все будет хорошо!

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