Search
Write a publication
Pull to refresh
66
0
Андрей Мишкинис @AndreyMI

Indie Game Developer

Send message

А вот такое как раз можно решать с помощью distance field с диагональным манхэттеном :)

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

Если можно без него обойтись, то зачем его использовать? На самом деле, даже без «если», просто нельзя его использовать.

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

Сложно представить, как бы выглядела эта валидация. Или вы хотите eval еще и на сервере запускать?

Спустя год начал разрабатывать пошаговую стратегию, в которой такой метод был бы идеальным для реализации сохранений и сетевого режима (пересылка сохранений от игрока к игроку)

Использование eval для пересоднания объектов гипотетически небезопасно

То есть, в принципе, игру можно модифицировать таким образом, чтобы иногда пропускать ход противника и выполнять два хода подряд. :)

Можно же просто заменить eval на имена функций, которые будут выполнять "десериализацию" существующих объектов?

Выше уже отвечал, что таким и схожими подходами пользуются в редакторах для совместной работы в реальном времени (realtime collaborative editor) или в одноранговых (peer-to-peer) редакторах, когда надо учесть все свои и чужие изменения, а единого места для синхронизации нет.

Например, Figma использует похожий подход.

Таким и схожими подходами пользуются в редакторах для совместной работы в реальном времени (realtime collaborative editor) или в одноранговых (peer-to-peer) редакторах, когда надо учесть все свои и чужие изменения, а единого места для синхронизации нет.

Например, Figma использует похожий подход.

Пример из моего проекта приведен просто для наглядности.

Я формировал суффикс на старте приложения и не менял его по ходу работы приложения. Коллизии возможны только если 2 клиента сгенерируют одинаковое случайное число и будут запущены в одну и ту же секунду. Для конкретно этого проекта это был приемлемый баланс между вероятностью коллизии и размером суффикса.

Вариантов как и когда его формировать уйма. Можно генерировать один раз на старте или на каждую запись. Хоть GUID приписывай, все дело в балансе уникальности и размера.

Чтобы привязаться к игровому времени. На скорости это не так очевидно, а вот со стрельбой становится понятнее, ведь мы можем наспамить 100500 событий выстрела за условные 16мс.

Reddit славится своими суровыми правилами на self promotion: на 1 пост про себя надо написать минимум 9 отвлеченных.
Да, шутка действительно потерялась. Спасибо!
Это можно отнести к пункту 2 в партнерских отношениях (про всадника с логотипом Levi's jeans)
Продажа данных
В оригинальной статье описан крайне неэтичный и, скорее всего, незаконный сценарий использования. Может быть можно продавать какую-нибудь статистическую информацию в агрегированном виде?

Аренда доступа к пользователям
Этот способ используется часто и не только в играх. Например, вы можете за денежку (или за кросс-промо) разместить рекламу чужой игры в сообществах своих игр.
Более того, для многих из перечисленных способов можно сказать: «при чем тут игры?»
Не стоит использовать статью как гайд. Лучше считать ее справочником и разумно использовать только те методы, которые подходят для вашей игры.
Автор статьи поставил перед собой цель собрать как можно больше вариантов монетизации игр, и я считаю, что у него это получилось.

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

Про все игры на обложке сказать не могу, но, например, Supergiant Games кроме обычной продажи раздавали свои игры бесплатно с консолями XBox One и PS4, участвовали в Humble Bundle распродажах, продавали DLC Soundtrack. Они запустили Bastion во всех магазинах, даже в Google Chrome, где раздавали бесплатную демо-версию. Они продавали кучу мерчендайза: обои, рингтоны, футболки…

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

На вашей же картинке:
image

Написано "List is Empty", и кнопочки "±" намекают на то, что можно добавить несколько получателей мышкой.
Да, статьи рассчитаны на самых новичков. Мне понравились поясняющие видео.
Я и сам не так давно начал изучать все эти технологии real-time render'ов.
Спасибо за ссылки!
Опубликована заключительная часть статьи: Решения и заключение

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity