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

Пикаджамп

Аркады, Казуальные, На ловкость

Играть

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

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

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

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

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

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

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Browser Games

5 постов сначала свежее
2
ru1000
ru1000
1 месяц назад
Серия Игрушечный программист - мой опыт 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
yablakla
yablakla
9 месяцев назад

Яндекс, это дно. Вы ещё платите вашим разработчикам?⁠⁠

Яндекс, это дно. Вы ещё платите вашим разработчикам? Яндекс, Мат, Ругательства, Злость, Разработчики, Веб-разработка, Browser Games, Длиннопост

Дорогой Яндекс -НЕТ-
После более пяти лет ваших претензий...Скачай Я браузер, я сдался. Скачал....
и что я вижу в первом окне поиска?
Епващумать разработчики...я включил все печеньки, отключил все защиты от прайваси, я даже регион на российский и язык русский поменял.
Вы там реально, деньги свои за что получаете? Вы что, браузер в браузер вставили?
На свой совсем денег нету? Или лени много.
нате ещё скрин.

Яндекс, это дно. Вы ещё платите вашим разработчикам? Яндекс, Мат, Ругательства, Злость, Разработчики, Веб-разработка, Browser Games, Длиннопост

Узнаёте себя по скринам?
Я да.
И не заливайте мне...ну ты же в Италии живёшь, тут совсем по другому.
Это реальный эпик фэйл.
А если человек реально разбирающийся начнёт копать...

Яндекс, это дно. Вы ещё платите вашим разработчикам? Яндекс, Мат, Ругательства, Злость, Разработчики, Веб-разработка, Browser Games, Длиннопост

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

Показать полностью 3
[моё] Яндекс Мат Ругательства Злость Разработчики Веб-разработка Browser Games Длиннопост
15
2
BakaGaijin
5 лет назад
Лига Потерянных Игр

Старая браузерная игра⁠⁠

Есть прямоугольная комната с персонажем в центре. персонаж это что-то похожее на космонавта из kerbal space program вроде. Слева или с права можно поставить уточку, которую кербл при запуске комнаты заметит и начнёт уходить в противоположную сторону от неё. комната маленькая, в ней можно ставить ловушки. по типу батутов, турелей, шипов на стену, чёрных дыр и т.п. цель была накопить как можно больше очков. за них открывались новые ловушки. игра была крутая, очень хочется найти и понастольгировать. Заранее спасибо если кто подскажет.

Kerbal Space Program Browser Games Текст
3
2
Kurvyakov
5 лет назад
Лига Потерянных Игр

Помогите найти анти-рпг⁠⁠

Доброго времени суток! Помогите найти следующую игру: 1)бои потипу moswars, однако можно провести только 3 боя в день 2) при создании персонажа можно выбрать только имя, все остальное генерируется случайном образом 3)при прокачке персонажа все абилки и статы также добавляются случайным образом. По сути, от игрока требуется только зайти и провести эти три боя, а вся игра основана на принципе "повезло-неповезло"

[моё] RPG Fighting Browser Games Текст
4
duser
12 лет назад

eRepublik - 6 Мировая Война⁠⁠

Немного истории. В 2010 еРоссия была огромной страной с населением 20 000 активных игроков, но теперь нас осталось 2000. Раньше у нас было много колоний (захваченных стран) - Норвегия, Швеция, США. Настало время вернуть еРоссии статус супердержавы еМира. Регистрируйся в браузерной онлайн игре eRepublik и приведи еРоссию к победе.

В настоящий момент идет 6 Мировая Война и еРоссии очень нужна помощь, ее территории в огне, Кавказ, Волго-Вятский регион захвачен Венгрией.
Тебя всегда манила боевая слава Атиллы, Ганнибала, Наполеона? А может, твоя мечта сколотить капитал и построить финансовую империю, которой позавидовали бы Гейтс и Прохоров? Стать истинным лидером нации и
привести народ к благополучию, а страну к процветанию? Тогда присоединяйся ко множеству игроков в [url=http://gg.gg/erepublic][b]eRepublik[/b][/url].

eRepublik - это бесплатная многопользовательская браузерная игра с очень сильным социальным акцентом. Так как она популярна во всем мире, она полностью переведена на многие языки, в том числе на русский

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

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

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

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

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

Политический - ведь если есть страны, то нужны и правительства.
Механикой игры предусмотрено, что каждый может вступить или даже создать свою партию. Каждый месяц проходят демократические выборы, по результатам которых вы можете стать конгрессменом или даже президентом. Сегодня даже у самых молодых игроков есть такая возможность!

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

Мануалы по игре eRepublik

Новичкам до 20 уровня доступен чат с наставниками, в котором можно задавать вопросы по игре
Показать полностью
Erepublik Stategy Games Browser Games
3
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии