Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Погрузитесь в логическую головоломку: откручивайте болты из планок на самых сложных уровнях! Вы не только расслабитесь в конце сложного дня, но еще и натренируете свой мозг, решая увлекательные задачки. Справитесь с ролью опытного мастера? Попробуйте свои силы в режиме онлайн бесплатно и без регистрации!

Головоломка. Болты и Гайки

Казуальные, Гиперказуальные, Головоломки

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Construct 3 + Разработка

С этим тегом используют

Gamedev Инди игра Игры Браузерные игры Инди Проект Программирование Unity IT Все
24 поста сначала свежее
6
ru1000
ru1000
1 месяц назад
Серия Игрушечный программист - мой опыт Construct 3

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
[моё] Gamedev Браузерные игры Проект Разработка Construct 3 Порядок Режим
0
3
ru1000
ru1000
1 месяц назад
Серия Игрушечный программист - мой опыт Construct 3

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
[моё] Gamedev Проект Браузерные игры Construct 3 Разработка Комментарии
0
2
ru1000
ru1000
1 месяц назад
Серия Игрушечный программист - мой опыт Construct 3

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

1) У меня часто бывает, что делаешь какую-то фичу в игре и тут в голову приходит, что хорошо бы сделать ещё вот это и вот это.

И начинаешь метаться, чтобы ничего не забыть.

Чтобы такие проблемы не возникали, пользуюсь досками с карточками (канбан-досками).

Что-то типа такого, но в электронном виде.

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

Канбан-доска из Википедии.

2) Как это работает?

- Появилась новая задача — быстро записал её в карточку, положил в колонку «Сделать» и забыл до поры до времени.

- Закончил текущую задачу — кинул карточку с ней в «Готово». Глянул, в список задач и взял следующую и перетащил в колонку «В работе».

- Решил поменять порядок задач и какие-то из них вообще выкинуть из плана? Нет проблем! Просто перетащил нужные карточки в другие колонки.

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

3) Текущие задачи по личным проектам веду в kaiten.ru (раньше вёл в notion.so, но он закрылся для нашего региона). В Кайтене можно сделать удобную доску и оперативно перетаскивать выполненные задания между колонками.

Он даёт много бесплатных возможностей и не прогибается под санкциями :)

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

Кайтен.

4) Для рабочих проектов в компании мы используем сервис yougile.com.

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

Юджайл.

Это ещё более удобная доска с карточками.

Дома её не использую, чтобы случайно не смешать проекты.

3) Колонок в электронных досках можно сделать сколько угодно.

Например, у нас на текущей рабочей доске есть колонки:

- Легенда: описания проектов с их цветовой «дифференциацией штанов» и ссылками на всё по проектам.

- Бэклог: сделаем когда будет время или никогда.

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

- Спринт: хорошо бы сделать за неделю.

- Правки: это нужно исправить в первую очередь.

- В работе: то, что мы делаем сейчас.

- Тестирование: вроде готово, но нужно проверить.

- Готово: протестировали, залили и забыли как страшный сон.

- Галя, у нас отмена: сначала хотели сделать, потом прикинули и решили: «данунафиг».

Вот такая удобная штука. Очень, рекомендую этот способ ведения проектов.


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


P.S. Всех с Днём Победы!

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

Показать полностью 2
[моё] Gamedev Проект Браузерные игры Kanban Разработка Construct 3 Доска Карточки Порядок Длиннопост
2
Партнёрский материал Реклама
specials
specials

Как бросить курить и не сорваться: инструкция от тех, кто смог⁠⁠

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

Как бросить курить и не сорваться: инструкция от тех, кто смог Курение, Борьба с курением, Зависимость, Telegram (ссылка), ВКонтакте (ссылка), Длиннопост

История 1 — отражение

@ holoroad

