Пользователь
53,8
рейтинг
16 декабря 2015 в 09:54

Разработка → Программирование многопользовательских игр

Добрый день, Хабр!

Мы только что выпустили книгу по Юнити, и нам стало интересно насколько вообще актуальна тема программирования игр. Казалось бы книг на эту тему должно быть выпущено огромное множество, но это не так.

Только что вышла книга «Multiplayer Game Programming: Architecting Networked Games (Game Design)».

image

Насколько актуален ее перевод на русский язык? Подробности под катом. Ждем ваши комментарии.

Сетевые многопользовательские игры — это многомиллиардный бизнес, ведь они привлекают десятки миллионов игроков. В этой насыщенной кодами и примерами из реальной жизни книге вы сможете изучить все нюансы разработки таких игр. Авторы книги, опираясь на собственный опыт разработки игр, познакомят вас с основами построения надежной многопользовательской архитектуры. Вам предстоит познакомиться с рабочими кодами двух полноценных игр: action и стратегии в реальном времени (RTS).

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

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

О чем можно прочитать в этой книге:

  • Как сетевое окружение влияет на игры
  • Интернет-протоколы и стандарты разработки игр
  • Сокеты Беркли — самый популярный интерфейс для сетевых многопользовательских игр
  • Эффективная передача игровых данных
  • Синхронизация, ведь игроки могут жить в любой стране мира
  • Сетевые топологии для игр
  • Борьба с задержками и джиттерами, которые приводят к задержкам или потерям данных
  • Масштабирование без ущерба для производительности
  • Борьба с уязвимостями ПО и читами
  • Сетевые возможности Unreal 4 и Unity
  • Интеграция с игровыми сервисами (matchmaking, achievements и leaderboards)
  • Запуск игровых серверов в облаке

(Исходный код всех примеров на C++ доступен по адресу: github.com/MultiplayerBook)

Содержание
1 Overview of Networked Games........
A Brief History of Multiplayer Games....
Starsiege: Tribes......................
Age of Empires.......................
Summary............................
2 The Internet....................... .
Origins: Packet Switching...............
The TCP/IP Layer Cake................
The Physical Layer....................
The Link Layer.......................
The Network Layer....................
The Transport Layer...................
The Application Layer.................
NAT................................
Summary............................
3 Berkeley Sockets................... .
Creating Sockets......................
API Operating System Differences.......
Socket Address.......................
UDP Sockets.........................
TCP Sockets.........................
Blocking and Non-Blocking I/O..........
Additional Socket Options..............
Summary............................
4 Object Serialization................. .
The Need for Serialization..............
Streams.............................
Referenced Data......................
Compression.........................
Maintainability.......................
Summary............................
5 Object Replication.................. .
The State of the World.................
Replicating an Object..................
Naive World State Replication...........
Changes in World State................
RPCs as Serialized Objects..............
Custom Solutions.....................
Summary............................
6 Network Topologies and Sample Games.
Network Topologies...................
Implementing Client-Server.............
Implementing Peer-to-Peer..............
Summary............................
Review Questions.....................
Additional Reading....................
7 Latency, Jitter, and Reliability......... .
Latency.............................
Jitter...............................
Packet Loss..........................
Reliability: TCP or UDP?...............
Packet Delivery Notification............
Object Replication Reliability...........
Simulating Real-World Conditions.......
Additional Readings...................
8 Improved Latency Handling...........
The Dumb Terminal Client..............
Client Side Interpolation................
Client Side Prediction..................
Server Side Rewind....................
Summary............................
9 Scalability.........................
Object Scope and Relevancy............
Server Partitioning....................
Instancing...........................
Prioritization and Frequency............
Summary............................
10 Security..........................
Packet Sniffing.......................
Input Validation......................
Software Cheat Detection...............
Securing the Server....................
Summary............................
11 Real-World Engines................
Unreal Engine 4......................
Unity...............................
Summary............................
12 Gamer Services....................
Choosing a Gamer Service..............
Basic Setup..........................
Lobbies and Matchmaking..............
Networking..........................
Player Statistics.......................
Player Achievements..................
Leaderboards........................
Other Services........................
Summary............................
13 Cloud Hosting Dedicated Servers..... .
To Host or Not To Host................
Tools of the Trade.....................
Overview and Terminology.............
Local Server Process Manager...........
Virtual Machine Manager...............
Summary............................
Appendix A A Modern C++ Primer...... .
C++11..............................
References..........................
Templates...........................
Smart Pointers........................
STL Containers.......................
Iterators.............................
Книга по многопользовательским играм

Проголосовало 476 человек. Воздержалось 80 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

@ph_piter
карма
60,0
рейтинг 53,8
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (15)

  • +1
    В случае, если решите переводить, сколько времени это обычно занимает?
  • +4
    Я правильно понимаю что вопрос скорее о том сколько времени проходит от начала перевода до появления книги в продаже? Примерно 3 месяца из которых около месяца книга находится в типографии.
    • 0
      Вообще верно, спасибо
  • 0
    Интересно если бы оглавлении ещё и номера страниц были. Чтобы понять сколько какая глава занимает.
    • 0
      В оригинальном издании 384 страницы, всего 13 глав, получаем в среднем меньше 30 страниц на главу. Только, что это дает?
      • 0
        Вот поэтому и хочется знать сколько на самом деле а не в среднем. Скажем вторая и третья глава уже были неоднократно прочитаны в других источниках, а вот 10 и 11 было бы интересно почитать. А может оказаться что 11 глава из 4 страниц. В то время как 2 и 3 допустим занимают 100. То есть хочется понять сколько какой теме уделено места.
  • 0
    Такое ощущение, что геймдев только из юнити и состоит
    • +1
      Все это потому что Unity/Unreal позволяют сделать играбельный прототип быстро и в одиночку без нужды разработки кастомного движка с нуля. Обычно, если нет какого-то готового решения, чтобы написать что-то приходится тратить сотни часов на программирование самого движка, что достаточно далеко от гейм дизайна, а Unity/Unreal обладают достаточным количеством инструментов для того, чтобы на коленке собрать какой-то концепт и проверить его на «наличие Фана».
      • 0
        А как же тот же Haxe с его HaxePunk, Love2D и миллион еще других решений без юньки?
        • +1
          Не работал с Love2D (но слышал про этот движок), но знаком c Haxe, HaxePunk, HaxeFlixel, OpenFL и так далее, занимался этим какое-то время. Это весело и интересно, но с Unity всё намного проще. Меньше настройки проектов через код и «настроечные» файлы, очень простой функционал для создания рабочего прототипа, да и язык другой учить не всегда позволят те или иные причины. Я уверен, знающие и привычные к этому люди могут написать много вариантов автоматизации тех или иных процессов, но для новичков в некоторых случаях информации просто не хватает (видимо из-за менее многочисленной комьюнити и отсутствия средств на поддержку обучающих материалов)

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

          У меня OpenFL например ассоциируется больше с каким-то «гиковым» вариантом создания игр, это интересно и отчасти необычно, но намного проще то же самое сделать в том же Unity.

          К слову, сейчас я бы с удовольствием почитал бы статьи про Cocos2Dx
    • 0
      Что интересно, судя по оглавлению и примерам, эта книга не про Unity и даже не про Unreal Engine.
  • 0
    Скажите, пожалуйста, я не совсем понял, а в книге рассматривается разработка игр с единым авторитетный сервер?
  • +1
    С радостью бы прочел эту книгу и на английском. Кстати, этого варианта ответа в poll'е как раз и нету…
  • 0
    Очень нужна, с радостью куплю и почитаю
  • 0
    Сокеты Беркли — самый популярный интерфейс для сетевых многопользовательских игр

    Интересно, а какие еще есть варианты? Как существовавшие в прошлом, так и живущие сейчас. Вроде, прохе концепции сокета («дырки» с каналом к другой «дырке») проще быть не может, чего тут еще придумывать?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.