Читаем Создание игр для мобильных телефонов полностью

Игры, основанные на событиях, – это такие игры, которые управляются входящими событиями, которые могут произойти в любой момент. Такие игры менее ограничены временем по сравнению с пошаговыми играми. В этих играх любой игрок может взаимодействовать с игрой в любой момент времени – это события игры. Развитие игры определяется событиями, а не шагами. На самом деле в играх, основанных на событиях, нет понятия «шаг». Под определение «игры, основанные на событиях», попадают все игры, в которых отсутствует понятие «шаг», и таких примеров очень много – от классических «стрелялок» до стратегических симуляторов, например, «Век империй» (Age of Empires). В сетевых версиях этих игр любой игрок может действовать независимо от других игроков, создавая или не создавая новые события.

Разработка сетевого соединения для игр, основанных на событиях, значительно сложнее, чем для пошаговых игр. Важно то, что игры, основанные на событиях, требуют значительно большей пропускной способности соединения, поскольку необходимо обновлять информацию. Можно сказать, что каждая созданная вами игра, основанная на событиях, будет уникальна, поскольку при разработке соединения вам придется реализовывать нестандартные подходы. Вспомните игры Doom 3 и Halo 2 и подумайте, сколько действий в них происходит, и, что еще более важно, насколько быстро они происходят. Любое изменение в игре, вносимое каждым из игроков, должно быть отражено для других игроков в том же виде.

...

В копилку Игрока

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

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

Сетевые игры. Проблемы и решения

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

Чтобы лучше понять, о чем идет речь, рассмотрим, что может случиться, если синхронизация будет утеряна. Предположим, что два человека играют в сетевую игру, аналогичную популярной игре Diablo. Например, они бегут вместе. Пробегая мимо демона, более агрессивный игрок 1 начинает с ним сражаться. У игрока 2 мало энергии, и он решает отойти в сторону и понаблюдать. Когда игрок 1 заканчивает борьбу с демоном, игрок 2 должен быть уведомлен об этом. И не только с точки зрения удобства: все изменения в игре должны быть отражены и для прочих игроков.

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

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

Синхронизация состояния

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

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

1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных
Язык программирования C++. Пятое издание
Язык программирования C++. Пятое издание

Лучшее руководство по программированию и справочник по языку, полностью пересмотренное и обновленное под стандарт С++11!Р'С‹ держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под стандарт С++11. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. Р' соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать РёС… наилучшие СЃРїРѕСЃРѕР±С‹ применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.Стенли Р'. Липпман работал старшим консультантом в Jet Propulsion Laboratory, архитектором РіСЂСѓРїРїС‹ Visual С++ корпорации Microsoft, техническим сотрудником Bell Laboratories и главным инженером- программистом по анимации в кинокомпаниях Disney, DreamWorks, Pixar и PDI.Р–РѕР·и Лажойе, работающий ныне в кинокомпании Pixar, был членом канадской РіСЂСѓРїРїС‹ разработчиков компилятора C/C++ корпорации IBM, а также возглавлял рабочую группу базового языка С++ в составе международной организации по стандартизации ANSI/ISO.Барбара Э. Му имеет почти тридцатилетний опыт программирования. На протяжении пятнадцати лет она работала в компании AT&T, сотрудничая с Бьярне Страуструпом, автором языка С++, и несколько лет руководила РіСЂСѓРїРїРѕР№ разработчиков С++.• Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования• Р

Барбара Э. Му , Жози Лажойе , Стенли Б. Липпман

Программирование, программы, базы данных