Перейти к содержимому

Spacewar steam что это

  • автор:

Пираты обошли защиту Steam с помощью ретро-игры

Пираты могут запускать через Steam взломанные игры, маскируя их под работу встроенной в сервис ретро-игры Spacewar, сообщает сайт GytHyp.

GytHyp обратил внимание на растущую популярность игры Spacewar на Steam.

Аналитический ресурс начал отслеживать статистику по Spacewar c апреля 2015 года, и за время проект вошел в 50 наиболее популярных игр на Steam, в которой каждый час находятся около 8 тысяч игроков.

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

Всплеск популярности Spacewar среди обычных геймеров объяснился хитростью пиратов: они научились запускать взломанные игры, подсовывая системе обнаружения нелегальной активности Valve AppID Spacewar вместо настоящего идентификатора игры.

Когда незаконно приобретенная версия игры запускается в Steam, система распознает ее запуск как Spacewar и не реагирует.

Valve пока официально не комментировала и не прореагировала на эту информацию.

Оригинальная Spacewar появилась в 1962 году. Она считается одной из первых видеоигр в истории и впервые запускалась на экранах осциллографов.

Spacewar — игра, с помощью которой пираты обходят защиту Steam

Портал Kotaku обратил внимание на необычный артефакт онлайн-сервиса.

Оригинальная Spacewar

В поиске Steam пользователям не удастся найти ничего по запросу Spacewar. Тем не менее многие геймеры могли видеть, как товарищи из списка их друзей играют в загадочную игру с таким названием.

Оригинальная Spacewar появилась в 1962 году и считается одной из первых видеоигр в истории. В Steam космическая аркада используется разработчиками для тестирования разных функций сервиса вроде системы достижений или Мастерской.

Чтобы установить Steam-версию Spacewar, обычным пользователям необходимо воспользоваться окном «Выполнить» (Win + R) и ввести в строку steam://run/480. После этого запустится сервис Valve и начнётся установка игры.

Согласно сайту Steamcharts, ежедневно в Spacewar играют почти 8 тысяч человек. Таким образом приложение находится примерно в середине списка самых популярных проектов Steam рядом с Dark Souls III.

Часть этих геймеров, скорее всего, представляют разработчики. Кроме того, под видом Spacewar на протяжении нескольких лет в Steam запускают пиратские игры. Защитная система сервиса способна обнаруживать нелегальный контент, однако хакеры используют Spacewar, чтобы замаскировать взломанные игры. Некоторые из них даже поддерживают мультиплеер.

Spacewar steam что это

Чтобы помочь разработчикам понять API Steamworks, мы включили исходный код полностью работоспособной версии классической многопользовательской стрелялки: Spacewar!. Это простая двумерная игра с поддержкой до 4 игроков, которая позволяет продемонстрировать большинство функций SDK Steamworks.

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

spacewar.png

В образец кода приложения включены следующие API и функции Steamworks:

  • Steam Cloud
  • Интеграция сообщества Steam (аватары, имена друзей и проч.)
  • Сообщения об ошибках
  • Друзья
  • HTML Surface
  • Инвентарь
  • Списки лидеров
  • Подбор матчей (лобби и окно поиска серверов)
  • Многопользовательская аутентификация (в игре поддерживаются до 4 игроков)
  • Игра по сети
  • Статистика и достижения
  • Голосовой чат

Сборки и запуск приложения-образца

  • Visual Studio 2005 или более новая версия
  • DirectX SDK
  • SDK Steamworks. SDK Steamworks (последняя версия).

Частые проблемы при сборке

  • Не удаётся открыть файл включения: ‘d3d9.h’
    Эта ошибка означает, что в системе не настроен путь включения для D3D, либо вы не установили SDK D3D. Во-первых, убедитесь, что вы скачали и установили SDK DirectX. Once the SDK is installed you need to set up the include path. Вы можете это сделать как глобально с помощью стандартных переменных среды Visual Studio, так и настроить их только для образца приложения Steamworks, отредактировав свойства проекта.
  • Неустранимая ошибка LNK1104: невозможно открыть файл ‘d3d9.lib’
    Эта ошибка означает, что путь к библиотекам вашей системы не включает путь к библиотекам D3D. См. инструкции выше, но вместо пути включения вам потребуется настроить путь к библиотекам.
  • Для запуска данной игры должен быть запущен Steam. Вызов SteamAPI_Init не удался.
    Если вы столкнулись с этой ошибкой при запуске игры, убедитесь, что Steam запущен. Если Steam запущен, убедитесь, что в папке с исполняемым файлом присутствует файл steam_appid.txt . Этот файл входит в образец Steamworks и должен присутствовать, если вы запускаете игру из Visual Studio или напрямую из подпапок Debug или Release.

Обзор кода

После того, как вы скомпилируете и запустите Spacewar!, придёт время изучать код. Если вы будете просматривать файлы в обозревателе решений Visual Studio, вы увидите, что код разбит на папки Game и Engine. Вы можете игнорировать код в папке Engine: он поддерживает базовую двумерную визуализацию с помощью D3D и базовый ввод с клавиатуры. Весь важный код, документирующий использование API Steamworks, расположен в папке Game.

  • Main.cpp . Главная точка входа для игры-образца.
    Показанное использование API:
    • Инициализации клиента API. Вам может потребоваться инициализировать API достаточно рано во время запуска приложения, и вы увидите пример того, как это делается внутри функции RealMain() в Main.cpp .
    • Регистрация ошибок и предупреждений API. Во время разработки вам может потребоваться регистрировать вывод функций API Steam. Вы увидите пример настройки регистрации отладочных сообщений в функции RealMain() , где вызывается ISteamClient::SetWarningMessageHook.
    • Сообщения о сбоях. Вам может потребоваться использование встроенных в Steam минидампов с сообщениями о сбоях в ваших играх. Пример настройки обработчика исключений и записи минидампов можно найти в функциях WinMain() и MiniDumpFunction() внутри Main.cpp .
    • Инициализация API игровых серверов. На игровых серверах вам может потребоваться инициализировать упрощённую версию API, в которой не будет интерфейсов, предназначенных для отдельных пользователей. Её можно найти в конструкторе CSpaceWarServer в SpaceWarServer.cpp .
    • Запуск обратных вызовов API. Вам может потребоваться периодически запускать в играх обратные вызовы для обработки результатов асинхронных вызовов Steam. Пример настройки обратных вызовов на игровом сервере с помощью SteamGameServer_RunCallbacks можно найти в функции CSpaceWarServer::RunFrame() , а примеры обработки отдельных обратных вызовов и их регистрации — в коде конструктора и заголовочном файле CSpaceWarServer .
    • Многопользовательская аутентификация (обработка античита Valve). Если ваша игра является многопользовательской, вам может потребоваться подтвердить, что пользователи владеют игрой до того, как позволить им подключиться к сетевому серверу. Обработчики обратных вызовов и вызовы к API ISteamGameServer можно найти в SpaceWarServer.cpp . Вы также увидите, как обрабатывать ответы Steam с требованием отказать пользователям или выгнать их из игры либо из-за того, что они не владеют вашим продуктом, либо из-за того, что они получили блокировку.
    • Сетевой API. Если в вашу игру можно сыграть по сети, вам может потребоваться встроенный в Steam сетевой API. Примеры его использования на стороне игровых серверов можно найти в виде вызовов ISteamNetworking, использующих метод доступа SteamGameServerNetworking() , и обратных вызовов внутри SpaceWarServer.cpp .
    • Подбор игр и коммуникация с мастер-сервером. Если вы хотите воспользоваться окном поиска серверов Steam при создании многопользовательской игры, вашему игровому серверу будет необходимо связаться мастер-серверами Steam. Примеры использования приведены в конструкторе CSpaceWarServer и в методе CSpaceWarServer::SendUpdatedServerDetailsToSteam() .
    • Подбор игр в лобби. Для онлайн-игр вам может потребоваться внедрить подбор игр с помощью системы лобби в дополнение к окну поиска серверов или вместо него. Примеры использования кода для лобби и обратных вызовов через интерфейс ISteamMatchmaking можно в SpaceWarClient.cpp . Также в Lobby.cpp/h можно найти код для обработки состояния и обратных вызовов внутри активного лобби.
    • Интеграция сообщества и друзей. Steam позволяет играм получать доступ к обширной информации об игроках, включая имена профилей и аватары игроков. Пример интеграции имён профилей и аватаров в таблицы результатов с помощью интерфейса ISteamFriends можно найти в SpaceWarClient.cpp .
    • Сетевой API. Пример использования сетевого API на стороне клиента можно найти в SpaceWarClient.cpp (см. SpaceWarServer.cpp как пример реализации на стороне сервера).
    • Статистики и достижения. Обработка статистик и достижений показана в StatsAndAchievements.cpp . Файл содержит класс CStatsAndAchievements , при вызове которого передаётся обновлённая информация из CSpaceWarClient . Как только CStatsAndAchievements получает информацию об изменениях из игрового клиента, этот метод уведомляет Steam об изменениях в пользовательских статистиках и достижениях, полученных с помощью интерфейса ISteamUserStats.
    • Подбор игр в лобби. Часть кода для подбора игр в лобби можно найти в Lobby.cpp . Lobby.cpp обрабатывает подбор игр вместе с SpaceWarClient.cpp , так что рекомендуется взглянуть и на него. При изучении кода лобби обратите особое внимание на обратные вызовы и вызовы методов интерфейса ISteamMatchmaking.
    • Подбор игр с помощью ServerBrowser. Если у вас реализован подбор игр с помощью окна поиска серверов, вам может потребоваться предоставить список серверов прямо в игре, чтобы дополнить список, предоставляемый интерфейсом Steam. Пример получения списка серверов для вашей игры и отображения его пользователю показан в ServerBrowser.cpp.
    • Инвентарь Steam. Интеграция с инвентарём Steam, который предоставляет доступ к экономике Steam. Эта функция позволяет легко интегрировать предметы в игру.

    Steamworks — это набор инструментов и служб от Valve, позволяющих настроить и поддерживать игру в Steam.

    Уровень пиратства в Steam вырос в 10 раз из-за Spacewar

    Уровень пиратства в Steam вырос в 10 раз из-за Spacewar

    Платформа по сбору и обработки статистики видеоигр GitHyp отчиталась, что за прошедшие 6 лет уровень пиратства вырос в 10 раз. Как можно посчитать пиратов, если не поставить отслеживающие программы на каждом ПК в мире? Оказалось, есть простой способ.

    Аналитикам GitHyp помогла Spacewar, знаменитая аркада 1962 выпуска, недоступная в магазине. С ее помощью игроки маскируются от антипиратской системы Valve, но в обмен позволяют собирать статистику о своих пиратских активностях.

    В 2015 году Spacewar привлекала около 2 тысяч человек в день, к 2017 онлайн вырос до 17 тысяч человек, а к 2020 году, на разгар пандемии, пик пришёлся на 36 тысяч игроков. В среднем, по наблюдениям аналитиков, онлайн вырос с 2 тысяч до 20 тысяч в день.

    Вероятно, расчеты GitHyp не так точны, как хотелось бы аналитикам. Онлайн вовсе не отражает настоящий уровень пиратства в Steam.

    Некоторые игроки используют специальные скрипты с подменой игры не ради пиратства, а чтобы добавить стороннюю игру и смиренно наблюдать, как безвозвратно утекает их время в World of Warcraft, League of Legends или другую обособленную онлайн-игру.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *