Читаем Как создаются игры полностью

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

Начнем с того, что мы, надеюсь, и так хорошо знаем: игры бывают однопользовательские и многопользовательские.

• Однопользовательские приложения выполняют простую функцию: собирают действия пользователя, обрабатывают их и визуализируют результат. Так работают не только игры, но практически все программы, работающие с локальными данными. Например, программы, входящие в офисный пакет, или графические редакторы.

• Многопользовательские же игры не могут существовать без механизма связи пользователей друг с другом. Соответственно, им нужен либо какой-то метод поиска других игроков, находящихся поблизости, с помощью Wi-Fi или Bluetooth, или вообще всех игроков в эту игру через интернет.

Вариант с игроками поблизости еще можно реализовать только одним клиентским (запускающимся у игрока) приложением. И функцию сервера (приложения, собирающего и обрабатывающего данные всех игроков) будет выполнять приложение одного из игроков. Но второй вариант неизбежно порождает необходимость иметь серверное приложение, которое будет запущено на отдельно стоящем компьютере или в облаке.

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

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

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

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

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

* * *

Среди программистов можно выделить ряд специалистов.

• Специалист по клиенту занимается реализацией игровой логики и визуализации игрового процесса на стороне запускаемой у игрока программы.

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

• UI-программист занимается сборкой и настройкой интерфейсов, спроектированных гейм-дизайнерами и отрисованных художниками. Для интерфейсов важна оптимизация процессов, чтобы избежать повторения работы и добиться максимальной производительности.

Перейти на страницу:

Все книги серии Российский компьютерный бестселлер. Геймдизайн

Похожие книги

Компьютерные сети. 6-е изд.
Компьютерные сети. 6-е изд.

Перед вами шестое издание самой авторитетной книги по современным сетевым технологиям, написанное признанным экспертом Эндрю Таненбаумом в соавторстве со специалистом компании Google Дэвидом Уэзероллом и профессором Чикагского университета Ником Фимстером. Первая версия этого классического труда появилась на свет в далеком 1980 году, и с тех пор каждое издание книги неизменно становилось бестселлером. В книге последовательно изложены основные концепции, определяющие современное состояние компьютерных сетей и тенденции их развития. Авторы подробно объясняют устройство и принципы работы аппаратного и программного обеспечения, рассматривают все аспекты и уровни организации сетей — от физического до прикладного. Изложение теоретических принципов дополняется яркими, показательными примерами функционирования интернета и компьютерных сетей различного типа. Большое внимание уделяется сетевой безопасности. Шестое издание полностью переработано с учетом изменений, произошедших в сфере сетевых технологий за последние годы, и, в частности, освещает такие технологии, как DOCSIS, 4G и 5G, беспроводные сети стандарта 802.11ax, 100-гигабитные сети Ethernet, интернет вещей, современные транспортные протоколы CUBIC TCP, QUIC и BBR, программно-конфигурируемые сети и многое другое.

Дэвид Уэзеролл , Ник Фимстер , Эндрю Таненбаум

Учебные пособия, самоучители