Макросы SugarCube 2 для диалогов

В своей игре «Заповедник» — текстовых sci‑fi приключениях Маши Ежевикиной в духе Булычёва — я активно использую диалоги. Маша и Ромка постоянно болтают — по делу и просто так. Для книги правила оформления диалогов понятны: каждая реплика — с новой строки, с чёрточки. Я попробовал делать так же в игре — и это быстро превратилось в… книгу. А мне нужна игра! Эксперименты с диалогами Путём нескольких экспериментов я пришёл к такому варианту: диалоги выводятся блоками с небольшими иконками. Выглядит это вот так: ...

20 мая 2026 г.

Пишем код для Unity3d в Sublime Text 3

Необходимость использовать MonoDevelop — пожалуй, худшая часть разработки игр под Unity. Для пользователей Windows теперь есть альтернатива: они могут использовать Visual Studio. Что делать счастливым обладателям Mac? Переключаться на Sublime Text. Правда, в сети не так много информации о том, как это сделать. Я потратил достаточно много времени, чтобы разобраться, как настроить автодополнение для C# в Sublime Text. В итоге я нашёл достаточно простой путь, требующий всего трёх вещей, установленных на Mac: ...

22 июля 2016 г.

TrueType шрифты в LibGDX

LibGDX — прекрасная библиотека. Её очень легко использовать, хотя в ней есть некоторые аспекты, которые не так просты и понятны. Шрифты — один из примеров. Я провёл много часов, прежде чем нашёл решение, при котором шрифты и на десктопе, и в мобильных телефонах выглядят пристойно. Я уже писал, что у меня получилось добиться результатов с Distance Field, но я ошибался. Заставить хорошо выглядеть удалось только TTF. Забудьте о bitmap‑шрифтах. На попытки заставить их выглядеть пристойно на всех девайсах уйдёт уйма времени. Результат при этом будет более чем посредственным — даже несмотря на то, что это более или менее рекомендованный путь. Но всё‑таки, если у вас не сотни шрифтов, лучше использовать TrueType Fonts. ...

14 июля 2016 г.

RoboVM закрылся. LibGDX мигрирует на Multi-OS Engine от Intel

RoboVM — проект, позволявший запускать Java‑код на iOS, — закрылся. Под ударом оказались все, кто использовал LibGDX для мобильных игр. Замену нашли быстро: LibGDX будет использовать Multi‑OS Engine от Intel. Тем не менее это хороший повод обсудить зависимости в библиотеках. 15 апреля пользователи RoboVM получили «письмо счастья»: проект закрывается. Судя по объяснению в блоге проекта, основная причина закрытия — действия Microsoft с Xamarin. В том, что теперь кроссплатформенную мобильную разработку на Java ждут трудные времена, не поспоришь. Xamarin — действительно отличная альтернатива. ...

25 апреля 2016 г.

Масштабируемые шрифты в LibGDX

Обновление 2016‑07‑14: Я всё‑таки нашёл способ работать с TTF‑шрифтами. Работать со шрифтами в LibGDX оказалось неожиданно сложно. Создать растровый шрифт проблем нет, но вот заставить его масштабироваться под разные разрешения — реальная проблема. Более или менее рабочая практика — использовать Distance Field. После этого нужно ещё пробросить шрифт в описание скина. Попытка использовать TTF провалилась. Настроить её в LibGDX проще простого, но вот результат получается ужасным. Возможно, я не до конца разобрался с этим процессом. Если у кого‑либо из читателей есть опыт генерации красивых шрифтов из TTF, поделитесь в комментариях. ...

14 марта 2016 г.

Сохраняем JSON в LibGDX

Предыдущую неделю просидел дома. Из‑за высокой температуры особо на рабочих задачах сконцентрироваться шансов не было. Но вот сторонними проектами удалось позаниматься. В очередной раз порадовался связке LibGDX и Kotlin. Задачка такая: прочитать список объектов из JSON. Я уже приготовился писать много строк кода. Оказалось, что инструменты чтения JSON уже встроены в LibGDX. Это немного странно. Я ожидал, что для этой задачи потребуется сторонняя библиотека. Хотя, с другой стороны, скин для UI описывается JSON, так что, по сути, разработчики LibGDX вытащили используемые хелперы в публичный API. ...

24 февраля 2016 г.

Libgdx Impressions

Мой первый проект на LibGDX вышел на завершающую стадию. Ещё осталось сделать достаточно много для подготовки к запуску, но я уже могу сравнить эту библиотеку с Unity и Unreal Engine. Пару месяцев назад, когда я выбирал, на чём делать маленькую 2D‑игру, я очень долго колебался между Unity и Unreal Engine. С Unity у меня уже был опыт работы: пару проектов я на нём завершил. Основная проблема — отсутствие нормальной поддержки 2D. Она есть, но какая‑то несовершенная. Когда‑нибудь я обязательно про это напишу, но сегодня оставлю этот тезис без доказательств. ...

23 ноября 2015 г.