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

Мышление письмом

Из манги [Bakuman](https://en.wikipedia.org/wiki/Bakuman "Bakuman")

Из манги Bakuman

Мышление письмом — это практика перевода своих мыслей в письменную форму.

То, чем я преимущественно занимаюсь в этом блоге, и, по мере сил, на работе.

Наконец нашёл время рассказать про эту штуку подробнее.

Далее

Feature Programming

Эссе по итогам нырка в Deep Learning, но не о DL и даже не совсем о Machine Learning, а о новой парадигме программирования, которая рождается из него.

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

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

Оговорка раз: я определённо не эксперт в машинном обучении. Эссе в большей степени отражает мой опыт и картину мира, нежели знания и понимание ML и DL.

Оговорка два: термины «признак», «feature» будут использоваться достаточно вольно.

Далее

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

Масштабная модель кораблика. [Источник](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

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

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

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

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

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

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

Далее