Как я покупаю игры в Steam

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

Предыстория

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

Инструмент № 1

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

Ещё вишлист можно использовать, если очень хочется купить игру, но зарплата через две недели. Тогда игру можно отложить, а с получки вернуться к ней и купить. Но мне кажется, что живя идеей «купить игру после зп», её название очень хорошо отложится в памяти и вряд ли мне нужна в этом помощь стимовских закладок.

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

Резюмируя: первый инструмент, который я использую для покупки игр, — это стимовский вишлист и их уведомления о снижении цены.

Инструмент № 2

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

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

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

Резюмируя: узнав о наличии скидок в моём вишлисте через стимовские уведомления, я смотрю на gamefarm, является ли размер скидки достойным для переезда игры в мою библиотеку.

1 + 2

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

Скриншот выдачи сайта
Скриншот выдачи сайта

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

Прежде чем писать о его фичах и планах на будущее, хочу начать с самого большого ограничения на данный момент: весь парсинг происходит в риал тайме. То есть тот клиент, который запрашивает цены для своего вишлиста, запускает процесс парсинга, что занимает время (~минута на 100 игр) .

Сокрость парсинг вишлиста из 106 игр
Сокрость парсинг вишлиста из 106 игр

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

Что умеет сейчас:

  • Парсить вишлист (по логину или id профиля) и сопоставлять цены с gamefarm
  • Ставить клиента в очередь и восстанавливать его статус даже после перезагрузки страницы (у вас есть 10 секунд, чтобы автоматически не вылететь из очереди) . Сделано на случай, если случайно закрыл страницу
  • Расширенные (по сравнению со стимовскими) фильтр и сортировка

Ограничения:

  • Если кто-то зачем-то парсит ваш вишлист, то вы не сможете встать в очередь, пока из неё не выйдет этот человек

Какие планы:

  • ✅ Самое приоритетное — добавить какое-никакое кеширование, чтобы ускорить парсинг. Каждый клиент, чья игра ранее не парсилась является инициатором парсинга и сохранения в кэш. Таким образом, первая обработка вишлиста будет подольше, а вторая — моментально. Кэш живёт один день
  • ✅ Выводить игры, недоступные в регионе (об этом ниже)
  • ✅ Парсинг больших вишлистов
  • ✅ Прогрев кэша. Думаю, может быть полезным прогревать кэш автоматически в начале дня по вишлистам, которые уже запрашивались пользователями ранее, чтобы быть более лояльным к вернувшимся
  • Позволить присоединиться к очереди на парсинг одного и того же вишлиста
  • Сохранять состояние фильтра
  • Выслать результат в телеграм (чтобы не ждать в очереди. Ну, то есть ждать придётся, но не сидя за монитором)
  • Бот с похожим функционалом сайта в телеграм
  • И много других эксклюзивных фич, которых нет ни на одном агрегаторе

Нюанс № 1: GameFarm не вечен

У gamefarm есть один недостаток — он существует практически автономно. То есть он ежедневно исправно парсит 40+ ресурсов на наличие лучших цен, но редакция и контент заморожены с середины 20 года. Насколько мне известно, владельцы что-то не поделили и не очень дружелюбно разошлись. Вполне вероятно, что его отключат, как только закончится срок действия домена. А может и появятся новые хозяева — хз. Но хостинг проплачивается кем-то уже более года. Баги не фиксятся примерно столько же.

Если его отключат, то, наверное, всё-таки придётся писать отдельно свой парсер и проходиться им по паре ресурсов. Лично я покупаю ключи только у пары-тройки продавцов, что гораздо приятнее с точки зрения реализации, чем 40+. Если кому интересно, то по запросу поделюсь сайтами, чтобы исключить вероятность потенциально фишинговых ссылок.

Нюанс № 2: Игры нельзя вернуть

Как я уже писал выше — игры, активированные по коду нельзя вернуть по стандартным правилам стима (наиграно менее 2 часов или «купил по ошибке» до 14 дней) . Логика тут простая: я покупаю их не у стима, значит и стим не будет мне ничего возвращать. Владельцы же сайтов, которые продают ключи, тоже не будут вам возвращать деньги, т. к. активированный ключ вернуть нельзя. Поэтому я редко покупаю что-либо дороже 10$.

Нюанс № 3: Данный товар недоступен в вашем регионе

С этим я столкнулся буквально вчера (хоть статью начал писать 6 марта) во время тестов: ряд игр стали отдаваться с нулевой ценой в стиме. А логика моего сайта такова, что такие игры считаются бесплатными и для них не совершается обращение к gamefarm за «вкусными ценами». Но по тайтлам я понимал, что такие игры бесплатными быть не могут. Когда уже точечно стал разбираться с проблемой, обнаружил, что это именно те игры, которые попали под санкции. В вишлисте у них висит ссылка «подробнее» вместо привычной цены, а при переходе на страницу пишет «Данный товар недоступен в вашем регионе».

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

Ссылка

Эту статью буду использовать, как devlog для будущих обновлений, поэтому сохраняйте в закладки.

Готов выслушать ваши мысли и получить ранний фидбек!

UPD 14.03.22

  • Пофиксил баги выдачи парсера: если игра недоступна в регионе, но для неё есть ключи, то она появится в выдаче. Так же исправил парсинг двойных цен с одного и того же магазина. Убрал из выдачи стрёмные и «мёртвые» магазины
  • Увеличил скорость парсинга ~10%
  • Исправил сортировки: Best Deal, Highest Discount, Lowest Price. Best Deal работает по следующему аглоритму: сперва выводятся игры, чьи ключи можно купить на сторонних магазинах (чаще всего они самые дешёвые), затем идут игры, чья цена в стиме сейчас на скидке, затем — недоступные для покупки в стиме, а только по ключам или в других лаунчерах
  • Фильтр по цене <300 не учитывает игры <100, то есть фактически выводит игры от 100 руб. до 300 руб.
  • Фильтр Only Games теперь помимо игр включает и DLC
  • Фильтр по названию и тэгу теперь ищет совпадение по всей строке, а не по её началу
  • Обновил текст подсказки в поле ввода имени профиля или id
  • Обновил сообщение, если долго нет соединения с сервером

В целом в выдаче сейчас появилось больше игр: 46 vs 43 на моём вишлисте. Несмотря на то, что разница небольшая, но в эти 43 входили игры, которые невозможно купить. Поэтому реальная разница ~10.

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

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

В целом, я выжал максимум достоверной информации, которую можно достать из gamefarm. Далее буду рассматривать возможность сотрудничества с hot-game (мы уже связывались, ребята готовы идти навстречу) , либо буду писать свои парсеры, т. к. все имеющиеся агрегаторы в ру регионе имеют свои незначительные недостатки, которые я знаю, как можно исправить.

За эти пару дней пользователи искали скидки для почти 4000 игр.

UPD 15.03.22

Реализовал парсинг больших вишлистов. Каждый вишлист разбивается на несколько частей по 200 позиций. После парсинга каждой части, пользователь возвращается в конец очереди. Это даст возможность не забивать очередь и при этом завершить парсинг до конца.

UPD 16.03.22

Представьте ситуацию: сегодня вы пользовались сайтом и он нашёл вам скидки для десяти игр из вашего вишлиста. Завтра вы возвращаетсь и в этот раз сайт показывает вам уже пятнадцать игр. Как понять, какие пять игр добавились? А может и вовсе не пять, а шесть, а у одной из вчерашних просто пропала скидка?

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

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

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

Так же добавил всплывающие подсказки для больших пальцев вверх, вниз и в обе стороны.

Немного переработал UI фильтра, переместив фильтр на уровень с поиском игры по названию, а чекбокс с текстом «Only games» превратил в чекбокс-иконку, которая теперь располагается рядом с новой чекбокс-иконкой динамики цен. Оба чекбокса имеют вспылающую подсказку.

Этот девлог был последним в рамках текущей статьи. Все следующие девлоги будут выходить у меня в персональном блоге, поэтому подписывайтесь и следите за обновлениями!

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

8282
35 комментариев

"как я покупаю игры?" - "плачу деньги"

13
Ответить

Знаешь другой способ покупать?!))

1
Ответить

Хороший инструмент, спасибо! Добавил в закладки

5
Ответить

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

да им сложно вывести из-за некоторых санкций... ну так и хрен с ними

1
Ответить

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

5
Ответить

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

2
Ответить