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

Buffer icon Проекты
Позднее Ctrl + ↑

Социальный рейтинг из «Черного зеркала». В Китае. Уже.

Кадр из сериала

Смысл в том, что за «плохие и хорошие» действия отнимаются и добавляются баллы в личный рейтинг. От этого рейтинга зависит, можно ли получить скидки, скорость интернета, доступ в хорошие номера отеля и т. п. Вплоть до того, выпустят тебя заграницу или нет о_О.

Китайцы движутся какими-то огромными шагами в будущее. Всё это — пугающе круто :)

Ещё недавно писали, как работает система распознавания лиц в Китае, как чувака «опознала» и задержала полиция на концерте в многотысячной толпе.

Большая статья про рейтинг на TJ

Unity Mobile Input

Выложил на Github плагин нативного ввода для мобильных устройств. Это небольшая надстройка над стандартным Unity InputField UI. Работает на iOS и Android.

Зачем он нужен:

  1. Нативное поле ввода и клавиатура
  2. Отсутствует раздражающее дополнительное поле над клавиатурой в Android
  3. Для iOS можно добавить кнопку «Готово»
  4. Настройка кнопки Return для клавиатуры: стандартная, далее, готово, поиск
  5. Для работы нужно просто повестить скрипт MobileInput на родной InputField UI

До этого, было временное решение, которое не обладало необходимыми опциями, да и ошибки были. Собственно, на то оно и временное :) Но в Unity до сих пор нет таких возможностей для ввода, поэтому пришлось сделать такой плагин.

В моей версии исправлены ошибки и отрефакторен почти весь код от старого и неподдерживаемого плагина UnityNativeEdit.

Исходники на Github

Полное руководство по продвижению

Тут выложили хорошую штуку — руководство по продвижению мобильных приложений и игр.
Бесплатное, с пошаговым алгоритмом действии: 30 статей, 20 видео, 30 кейсов.

  • Подготовка
  • Запуск продвижения
  • Монетизация
  • Кейсы
  • Бонусные материалы

Само руководство — объёмное, много полезной информации, местами устаревшей, но это не делает её менее полезной. Также, в бонусах есть полная версия книги в PDF, 4-х часовой семинар о продвижении и список отечественных паблишеров, которые могут помочь вам с продвижением приложения.

http://guide.appbrain.ru

Заметки на полях в Эгее

Прочитал недавно пост про то, как сделать заметки на полях (маргиналии о_О) у Вениамина Векка. И решил честно не воровать, а сделать сам. Собственно, там и красть-то нечего.

Получились вот такие, простые заметки на полях, в которые можно выносить свои умные мысли и комментарии.

Сделать такие же — очень просто. Нужно в своей теме оформления, добавить всего один стиль, назовём его .note, примерно с такими свойствами:

.e2-text .note {
    padding: 15px;
    float: right;
    clear: right;
    width: 25%;
    min-width: 150px;
    text-align: left;
    background-color: #f2f2f2;
    font-family: var(--smallFontFamily);
    font-size: 12px;
    position: relative;
}

Чтобы вынести часть текста в заметку справа, нужно в начале строки написать название класса, а далее через пробел свой текст:

.note Получились вот такие, простые заметки на полях...

В последних версия Эгеи уже есть три готовых к использованию класса форматирования: .foot, .lead и .loud. Об этом не написано в справке, но можно прочитать в одном из постов Ильи Бирмана.

 3 комментария    659   2018   блог

Симуляция физики в Unity

Уже на подходе Unity 2018, а ещё в текущей 2017 версии добавили возможность симуляции физики.

Т. е. можно, буквально, посмотреть как и где будут объекты через определенное количество шагов, симулировал все перемещения, столкновения и т. п.

Лучше один раз увидеть, как говорится:

Вообще, это открывает много интересных возможностей. Жаль, что вызов Physics.Simulate можно делать только в основном потоке :(

Fish shell

Только сейчас открыл для себя шел Fish.
К нему есть ещё фреймворк Oh my Fish. Смотрел до этого ZSH и другие, но этот меня зацепил одной единственной опцией — автодополнение при вводе :) Очень удобная штука. Ну ещё у него куча всяких плагинов.

https://fishshell.com

Интерполяция по нескольким точкам

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

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

Если же нужно, чтобы объект пробегал по всем точкам за заданное время, то функцию надо немного поменять и сначала посчитать расстояние между всеми точками.

public IEnumerator Move (Vector3[] positions, float time) {
	for (int i = 0; i < positions.Length; i++) {
		Vector3 startPosition = transform.position;
		float t = 0f;
		while (t < 1) {
			t += Time.deltaTime / time;
			transform.position = Vector3.Lerp (startPosition, positions[i], t);
			yield return null;
		}
		transform.position = positions[i];
	}
}
...
Vector3[] positionsArray = { new Vector3 (10f, 10f, 0f), new Vector3 (20f, 20f, 0f), ... };
StartCoroutine (positionsArray, 1f);

Это если не хочется из-за одной функции тянуть левую библиотеку в проект :) А так, DOTween решает наверно все задачи связанные с анимацией объекта.

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

Сначала TextMeshPro и Anima2D. И вот ProBuilder теперь часть Unity. Доступен бесплатно во всех редакциях. Polybrush и ProGrids тоже!

Unity скупает ассеты которые себя зарекомендовали и делает их часть движка. Это круто.

ProBuilder

Не работав раньше с такими инструментами, но скачав и потестировав, хочу сказать — это отличный инструмент для прототипирования! Быстрый и удобный.

ProGrids

Немного подробнее с гифками, в блоге Unity: https://blogs.unity3d.com/ru/2018/02/15/probuilder-joins-unity-offering-integrated-in-editor-advanced-level-design/

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

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

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

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

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

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

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

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

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

HTML документация
Ранее Ctrl + ↓