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

Жизнь и работа с моделями

Масштабная модель кораблика. [Источник](https://www.modelboats.co.uk/news/article/puffin/525).

Масштабная модель кораблика. Источник.

Продолжение жизни и работы с ошибками — обсудим штуки на уровень выше.

Эссе получилось большим, но точно найдутся упущенные моменты. Если я что-то забыл — пишите. Буду благодарен и за более интересные примеры.

Итак. Давайте подумаем, как мы предсказываем будущее всякое.

Предсказаниями мы занимаемся постоянно — это буквально суть нашего существования:

  • Переходя из комнаты в комнату мы знаем предполагаем, что мебель будет расставлена аналогично прошлому посещению.
  • В холодильнике мы ожидаем увидеть еду, которая, по нашему прогнозу, утолит голод.
  • Мы ожидаем, что участники дорожного движения будут вести себя в рамках общеизвестных правил. Если машина даёт сигнал поворота, мы прогнозируем, что она повернёт.

Это примеры «гарантированных» предсказаний, но даже они могут не исполнится:

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

Фактически, мы никогда не знаем актуальное состояние мира вокруг нас:

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

Мы даже не обладаем всей информацией о прошедших событиях.

Поэтому.

Каждое наше решение и действие основывается на предположениях о прошлом, настоящем и будущем.

Штуки, которыми мы создаём предсказания, называются моделями.

Далее

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

Программист думает о путях, которыми ходят байты. [Демон сидящий](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. Интересное

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

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

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

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

Далее