Как разместить свою игру в Steam?

Юридическая помощь по вопросам издания видеоигр на игровых площадках: Steam, GOG, itech, Epic Games и других от компании Law&Trust International. Юристы нашей компании имеют огромный опыт работы с IT проектами и проконсультируют Вас в вопросах издания своего продукта в интернет сети.

Как разместить свою игру в Steam?

Как разработчику добавить свою игру в Steam?

Steam – самая популярная в мире площадка для распространения игр. Ежедневно здесь происходят миллионы скачиваний, а правообладатели зарабатывают колоссальные деньги. Важный плюс Steam в том, что загрузить игру в библиотеку может не только организация, но и обычный пользователь, который самостоятельно реализовал свою идею. Поэтому даже если вы не работаете в Gamesoft или Valve, а являетесь инди-разработчиком, вы тоже можете загрузить собственную программу и даже заработать деньги.

Однако перед тем как опубликовать игру в Steam, нужно знать важные нюансы. Загрузка сторонних приложений осуществляется по строгим правилам, поэтому необходимо выполнить все требования площадки. Юридическая компания Law&Trust расскажет, как добавить игру в Steam Direct, и какие юридические особенности есть у этой процедуры.

Публикация игр в Steam Direct и Greenlight

Ранее игры в Steam публиковались с помощью сервиса Greenlight. Чтобы воспользоваться им, разработчику нужно было заплатить 100 долларов разовым платежом, после чего он мог загружать в свой аккаунт сколько угодно инди-игр или версий. Повторно платить не требовалось. При этом издатель мог загружать различные видеоролики, скриншоты. Если сообщество одобряло игру, ее можно было загружать на сервер и зарабатывать деньги.

Однако теперь ситуация иная. Greenlight был переработан и превратился в Steam Direct. Основные изменения коснулись стоимости загрузки игр в игровой магазин. При Greenlight необходимо было заплатить один раз 100 долларов и загружать хоть миллион игр и их версий. Способ загрузки через Директ требует платеж 100 долларов за одну (!) игру.

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

Инструкция по загрузке игры в Steam

  • Информация об издателе. Включает заполнение документов о компании, которая публикует игру;
  • Оплата взноса. Напоминаем, его размер составляет 100 долларов за одну игру. Внести средства вы можете любым способом, поддерживаемым платформой;
  • Представление дополнительной информации. Необходимо предоставить банковские и налоговые сведения об организации, которая разрабатывает игру;
  • Подготовка к публикации. Если вся информация об издателе проверена и подтверждена, открывается доступ к Steamworks, где вы можете открыть страницу для игры, настроить функционал и указать стоимость;
  • Финальная проверка игры. Специалисты Steam удостоверятся, что игра работает, соответствует заявленным требованиям, и в ней нет вредоносного программного обеспечения;

Юридическая помощь в публикации игр в Steam и других площадках

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

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

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

Как защитить бренд за рубежом?

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

Steam Greenlight и Steam Direct: что нужно знать инди-разработчикам

Старый способ: Steam Greenlight

Давайте начнём разговор со Steam Greenlight. Это будет просто справочная информация, постараюсь изложить её покороче. Steam Greenlight — это функция Steam, реализованная компанией Valve для помощи инди-разработчикам в продаже их игр в Steam. Как работал этот процесс: разработчик платил Valve за участие в Greenlight 100 долларов. Разработчик должен был заплатить этот взнос только один раз, а потом мог загрузить в Steam Greenlight любое количество игр. Деньги назад не возвращались.

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

Теперь о том, как работал процесс одобрения — после публикации страницы ваша игра оказывалась в Steam Greenlight, где пользователи голосовали «Да», «Нет» или «Возможно», чтобы выразить свой интерес. Кроме того, они могли подписываться на страницу и делиться ссылками на неё, оставлять комментарии, читать посты в блоге и объявления создателя страницы. Все игры в Greenlight ранжировались по количеству голосов «Да», и если ваша игра попадала в сотню лучших Steam Greenlight, то вы могли рассчитывать на возможный успех. Если игра добиралась на самую верхушку в конкурсе популярности (одно из пяти верхних мест), ваша игра одобрялась сообществом и ей давался «зелёный свет». Поздравляем! То, что было после, не очень важно для этой статьи, так что остановимся на этом.

Новый способ: Steam Direct

Теперь поговорим о Steam Direct и о том, что мы знаем об этом процессе. Помните о взносе в 100 долларов на Steam Greenlight? Заплатив его, вы могли публиковать любое количество игр. Ну что ж, теперь вам придётся платить по 100 долларов за игру. Взнос больше не однократный. Светлая сторона, если так можно выразится, заключается в том, что если ваша игра сама заработает в Steam больше 1000 долларов, то эти 100 долларов вам вернут.

После оплаты вам нужно заполнить информацию о себе: имя, номер социального страхования и т.д., чтобы можно убедиться, что вы действительно тот, за кого себя выдаёте. Valve также требует заполнения налоговой формы и банковской информации. В процессе заполнения вы должны будете подписать несколько соглашений о неразглашении (NDA). После завершения всей этой бюрократической работы и когда компания удостоверится, что вы — реальный человек, вам разрешат ввести коммерческую информацию — название игры, описание, стоимость и т.д. В процессе Greenlight этого не требовалось делать, пока вашей странице не дадут «зелёный свет».

Когда вы со всем этим разберётесь, вас пригласят в портал разработчиков Steam. Здесь можно будет загрузить свою игру: файлы, достижения, коллекционные карточки Steam и тому подобное. Необходимо передать на тестирование почти готовую версию игры Valve, чтобы компания убедилась, что вы не пытаетесь опубликовать на платформе зловредное ПО или что-то подобное. Обычно это занимает несколько дней. То же самое относится и к коллекционным карточкам Steam и другим дополнительным файлам к игре. Valve рекомендует делать всё это не позже, чем за 30 дней до запланированного выпуска игры, чтобы все файлы были одобрены за разумное время, и никому не пришлось паниковать. У термина «игра» нет строгих определений, но Valve потратит несколько дней на проверку того, соответствует ли ваша игра описанию на странице. После одобрения Valve вы можете выпускать игру в Steam. Поздравляю!

Цена известности

Да, с этим есть проблемы. Самая главная — раньше ваша игра должна была завоевать определённый интерес в Steam Greenlight. В Steam Direct нужно будет просто заплатить, и всё — вы уже в деле. Проблема в том, что Steam практически превращается в PC-версию Google Play Store.

Это очень сомнительный ход для меня как для разработчика и потребителя, потому что на платформе будет ещё больше игр. Кажется, это не так плохо, правда? Но на самом деле это так, потому что в Steam и так уже сложно найти в общей куче стоящие игры — 40% игр в Steam были выпущены 2016 году. С системой Steam Direct процесс поиска новых игр, которые привлекут ваш интерес, ещё больше усложняется. Как разработчику вам придётся конкурировать с кучей не очень качественных игр, занимающих главную страницу, которую должны были занять вы.

Steam Direct добавляет новый непрерывный поток игр, но поиск игр также сложен из-за добавляемых пользователями меток. Любой человек, тролль он или нет, может зайти на страницу игры в Steam и добавить на неё метки. Часто очень низкокачественным играм люди добавляют метку «horror» или «scary», даже если она не является хоррором. Это может быть двухмерный сайдскроллер про единорога, собирающего пирожные, но если игра некачественная, то тролли добавят ей метку «horror». Если вы будете искать новые игры с меткой «horror», то наверняка найдёте игры-хорроры или пугающие игры, но также там будут и совершенно точно не относящиеся к этому жанру игры. Эта проблема уже существует, но чем больше низкокачественных игр появится в Steam из-за постоянного добавления новых, тем сильнее будут пользователи злоупотреблять системой меток.

Ещё одно мое мнение может быть непопулярным. Я говорила с несколькими разработчиками и они, как и я, считают, что цена публикации игры в Steam Direct должна быть немного выше, чем 100 долларов. По-моему, она должна быть не ниже 500 долларов, особенно учитывая то, что вы получите деньги обратно, продав на сумму больше 1000 долларов. Благодаря Patreon, потоковым каналам разработчиков на Twitch, да и просто собираемыми на сайте пожертвованиями хороший разработчик и хорошая игра легко наберут нужную сумму денег.

Читайте также  Как запустить игру с высоким разрешением?

Кстати, об оплате: как насчёт тех разработчиков, которые продают игры за 99 центов или даже бесплатно? Они не вернут своих денег, а если и вернут, то за 99 центов нужно обеспечить солидное количество продаж. Ситуация с бесплатными играми ещё хуже, потому что при возврате средств внутриигровые транзакции не учитываются. Кто-то может сказать: «Да зачем возвращать деньги? Вы же получаете РЕКЛАМУ!». Или: «Почему вы хотите получить деньги обратно? Вы делаете игры только ради заработка?!» На оба этих заявления я могу ответить, что разработка игр не всегда дешева. Хорошо, когда вы получаете отдачу за свою работу, она помогает создавать новые игры.

Интересна (если не сказать больше) ситуация с разработчиками, выпускающими бесплатные игры. Я сочувствую тем, кто хочет выложить игру в Steam, сделать её бесплатной и при этом не получит с этой новой системой ничего — это не очень честно по отношению к ним. Разработчики, получающие небольшую прибыль, могут вообще не получить денег. Моя первая игра в Steam была бесплатной. Я понимала, что не могу вернуть деньги, потому что: 1.) Это невозможно и 2.) Никто из разработчиков не вернёт свои деньги. Если бы систем Steam Direct была введена тогда, я завидовала бы тем, кто вернул свои деньги, потому что мне бы не удалось этого сделать. Надеюсь, будет какая-то система, помогающая таким разработчикам бесплатных игр. Возможно, стоит возвращать деньги, если у них будет X загрузок, как будто это платная игра, заработавшая 1000 долларов.

И ещё одна тема: злоупотребление коллекционными карточками Steam

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

Эта проблема существует на нескольких уровнях, в том числе она заключается и в двух наших любимых словах — в алгоритме Steam. Если вы не знали: чем больше времени играют в игру, тем Steam считает её более популярной, поэтому больше рекламирует её на главной странице, рекомендует её пользователям, и т.д. Понятно, что это серьёзная проблема. Steam показывает нам непопулярные и некачественные игры, потому что фармящие карточки боты ломают всю систему.

С вводом Steam Direct компания Valve изменила подход: теперь игре с карточками нужно достичь определённого количества часов игрового процесса у всех игроков, плюс она обязана соответствовать каким-то другим показателям, которые Valve от нас скрывает. Как только игра достигнет этих показателей, карточки начинают выпадать. После этого все игроки, наигравшие время в этой игре, будут получать карточки. Звучит круто, правда? Ну, не совсем. Особенно если учесть то, что мы не знаем показателей, которых должна достичь игра. Не говоря уже о том, что коллекционные карточки Steam являются серьёзной причиной отказа от покупки — если пользователи не смогут получить карточки сразу же, это может стать проблемой. Даже в нынешней системе потребители жалуются, что карточки не выпадают. Это вредит магазину, охотникам за ачивками и коллекционерам, и всё ради борьбы с небольшим количеством людей, фармящих карты для заработка. Но я уверена, что даже при таких изменениях фармеры карточек всё равно найдут способы продолжать свои махинации.

Эй! Это моя игра!

Последняя проблема, которая пришла мне в голову — наверно, самая важная из всех перечисленных. Это проблема украденных работ и блокировок по DMCA. В процессе Steam Greenlight злоумышленники иногда полностью копировали уже существующую в Greenlight страницу и публиковали её в Greenlight. Почему я называю их «злоумышленниками»: ссылка на демо игры на самом деле вела к вредоносному ПО. В Greenlight были фальшивые страницы, обманом вынуждавшие ничего не подозревающих пользователей скачивать вредоносное ПО.

Такое случалось как минимум один раз с оригинальной Spooky’s Jump Scare Mansion в Greenlight. Что должен делать разработчик, когда увидит такое? В Steam Greenlight на страницу с копией своей игры мог пожаловаться сам разработчик и сообщество, кроме того, можно было попросить о блокировке по DMCA, и если игра получала достаточное количество жалоб, её блокировали. То же относится к фанатским играм и играм с заменёнными ресурсами. А что насчёт Steam Direct? Насколько тщательно будет проводиться поиск, чтобы никто не украл вашу работу или не заменил в ней ресурсы? При использовании Steam Direct вы больше не сможете просить о блокировке по DMCA, пока игра не будет выпущена и не начнёт зарабатывать деньги, и меня это довольно сильно пугает.

H Пошаговая регистрация и секреты в Steam Direct. (актуально на 01.03.2018) в черновиках Tutorial

