Вопросы о разработке игр с точки зрения веб-разработки

Я занимаюсь веб-приложением и работаю с различными языками на стороне сервера, например php, ruby, perl. Мне всегда было интересно узнать о разработке игр, это на самом деле то, что я собирался сделать, но я оказался в веб-разработке. Я пытаюсь перейти на GD, но я не могу не видеть игры из веб-разработки POV.

GD = Разработка игр WD = Веб-разработка

Технические вопросы.

  • Как вы разрабатываете интерфейс в играх? в WD у вас есть CSS и требуется минимальная графика для создания быстрого меню. существуют ли в GD аналогичные инструменты или понятия?

  • Как вы занимаетесь хранением данных? Вы используете плоские текстовые файлы? Или есть что-то вроде MySQL или sqlite, которые вы используете для хранения информации об объектах, пользователях и т.д.

  • Какие игровые движки обычно используются? Существуют ли какие-либо языки сценариев? Я знаю только VB и основное понимание C.

  • С распространением Iphone и Android, J2ME постепенно прекращается для мобильных телефонов?

  • Открывается 3D-сеть. Что вы думаете о том, что 3D-приложения запускаются из вашего браузера?

  • Какие инструменты облегчают создание 3D-объектов, уровней, игровой среды и анимационных персонажей и т.д.

  • Где я могу узнать больше о том, как работают сервер/клиент, клиент/клиент и MMORPG?

  • Где я могу найти общие или общепринятые игровые потоки? для мультиплеер?

  • Как вы относитесь к физике? Есть ли свободный алгоритм или библиотека, которые вы можете использовать?

  • Как создаются видеоролики в реальном времени в играх?

Вопросы рынка.

  • На какой рынок вы должны войти? Мобильный, iphone, wii, PSP, DS, android, ps3, ПК и т.д. Разве вы не должны всегда выходить на рынок мобильной связи, так как легко сделать небольшие игры самостоятельно, но продать много? Есть ли какие-либо ресурсы, где я могу найти больше о каждом рынке?

  • Что вы думаете о дистрибутиве Steam? Это модель распределения будущего? Что не так с традиционной моделью издателя/дистрибьютора? Как работает традиционная модель?

  • Насколько велик рынок веб-игр? ex) Флеш игры.

  • Как развитие игры отличается от любой другой разработки программного обеспечения или веб-разработки?

У меня гораздо больше... но это те, о которых я думал в последнее время.

Большое спасибо за чтение!

4 ответа

  • Разработка пользовательского интерфейса

    В зависимости от игры - это анимированная игра или игра в стиле доски? Как правило, активы пользовательского интерфейса создаются как образы, спрайты или раскадровки.

  • Данные

    Опять же, зависит от типа игры. Для игр в реальном времени необходим доступ FAST, поэтому вы хотите хранить свои данные в локальной базе данных и кэшировать их как можно больше. Локальные файловые базы данных обычно являются нормой, как пользовательской, так и готовой, например SQLLite.

  • Двигатели

    Есть тонны двигателей для 3D, досок и т.д. Popcap сделал свой С++ игровой движок с открытым исходным кодом. Другие включают Unity, Ogre3D...

  • J2ME

    Я бы не нацелился на эту платформу для игр.

  • Не знаю много о "Open 3D Web", но он звучит очень зависимо от браузера, поэтому пробег может варьироваться в разных браузерах.

  • Вы можете играть в 3D с помощью Google Sketchup и Caligari Truespace. Truespace был куплен Microsoft и освобожден.

  • Опять же, тонны двигателей для сетей. Пример: инфраструктура Microsoft XNA имеет некоторые сетевые биты, которые вы можете использовать.

  • Не уверен, что вы имеете в виду.

  • В некоторые из игровых движков, о которых я упоминал, есть встроенные двигатели физики, а внешние - вы можете использовать.

  • Давным-давно, custscenes в реальном времени были предварительно обработаны 3D Studio Max или Maya. В наши дни в игре рендеринг часто бывает достаточно хорош для роликов: посмотрите последнюю версию Halo 3: ODST. Все ролики используют игровой движок.

рынок

Я изучил разработку игр в начале этого года. Случайные игры смотрят на меня как на рост промышленности - большой объем, относительно низкая стоимость разработки. Хорошие примеры игры на Big Fish для ПК - они публикуют несколько названий и перепродают большинство.

Я думаю, что разработка мобильных игр - огромный потенциальный рынок, но барьеры для входа высоки, потому что это будет просторное пространство. iPhone - это голлилла 800lb, но Android подходит. PSP и другие имеют ограниченную аудиторию и, как известно, трудно.

