Серия «Игрушечный программист - мой опыт Construct 3»

2

Часть 13. Оформление формул - Порядок в проекте Construct 3 - собственный взгляд

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.


Когда в коде встречаются формулы или составные параметры, то разделяю их пробелами для лучшей читаемости.

Пример:

Часть 13. Оформление формул - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Программирование, Construct 3, Порядок, Формула

Оформление формул.

Часть 13. Оформление формул - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Программирование, Construct 3, Порядок, Формула

Оформление формул.

Здесь пробел есть как между операциями (+, -, *, /), так и между параметрами массивов ArrayFragments.At,(0, 0).

Так глаз быстрее выхватывает нужные блоки, чем если лепить всё непрерывным потоком.


Как обычно, Телеграм:
https://t.me/toyprogrammer

1

Мои игры стали появляться на Пикабу.Игры

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.

Некоторое время назад на Пикабу появился свой раздел с играми.

Долго я собирался, но всё же собрался предложить туда несколько своих старых игр.

Не сильно надеялся, что всё получится, но вроде получается.

Одна игра (Пятнашки с Евой - Таблица умножения) уже лежит в разделе Головоломок.

https://games.pikabu.ru/game/pyatnyashki-s-evoy

Единственная пока оценка у игры - "Так себе", что впрочем не удивительно. Делал её ещё в самом начале изучения Construct 3.

Ещё несколько игр на подходе - сейчас проходят тестирование.

Тоже в основном незатейливые, картинки рисовал сам либо тырил с бесплатных сервисов. Бесплатную музыку брал у Кевина Маклауда.

В общем, просто подумал, что наверное нужно поделиться этим маленьким успехом.

Вдруг кто-то тоже пилит свои игры и пока только подумывает, куда бы их выложить.


Как обычно, Телеграм:
https://t.me/toyprogrammer

6

11. Режимы игры - Порядок в проекте Construct 3 - собственный взгляд

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.

1) В играх стараюсь использовать принцип Final State Machine.

То есть, в каждый момент времени игра находится только в одном состоянии.

2) Для этого использую переменные mode (текущий режим) и modePrevious (предыдущий режим).

К примеру, на стартовом экране у нас игра запускается в режиме "start".

11. Режимы игры - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Разработка, Construct 3, Порядок, Режим

Режим start

В этом режиме кнопка Поделиться будет работать.

11. Режимы игры - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Разработка, Construct 3, Порядок, Режим

Кнопка Поделиться

3) Когда игрок нажал на кнопку Поделиться, происходит следующее:

11. Режимы игры - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Разработка, Construct 3, Порядок, Режим

Включаем окно Поделиться

  • в переменной modePrevious запоминаем то, что было в mode,

  • переменной mode задаём состояние "share".

  • появляется окно Поделиться

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

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

4) Когда игрок закрывает окно Поделиться, возвращаем предыдущий режим.

11. Режимы игры - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Разработка, Construct 3, Порядок, Режим

Закрываем окно Поделиться

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

Как обычно, Телеграм:
https://t.me/toyprogrammer

Показать полностью 3
3

12. Слои - Порядок в проекте Construct 3 - собственный взгляд

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.

Слои старюсь называть типовыми именами c маленькой буквы.
Типовой набор для игрового экрана.

12. Слои - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Construct 3, Порядок, Слои

Слои в проекте Construct 3

  • transition - непрозрачный слой для плавного затемнения при переходах между экранами. Для этого использую специальную функцию.

  • windows - окна, которые нужно показать поверх остального интерфейса,

  • windowsBackground - фон для окон,

  • gui - кнопки, тексты и т.д.

  • objects - игровые объекты: персонажи, оружие, предметы. спецэффекты,

  • buttons - необязательный слой, который был нужен именно в том проекте, из которого сделан скриншот.

  • background - всевозможные фоны на заднем плане.

На некоторых экранах могут быть не нужны слои типа objects, или наоборот, нужно ещё +100500 дополнительных слоёв.

Но, как правило, везде есть transition, gui и background.

Как обычно, Телеграм:
https://t.me/toyprogrammer

Показать полностью
2

10. Комментарии - Порядок в проекте Construct 3 - собственный взгляд

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.

10. Комментарии

1) Комментарии на русском добавляю к каждому действию и к каждой группе условий.

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

10. Комментарии - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Проект, Браузерные игры, Construct 3, Разработка, Комментарии

Комментарии на русском.

2) Когда хочется визуально выделить какие-то блоки кода внутри группы, не создавая новую группу, добавляю дополнительные строки комментариев.

