РуЛиб - онлайн библиотека > Глейзер Джошуа > Программирование игр > Многопользовательские игры. Разработка сетевых приложений

Читаем онлайн «Многопользовательские игры. Разработка сетевых приложений»

ББК 32.988.02-018
УДК 004.738.5
Г53
Глейзер Дж., Мадхав С.
Г53
Многопользовательские игры. Разработка сетевых приложений. — СПб.: Питер,
2017. — 368 с.: ил. — (Серия «Библиотека программиста»).
ISBN 978-5-496-02290-3
Сетевые многопользовательские игры — это многомиллиардный бизнес, привлекающий десятки
миллионов игроков. Эта книга на реальных примерах рассказывает об особенностях разработки таких
игр и основах построения надежной многопользовательской архитектуры.
Вы узнаете об основах сетевого программирования с точки зрения разработчиков игр, управлении
игрой через передачу данных, сетевых обновлениях, обеспечении надежной работы и научитесь со­
здавать безопасный и масштабируемый код. Не останутся без внимания игровые сервисы и облачные
технологии.
Эта книга пригодится всем, кто хочет узнать, как создаются сетевые игры.
12+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.)
ББК 32.988.02-018
УДК 004.738.5
Права на издание получены по соглашению с Addison-Wesley Longman. Все права защищены. Никакая часть
данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может
гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные
ошибки, связанные с использованием книги.
ISBN 978-0134034300 англ.
ISBN 978-5-496-02290-3
Copyright © 2016 Pearson Education, Inc.
© Перевод на русский язык ООО Издательство «Питер», 2017
© Издание на русском языке, оформление ООО Издательство «Питер», 2017
© Серия «Библиотека программиста», 2017
Оглавление
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Кому адресована эта книга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Условные обозначения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Почему C++? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Почему JavaScript? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Веб-сайт книги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
11
11
12
12
13
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Благодарности от Джошуа Глейзера . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Благодарности от Санджая Мадхава . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Об авторах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
Глава 1. Обзор сетевых игр . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Краткая история многопользовательских игр . . . . . . . . . . . . . . . . . . . . .
Starsiege: Tribes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Age of Empires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Вопросы для повторения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Для дополнительного чтения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
17
21
27
30
31
31
Глава 2. Интернет . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Происхождение: коммутация пакетов . . . . . . . . . . . . . . . . . . . . . . . . . .
Многоуровневая модель TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Физический уровень . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Канальный уровень . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Сетевой уровень . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Транспортный уровень . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Прикладной уровень . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
32
34
35
36
40
56
69
70
78
6   Оглавление
Вопросы для повторения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Для дополнительного чтения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Глава 3. Сокеты Беркли . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Создание сокетов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Различия в API операционных систем . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Адрес сокета . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Сокеты UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Сокеты TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .