Как стать автором
Обновить
7
0
Сергей @AlmazDelDiablo

PHP-кодер из Яндекса

Отправить сообщение
Очень поверхностный пост. Это я про оригинал. И никакого рецепта вхождения в потом в себе не несёт. Да и Михай писал эту книгу, как описание потока на живых примерах. С доказательствами на разных аспектах жизни, от детских игр до секса и научной деятельности. Безумно интересная книга, но никаких «волшебных» рецептов в себе не несёт.
Не смотрю. На современных устройствах десятки гигабайт памяти, нефиг им простаивать.
Спасибо за статью.

Вы замеряли производительность на мобильном устройстве?
Я плохо выразился. «еще один стандарт» — это ироничная картинка, применительно к «еще одному» шаблону проектирования. )

Почему-то я волнуюсь после публикации и не могу с первого раза правильно воспринять иронию)

Микросервисы — в общем плане (есть другой термин более абстрактный, из головы сейчас вылетело) это сущность выполняющая узкую работу.

Будет круто, если вы вспомните и поделитесь термином, потому что теперь интересно, как это называется.
Можете указать на место, где упоминается, что AMVCC — стандарт? Скорее всего, я что-то неправильно перевёл.

Я бы назвал компонент микросервисом. Всё-таки компонент — это компонент. А микросервис я себе представляю, как изолированную программу с web- и/или rpc- интерфейсом. Игра же — монолит. Поправьте, если я не прав, мне роднее и привычнее веб.
Мне показалась интересным организация MVC на уровне объектов в дереве EC. Я с такой практикой никогда раньше не встречался, поэтому решил поделиться с Хабром. Да и от микросервисов тут разве что эвент-шина.
А как в те времена на Хабре обсуждали, что вот было бы здорово, будь все браузеры на Хромиуме…
А в чём именно они не дружат? Задаю вопрос, как человек, планирующий в течение года познакомиться с UE4 и никогда не использовавший CLion.
Надеюсь, я застану на своём веку полноценную виртуальную реальность, близкой к «Матрице» — с полным погружением, электродами в мозгу и внутривенным питанием.
Спасибо большое! Так бы прошляпил этот момент.
Сейчас думаю над тем, что использовать в своём проекте: завязываться ли полностью на Soomla или через него делать только внутриигровые покупки. И есть несколько вопросов по теме:

  • Есть ли у Soomla поддержка нативной авторизации на iOS? К сожалению, я сам не пользовался никогда этой платформой, поэтому слабо себе представляю, что там используется для авторизации по умолчанию, т.е. какой аккаунт есть у 100% пользователей. На Android есть аккаунт Google, а на iOS, насколько я знаю, iTunes. Но поддержку авторизации через iTunes/Game Center я в Soomla не нашёл. Не сталкивались ли вы с проблемой авторизации на iOS?
  • Имеет ли вообще смысл ачивки, прогресс прохождения и т.д. завязывать на Soomla? Или стоит через него делать только внутриигровые покупки, а ачивки и прочие прелести реализовать нативно для Game Center и Play Games?
  • Из предыдущего пункта следует вопрос: если завязываться с внутриигровыми покупками на Soomla, то как восстанавливать покупки игрока, перешедшего на другое устройство (с той же ОС, что и предыдущее)?
При реализации пулов сталкивался с такой проблемой, что при деактивации анимированного объекта, его аниматор (в моей ситуации — анимация смерти, т.е. полного исчезновения объекта) не откатывалась, из-за чего пришлось вводить довольно костыльную штуку, что я сначала отключаю у объекта его рендеринг, откатываю анимацию (что в Юнити тоже не очень просто, ибо для этого нужно запустить анимацию на один кадр и остановить), а затем уже деактивирую сам GameObject. Не находили ли вы решения этой проблемы?

PS: а вообще, пулинг объектов — это крайне полезная вещь. Например, в моём проекте используется сборка уровня из отдельных блоков (похоже на МайнКрафт, только кубики значительно больше), причём беспрерывно: часть уровня за спиной уничтожается, а перед игроком собирается вновь. В итоге, на сцене постоянно присутствует около четырёх—пяти сотен 3D-объектов, задействованных при расчёте физики; благодаря динамическому батчину и пулингу всего, что только можно — игра с включённым попиксельным (forward) рендерингом не лагает на Андроид-устройстве 2012-го года.
В ранней Линейке, при смерти от мобов из тебя выпадала рандомная шмотка. Так что фарм ботов — тоже фарм, и тоже выгодный :) Потом, правда, эту лавочку прикрыли.
По-моему, это нередкая практика. В той же Lineage 2 на корейском оффе был разрешён бот и поставлялся вместе с клиентом игры. ИМХО, если игра работает по подписочной модели, то это крайне правильное решение: человек платит тебе и имеет право получать удовольствие от самого сока игры, а не бесконечного фарма мобов.

Да и важно понимать, что в ММО, где имеется свободное ПВП, качаться на боте всегда не получится, это лишь сгладит скуку на начальных уровнях, если тебе нужно прокачать себе доп. персонажа (новички в любом случае вынуждены качаться вручную, просто чтобы влиться в игру). Скажем так, баланс между какой-то сюжетной и познавательной частью игры для новичков, и местом баталий, драм, самоутверждения и/или заработка денег для опытных.

PS: про игры от Мейла ничего не знаю, и о какой именно мы сейчас упоминали — я не в курсе.
Как правило, жирные сборки приложений получаются, если делают поддержку Андроида (сужу только по нему, с iOS никогда дела не имел) начиная с древних версий и по последнюю существующую. Вот даже ради интереса только что проверил, скомпилировав свою игру под API Level 9 и x86 + AR Mv 7, получилось 24 мегабайта (3d игра, сделанная в Unity). Против 14 мб при компиляции под API level 21 (Android 5.0) и только x86 процессоры.
Каждый из подпроцессов съедает 0% памяти и 0% CPU, при этом все ядра компьютера загружены. По-моему, это, как минимум, странно.
Думается мне, что оптимизировать надо было код, а не пытаться его распилить на кусочки, дабы уложиться в memory_limit.

PS: а вообще, вся суть статьи сводится к тому, что ты использовал Process из Symfony.
Как раз начал изучать вопросы анти-читов для своей игры; статья очень в тему, спасибо! Кстати, не пробовали ли использовать AntiCheat Toolkit из Asset Store? Какие есть о нём отзывы?

И ещё, интересно, как бы вы стали защищать взаимодействие с внешними сервисами? Вроде покупки каких-нибудь внутриигровых ништячков или выгрузки статистики из игры.
Поиск по БД не имеет ни какого отношения к какой-то там страничке, не путайте уровни. Если чего-то нет в БД — на глобальном уровне это штатная ситуация. Если же вам где-то надо показать 404 при отсутствии чего-либо в БД, то этим должен заняться контроллер, который сделает проверку на наличие данных в БД и кинет специальное исключение, которое интерпретируется, как 404. А вот ORM/ActiveRecord ну никак не может кидать HttpException.
При этом, подобно разнице между жирным фастфудом и легким салатом с отварной курицей, игры создавали удовольствие здесь и сейчас, оставляя дурное послевкусие ничегонеделанья назавтра, разработка же поначалу может быть и не доставляла столько быстрого удовольствия, зато всю ночь после этого и следующий день я ощущал себя героем. Это было счастье куда более тонкое и долго тянущееся, более высшего порядка, если хотите.
Вы только что смогли сформулировать то, что я ощущал последние пару лет, но никак не мог описать!
Прекрасный текст! Спасибо вам :3
1

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность