об играх, разработке и личном опыте

Избранное Все заметки GitHub icon Мой Github Обо мне
Позднее Ctrl + ↑

Подборка статей по мультиплееру

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

Также при создании онлайн игры надо будет решить кучу важных моментов: протокол, регистрация и синхронизация игроков, защита от читеров и ботов, лаги, пинг, предсказание, и т. д. И это всё надо учесть как на сервере, так и на клиенте. Да, уже есть готовые фреймворки и онлайн сервисы, где всё это реализовано с примерами клиентов на разных языках и платформах. И в некоторых статьях про это тоже есть.

Ниже небольшая подборка статей и видео, которые ввели меня в курс дела и теперь почти на все эти вопросы, я нашёл ответы.

Генерация документации C# проекта

Как вы комментируете свой код?
Или так: вы комментируете свой код? :)

В своих Unity проектах я использую XML документацию. Это позволяет редактору кода или IDE использовать IntelliSense — всплывающие подсказки, автодополнение кода и т. п.

Для Visual Studio Code есть плагин в маркете C# XML Documentation Comments. Достаточно написать /// (три слеша) и плагин сгенерирует комментарий в нужном формате. Это удобно, это правильно, так надо делать :) В смысле, комментировать код.

Потом, с помощью таких XML комментариев можно сгенерировать документацию всего проекта. Например, с помощью Doxygen. Скармливаем Doxygen папку со скриптами и на выходе получаем что-то такое:

HTML документация

Riddut. Возвращение.

В 2015 году я сделал для себя небольшой плагин для браузера — он вырезал из ленты ВК и ФБ ненужные мне записи по стоп-словам. Всё работало очень просто: находил в ленте слово и удалял пост.

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

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

Riddut

Так называется расширение. Да, оно ограждает от нескончаемого потока информационного шума. Это такой персональный AdBlock для контента.
Вот что умеет:

  • удалять любое упоминание стоп-слова на любом сайте
  • удалять посты и рекламу из соц. сетей Фейсбук, ВКонтакте, Одноклассники, Твиттер по ключевым словам
  • удалять позиции в выдаче и рекламу поисковых систем Яндекс, Гугл, Бинг
  • фильтровать дозагруженный контент
  • работать с белыми списками сайтов
  • понимать русскую и английскую морфологию (не полностью)
  • синхронизироваться между браузерами
  • показывать красивую статистику «сэкономленного» времени :_)

Сейчас всё это дело в бета версии, так что, если расширение окажется вам полезным — напишите на mail@mopsicus.ru, что добавить, убрать, исправить, улучшить. Захотите поучаствовать? Буду рад.

Есть версии для Chrome, Safari и Opera. С Firefox пока не разобрался в чём проблема, но думаю решу.

Подробнее на https://riddut.mopsicus.ru

Заметка чтобы попереживать. Да, расширение отправляет на сайт слова, чтобы с помощью библиотеки морфологии, получить в ответ все его формы и отфильтровать страницу. Ещё оно скачивает актуальные данные по вёрстке. Это всё. В любом случае, всё что отправляет и получает расширение можно посмотреть через консоль. Если вас это не устраивает, что ж, вы можете не использовать моё расширение :)

Riddut — это не баннерорезалка. Удаление некоторой рекламы, это приятный бонус, а не основная функция. Но вы легко можете использовать и то и другое вместе.

Видео по вторникам #6

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

Ещё видео с лекционного дня по игровой индустрии в ВШБИ

Unity blur effect и 2 камеры

В этом примере, я собрал сразу два интересных момента:

  1. как сделать размытый фон
  2. как использовать сразу 2 камеры

Для чего это может понадобиться? Например, чтобы одна камера была для игры, с настроенными пост эффектами, другая для интерфейса. Или чтобы сделать вот такой эффект размытия. В общем-то, можно и 3 камеры использовать. Зависит от потребностей и фантазии...

Фокус в том, чтобы настроить камеру на рендер только нужного слоя.
Как было сделано в этом примере:

  • Объекты или контейнер которые должны быть размыты, находятся в слое Blur
  • Blur camera рендерит только слой Blur (Culling Mask)
  • Для Main camera этот слой отключён, стоит флаг Depth only и глубина больше, чем у Blur camera
  • Ну и на Blur camera висит собственно скрипт размытия

По такому же принципу можно одновременно и 3 камеры сделать. Если потребуется.

Исходник на Github

Unity android plugin + onActivityResult

Автор приводит пример, как он решил вопрос с обработкой onActivityResult в андроидах плагинах для Unity. Создаёт отдельный активити, там перехватывает и завершает. Норм решение.

Ещё можно сделать специальный плагин который будет наследоваться от UnityPlayerActivity и прописать его в манифесте, чтобы он запускался первым. Там тоже можно переопределить onActivityResult.

Ну и ещё как вариант, запускать во фрагменте (fragment) и обрабатывать там.

2018   android   plugin   unity   ссылки
2018   unity   видео   с#

Unity на Linux

Оно работает!

Всмысле не оболочка Unity, а редактор Unity :)
На выходных решил проверить, как там Ubuntu и всё «вот это вот с ней»... Оказалось, что всё хорошо-то. Всё работает, обновляется, есть куча разного софта, Unity в конце концов.

Последний раз я ставил какой-то Linux года 3-4 назад, но как-то не пошло. Даже не знаю почему. Потом пересел на MacOS и забыл про Linux и Windows. И вот — Ubuntu 16.04 LTS. Полёт нормальный. Оборудование на ноутбуке определилось, тачпад, камера, звук и т. д. Конечно, я сразу загуглил «ubuntu после установки» и проделал несколько настроек, но в целом — всё норм. Почему Ubuntu? Я не разбираюсь в 100500 дистрибутивах, да и не охота как-то, поэтому выбрал, тот что на слуху.

Так вот, по поводу Unity. Оказывается сборки под линукс делаются регулярно. И последняя версия которую я скачал и установил Unity-2017.3.0p2, вполне себе работает. Правда, я пока ничего не пробовал на ней сбилдить, но обязательно проверю :) Версия под линукс всё ещё в бете, поэтому возможны косяки. Но я к этому готов.

VSCode тоже есть под линукс и отлично работает. Думал ещё SourceTree поставить, но разработчики не планируют её выпускать для линукса. Жаль конечно, но на форуме где обсуждалось (и осуждалось) это решение, я нашёл пост про GitKraken. И, он очень даже хорош! Также есть аналог маковского homebrew — linuxbrew.

В общем, линукс — это не страшно и не больно :_) На нём даже игры делать можно...

Как добавить фреймворк в секцию Embedded в XCode

Этой возможности не было до Unity 2017. Надо было вручную или сторонними средствами после билда проекта добавлять нужные фреймворки. ORLY?
Теперь же, с помощью AddCopyFilesBuildPhase это сделать можно. Последний параметр говорит об этом:

The «subfolder spec». The following usages are known: «10» for embedding frameworks; «13» for embedding app extension content; «16» for embedding watch content.

Готовый пример

А ещё можно подключить UnityEditor.iOS.Xcode.Extensions и использовать AddFileToEmbedFrameworks.

Но, они до сих пор так и сделали возможность добавлять нужные локализации в XCode проект... :(

2018   ios   iphone   unity

Библия free2play

Почитал библию free2play. Определенно есть полезная информация. Для тех кто только начинает делать игры — must read, потому что там не только про f2p. Например:

  • с чего начать
  • основное правило: LTV должен быть больше CPI
  • «дефолтные» показатели ретеншн и монетизации
  • игровой цикл: action → reward → investment → trigger
  • игровые сессии и их продолжительность
  • экономика игры

Главы небольшие, читается легко + в каждой главе есть ссылки на другие интересные и полезные статьи, книги и видео на Youtube.

Ранее Ctrl + ↓