Эссе о разработке игр, мышлении и книгах

Бесконечность схем данных

Программист думает о путях, которыми ходят байты. [Демон сидящий](https://ru.wikipedia.org/wiki/Демон_сидящий) (с) [Врубель](https://ru.wikipedia.org/wiki/Врубель,_Михаил_Александрович)

Программист думает о путях, которыми ходят байты. Демон сидящий (с) Врубель

Расскажу об одной боли при разработке и проектировании ПО — преобразованиях данных между их схемами. Буду говорить о серверах, как наиболее наглядном и знакомом мне примере, но соображения можно распространить на весь софт.

Для демонстрационных целей местами может случиться некоторое преувеличение.

Рассмотрим простейший проект, этакий минимальный набор:

  • один тип клиентов;
  • один сервис;
  • одно хранилище.

Данные, соответственно, ходят в обе стороны:

  • между клиентом и сервисом;
  • между сервисом и хранилищем.

Сколько схем данных вы тут видите?

Далее

Боты и твинки в играх

ММО игра, если в ней не заниматься ботами и твинками. (с) [Rick and Morty](https://en.wikipedia.org/wiki/Mr._Meeseeks)

ММО игра, если в ней не заниматься ботами и твинками. (с) Rick and Morty

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

Предлагать идеальное решение не буду — сильно сомневаюсь в его принципиальной возможности. Вместо этого попробую выделить направления взаимодействия с проблемой.

Поскольку область большая и непроработанная, описывать направления буду разными способами: часть — высокоуровневыми соображениями, часть — декомпозицией на частные случаи. Где смогу, буду приводить примеры, но будут и места с вопросами и догадками. Сосредотачиваться на конкретном жанре также не буду — поговорим о многопользовательских играх во всём их разнообразии.

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

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

И будьте осторожны, очень много букв.

Далее

Первая кругосветка Кука: Интересное

Набросок кенгуру, [Сидней Паркинсон](https://en.wikipedia.org/wiki/Sydney_Parkinson), 1770

Набросок кенгуру, Сидней Паркинсон, 1770

Шестая и заключительная часть заметок о первом кругосветном плавании Кука.

Содержание:

  1. Контекст
  2. Политика
  3. Туземцы
  4. Кораблекрушение
  5. Потери
  6. Интересное

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

Далее

Первая кругосветка Кука: Потери

Похороны в море, Фрэнк Уильям Брэнгвин, 1890

Похороны в море, Фрэнк Уильям Брэнгвин, 1890

Пятая часть заметок о первом кругосветном плавании Кука.

Содержание:

  1. Контекст
  2. Политика
  3. Туземцы
  4. Кораблекрушение
  5. Потери
  6. Интересное

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

Из журнала можно сделать следующие выводы:

  • Главные враги человека: глупость, самоуверенность, вещества и неведомая !@#$!@$ фигня.
  • Лучшие способы снизить потери: планирование, хладнокровие, рациональное мышление, актуализация знаний.

Приведу хронологию потерь экипажа с примечаниями. Изучить её полезно даже не знакомясь с самим журналом. Потому что…  ну сами увидите.

Далее

Первая кругосветка Кука: Кораблекрушение

Индевор на берегу после крушения у Большого Барьерного рифа. Иоганн Фрич 1786.

Индевор на берегу после крушения у Большого Барьерного рифа. Иоганн Фрич 1786.

Четвёртая часть заметок о первом кругосветном плавании Кука.

Содержание:

  1. Контекст
  2. Политика
  3. Туземцы
  4. Кораблекрушение
  5. Потери
  6. Интересное

Крушение у берегов Австралии, пожалуй, самый динамичный эпизод путешествия. Возможно и самый интересный.

11 июня 1770 Индевор, несмотря на постоянные замеры глубины, внезапно налетел на рифы и прочно на них сел. Так европейцы познакомились с Большим Барьерным рифом.

Случилось это во время полной воды — прилива. При отливе положение мореплавателей могло значительно ухудшиться.

В спешке начали облегчать корабль: сбросили балласт, пресную воду, пушки (оставили 4 штуки). За час-полтора выкинули за борт 40-50 тонн груза, но всё равно не сдвинулись.

Далее