Всем привет! Мне нужно было зарегистрировать свою игру в Steam, но пошаговой инструкции так и не смог найти. Была старая инфа о Steam Greenlight или обрывки регистрации Steam Direct, которые на некоторые вопросы давали один ответ — сам разберёшься, там всё понятно. А для меня, без опыта в этом деле, было далеко не всё понятно. Пришлось советоваться и искать инфу в инете.

Если вы знаете хорошие статьи по регистрации, напишите о них в комментах.

Расскажу про свой опыт. Меня зовут Денис. Я живу в Архангельске, Россия. Может, в других странах что-то будет по-другому.

Заводим аккаунт в стиме. Даже такую простую вещь, как зарегистрировать игру в Steam, не нашёл, а только на одном из форумов прочитал про SteamWorks. Переходим по ссылке и начинаем регистрацию.

Нюанс — везде пишем одинаково — имя и фамилию (На анг.).

Первая вкладка «Введение». Пролистываем вниз и нажимаем «Продолжить».

Переходим на вторую вкладку «Название и адрес».

Пишем юр. название. Я зарегистрировался как ИП, поэтому пишу своё Имя и Фамилию.

«Форма компании», выбираю — Sole proprietorship (единственный владелец).

Адрес. Например, Ленина 25, корп. 3, кв. 73, будет как Lenin 25/3 apt 73

Далее по пунктам и «Продолжить».

«Соглашение о неразглашении», ставим галочку, «Продолжить».

«Соглашение о распространении в Steam», пролистываем вниз, заполняем пункты, ставим галочки и вводим каптчу. В графе «должность подписавшегося» пишем Owner, так как единственный владелец.

Далее «Оплата взноса». Затем «Продолжить».

Вас перекинут на сам Steam. Входите в свой аккаунт, выбирайте способ оплаты. Я выбрал Visa. Нужно оплатить 100$. В моём случае после покупки без запроса смс снялось 5 650 руб.

Далее «Платёжная и налоговая информация».
Здесь есть два раздела «Ввести платёжную информацию» и «Ввести налоговую информацию».
С этими пунктами у меня возникли сложности.

Для этого нужно открыть счёт на ИП в банке. Обзвонив несколько, я выбрал Тинькофф. Мне кажется, у него самый выгодный тариф для снятия. 6 месяцев бесплатного обслуживания, потом в месяц – 490 руб., комиссия для снятия (в месяц) – до 400 000 руб. 1,5% + 99 руб. Если на дебетовую карту тинькофф, то до 150 000 руб. без комиссии. Если снимать нужно больше, то есть другие тарифы, тоже в принципе выгодные для больших сумм. Если знаете другие выгодные варианты, напишите их в комментах.

Открыв счёт в рублях, узнаю такую вещь. Со Steam деньги будут приходить в долларах. Поэтому, в моём случае, доллары будут отскакивать от моего рублёвого счёта. Поэтому открываю счёт в долларах. Это простая процедура. Позвоните в свой банк, и вам всё расскажут.
Еще при заполнении некоторых пунктов возникали ошибки. Например, такие, что система не верила, что мне 28 лет. Перезагрузка страницы не помогала. Пришлось выйти и снова нажать «Ввести налоговую информацию», заполнить, — и на этот раз всё было без ошибок.

Переходим в «Ввести платёжную информацию»

Заполняем форму. SWIFT-код банка можно узнать позвонив в свой банк. Тип счёта выбираем «Текущий (расчётный)». Сохранить.

Потом переходим в пункт «Ввести налоговую информацию»
Start/ Продолжить

Здесь всё обычно, кроме пункта «дата истечения срока паспорта». Что. Этот пункт меня немного удивил, но если подумать… Мы меняем паспорт в 20 лет, 45 лет, потом вроде 55 лет, дальше не знаю…
Мне 28 лет (офигеть время летит). Получается, срок действия паспорта истечет в 45 лет. В моём случае, дата рождения: день, месяц и 2035 год. Но в Steam можно указать только 2027, поэтому пишем 2027 год)

Потом этот пункт. Не помню, откуда он взялся. Может, после непонятных ошибок он появился как подтверждение адреса.

Consents. Везде ставим «Да»

Status. Нет

Тип фактического дохода владельца, здесь автоматом стояло это словоIndividual, менять не стал

Далее пункт «Ни один из вышеперечисленных вариантов не применим»

После выбираю «Russia»

Затем спрашивают, есть TIN?

Сначала я выбрал «Нет». И получил доп. налог 30%.

Оказывается, TIN — это ИНН по-нашему. Поэтому пишем «Да» и заполняем пункт «иностранный TIN»

и получаем 0% налога

Далее «Review». Продолжить

И в заключении «Sign & Submit» ставим везде галочки, заполняем формы и нажимаем «Отправить форму W-8BEN»

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

Надеюсь сейчас ни у кого не возникнет проблем регистрации в Steam Direct

Читайте также  Что такое плагин в игре?

Скоро мы сделаем прототип игры. Если вам интересно, для какого проекта была эта регистрация, то его можно посмотреть в группе ВК или на Сайте

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

Продвижение игры в Steam: самостоятельно или с издателем?

Что такое Steam? Как он изменился за последние 5 лет и почему выйти в Steam легче вместе с издателем?

Steam — один из крупнейших в мире сервисов цифровой дистрибуции игр. Был создан в 2003 году компанией Valve (те самые ребята, которые сделали Half-Life) и изначально распространял только игры Valve. Затем сервис масштабировался и стал поддерживать игры от сторонних разработчиков.

Сегодня аудитория Steam — более 120 млн активных пользователей в месяц, больше 60 млн в день и почти 25 млн игроков одновременно! Ядро целевой аудитории — вдумчивые хардкорные геймеры, которые не очень любят casual и free2play. Впрочем, из любого правила есть исключения.

До того, как Valve сделали программу Greenlight, попасть в Steam было непросто. Игр на площадке было мало, аудитория собиралась приличная, поэтому релиз в Steam уже сам по себе означал неплохие продажи.

В 2012 году Valve запустили Greenlight — своего рода «песочницу» для игр. Разработчики делали вступительный взнос $100 и могли загружать в Greenlight неограниченное количество игр. А пользователи добавляли их в вишлист и голосовали, купили бы или нет.

Со временем пройти Greenlight становилось всё легче. С одной стороны, число необходимых yes voice снижалось, пока не достигло всего 1000. С другой — появились те, кто манипулировал механиками Greenlight и за деньги нагонял голоса.

Чтобы справиться с нашествием игр и оптимизировать процесс публикации, Valve закрыли Greenlight и в 2017 выкатили новую программу — Steam Direct. В чём разница?

  • $100 нужно платить за каждую игру. Сумма возвращается, если игра продаётся на $1000 и больше.
  • Разработчикам сразу нужно указать информацию о себе: имя и номер социального страхования, банковскую форму. А также заполнить налоговую форму и подписать NDA.
  • Изменились visibility rounds и открытость страниц пользователей. Данные для SteamSpy теперь собирать труднее.

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

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

Что возьмёт на себя издатель?

  • Займётся маркетинговыми процессами: грамотное оформление страницы в Steam, контент (описание игры, подбор тегов), графика (баннеры, трейлеры, скриншоты, гифки).
  • Избавит от необходимости оплачивать взнос $100. Кстати, проверенные партнёры Steam, такие, как Alawar, не платят взносы и могут загружать неограниченное количество игр.
  • Организует промо-активности (daily deal, weekend deal, weekly deal), фичеринг и кросс-промоушен по своему портфолио, свяжется с кураторами. Договорится с партнёрами о совместных бандлах и акциях.
  • Поможет с аналитикой: разработает стратегию по улучшению ключевых показателей.
  • Будет работать с комьюнити не только в Steam, но и на других площадках: Reddit, YouTube, Discord, соцсети. Причём, не только займётся входящими запросами от игроков, но и организует активности, направленные на повышение вовлечённости.
  • Вовремя подаст заявку на ивенты и подготовит необходимые материалы (арты, анимации и др.).
  • Поможет или полностью возьмёт на себя локализацию игры на большое количество языков — это значительно увеличит охват аудитории.
  • Поможет провести полноценное тестирование игры.

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

  • Интерактивный советник: рекомендует игры на основе того, в какие игры пользователь играет, какие предпочитает языки, какими метками интересуется и т.д.
  • Новостной центр: тут разработчики и издатели могут делиться новостями не только с покупателями и подписчиками страницы игры, а с теми, кто добавил проект в вишлист.
  • Во что сыграть? — алгоритм анализирует игры, которые пользователь купил, но не запустил, или запускал ненадолго. И с помощью алгоритма рекомендаций предлагает запустить игру, которая понравится больше всего.
  • Улучшенный поиск: больше фильтров, бесконечная прокрутка и другие полезные функции для более точных результатов.

Выходить с издателем или самостоятельно — решать вам. Свои плюсы есть в каждом из вариантов. А если у вас появились вопросы о продвижении в Steam или в целом о старте вашего проекта — вэлком!

Как разместить свою игру в Steam?

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

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

Заранее приношу свои извинения за то что информация будет не совсем полной, так как в данный момент процесс публикации я не прохожу и некоторые вещи я уже попросту забыл.

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

В своё время я проходил Greenlight, сейчас же за выпуск своей игры нужно заплатить 100$. Если вы не выпускали ни одной игры до этого то: переходите сюда и оплачивайте. Если же вы уже имеете аккаунт SteamWorks то купить Steam Direct можно в личном кабинете.
После покупки подписки вам будет доступен личный кабинет разработчика SteamWorks, где вам предложат оформить внешний вид страницы вашего продукта. Выполняется всё по шагам, от вас только будет требоваться кое какая информация о игре, а так же баннер(изображение игры) в разных расширениях.
В самом конце вводим банковскую(номер банковского счёта) и налоговую(Ваш ИНН) информацию, после ждём подтверждение(где то около 2х недель). От новых разработчиков так же требуют паспортную информацию, запрос на неё придёт вам на почту, фоткаем паспорт и отправляем ответным письмом.

Выбираем плагин по душе:

Для того чтобы выпустить игру в Steam мало просто купить подписку, нужно чтобы игра поддерживала оверлей сервиса, иначе вас просто не пропустят дальше. Официальных плагинов для этого С2 не имеет, но решить эту проблему всё — таки можно:

На данный момент существует 2 плагина для работы со стим библиотеками:
1 — Experimental Greenworks plugin = сырой, эксперементальный плагин для С2 разработанный Эшли. Использование данного плагина крайне не рекомендовано , так как его разработка более не поддерживается, а значит есть шанс угробить вашу игру багами и крашами(по этой причине описывать работу с ним я не буду).

2 — Steam4C2 = отличный плагин для работы со Steam библиотеками. Минус всего один — это то что он платный, но есть и дешёвая его вариация — Steam4C2-Basic. Разница между ними лишь в том что более дорогая версия поддерживает таблицы рекордов. Если вам не нужна данная таблица, есть возможность сэкономить. Все необходимые функции для работы с сервисом есть в Steam4C2-Basic, Steam4C2 — можно считать роскошью.

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

В кабинете разработчика можно скачать Steam SDK — это набор инструментов для интеграции, качаем его.
Забрасываем в вашу игру библиотеки из папки SDK: steam_api.dll и steam_api64.dll (так называются библиотеки для ОС Windows 32x и 64x соответственно) а так же библиотеки steam_api.lib и steam_api64.lib .
Ещё вам понадобится текстовый документ с id вашего приложения(узнать его можно в кабинете разработчика Steam Works) называем его steam_appid.txt и на всякий случай его копия steam_app_id.txt .
В итоге всё должно выглядеть приблизительно так:

Тестировать можно уже сейчас: для этого экспортируем игру в nw.js и запускаем(с запущенным клиентом Steam) в информации о вас должна высветиться ваша игра:

Оверлэй при этом работать НЕ БУДЕТ , для полноценного теста игры её нужно залить на сервера Steam, а после установить её из библиотеки.

Заливаем игру на сервер.

На данный момент Steam образумился и создал BETA версию загрузчика из браузера.

Однако если у вас возникнут с этим проблемы, то советую прибегнуть к старому загрузчику:

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

Для тех кто не разобрался — поясняю:

В папке SDK есть программа под названием steamcmd в этой программе логинимся и с параметром run_app_build указываем путь к файлу — инструкции(как его создать видно на видео). После в SteamPipe устанавливаем загруженную ветку в «default», а после устанавливаем свою игру из стима.
После этого можно полноценно тестировать игру. На этом этапе оверлей Steam должен работать.

Читайте также  Как отключить PhysX в игре?

Система ачивок в Steam выглядит как то так:

Их активация вот так:

Интеграция своей игры в Steam: работа с лобби в Steamworks.NET