Самое важное, что я узнал в своих исследованиях, это то, что развитие игры - это труд любви. Это очень многодисциплинарный: вам нужны программирование, искусство, концепция, производство. Это больше похоже на создание фильма, чем что-либо еще. Это также грубо, чтобы получить прибыль из-за всего этого накладных расходов. Если вы хотите войти в него, я рекомендую присоединиться к разработчику игры, чтобы изучить бизнес. После того, как у вас есть опыт, вы можете перенести его на большие концерты в крупных издателях. В конце концов вы можете получить работу над основным заголовком AAA, после чего вы действительно сможете написать свой собственный билет.


Я буду отвечать на технические вопросы:

1 - пользовательские интерфейсы обычно полностью на заказ, ничто не похоже на стандарт таким же образом, что HTML/CSS является стандартом веб-разработки. Некоторые люди используют ScaleForm, который основан на Flash, но это никоим образом не является общим.

2 - Данные часто хранятся в плоских файлах - редко текст, чаще всего двоичный. Опять же, это почти всегда полностью оформленные форматы. Иногда они объединяются в архивные файлы, которые используют формат zip или что-то подобное. Иногда некоторые программы могут использовать sqlite, а онлайн-игры часто используют базы данных SQL.

3 - Существует много игровых движков, хотя определение "общее" является неопределенным. Известны такие, как Unreal или Source, до менее известных, таких как Panda3D или Torque. Некоторые из них в значительной степени ориентированы на 3D и оставляют большую часть остальных функций другим пакетам (или самим разработчикам игры). Большинство из них могут использоваться со скриптовыми языками или поставляться с одним встроенным. (например, UnrealScript).

4 - J2ME - не мог сказать, что не тот сектор, в котором я работаю.

5 - 3D-сеть будет интересна, когда она будет готова, но в современных играх сейчас требуются гигабайты клиентских данных. Запуск приложения в браузере не обойти эту загрузку, поэтому это не очень выгодно. И это не так долго, как посвященный 3D-рендеринга 3D. Поэтому, когда он открывает много дверей, он пока еще не изменил состояние игры для игр.

6 - Объекты 3D-искусства обычно производятся с помощью 3D Studio Max или Maya, хотя есть и другие связанные с ними инструменты.

7 - Сеть MMORPG во-первых требует понимания базовых сетей (т.е. отбросить весь HTTP-пух и перейти на уровень сокета). Начните с Beej, работайте. Оттуда вам лучше всего читать разговоры на конференциях и читать книги по массовым многопользовательским играм, связанные с тем, что вы можете найти в традиционных играх. 2 хорошими отправными точками являются Источник многопользовательских сетевых документов, а Gaffer Сеть для программистов Игр. Не ожидайте, что все поймете в первый раз, когда вы его прочитаете. И имейте в виду, что это поле с постоянными исследованиями, и проблемы еще далеко не решены. И это также поле, где "если вам нужно спросить, вы еще не можете этого сделать". Еще раз подчеркнем.

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

9 - Доступно несколько библиотек физики, в том числе Havok, ODE, Bullet, PhysX, Box2D и т.д. Некоторые из них бесплатны, некоторые - нет. Вы также можете написать свою собственную физику для простых игр, так как это не так уж сложно, и на самом деле это то, что делали до недавнего времени.

10 - Режущие ролики в реальном времени, как правило, либо анимируются в чем-то вроде 3D Studio Max, либо создаются сценарием для запуска в игровом движке.


Сложность пользовательских интерфейсов в видеоиграх дико меняется. Посмотрите на что-то вроде Peggle, по сравнению с чем-то вроде Codemaster Dirt или EA Dead Space. Поэтому каждая система реализуется по-разному.

Некоторые используют 3D-пакеты и стандартный игровой движок для анимации и отображения пользовательских интерфейсов. Другие используют Flash. Другие используют свои собственные решения. Там нет простого выбора или такого стандарта, как CSS, я боюсь!

Надеюсь, что это поможет,

-Tom


Это очень зависит от платформы, для которой вы разрабатываете. некоторые игровые движки или платформы создали встроенные платформы для создания пользовательских интерфейсов. Пример развивается для 360, где есть собственная система пользовательского интерфейса, снабженная инструментами SDK.

Однако системы, подобные этим, привязывают вас к определенной платформе, и это может быть нежелательным.

Другой альтернативой являются библиотеки с кросс-платформой, такие как Scaleform, которые предоставляют библиотеки на стороне игры для отображения элементов пользовательского интерфейса и общий способ редактирования и создания пользовательских интерфейсов на разных платформах.

licensed under cc by-sa 3.0 with attribution.