Маленькая дочка почти научилась ходить и всюду телепалась за мной. Я не курил при ней. Ходил на балкон, а она, прильнув к стеклу, смотрела на меня и ждала, когда я докурю и выйду к ней. И в какой-то момент она начала повторять за мной вот эти движения. Маленький человечек, ей было года полтора или два, прикладывала воображаемую сигарету к губам, а потом делала вид, что выпускает дым. И весело так на меня смотрела, сквозь стекло балконной двери. Ей нравилось все, что со мной связано, и она подражала всем моим действиям. Я курил уже двадцать лет и, конечно, делал множество попыток бросить до этого. Но в этот раз у меня в первый раз появилась по-настоящему важная причина бросить. Это важно для человека, который безгранично мне доверяет. С тех пор прошло почти десять лет, в течение которых я не сделал ни одной затяжки.

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

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

История 2 — список

@ maxneb

Беременность жены, рождение ребенка, здоровье, деньги — ничего не было веским поводом бросить окончательно. Постоянно срывался. Помогло составить список, что теряю и что получаю от сигарет, и понимание, что хотя бы одна затяжка — и все насмарку: пару месяцев буду курить. Только список и его осознание. Для каждого он свой. И постоянное обращение к нему. После составления списка курил еще. Но он как заноза висел в голове с вопросом «зачем?»... Так, что-то щелкнуло и сейчас не тянет. Иногда тянет физически, но осознание бесполезности курения сразу глушит позывы. Полгода, полет нормальный...

Бросать на авось — идея, которая подойдет не всем. Нужно понимать, что делать в трудные моменты:

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

  • Замените привычки. Сигарету в руках можно заменить орешками, палочками морковки, жвачкой или даже кубиком льда.

  • Займите время. Вспомните, чем вы любили заниматься: спорт, хобби, прогулки.

  • Планируйте, что делать при тяге. Она длится всего 3–5 минут. Дыхательные практики или звонок другу помогут пережить сильное желание закурить.

  • Откажитесь от «наградных сигарет». Одна затяжка и вы откатитесь назад.

Можно бросить резко, «с понедельника», или постепенно, снижая количество сигарет до нуля. Главное — определиться и не отступать.

История 3 — переключение

@ Spaka

45 лет, стаж 30. Пытался завязать много раз, потом понял, что после каждой попытки бросить, курить начинаешь больше. Как ребенок, которому не дают вкусняшку, а она случайно попала ему в руки. Из чего мозг сделал вывод: не уверен — не бросай. Потом стал замечать, что организм уже стал сам просить перестать курить. По утрам было очень неприятно во рту, удовольствие после сигареты стало короче, а негатив, приходящий следом, ощутимее: неприятные ощущения в горле, боли миндалин, страх схватить онкодиагноз. Хотя врачи говорили, что все ок, в голове-то гоняешь мысли. Я решил попробовать обмануть сам себя. Не делать из процесса отказа какого-то события. Бросить так, как будто это и должно было произойти, но ты не знаешь когда. Про себя помолился, как сумел, и попросил помощи, хитро прищурил глаз и в момент, когда забыл купить про запас (оставалась пара штук в пачке), просто перестал курить. Мне теперь даже странно, как я раньше это делал. Так и живу почти два года. Кстати, раньше в момент завязки курящих ненавидел, дым был очень противен, до тошноты. Теперь все равно. Присоединяйтесь ;)

Есть несколько стратегий отказа от курения:

  • Резкий. Эффективный и решительный подход.

  • Постепенный. Сначала — меньше сигарет, потом — меньше затяжек. И так до нуля.

  • Психологическая замена. Каждая сигарета — это ритуал. Найдите для каждого из них «здоровую замену».

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

Каждый, кто хочет оставить зависимость в прошлом, может обратиться в центры здоровья, которые работают при поддержке нацпроекта «Продолжительная и активная жизнь», и получить необходимую помощь специалистов. Адреса доступны на официальном портале Минздрава России о здоровье: takzdorovo.ru. Также можно позвонить на горячую линию по отказу от зависимостей 8 800 200-0-200.

История 4 — форма

Аноним

Курила электронки 2 года как замену обычным сигаретам. Думала, что это не так дорого, не так вредно да и для девушки вроде более привлекательно: не пахнут волосы и руки. А потом решила привести свое тело в форму. Стала ходить в зал и поняла, что задыхаюсь на первом же упражнении, хотя женщины гораздо старше меня бодрячком. Было очень тяжело слезть. Друзья советовали заменять сигаретами. А потом уехала в отпуск в страну, где нельзя покупать электронки, отвлеклась, и после возвращения уже не тянуло. Даже на тусовках, где все дымят.

За модными гаджетами и фруктовыми ароматами скрывается химическая бомба, разрушающая организм быстрее, чем обычные сигареты. Электронные сигареты активно продвигаются производителями как «безопасная» альтернатива сигаретам. Но курение вейпа может обернуться серьезными проблемами: от кашля и одышки до поражения сосудов и дыхательных путей.

«Особую тревогу вызывает рост потребления табачных изделий и электронных сигарет. Согласно исследованию, проведенному в нашем Центре, 36,8% курильщиков потребляют одновременно и табак, и электронные сигареты. Среди молодежи в возрасте 25-39 лет этот показатель превышает 45%. Электронные никотиносодержащие и безникотиновые устройства поражают сердце, сосуды, дыхательную систему и ДНК организма не менее пагубно, чем традиционные сигареты, а в ряде случаев способны вызывать острые состояния, включая сосудистые поражения и летальные исходы» – рассказывает руководитель Центра профилактики и контроля потребления табака НМИЦ терапии и профилактической медицины Минздрава России Маринэ Гамбарян.

История 5 — пари

@ kernima

Вроде не было никаких серьезных предпосылок, чтобы бросить. Да и чтобы начать: просто все вокруг курили, думал, это сейчас тренд. А потом как-то сидели в баре и решили поспорить с некурящим другом. Он затирал, что моя жизнь из-за электронки катится ко дну, я — доказывал, что это всего лишь маленькая шалость. В общем поспорили на пять тысяч. Чтобы было легче и можно было отвлечься, начал бегать по утрам. Друг проиграл, а я возвращаться к курению не стал. Вдруг снова у еды появился вкус, я начал высыпаться и больше не устаю на втором лестничном проеме. Короче, советую!))

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

Когда организм отвыкает от никотина, бывает нелегко: люди становятся раздражительным и нервозными, быстро устают, возникают сухость во рту, кашель, трудности с концентрацией. Важную роль в борьбе с этими симптомами играет питание. В рацион стоит включить овощи, фрукты, орехи, семечки. Клетчатка способствует очищению организма от токсинов. Важно питаться сбалансировано: с достаточным количеством белков, жиров, углеводов и витаминов. Лучше временно исключить продукты, усиливающие удовольствие от табака (например, мясо), а также отказаться от алкоголя, кофе и крепкого чая. Они могут спровоцировать желание закурить. А вот большое количество воды, травяных чаев и настоев облегчит очищение организма и поможет справиться с сухостью во рту.

История 6 — связь

Аноним

Устал курить, понял, что мне это мешает заниматься спортом и в целом комфортно себя чувствовать. Пошел через ассоциации: покурил во время головной боли, и потом через самовнушение дал себе установку, что голова болела от курения. Звучит странно, конечно, но это сработало. Никотиновую зависимость снижал постепенно через редкое курение кальяна (2-3 раза в неделю с последующим уменьшением).

Чтобы добиться успеха в отказе от курения, стоит подготовиться. Обязательно расскажите о своем решении друзьям и близким — поддержка со стороны очень важна. Если вы уже предпринимали попытки бросить, вспомните, что тогда пошло не так, и постарайтесь не повторять этих ошибок.

Разберитесь, что именно тянет вас к сигарете: скука, стресс, привычка? Когда вы это осознаете, будет легче подобрать альтернативные действия — прогулку, книгу, разговор с близким. Учитесь распознавать моменты, когда особенно хочется закурить, и переключаться на что-то другое. Можно подключиться к программам или группам поддержки — это поможет не сдаваться. И главное: уберите из дома все сигареты.

История 7 — вершина

Аноним

Поднимался с сыном по Пушкинской тропе на гору Железная. Мне лет сорок пять было, идем общаемся, сын бегает туда-сюда. Ну идем короче, а сзади нас догоняет семейная пара, мирно о чем-то щебеча между собой. Догнали и обходят. И так спокойно удаляются… Все бы ничего, но им лет по шестьдесят, если не больше. Я попробовал в их темпе, но задыхаться стал. Короче, поднялся я на гору, спустился, смял пачку и выкинул в мусорную урну. Вот уже 13 лет не курю. Стаж 27 лет.

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