Интеграция своей игры в Steam: работа с лобби в Steamworks.NET

Мало кто из геймеров не слышал про Steam. Первое появление площадки приходится аж на 2002 г. На ней крупные издатели могли безопасно распространять игры.

Спустя десяток лет появился Steam Greenlight, который дал возможность попасть на площадку не только крупным студиям, но и обычным инди-разработчикам. Пользователи сами выбирали, какие игры они хотят видеть на площадке. Но из-за появления массы второсортных игр такую систему пришлось закрыть. На место Greenlight пришел Direct. По словам разработчиков, такая система должна сделать процесс публикации упорядоченным, прозрачным и доступным для новых разработчиков со всего света.

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

История Steam как многопользовательской платформы началась с CS 1.6. Мультиплеер всегда был одним из ключевых аспектов в процессе игры. Площадка даёт игрокам возможность связываться между собой по одноранговой сети (P2P), либо использовать выделенные игровые серверы. Для первого случая, естественно, необходим матчмейкинг — процесс объединения игроков в игровую сессию. Набор игроков происходит в лобби, где игроки могут обсудить различные игровые аспекты, выбрать персонажей и карту. Steamworks даёт исчерпывающее API для работы с матчмейкингом.

Примечание Оригинальный Steamworks работает на C++. В этой же статье будет идти речь о C# — Steamworks.NET . Это полноценная обёртка официального Steamworks. У Steam есть полная документация для матчмейкинга.

Установка (для Unity3D)

  1. Скачайте из репозитория Steamworks.NET актуальную версию SDK.
  2. Переместите всё содержимое в папку Assets.
  3. Запустите проект в Unity3D. После запуска в корне проекта создастся файл steam_appid.txt . В этом файле должен храниться ID вашего приложения в Steam. Если такового пока нет — можно использовать стандартный ID 480. Он принадлежит игре Spacewar.
  4. Перезагрузите Unity3D, чтобы изменения файла вошли в силу.
  5. Обратите внимание на наличие файла SteamManager.cs . Он выполняет несколько крайне важных функций. Если файла нет, то его всегда можно найти в репозитории.

Введение

Ключевую роль в Steamworks играют Callback и CallResult. Обратные вызовы позволяют игре асинхронно работать со Steam.

Callback вызывается при каких-либо событиях в Steam. Это могут быть события получения сообщения в чате, изменение списка игроков лобби или даже открытие игрового оверлея. Рассмотрим следующий код, взятый с вики Steamworks.NET:

Вначале нужно создать экземпляр Callback. В данном случае это событие открытия/закрытия оверлея. Callback нужно инициализировать, привязав к нему функцию. Это стоит делать только убедившись, что Steam уже инициализирован: SteamManager.Initialized . Для этого лучше всего подойдёт метод OnEnable() , который вызывается сразу при старте игры.

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

CallResult очень похож на Callback. Разница в том, что CallResult является результатом вызова определённого метода. Это может быть, к примеру, результат создания лобби или подключения к нему. Рассмотрим код с вики:

Как и в случае с Callback, тут сначала нужно создать экземпляр CallResult и инициализировать его. В методе Update() идёт проверка на нажатие пробела. По нажатию будет отправлен запрос на получение количества игроков. Как и в прошлом случае, после получения ответа вызывается указанный метод, которому будет передан результат.

Обратите внимание, что при работе с CallResult в сигнатуре метода всегда будет bool bIOFailure .

Для работы Callback и CallResult нужно циклически вызывать метод SteamAPI.RunCallbacks() .

Примечание Вызов этого метода уже реализован в SteamManager.cs.

Подготовка

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

Каждое лобби имеет свои мета-данные: название карты или же режим игры. Нет каких-либо шаблонных данных — всё остаётся за разработчиком. Для работы с мета-данными понадобится структура LobbyMetaData . Она представляет собой стандартную пару ключ-значение.

В лобби каждый игрок представляет из себя структуру LobbyMembers , главным свойством которой является m_SteamID — уникальный ID пользователя Steam.

Структура Lobby описывает непосредственно лобби, а точнее — самые необходимые свойства, такие как:

  • уникальный ID лобби;
  • ID владельца лобби;
  • список игроков в лобби;
  • максимальное количество игроков в лобби;
  • мета-данные лобби.

Также потребуются некоторые экземпляры Callbacks и CallResult, а именно:

И как полагается, стоит инициализировать все обратные вызовы и создать для них соответствующие методы:

Получение списка лобби

Чтобы получить список существующих лобби, используйте:

После получения ответа вызовется метод OnLobbyMatchList . Методу передаётся только одно число — количество лобби. Его можно взять из переменной pCallback.m_nLobbiesMatching .

Внимание Steamworks может вернуть в списке не более 50 лобби.

После получения списка лобби их неплохо было бы отобразить. Перебор списка лобби будет выглядеть так:

Вам нужно будет создать какой-нибудь метод отображения списка лобби ( RenderLobby ), который будет принимать ID лобби:

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

Фильтр списка лобби

Steamworks даёт возможность отфильтровать возвращаемый список по некоторым категориям.

Внимание Фильтр нужно устанавливать перед вызовом RequestLobbyList() .

Вначале можно указать максимальное количество возвращаемых лобби. Чем меньше количество — тем быстрее обработается результат. Сделать это можно функцией SteamMatchmaking.AddRequestLobbyListResultCountFilter(max_count); .

Дальше есть несколько типов фильтров (все они находятся в классе SteamMatchmaking ):

  • AddRequestLobbyListDistanceFilter — задаёт расстояние, в пределах которого нужно искать лобби (исходя из IP пользователя). Принимает ELobbyDistanceFilter.
  • AddRequestLobbyListFilterSlotsAvailable — оставляет только те лобби, в которых доступно указанное количество свободных слотов.
  • AddRequestLobbyListNearValueFilter — сортирует лобби по степени удалённости значения от указанного. Таких фильтров можно указать несколько. Первый будет иметь больше всего влияния на сортировку, последний — меньше всего.
  • AddRequestLobbyListNumericalFilter — задаёт числовой тип сравнения.
  • AddRequestLobbyListStringFilter — задаёт строковый тип сравнения.

Три последних фильтра сравнивают/сортируют лобби по их мета-данным.

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

Подключение к лобби

Чтобы присоединиться к существующему лобби:

После удачного подключения к лобби будет вызван метод OnLobbyEnter . У всех же остальных участников лобби будет вызван метод OnLobbyChatUpdate .

Создание своего лобби

Чтобы создать собственное лобби, используйте метод:

Метод CreateLobby принимает два параметра. Первый — тип видимости лобби (по приглашению/для друзей/открытое); второй — максимальное количество игроков. В лобби может быть до 250 игроков, хотя на практике — от 2 до 5.

После удачного создания лобби будет вызван метод OnLobbyCreated .

Пребывание в лобби

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

При этом разрешение аватара будет 128×128 пикселей.

Чтобы получить собственный Steam ID используйте SteamUser.GetSteamID() . Для получения своего имени — SteamFriends.GetPersonaName() . Если нужно получить имя другого пользователя — SteamFriends.GetFriendPersonaName(PlayerID) .

Отправка сообщений в лобби

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

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

После получения сообщения у всех пользователей (в том числе и у отправителя) вызовется метод OnLobbyChatMsg .

Неплохим решением будет создание объекта данных, который будет иметь определённый тип (сообщение в чате, изменение готовности игрока и т. д.). Для отправки данных нужно будет его сериализовать в строку (например JSON) и отправить всем остальным через SendData . При получении такого сообщения нужно будет десериализовать сообщение в объект, определить его тип и обработать. Тогда OnLobbyChatMsg будет начинаться примерно так:

Изменение мета-данных лобби

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

Для создания или изменения мета-данных используется этот метод:

Как понятно из кода, метод SetLobbyData работает по стандартной схеме ключ-значение. Для всех остальных участников лобби есть отдельный аналогичный метод SetLobbyMemberData .

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

Примечание. Перед отправкой данных происходит небольшая задержка. Несколько изменённых подряд мета-данных будут объединены и отправлены одним пакетом.

Чтобы удалить мета-данные, используйте:

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации

Борис Аладышкин/ автор статьи

Приветствую! Я являюсь руководителем данного проекта и занимаюсь его наполнением. Здесь я стараюсь собирать и публиковать максимально полный и интересный контент на темы связанные с современными технологиями и программным обеспечением. Уверен вы найдете для себя немало полезной информации. С уважением, Борис Аладышкин.

Понравилась статья? Поделиться с друзьями:
Itsovet61.ru
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: