Игровой ДизайнФорумОбщее

Как правильно реализовать продажу предметов в Steam?

#0
18:09, 3 авг 2026

Добрый день!
Хочу сделать магазин для продажи уникальных предметов за деньги в игре через Steam.

Сейчас у меня так реализовано:
Игрок подходит к NPC и в диалоге выводится список товаров из Steam. Игрок может их купить и они попадут в его кабинет Steam.
И в диалоге с NPC можно купленные товары переместить уже в инвентарь внутри игры. После перемещения товары удаляются из Steam типо игрок их получил.

И тут нюанс вот, что делать если игрок купил дробовик и 100 патронов к нему.
Дробовик у него уже в руках и он побегал и расстрелял 60 патронов.
Но не сохранил игру. И вышел из игры или вылет был игры.
И потом он заходит, а его сохранение сделано до покупки дробовика и патронов. То есть их нет в инвентаре и их нет в Steam.

1. Игрок может написать в поддержку Steam и ему вернут этот предмет?
2. Steam может применить какие то санкции к игре если много игроков будет жаловаться на это?
3. Если игрок заплатил деньги за предмет то он имеет право им пользоваться пока он не истратиться полностью? Или если игрок погиб и не сохранился то и предмет исчезнет? То есть нужно учитывать именно факт использования предмета? Игра обязана учесть что игрок потратил 60 патронов и у него осталось 40. И он снова их может взять из магазина Steam?
4. Игроки могут жаловаться именно на игру и выставлять претензии разработчикам? Или по договору все проблемы по поводу  багов игры и качества продаваемых товаров решаются только через steam?

#1
22:57, 3 авг 2026

Что мешает автоматически сохраняться при покупке? И не изымать покупку из кабинета, пока сохранение успешно не произошло.
Про предметы в игре стим ничего не знает, а соответственно и вернуть не может. Это ваши внутренние механики.
Игру продаете вы, а не стим. Стим лишь оказывает вам услуги по организации продаж. И все претензии к вам, а не к стиму. Торговые площадки не могут работать иначе, их бы съели. Отвечать за продукт вместо вас издатели, стим издателем не является.

#2
23:14, 3 авг 2026

Не знаю, как работает конкретно в стиме, но, в целом, схема везде будет примерно одинаковая.
При покупке за ИРЛ на платформе игрок покупает лот. Всё. Теперь ты всегда можешь узнать, что игрок этот лот купил.
Со стороны игры эту транзакцию надо сделать максимально безопасно, с проверкой и сохранением чувствительной информации на каждом этапе.
Лоты делятся на 2 типа: расходуемые и перманентные.
Перманентная покупка - это аналог выставленного флага. Открытие доп. уровня, доп. вкладки инвентаря и т.п. Она не может никак быть израсходована, и игрок может восстановить покупку, если по какой-то причине информация была утеряна.
Расходуемые предметы - это, как правило, всякая валюта, бустеры и т.п. Такие покупки не подлежат восстановлению, и ты должен аккуратно обращаться со счётчиками, чтобы на тебя не начали наезжать и обвинять в мошенничестве.
Когда лот приобретён, ты должен эту коммерческую операцию как-то обработать на стороне игры.
Хорошей практикой является создание полностью отдельной системы, которая отвечает за сохранение информации о покупках (за ИРЛ, хард-валюту (если есть) и в некоторых случаях даже софт-валюту - зависит от игры). Эта часть должна быть надёжной, и, крайне желательно, расположенной на бэкенд-сервере (чтобы умельцы не "напокупали" те же вещи за читы).
Как потом растащить это всё с бэкенд-сервера на клиент или на игровой сервер - это уже твоя логика, как ты хочешь сохранять и т.п.

Но в твоей схеме "сохранение до покупки" - это какая-то фигня. Так обычно не бывает. Потому что, наверно, обычно ИРЛ покупки - они не через НПЦ идут.
Какого ты вообще ожидаешь поведения, если ты купил предмет за 100500 рублей, а потом тебя откатило на 10 уровней назад? Выглядит как проблема дизайна.

#3
9:30, 4 авг 2026

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

Zab
> Игру продаете вы, а не стим. Стим лишь оказывает вам услуги по организации продаж. И все претензии к вам, а не к стиму. Торговые площадки не могут работать иначе, их бы съели. Отвечать за продукт вместо вас издатели, стим издателем не является.
Ну тут же игра, а не магазин, и законы розничные на нее не распространяются. То есть человек купил дробовик думал мощная пушка и дорогая. А она средняя хуже чем обычный лут в игре. И он недоволен. Или игра вылетает часто и он толком не может пользоваться этим предметом из-за багов. То есть на разработчика-издателя можно пожаловаться через суд (если он инди)? Типо товар не оправдал ожиданий, хочу вернуть + моральный ущерб. Суд по месту проживания игрока или разработчика? Или так не бывает?

pahaa
> Не знаю, как работает конкретно в стиме, но, в целом, схема везде будет примерно одинаковая.
> При покупке за ИРЛ на платформе игрок покупает лот. Всё. Теперь ты всегда можешь узнать, что игрок этот лот купил.
> Со стороны игры эту транзакцию надо сделать максимально безопасно, с проверкой и сохранением чувствительной информации на каждом этапе.
Игрок подошел к NPC и в разговоре выбрал купить ИРЛ, открылась панель товаров ИРЛ. Игрок купил дробовик и патроны. Теперь игрок может в любой момент, при любой игре и загрузке открыть панель купленных товаров ИРЛ и ЗАБРАТЬ предмет в игровой рюкзак. В конкретной игре, которая уже идет.
Если забрал, и начать новую игру то в панели товаров ИРЛ уже не будет этого предмета, а внутриигровой рюкзак пустой так как новая игра. А человек не успел воспользоваться.

pahaa
> Лоты делятся на 2 типа: расходуемые и перманентные.
> Перманентная покупка - это аналог выставленного флага.
У меня пока все расходуемые.
Но получается лучше сделать дробовик перманентным, а патроны расходуемыми?
То есть игрок купил дробовик и при любой игре и любом сохранении он может этот дробовик добавлять и он не исчезнет. Как пример из metal gear solid 1, я прохожу игру и купил ИРЛ бандану невидимости. Эта бандана будет у меня в течении этого прохождения? Или навсегда привязана к аккуанту и при каждом прохождении будет у игрока?

pahaa
> Но в твоей схеме "сохранение до покупки" - это какая-то фигня. Так обычно не бывает. Потому что, наверно, обычно ИРЛ покупки - они не через НПЦ идут.
> Какого ты вообще ожидаешь поведения, если ты купил предмет за 100500 рублей, а потом тебя откатило на 10 уровней назад? Выглядит как проблема дизайна.
Ну вот и вопрос.  Игрок накупил 10 элитных зелья здоровья положил в рюкзак в игре и из Steam ИРЛ эти товары исчезли. Уже в рюкзаке в игре эти зелья ничем не отличаются от таких же найденных в игре. И то и то просто элитное зелье здоровья. И соответственно игрок пошел в пещеру потратил там 2 зелья здоровья его убили и он начал новую игру, а у него теперь 0 элитных зельев.
Как я понял нужно делать связь между товаром ИРЛ и товаром в рюкзаке в игре. Чтобы из Steam  ИРЛ удалять патроны и зелья только когда конкретный товар был использован игроком. Но игрок может опять ими воспользоваться если загружает старое сохранение.

#4
10:03, 4 авг 2026

manking
> Суд по месту проживания игрока или разработчика? Или так не бывает?
Это проблемы недовольного игрока, стимовцев они не волнуют. Они так договор составили, что вообще ни при чем. Раньше такой договор назвали бы агентским, но торговые площадки этого слова избегают, придумывают более благородно звучащие аналоги типа "поставщик, не являющийся продавцом", это они про себя.
Это только кажется, что покупаешь игру у стима. Но нет, покупают ее у разраотчика, стим оказывает услуги разработчику. Из-за этого, кстати, проблемы с налогами для ИП на упрощенке. Доля стима входит в доход, хотя этих денег ты никогда не видел. Очень многие платят налог только с денег свалившихся на счет, но их в любой момент можно брать за задницу, было бы желание докопаться.

#5
13:35, 4 авг 2026

manking
> Игрок подошел к NPC и в разговоре выбрал купить ИРЛ, открылась панель товаров ИРЛ. Игрок купил дробовик и патроны. Теперь игрок может в любой момент, при любой игре и загрузке открыть панель купленных товаров ИРЛ и ЗАБРАТЬ предмет в игровой рюкзак. В конкретной игре, которая уже идет.
Если забрал, и начать новую игру то в панели товаров ИРЛ уже не будет этого предмета, а внутриигровой рюкзак пустой так как новая игра. А человек не успел воспользоваться.

Это вопрос гейм дизайна, стим ту ни при чём.
Я ж тебе задал главный вопрос: если ты откатил прогресс до момента до покупки - что должно произойти?
А если бы ты сам играл, и у тебя предмет за ИРЛ просто затёрли в сохранке?
В мобилках бывает фича «сброс прогресса», там перед её активацией обычно предупреждают, какие вещи ты сохранишь, а какие потеряешь.

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

#6
18:10, 4 авг 2026

Варианты геймдизайна для таких внешних покупок:

- сделать "постоянный" сейв как в ММО/Геншине. Игрок не может никуда "откатиться", прогресс постоянно отправляется на сервер.

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

Игровой ДизайнФорумОбщее