Каждый, кто пытался избавиться от никотиновой зависимости, знает, как это тяжело. Ломка, раздражительность, навязчивые мысли. Даже при переходе на вейпы, иллюзия «меньшего вреда» быстро развеивается: химические коктейли из ароматических смесей также бьют по легким, сосудам и всему организму.

Хорошая новость в том, что вы не одни. В сообществе «Давай бросать» (ВКонтакте и мессенджере Telegram), который работает при поддержке нацпроекта «Продолжительная и активная жизнь» знают, каково бороться с триггерами, искать замену привычке и удерживать себя от срыва. Здесь делятся историями тех, кто смог, поддерживают тех, кто только начал, и помогают разобраться в главном: как пережить отказ без мучений.

Социальная реклама. АНО «Национальные приоритеты», ИНН: 9704007633

Показать полностью
Курение Борьба с курением Зависимость Telegram (ссылка) ВКонтакте (ссылка) Длиннопост
3
ru1000
ru1000
1 месяц назад
Серия Игрушечный программист - мой опыт Construct 3

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

Добрый день!

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

В этой серии заметок поделюсь своими наработками по ведению проектов в Construct 3.

Некоторые из них наверняка будут спорными для новичков, а некоторые - для настоящих программеров (себя к таким не отношу).

Но на данный момент использую именно такой формат упорядочивания.

Впрочем - он тоже периодически меняется, когда встречаю какую-то интересную фишку в чужих проектах.

Пишите в комментариях кому есть что добавить.

Итак, создание проекта:

1) Если проект типовой (или даже если не совсем типовой, но в портфолио есть хоть отдалённо похожий) - копирую старый проект и переименовываю, чтобы не заморачиваться мелкими настройками.

Потом постепенно копирую в него отработанные приёмы из предыдущих проектов, но по возможности проверяю, не изменились ли используемые функции?

Дело в том, что разработчики Сonstruct 3 постоянно дорабатывают свой редактор и то, что год назад работало хорошо сейчас может вообще не запуститься.

К примеру, поведение Pin, скопированное из старого проекта имеет несколько иные настройки, чем у созданного заново.

А вместо старого отдельного поведения Rex_MoveTo появился стандартное поведение MoveTo.

2) Обязательно заполняю описание проекта (в настройках редактора можно задать некоторые из них по умолчанию).

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

Параметры проекта.

3) Всегда задаю и перед каждым экспортом обновляю версию проекта.

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

А браузеры просто обожают всё кешировать и часто показывают устаревшую версию игры.

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

Программно выводим версию проекта.

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

Как версия выглядит в игре.

4) Всегда сразу отключаю Worker в продвинутых настройках проекта.

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

Worker отключен.

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

Возможно я просто не понимаю его принципа, но мне без него лучше.

Также с ним не работает очень полезный плагин GamePush.

Это то, что касается создания нового проекта.

Завтра рассмотрим вариант хранения материалов игры, чтобы ничего не терялось и всё было доступно.

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

P.S. Поиграть в игру, которая послужила источником скриншотов можно здесь:

https://dharmagames.ru/games/15/15puzzle/index.html

Показать полностью 4
[моё] Gamedev Браузерные игры Разработка Программа Construct 3 Проект Версия Порядок Длиннопост
0
2
ru1000
ru1000
2 месяца назад
Серия Игрушечный программист - мой опыт Construct 3

Обход кэширования игр, сделанных на Construct 3⁠⁠

Добрый день!

Меня зовут Руслан.
С 2016 года делаю игры в редакторе Construct 3 (раньше он назывался Construct 2), преимущественно без использования "настоящего" кода.

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

В этом посте описан мой способ обновлять игры, сделанные на Construct 3.

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

Суть проблемы:

Браузеры любят всё кэшировать. Они распихивают себе по кармашкам (в кэш) все скрипты игры, картинки, звуки и прочее, из чего состоит игра.

В итоге, когда мы заливаем на сервер новую версию, то может произойти вот что.

1. Игрок, который раньше уже играл в эту игру, запускает её у себя в браузере,

2. Браузер показывает ему устаревшую версию, загруженную из кэша, а не с сервера. Вроде как это снижает нагрузку на сервер, но в итоге игрок не увидит обновление.

Как это решается теперь в наших проектах:

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

Обход кэширования игр, сделанных на Construct 3 Разработка, Программа, Construct 3, Gamedev, Компьютерные игры, Кэш, Firefox, Browser Games, Браузер, Длиннопост

Как я указываю версию проекта на экране игры.

При старте каждого экрана в это текст вывожу номер версии из системной переменной projectversion.

Обход кэширования игр, сделанных на Construct 3 Разработка, Программа, Construct 3, Gamedev, Компьютерные игры, Кэш, Firefox, Browser Games, Браузер, Длиннопост

Вывод версии на старте каждого экрана.

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

2. Добавляю в проект группу с группами, в которой происходит обработка автоматического обновления.

Обход кэширования игр, сделанных на Construct 3 Разработка, Программа, Construct 3, Gamedev, Компьютерные игры, Кэш, Firefox, Browser Games, Браузер, Длиннопост

Список групп для обработки Обновления игры.

Немного ниже покажу содержимое этих групп подробнее.

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

Обход кэширования игр, сделанных на Construct 3 Разработка, Программа, Construct 3, Gamedev, Компьютерные игры, Кэш, Firefox, Browser Games, Браузер, Длиннопост

Так это выглядит в игре.

Фон растягиваю на весь экран.

4. Прозрачность слоя update привязываю к прозрачности иконки на этом слое. Иконке заданы поведения Rotate и Tween, что позволяет ей бесконечно крутиться и плавно менять прозрачность.

То есть, теперь можно управлять прозрачностью слоя, задавая прозрачность иконки.

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

Обход кэширования игр, сделанных на Construct 3 Разработка, Программа, Construct 3, Gamedev, Компьютерные игры, Кэш, Firefox, Browser Games, Браузер, Длиннопост

Действия на старте экрана и привязка прозрачности слоя Обновления к иконке.

5. Далее, используем плагин Browser. Когда он сигнализирует, что нашёл обновление - включаем окно (точнее сказать - слой) Обновления.

Обход кэширования игр, сделанных на Construct 3 Разработка, Программа, Construct 3, Gamedev, Компьютерные игры, Кэш, Firefox, Browser Games, Браузер, Длиннопост

Действия при обнаружении Обновления и включение окна (слоя) Обновления.

Важный момент. Как Браузер понимает, что есть новая версия игры?

По номеру версии!

Поэтому стараемся не забывать обновлять этот номер в поле Version (в главных настройках проекта в самом верху.

Обход кэширования игр, сделанных на Construct 3 Разработка, Программа, Construct 3, Gamedev, Компьютерные игры, Кэш, Firefox, Browser Games, Браузер, Длиннопост

Где указывается номер текущей версии проекта.

Для удобства, я нумерую версии текущей датой и примерным временем сохранения проекта.

6. Параллельно с включением окна (слоя) Обновления у меня блокируются все активные игровые слои, чтобы игрок не ускакал случайно на другой экран.

Также включаю вращение иконки (Rotate, до включения слоя она не вращается, чтобы не тратить системные ресурсы).

И затем с помощью Tween плавно делаю иконку, а за ней и весь слой непрозрачным, чтобы игрок увидел предупреждение о новой версии, которая в данный момент загружается.

Обход кэширования игр, сделанных на Construct 3 Разработка, Программа, Construct 3, Gamedev, Компьютерные игры, Кэш, Firefox, Browser Games, Браузер, Длиннопост

Здесь иконка вращается посредством поведения Rotate.

7. Когда обновление наконец загрузилось (определяем это с помощью того же плагина Browser), проверяем, если иконка Обновления ещё не включалась (может случиться и такое), то включаем её и показываем поверх кнопку "Обновить".

Обход кэширования игр, сделанных на Construct 3 Разработка, Программа, Construct 3, Gamedev, Компьютерные игры, Кэш, Firefox, Browser Games, Браузер, Длиннопост

Обработка обнаруженной новой версии.

Обход кэширования игр, сделанных на Construct 3 Разработка, Программа, Construct 3, Gamedev, Компьютерные игры, Кэш, Firefox, Browser Games, Браузер, Длиннопост

Включение кнопки Обновить.

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

Также меняем текст на новый.

Обход кэширования игр, сделанных на Construct 3 Разработка, Программа, Construct 3, Gamedev, Компьютерные игры, Кэш, Firefox, Browser Games, Браузер, Длиннопост

Включаем кнопку, которая закрывает собой иконку и меняем текст.

8. И наконец последнее - обработка нажатия кнопки.

Обход кэширования игр, сделанных на Construct 3 Разработка, Программа, Construct 3, Gamedev, Компьютерные игры, Кэш, Firefox, Browser Games, Браузер, Длиннопост

Обработка нажатия кнопки Обновить.

Тут всплыла та самая закавыка со скриптом, из-за которой пришлось напрягать китайскую нейросеть.

В браузерах Chrome, Opera, Yandex - в целом всё работает нормально и без скрипта. Когда кнопка нажата - страница просто обновляется с помощью Browser - Reload и всё ок - грузится новая версия.

Но Firefox решил выпендриться и в нём эта конструкция уходит в бесконечную перезагрузку: Грузится старая версия и снова появляется окно Обновления, пока игрок не догадается нажать Shift-F5, чтобы вручную загрузить самую новую версию.

if ('serviceWorker' in navigator) {

navigator.serviceWorker.getRegistrations().then(function(registrations) {

// 1. Удаляем все сервис-воркеры

for (let registration of registrations) {

registration.unregister();

}

// 2. Очищаем кеш (если доступно)

if ('caches' in window) {

caches.keys().then(function(cacheNames) {

cacheNames.forEach(function(cacheName) {

caches.delete(cacheName);

});

});

}

// 3. Задержка 500 мс + жесткая перезагрузка

setTimeout(() => {

window.location.reload(); // Или window.location.href = window.location.href;

}, 1000);

});

} else {

// Просто перезагружаем, если сервис-воркеров нет

window.location.reload();

}

Поэтому здесь пришлось прикрутить вышеупомянутый JS-скрипт, сгенерированный нейросетью с 20-й попытки.

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

Обход кэширования игр, сделанных на Construct 3 Разработка, Программа, Construct 3, Gamedev, Компьютерные игры, Кэш, Firefox, Browser Games, Браузер, Длиннопост

Узнаём что за браузер у игрока.

var userAgent = navigator.userAgent;

if (userAgent.indexOf("Chrome") > -1) {

runtime.globalVars.browserName = "Chrome";

} else if (userAgent.indexOf("Firefox") > -1) {

runtime.globalVars.browserName = "Firefox";

} else if (userAgent.indexOf("Safari") > -1) {

runtime.globalVars.browserName = "Safari";

} else if (userAgent.indexOf("Edge") > -1) {

runtime.globalVars.browserName = "Edge";

} else if (userAgent.indexOf("MSIE") > -1 || userAgent.indexOf("Trident") > -1) {

runtime.globalVars.browserName = "Internet Explorer";

} else {

runtime.globalVars.browserName = "Unknown";

}

// Теперь вы можете использовать переменную browserName в вашем проекте

console.log("Browser: " + runtime.globalVars.browserName);

Соответственно, для Firefox используем чудо-скрипт на JS, а в остальных браузерах, стандартный Browser - Reload.

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


P.S. В следующих постах планирую выкладывать другие нюансы работы в Construct 3, которые применяю в своей работе.

P.P.S. Для более надёжного хранения завёл также телеграм-канал Игрушечный программист: https://t.me/toyprogrammer

Показать полностью 13
[моё] Разработка Программа Construct 3 Gamedev Компьютерные игры Кэш Firefox Browser Games Браузер Длиннопост
15
4
BUDIVAL
6 месяцев назад
Серия Первая игра в соло сразу на Jam пикабу

Конец второго этапа GP Profit Jam⁠⁠

Коротко кому не так интересно: Первый этап пройден. Второй нет. Третий этап (разработка мин. играбельной версии) начался.

Конец второго этапа GP Profit Jam Gamedev, Инди игра, Разработка, Карточная игра, GP Profit Jam, Игры, Видео, Пикабу, Без звука, Разработчики игр, Геймджем, Construct 3, Длиннопост

Результат первого этапа.

А теперь больше деталей про второй этап.

Попробовать самому: https://budival.itch.io/street-magic-and-cookies

Посмотреть:

Почему не успел: Ошибка в билде после сборки. Баги в игре. Мало спал. Устал. Не судьба. Звёзды так сложились. Сглазили. Прокляли. Это мне приснилось, что я участвовал. Нужно подчеркнуть или выбрать всё.

Основные сложности в разработке возникли из-за некорректного поведения движка (естественно на мой взгляд). Но в целом освоение проходит успешно. На текущий момент в игре скрыты механики которые скорее мешают окончанию разработки. Оставил минимум для работоспособности.

Какой минимум планирую реализовать:

  1. Три героя на поле. Все действия всегда от того кто впереди. Смена позиции только по эффекту на карте.

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

  3. В конце раунда получаем доп. карту на выбор из 3х.

  4. Магазин карт, артефактов и усилений героев за ресурсы.

  5. Карта с развилками и разными событиями (вроде сейчас так модно))).

В процессе доработал формирование карт и выгрузку данных для игры. Теперь выгружаю всё одним файлом (в дни первого этапа делал много разных и каждый загружал отдельно)

1/2

Все старые карты остались в первом выпуске. Теперь их меньше.

Для самих карт и их элементов использую специальную программу. В ней удобно подготавливать свои варианты и уже после добавлять в игру. Карты преобразились и стали лучше смотреться.

1/3

Вся подноготная карты.

В целом всё хорошо и я продолжаю работу над игрой.

Показать полностью 5 1
[моё] Gamedev Инди игра Разработка Карточная игра GP Profit Jam Игры Видео Пикабу Без звука Разработчики игр Геймджем Construct 3 Длиннопост
0
7
BUDIVAL
6 месяцев назад
Серия Первая игра в соло сразу на Jam пикабу

Дневник соло-разработчика⁠⁠

Результат на текущий момент:

Давно хотел разработать свою игру. Ходил вокруг этой темы давно, движки разные смотрел и пробовал, но всё ни как. И вот начали мне попадаться видео про разработку на движке Construct 3. Посмотрел, приценился, вроде не так сложно создать свою первую маленькую игру.

Купил лицензию на год 7 ноября и приступил к изучению. Мой опыт позволил мне быстро разобраться в основах, благо видео и примеров достаточно. В одной из групп telegram увидел о старте GP Profit Jam #2 feat Pikabu и полез изучать, что это такое. Игра за 3 дня! Как? Но это довольно частое явление и каждый с разными сроками и командами. Решил принять участие в одного, т.к. ответственность только перед собой.

Узнав тему - "В поисках золотого плюсика", приступил к обдумыванию чем может быть золотой плюс и где его искать. В голову пришла мысль про колоду карт и очень редкую карту (сказался опыт игр в ККИ - Коллекционная карточная игра).

В первый день обдумывал идею и делал наброски по своим идеям.

1/5

Далее понадобилось описать и внести данные про 120 карт и учесть, что во время разработки они будут меняться, а это сильно усложнит доработку. Благо движок поддерживает загрузку нужных таблиц из файлов. Для этих целей нужна автоматизация. И это есть у меня. Создаю базу 1С с описанием объектов и реализую выгрузку в нужном формате. И да, я программист 1С.

1/5

Вот примерно всё за первый день.

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

1/2

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

Ссылка: https://budival.itch.io/street-magic-and-cookies

1/5

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

1/3
Показать полностью 20
[моё] GP Profit Jam Gamedev Игры Инди игра Геймджем Мобильные игры Разработчики игр Разработка Мемы Пикабу Видео Construct 3 Без звука Длиннопост
0
Партнёрский материал Реклама
specials
specials

Даже получать удовольствие ты должен с коммерческой выгодой для себя ©⁠⁠

Так говорил греческий судовладелец, миллиардер Аристотель Онассис. Миллиардеры, конечно, живут немножко иначе, но этот принцип вполне распространяется и на «простых смертных». Давайте посчитаем, какую выгоду вы получаете.

Посчитать

Бизнес Выгода Текст
23
NikaClemente
NikaClemente
6 месяцев назад
Pikabu Game Jam
Серия Дракончики Pikabu GameJam

Наш первый Jam. Завершение 1 Этапа. Релиз v0.1⁠⁠

Битва за рейтинг. Дневник разработчика. Часть №4

С вами как всегда Ника из команды Дракончики

Вот и закончился 1 этап Джема, наша команда немного отдохнула и теперь я могу поделиться с вам и результатами которые у нас получились 😊

Вашему вниманию представляем трейлер игры Битва за рейтинг v0.1

Итак, думаю теперь можно раскрыть чуть более подробно саму задумку проекта)
Пока что не буду спойлерить сюжет, но главный герой истории это Дракончик, а вот главный антагонист у нас маскот пикабу - печенька. Именно поэтому всё сражение происходит против печенюшек и кексиков)) Все они прислужники Печенюхи.

Сюжет и диалоги решили не включать в первый этап Джема, чтобы к концу 2 этапа полностью подготовить всю историю (а не только её часть) и у вас сложилась более полная картина происходящего. Уверена вам она понравится! 😁

Теперь по основным моментам, что было сделано 🧩:

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

  • во время боя доступны 2 вида скиллов: энерго щит и регенерация. Оба этих скилла работают непродолжительное время, но позволяют при правильном использовании значительно продлить живучесть на уровне.

  • в ходе боя вы зарабатываете лайки (успешная атака) и дизлайки (полученный урон), что в конечном итоге формируют общий рейтинг захода. Рейтинг в игре играет самую важную роль - основная валюта этого мира. Каждый заход позволяет этот рейтинг заработать, но нужно постараться это сделать.

  • каждый заход вы начинаете с 1 волны в которой нужно победить всего 10 противников (самые обычные печеньки), со 2 волны появляются новые противники, а вот какие - даём вам возможность узнать самим)

  • на данный момент в игре есть 4 типа противников, которые появляются после определенной волны.

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

  • в игре уже есть магазин (тележка торговца на основной карте), в нём можно прокачать базовые характеристики дракончика и оружия, а так же улучшить свою зоркость для отображения здоровья противников (в дальнейшем этот параметр будет отображать ещё и другие секретные данные)

  • доработана система сохранения текущей игры

Для большего понимания всего геймплея можно посмотреть видео ниже ⤵️

Или же самим опробовать нашу игру. Напоминаю, что она ещё в разработке и могут быть ошибки.

И прежде чем играть, я хочу сказать что на данный момент был выявлен один баг, при старте игры могут быть проблемы с сохранением, а точнее оно может не подтянуться при первом запуске и не создаться. Есть решение данной проблемы: необходимо нажать на клавиатуре кнопку "Ё" на загрузочном экране (для телефонов нужно долго удерживать на проценте загрузки) и перезагрузить страницу.

P.S. загрузочный экран - это самый первый экран, который показывается с процентом загрузки!

Наш первый Jam. Завершение 1 Этапа. Релиз v0.1 GP Profit Jam, Геймджем, Компьютерные игры, Видеоигра, Gamedev, Разработка, Игры, Инди игра, Дневник разработки, Дракон, Construct 3, Инди, Видео, Длиннопост

Вот теперь можно поиграть в нашу игру:
Ссылка на игру: https://nikaclemente.itch.io/battlerank

Ну чтож, раз основные моменты 1 этапа были сказаны, то теперь хотелось бы рассказать что будет реализовываться во 2 этапе:

  • сюжет и диалоги. Будет полноценная история этого мира и персонажей.

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

  • возможность менять скины персонажа и возможно оружия тоже.

  • расширение ассортимента магазина: покупка скинов и прокачка оружия

  • улучшение основной механики и баланс управления

  • подключение GamePush

  • работа с лидербордом и достижениями

  • более подробное обучение и первый тренировочный бой

Спасибо, что всё это время вы были с нами) Нам очень приятно!
Дневник разработки продолжится , так что мы не прощаемся с вами.

До скорого :)

Показать полностью 1 1
[моё] GP Profit Jam Геймджем Компьютерные игры Видеоигра Gamedev Разработка Игры Инди игра Дневник разработки Дракон Construct 3 Инди Видео Длиннопост
0
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии