Как сделать свой idle сервер
Как создать сервер в CS GO : Инструкция от А до Я
Создаём сервер в CS GO
В данной статье мы разберем как создать сервер в CS GO от А до Я. И так поехали!
В том случае если вам надоело искать интересующий игровой сервер для CS GO, то наверняка будет актуальным создать свой собственный. Необходимо отметить, что запуск своего игрового сервера, является не очень простой процедурой.
Однако после того как единожды вам это удастся сделать, в дальнейшем настройка сервера будет выполняться автоматически. Для того чтобы запустить свой собственный сервер CS:GO, необходимо выполнить несколько основных пунктов.
Начало создания сервера в CS GO — установка игрового программного обеспечения
Прежде всего, стоит сказать о том, что для запуска сервера необходимо использовать только то программное обеспечение, которое является лицензионным. Пользователю нужно выполнить загрузку программы SteamCMD.
При первом взгляде на этот софт, человек может обратить внимание, что программа очень сильно схожа с командной строкой. С ее помощью можно осуществлять запуск определенных процессов для клиентов в Steam.
Если вы не имеете необходимых навыков для того чтобы создать свой игровой сервер, то правильнее всего выполнить установку софта. После первого запуска, SteamCMD выполнит загрузку всех необходимых обновлений, позволяющих обеспечить увеличение скорости функционирования. Для каждой из операционных систем существует своя версия программы.
После того как загрузка софта была выполнена, человеку необходимо выполнить распаковку архива в папку и запустить программу. Далее необходимо выбрать «login anonymous».
Это действие позволяет программному обеспечению подсоединиться. После этого выбираем папку, куда будет выполнена установка программы.
После этого необходимо выполнить активацию программу. Данное действие осуществляется при помощи строки app_update 740 validate. В том случае если вы ввели все данные верно, то процесс загрузки начнется автоматически.
Отметим, что объем данных составляет 5,5 гигабайт. Именно поэтому, после того как загрузка была запущена, придется немного подождать. Безусловно, скорость загрузки будет зависеть от скорости передачи данных, обеспечиваемых вашим провайдером.
Как выполнить запуск и настройку сервера?
После того как загрузка была завершена, необходимо выполнить определенные действия, обеспечивающие возможность приготовления к запуску игрового сервера CS:GO. Все изначальные настройки расположены в gamemodes_server.txt.example.
Последнее английского слово необходимо убрать. При необходимости, пользователем также может использоваться файл «server.cfg». Однако он используется чаще для других настроек или же команд.
Для того чтобы увидеть все доступные команды в командной строке, следует ввести cvarlist log cvarlist.txt. После этого, в корневой папке игры будет создан текстовый файл.
Далее переходим непосредственно к запуску игрового сервера. Для этого нужно создать файл Startserver.bat.Его необходимо поместить в папку со скаченной программой для CS:GO. Этот файл необходимо открыть при помощи стандартного блокнота Windows и ввести следующие данные:
Отметим, что в каждом из модов, пользователем выбираются различные параметры.
Для того чтобы у других игроков появилась возможность подключиться на ваш игровой сервер, необходимо знать IP-адрес своего компьютера. Далее, открыв игру и запустив консоль, человеку нужно ввести «Connect + IP-адрес».
Видео: Инструкция в видео как создать сервер в CS:GO:
Дорогой читатель! Добавьте этот сайт в закладки своего браузера и поделитесь с друзьями ссылкой на этот сайт! Мы стараемся показывать здесь всякие хитрости и секреты. Пригодится точно.
Создание сервера CS:GO с нуля
1. Качаем Steamcmd.
На офф.сайте есть довольно развернутый гайд, поэтому подробно расписывать, что к чему, не вижу смысла.
Скачали, распаковали, запустили.
Логинимся анонимно:
Выбираем папку установки сервера:
Запускаем команду установки
Ждем завершение установки. У меня это заняло около 10 минут.
Установка может прерваться. Для продолжения повторите процедуру.
2. Теперь у нас есть чистый CS:GO Dedicated Server последней версии в папке csgoserver, которая находится в папке нашей steamcmd.
Для запуска сервера проще всего использовать bat-файл.
Переходим в папку csgoserver, создаем текстовый файл, называем его start.bat
Пишем туда:
3. Режимы игры
По умолчанию сервер запустится в режиме Classic casual(Классический обычный), что нам, собственно, и нужно.
Чтобы изменить режим игры, нужно дописать параметры game_type и game_mode. Каждый из режимов описан здесь
Уничтожение объекта:
+game_type 1 +game_mode 1
Бой насмерть:
+game_type 1 +game_mode 2
Запускаем сервер, если все нормально, после запуска в консоли появятся такие строчки:
Пишем в консоли status, получаем ответ:
4.Настройка сервера
Стандартная конфигурация каждого игрового режима определена в файле /csgo/gamemodes.txt. Изменять этот файл не рекомендуется. Если вы хотите изменить что-то в игровом режиме, используйте файл gamemodes_server.txt.
По умолчанию в папке csgo вашего сервера лежит файл gamemodes_server.txt.example. Это пример файла настройки игровых режимов. Valve говорят переименовать его в GameModes_Server.txt, но лучше создать новый файл с таким названием.
«exec»
<
// Выполнение конфига server_last.cfg. Будет выполнен после server.cfg и перезапишет его параметры.
// Можно добавить свои конфиги, дописав
// «exec» «название конфига.cfg»
«exec» «server_last.cfg»
>
«mapgroupsMP» // Выбор групп карт для этого режима. Описание групп ниже
<
«mg_bomb_se» «»
>
«exec» // Конфиг
<
«exec» «server_last.cfg»
>
«mapgroupsMP» // Список групп карт
<
«mg_bomb_se» «»
>
// These are the configs that get executed when a game mode of this type is created
«exec»
<
«exec» «server_last.cfg»
>
«deathmatch» // Deathmatch режим. По умолчанию он отсутствует в файле.
<
«maxplayers» «16»
«mapgroupsMP»
<
«mg_allclassic» «0»
«mg_dm_other» «1»
//////////////////////////////////////////////////////////////////////////////////////////////
// Группы карт. Вы можете создать свою группу карт, и добавить в нее карты, которые вам нравятся.
// Елси вы используете Sourcemod, то, скорее всего, будете использовать какой-нибудь плагин управления картами, и этот раздел вам не понадобится.
//////////////////////////////////////////////////////////////////////////////////////////////
«mapgroups»
<
«mg_bomb_se» // Название группы карт
<
«name» «mg_bomb_se»
«maps»
<
«de_dust_se» «»
«de_dust2_se» «»
«de_nuke_se» «»
«de_train_se» «»
«de_inferno_se» «»
«de_aztec_se» «»
>
>
>
>
Личный CS:GO сервер? Легко!
Если ты всегда хотел свой сервер Counter-Strike: Global Offensive, но у тебя не было возможности его арендовать — тебе повезло!
CS.MONEY рассказывает как создать бесплатный сервер на три месяца.
Что такое сервер?
Counter-Strike: Global Offensive работает по принципу «клиент — сервер». У тебя на компьютере установлен клиент игры, а где-то еще есть ПК с серверной конфигурацией. Для игры нужно подключить клиент к серверу. Это хорошее решение. Если сервер справляется с нагрузкой, то у всех клиентов будет отличная производительность и плавный игровой процесс.
В Counter-Strike: Global Offensive, грубо говоря, используется два типа серверов. Назовем их «официальные» и «сторонние». К первым относятся те, которые содержит сама компания Valve. Простой пример — каждый матч в рейтинговой игре будет проведен на официальном сервере.
Сторонние — это сервера сообщества. На них могут быть пользовательские модификации, выключен VAC или карты из Мастерской. Также на таких серверах можно сыграть в уникальные режимы, вроде десматча с уроном только от выстрелов в голову.
Бесплатный сервер от гугл
Собственный сервер требует затрат. Его нужно либо создавать самому, а для этого желательно иметь статичный IP-адрес и, в идеальном варианте, отдельный ПК. Либо же арендовать. Аренда сервера с полутора десятками слотов для тренировок обойдется примерно в 15 долларов в месяц.
Но есть возможность попробовать все сделать самому и бесплатно. Для этого нужно использовать Google Cloud с трехмесячным пробным периодом. Мы впервые увидели такую идею на сабреддите игры в посте пользователя k97513. Спасибо ему за наводку!
Для создания своего сервера придется немного повозиться, поэтому мы написали инструкцию на шесть шагов. Вот и она!
Шаг 1: создать сервер
Для этого потребуется учетная запись Google и банковская карта. Если все есть — нужно перейти на Google Cloud, войти и нажать на кнопку «Get started for free». После этого придется заполнить все необходимые поля на двух экранах и наконец-то зайти на сайт.
«Бесплатный» старт значит, что Google выдает 300 долларов и возможность три месяца использовать сервис Google Cloud. При этом 300 долларов «виртуальные», их можно потратить только на сервис и никак иначе. Приятная сторона вопрос — компания не будет требовать эти деньги назад и без прямого разрешения пользователя не начнет снимать деньги с указанной карты.
Проще говоря — после регистрации можно резвиться три месяца, а когда деньги на счету кончится ничего не произойдет. Просто «веселье» кончится и за его продолжение уже придется платить.
На главном экране сайта в левой панели нужно выбрать Compute Engine. В открывшемся окне вверху нажать на кнопку Create Instance. Теперь нужно дать имя серверу, выбрать конфигурацию и указать размер диска, вместе с используемым дистрибутивом. Живем один раз, так что мы рекомендуем брать самую свежую Ubuntu. В нашем случае — 20.04 LTS с октябрьскими апдейтами.
Теперь осталось жмакнуть Create и сервер готов.
Шаг 2: настройка сети
На экране VM instances теперь должен быть сервер с выбранным названием. Клик на название, пролистать вниз до Network interfaces там выбрать View Details. В этом разделе нужно сначала открыть External IP addresses. В табличке поменять тип IP на статический (Static).
Потом на левой панели выбрать Firewall и создать новое правило. Это можно сделать по нажатию на клавишу в верхней части экрана. Правилу обязательно нужно дать название. Пролистав ниже названия нужно установить следующие параметры:
Осталось нажать на Create, чтобы создать правило, и вернуться на экран VM instances.
Шаг 3: установка
Почти готово, осталось превратить обычный сервер от «гугла» в игровой. Для этого нужно открыть терминал нажатием на кнопку SSH на экране VM instances. Откроется терминал, в нем нужно ввести три команды в порядке очереди.
После ввода каждой нужно подтверждать все нажатием клавиши Enter. Первые две команды будут выполнены быстро, а вот третья может занять до получаса реального времени.
После окончания установки в терминале появится вопрос, который можно проигнорировать и продолжить нажатием клавиши Enter.
Шаг 4: запуск
Все почти готово. Осталось подружить Steam с сервером. Для этого нужно посетить страницу «Управление аккаунтами серверов игры в Steam». Там промотать вниз до предложения создать новый аккаунт сервера игры. В номере приложения ввести 730, это номер CS: GO, в примечаниях можно оставить полезные заметки.
В табличке рядом появится введенная информация и столбец «Идентификатор». Он нам еще пригодится. Его лучше куда-то скопировать. Также стоит скопировать Internal IP из таблички на экране VM instances.
Оба значения нужно подставить в шаблон:
Получившеюся конструкцию нужно добавить в файл start.sh. Для этого ввести nano start.sh. Потом вставить через хоткей CTRL + V, сохранить нажатием CTRL + S и выйти при помощи CTRL + X.
Чтобы закончить с запуском осталось сделать еще одно действие — ввести sh start.sh. Все. Ура. Поздравляем, у тебя самый обычный пустой соревновательный сервер со 128 tick.
Шаг 5: резервная копия
Если ты собираешься делать что-то, кроме обычной беготни на самом обычном сервере — стоит сделать резервную копию. Она поможет откатить все изменения, если установка модов, например, пойдет не по плану. Полезная штука.
Сделать резервную копию сервера очень просто. Достаточно на экране VM instances нажать на название сервера, в открывшемся окне выбрать вверху Create machine image. Потом дать название резервной копии и, как всегда, жмакнуть на кнопку Create. Все. Бек-ап готов.
Если все делать по инструкции и внимательно, то можно управится за час. Всего час и у тебя в кармане будет личный сервер на три месяца для любых экспериментов или тренировок. А чтобы тренироваться было веселее, не забудь зайти на наш сайт и прикупить себе парочку крутых скинов. Они точно порадуют глаз.
Idle сервера кс го
IDLE сервера, представляют собой специально настроенные конфигурации, чтобы пользователи находящимся на данном сервере, имели большой шанс на выпадение предмета в конце раунда.
Для чего нужны IDLE сервера
В СS:GO один из самых больших списков внутриигровых предметов. Для мотивации игроков больше проводить времени в игре, после матча вам могут выпасть как совсем дешевые, так и относительно стоящее айтемы. Но так как постоянно находится на сервере без вашего участия нет возможности, многие находят выход с помощью IDLE серверов.
Некоторые владельцы, специально устанавливают раунды буквально по 15-20 секунд, а так как вещи выдаются в конце матча, у вас будет хороший шанс заполучить, что-то в свой инвентарь.
Вам нужно двигаться для того, чтобы вас не выкинуло из сервера, для этого используйте полезную статью ниже.
Где найти IDLE сервера
Прежде чем зайти на сервер, нужно предварительно узнать адрес. Найдите IP в интернете или просто зайдите в «Список серверов общества«.
Также можно взять парочку IP прямиком у нас, перед написанием мы проверили их работоспособность, пользуйтесь без опасений:
МОЖЕТ БЫТЬ ПОЛЕЗНО : Замутить всех
Чтобы подключится, просто откройте «Консоль разработчика» с помощью кнопки «ё», после чего и вставьте ранее скопированною строчку в нужное место:
Если по какой-то причине, ранее вы еще не использовали данную консоль, активировать её можно с помощью простых манипуляций.
В верхней части экрана выберете вкладку «Игра»;
Выберите пункт «Включить консоль разработчика» и переведите его в положение «ДА».
Почта для связи
gocsgo.net@gmail.com
[Туториал] Как создать вашу первую инкрементальную IDLE игру на JavaScript
Сегодня я расскажу вам, как создать простейший ToDo лист простейшую инкрементальную IDLE игру на JavaScript, потратив меньше одного дня ежегодных каникул. Для этого предлагаю выбрать сову игру попроще и не пропускать шагов между овалом и готовой совой пустым проектом и готовой игрой.
Людям, знающим как делать такие игры, будет скучно; людям, знающим JS, рекомендую смотреть на код сквозь пальцы (во избежание травм) и читать только про механики. Под катом последовательная инструкция, ориентированная на новичков.
Инкрементальные игры — это игры, в основе которых лежит [бесконечный] основной цикл, состоящий из накопления ресурсов, их постоянных трат и ускорения дохода. Главная их особенность в постоянном росте чисел. Инструкция расскажет, как сделать IDLE (ленивую) игру, в которой ресурсы пополняются таймером, а не активным кликаньем.
Начнем с того, что создадим текстовый файл с именем index.html и напишем в него следующее:
На текущий момент никакой игры пока нет, но есть всего лишь статичная надпись.
Ссылка на игру в текущем состоянии: 0df7a27.
В основе всех игр в этом жанре лежат два условно-бесконечных игровых цикла.
Первый цикл заключается в накоплении ресурсов.
Второй цикл заключается в трате ресурсов.
Давайте реализуем первый цикл.
В первую очередь, строка
обеспечивает нам возможность обращаться к ней по её id, и менять содержимое внутри тегов, в нашем с вами случае — значение наличных монет.
Во-вторых, появился скрипт.
Создаем переменную coppers, и задаем её область видимости ключевым словом let. Аналогично объявлением copperGrowth, которая будет отвечать за скорость прироста медных монет.
Далее создаем объект, в который мы поместим наш таймер, который будет дергать функцию endOfTurnCalc каждые 2000 мс (2 секунды). Функция обеспечивает прирост медных монет и обновление интерфейса. Ура, половина игры сделана: у нас есть цикл накопления ресурсов. Следующая задача — научиться их тратить.
Ссылка на игру в текущем состоянии: e5d96e1.
Давайте добавим кнопку, которая будет позволять нам тратить медные монеты на улучшения медной шахты, ее предлагаю поставить перед нашей строкой с монетами. Кнопка, ее название, функция, которую кнопка вызывает, имя кнопки — содержимое внутри тэгов.
Добавим код, который позволит кнопке апгрейда работать:
и код, который окажет влияние на скорость добычи новых монет:
Зададим цену улучшения шахты, определим уровень шахты по умолчанию, пропишем в функцию проверку достаточности монет на апгрейд шахты.
В случае, если денег достаточно, то списываем цену апгрейда, повышаем текущий уровень шахт, рассчитываем цену для следующего улучшения; выводим на экран текущие значения медных монет и стоимости следующего улучшения.
Ссылка на игру в текущем состоянии: c731ec5.
Ну что же, играть уже можно — можно копить, и, что приятнее, тратить накопленное. Но нам нужно подкрепление успеха — игрок не только вычислять прирост скорости накопления монет, методом вычитания от нового значения старого, но и, по-хорошему, сразу видеть текущую скорость накопления монет. Сделаем?
В интерфейс добавляем еще одну строчку:
Теперь наш интерфейс описан следующими строчками:
Вносим изменение в скрипт, в функцию upgCopperMine():
Ссылка на игру в текущем состоянии: 3ac06b6.
Отлично! У нас есть условно-бесконечная игра. Теперь надо остановится на секунду, и задуматься — части людей нравится, когда конечной цели нет, и можно играть, пока не надоест, другая часть считает, что условия конечности, достижимости игры должны быть. Игру для первых мы уже сделали, но что мешает нам сделать небольшое изменение, чтобы у игры была цель и условие победы? Давайте сделаем.
Добавили переменную, в которую положим значение, которое нам нужно достичь и изменим функцию из цикла, добавив проверку на достижение цели. При достижении цели мы очищаем интервал из нашего объекта с таймером и выводим всплывающее сообщение в браузере.
Есть небольшой момент: некоторые антивирусы не любят alert’ы и блокируют страницу за их использование.
Ссылка на игру в текущем состоянии: 8fa4041.
Следующая функциональность, которую ожидают люди от игры длиннее пяти минут — это возможность сохранять и загружать игру. Давайте же дадим им её!
Добавляем в интерфейс две строчки, не забыв добавить в предыдущую строчку тег перевода строки:
и теперь расширим наши скрипты, чтобы кнопки заработали:
Кладём все изменяемые ресурсы в локальное хранилище браузера при сохранении и при чтении читаем их обратно и обновляем интерфейс.
Ссылка на игру в текущем состоянии: 54b1ea0.
Все, основная часть игры готова.
К текущему моменту мы рассмотрели:
— создание ресурса;
— добычу ресурса;
— трата ресурса на апгрейд системы его добычи;
— отражение скорости добычи ресурса;
— условие победы;
— запись и чтение сохранения игры в локальное хранилище браузера.
Продолжим? Перед тем как приступить к следующей теме, а именно добавлению второго ресурса в нашу систему (серебра), я предлагаю провести небольшой рефакторинг текущего кода.
Что нужно сделать в рамках рефакторинга?
Во-первых, давайте создадим один игровой объект, а медные монеты, уровень медных шахт и так далее поместим внутрь как свойства этого объекта. Это сильно поможет в будущем, когда мы будем расширять сохранение и загрузку на новые игровые сущности.
Во-вторых, сделаем расчет цены апгрейда динамическим.
В-третьих, избавимся от дублирования кода, который отвечает за обновление интерфейса.
Код, приобретет следующий вид:
Довольно очевидно, что мы создали объект game, и внутри объекта прописали его свойства и значения свойств. Далее, везде, где мы раньше обращались напрямую к переменным, мы теперь обращаемся к тем же свойства объекта game.
Ссылка на игру в текущем состоянии: 8a07f4d.
Давайте теперь обновим систему сохранения и загрузки.
Теперь, вместо сохранения отдельных свойств, мы сохраняем весь объект целиком. Но будьте осторожны: если вы добавите в объект методы, то они не сохранятся таким образом, и последующая перезапись объекта из сохранения удалит все методы…
Ссылка на игру в текущем состоянии: 8eba059.
Давайте же удалим ненужное свойство — цену апгрейда шахты и создадим функцию расчета апгрейда и будем вызывать ее в необходимых местах.
Ссылка на игру в текущем состоянии: 4007924.
Наконец, вынесем повторяющиеся части кода обновления интерфейса в отдельную функцию.
В свою очередь, во всех остальных местах, где мы обращались к тем или иным объектам DOM, теперь поставим вызов функции updateUI():
Ссылка на игру в текущем состоянии: 2245f97.
Теперь предлагаю ввести второй ресурс: серебро, строительство и улучшения серебряных шахт.
Что сделано? В интерфейсе добавлены поля для отображения серебряных монет, скорость их добычи, кнопка для постройки или улучшения серебряной шахты.
Внутрь игрового объекта продублированы свойства silvers, silverGrowth, silversUpgLevel, но для последнего установлено значение 0, потому что серебряной шахты у нас по умолчанию нет.
Добавлена переменная silverMineBasePriceCoppers, которая будет отражать цену постройки серебряной шахты в медных монетах (потому что мы не можем платить за серебряную шахту серебром, которого у нас пока нет).
Модифицирована функция coppersUpgCost и продублирована как silversUpgCost, чтобы цена апгрейда была отличной от нуля, в случае, если текущий уровень шахты равен 0.
Изменили функцию обсчета конца хода, добавив туда расчет дохода от серебряной шахты, а также изменив условие победы — теперь нам нужно сравнивать не количество медных монет, а количество серебряных монет.
Создали функцию upgSilverMine, в которой отразим логику списывания средств (если шахты еще нет, списываем медяки, если шахта уже построена, то списываем серебро для улучшения шахты).
В функцию updateUI добавили необходимые строчки для серебра, а также разделили логику вывода текста на кнопку для улучшения серебряной шахты, таким образом одна кнопка работает и для постройки и для улучшения шахты.
Функции сохранения и загрузки остались без изменений.
Ссылка на игру в текущем состоянии: 03eb0eb.
Может так случиться, что медных монет накопиться много больше, чем надо, в то время как серебро еще нужно заработать. Для этого в подобных играх, как правило, существует возможность обмена разных ресурсов друг на друга.
Давайте добавим в интерфейс пару кнопок:
И добавим пару функций к этим кнопкам:
Ссылка на игру в текущем состоянии: 92219b2.
Так, что еще можно добавить в инкрементальную игру? Механизм Престижа! Конечно, сейчас это скорее излишество, но в случае дальнейшего развития игры, он вам пригодится. Игроки любят его!
В разных играх сделано по-разному, но в целом — механизм дает очки Престижа либо после успешного завершения (прохождения) игры, либо, разблокируется во время игры после достижения некоего целевого порога.
С помощью очков Престижа игрок получает возможность быстрого старта или постоянного бонуса в этой же игре (возможно, что в следующей миссии, если игра разбита на таковые), так, что он может попробовать какую-то другую тактику, но тратит меньше времени на повторное прохождение. Таким образом, можно изучить несколько развилок, опробовав разные решения, и затрачивая на это меньше времени, чем если бы такового механизма не было.
Что нам потребуется для этого? Нужен механизм перезапуска игры со значениями по умолчанию. В качестве постоянного бонуса, будем добавлять очки Престижа к ранее неизменяемым свойствам copperGrowth и silverGrowth.
Добавляем следующие функции winGame, restartGameDialog, restartGame, а также изменим endOfTurnCalc для вызова новых функций и обновим updateUI:
Функция winGame запускает таймер, по истечению которого вызывается диалог подтверждения. В случае подтверждения вызывается функция рестарта, которая сбрасывает все значения на умолчанию, но увеличивает свойства базового прироста монет.
В целом, игра готова:
— создание ресурса;
— добычу ресурса;
— трата ресурса на апгрейд системы его добычи;
— отражение скорости добычи ресурса;
— условие победы;
— запись и чтение сохранения игры в локальное хранилище браузера;
— добавление еще одного ресурса с добычей и апгрейдом его добычи;
— обмен ресурсов;
— механизм рестарта игры и механизм Престижа.
Ссылка на игру в текущем состоянии: 92219b2.
Наконец, последнее, что в этой статье хочется показать, это другой механизм хранилища, потому что у текущего механизма есть одна, но существенная проблема.
Представьте себе, что вы разрабатываете игру, публикуете ее на веб-сервере (возможно, на github pages), а люди в нее играют. Со временем, вы вносите изменения в игру, которые добавляют новые свойства к игровому объекту game.
Теперь следите за руками.
Игрок заходит со старым сохранением, в котором есть все свойства coppers и silvers, но нет, скажем, свойства gold. Загружается наш game объект и перезаписывает тот, который был создан при загрузке веб-страницы, и теперь внутри объекта есть только те свойства, которые были в его сохранении. А код-то мы уже обновили! И этот код ссылается на обновленные свойства, которых нет. Таким образом, код начинает получить множественные ошибки, вплоть до полной неработоспособности игры. На удивление, чтобы исправить эту проблему, нужно переписать всего две строчки в функции загрузки игры:
Теперь, если добавите в game = < gold: 1, >и загрузитесь с вашего старого сохранения, где золота еще не было, то золото останется в объекте и игровая логика нигде не сломается.
Ссылка на игру в текущем состоянии: 83c258d.
Еще одно. Перенос сохранений между браузерами, давайте его тоже запилим.
Добавили две служебных переменных, обновили updateUI(), написали три функции — экспорта, импорта, и функцию, которая изменяет флаг отображения экспорта, таким образом «старый» экспорт через 30 секунд после его формирования будет скрыт.