Ранняя альфа-версия игры Galaxy Boom mini, декабрь 2017: Скачать (8mb)

28 августа 2019

Приветствую тебя, мой безмолвный читатель. Рад сообщить, что процесс разработки игры доведен до первой обозначенной нами контрольной точки. Прошло каких-то несколько месяцев, и вот уже мы имеем возможность двигать по экрану первый квадратик. Это, несомненно, успех. Такого результата можно было бы достичь намного раньше, если бы перед нами не встала необходимость разработки крупных модулей UI, ECS и Perfect Engine, работу над которыми мы планировали проводить значительно позднее. Однако, их наличие необходимо для реализации заготовки крупного проекта, чем на данный момент и является наша тестовая программа.

В этом сообщении я опишу структуру проекта, а ниже, по традиции, выложу ссылку на саму программу.

Состав игры

Графический движок Perfect Engine

Основные моменты, касающиеся новой версии графического движка Perfect Engine, уже были описаны в одном из сообщений выше. Конечно, за это время в нем произошло много структурных изменений (например, было введено понятие «Слой»), но здесь я коснусь этого вопроса поверхностно, надеясь в будущем посвятить описанию движка отдельное сообщение.

- 14 -
20 августа 2019: Иллюстрация «Позитрон»

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

Теперь же мы рады представить новую историю — второстепенную, но не менее важную для мира Galaxy Boom — историю нашего нового персонажа, Позитрона, повествующую о защите космических платформ от первых нападений войск Бета. Позитрон — робот, пытающийся найти свое предназначение, определить, кем он является и как может послужить силам Альфа в борьбе с общим врагом. Неизгладимое впечатление на этого персонажа произвела его краткая встреча с Лучом во время одной битвы, благодаря которой ему стали открываться некоторые необычные свойства окружающих его предметов.

Подробнее о персонаже и об иллюстрации

- 13 -
14 июля 2019

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

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

- 12 -
14 мая 2019

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

Но и по текущему проекту тоже было внесено немало доработок. Я не буду описывать их все, так как сейчас мы готовим крупное обновление для этого блога, в котором будет описана структура вообще всего проекта вместе со схемами — все, что есть на данный момент, и этого уже достаточно. Хотя, на вид все очень просто — квадратик бегает по экрану и стреляет в другой квадратик, который стоит на месте. Казалось бы, работы на день, но, вместе с тем, есть очень широкий функционал, который уже сейчас позволяет быстро реализовать довольно сложные вещи: Р — Расширяемость.

- 11 -
6 мая 2019: Перевод статьи о хронологической модели программирования

Занимаясь изучением вопросов реализации сетевой поддержки для игры, а также, сопутствующими темами о лагокомпенсации и оптимизации, мы нашли англоязычную статью авторов Cheryl Savery и T. C. Nicholas Graham, в которой описана инновационная хронологическая модель программирования. По заверениям авторов, такая модель программирования обеспечивает встраивание времени как некоторой основополагающей сущности в сам принцип построения программы (или в данном случае многопользовательской игры), что дает широкие возможности для программирования сетевых взаимодействий между клиентами и значительно упрощает реализацию множества алгоритмов лагокомпенсации.

Данная модель была разработана специально для многопользовательских сетевых игр. В ходе её проектирования авторы реализовали некий фреймворк, так называемый Janus Toolkit, название которого аллегорически представляет возможности программистов получать значение игровых параметров из любого момента времени — настоящего, прошедшего или будущего, подобно персонажу римской мифологии Янусу, видящему прошлое и будущее. Этот фреймворк написан на языке С# с использованием сетевой библиотеки Lidgren.

- 10 -