В частности, если используется объёмное условие «Если» - «То», «Иначе» - «То», нельзя заключить в отдельные группы блоки «Если» - «То» - это сломает логику игры.

Поэтому приходится как-то визуально выделять эти блоки с помощью комментариев.

10. Комментарии - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Проект, Браузерные игры, Construct 3, Разработка, Комментарии

Выделение комментариев.

Как обычно, Телеграм:
https://t.me/toyprogrammer

Показать полностью 1
1

9. Функции - Порядок в проекте Construct 3 - собственный взгляд

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.

Функции

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

2) Имена функций пишу на английском с выделением первой буквы каждого слова.

9. Функции - Порядок в проекте Construct 3 - собственный взгляд Construct 3, Функция, Браузерные игры, Gamedev, Порядок

Функции в Construct 3.

3) Название функции дублирую в названии её группы - чтобы проще было искать по закрытым группам.

Как обычно, Телеграм:
https://t.me/toyprogrammer

3

8. Группы - Порядок в проекте Construct 3 - собственный взгляд

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.


Итак, группы в Construct 3.

1) Все события раскидываю по группам и подгруппам, чтобы всегда представлять себе, где искать нужную часть кода, если она вдруг потерялась.

Или свернуть временно ненужные группы.

8. Группы - Порядок в проекте Construct 3 - собственный взгляд Construct 3, Gamedev, Браузерные игры, Проект, Группа

Группы в проекте construct 3.

2) Группы называю по-русски, чтобы быстро понять, что они содержат. С английским дружу постольку-поскольку

3. Группы верхнего уровня выделяю прописными буквами и дополнительными символами, чтобы сразу бросались в глаза.

В общем, тут всё просто, но группы меня очень выручают в плане ориентации в структуре проекта.

Как обычно, Телеграм:
https://t.me/toyprogrammer

Показать полностью 1
3

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3.

Сегодня напишу немного об управлении объектами в Construct 3.

1) Для всех объектов создаю 3 разных подкаталога:

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Порядок, Объект, Массивы, Переменные, Длиннопост, Construct 3

Каталоги с объектами.

  • В Interface у меня хранятся кнопки, окна, фоны и всё, что не участвует непосредственно в игровом процессе.

  • В Objects лежат объекты, составляющие основу игровых механик: персонажи, оружие, всё, что летает по игровому полю, а также массивы.

  • В Object Types кидаю поведения и плагины (Touch, Keyboard, AJAX и прочие вещи, не выносящиеся на игровое поле).

2) Объекты называю с заглавной буквы.

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Порядок, Объект, Массивы, Переменные, Длиннопост, Construct 3

Объекты.

3) Количество однообразных объектов в проекте (кнопок, текстов, фонов и т.д.) стараюсь ограничивать насколько это возможно, но не более того.

4) Для различения однообразных объектов (кнопок, надписей и др.) добавляю им собственные переменные class, classSub, num, id.

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Порядок, Объект, Массивы, Переменные, Длиннопост, Construct 3

Собственные переменные объектов.

Затем выбираю нужные объекты по их переменным.

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Порядок, Объект, Массивы, Переменные, Длиннопост, Construct 3

Выбор нужного объекта по его переменной.

5) С помощью собственной переменной state включаю-выключаю отдельные кнопки, когда это нужно.

И потом отслеживаю, если у кнопки включена state = ”on”, то нажатие на кнопку вызывает реакцию.

Иначе ничего не происходит.

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Порядок, Объект, Массивы, Переменные, Длиннопост, Construct 3

Использование собственных переменных кнопок для их игнорирования.

6) Для текстовых объектов использую несколько типовых имён:

  • TextButton - текстовая кнопка (часто располагается поверх пустой резиновой кнопки),

  • TextInfo - изменяющийся текст (таймеры, счётчики, очки, патроны и т.п.),

  • TextTest - тестовый текст - помогает отслеживать параметры игры при ошибках. Обычно он скрыт и включается по какой-то кнопке.

7) Для графических объектов использую типовые имена:

  • Button - кнопки,

  • Mask - маски,

  • Array - массивы,

  • Background - фоны и т.д.

Если нужно разнообразить - добавляю в конец имени уточняющие слова. На примере массивов:

7. Управление объектами - Порядок в проекте Construct 3 - собственный взгляд Gamedev, Браузерные игры, Проект, Порядок, Объект, Массивы, Переменные, Длиннопост, Construct 3

Названия массивов.

Так их проще вспомнить, если нужно подставить имя объекта в какую-то переменную.

Пока всё, что имею сказать по поводу объектов.


Как обычно, Телеграм:
https://t.me/toyprogrammer

Показать полностью 5
Отличная работа, все прочитано!