Playkey Blog

Дневники разработчика Playkey. Двенадцатый выпуск

Playkey Devlog Issue Twelve

Всем привет! Главное событие недели: мы написали 2 смарт-контракта для приема оплаты в PKT в текущей версии Playkey! Подробно схему оплаты подписки токенами мы приводили в 9 выпуске и рассказали о ней в отдельной статье.

Принимаем PKT

Первый контракт (посмотреть на GitHub контракт №1) обеспечивает публикацию в сети Ethereum уникальных контрактов, на которые пользователи будут отправлять РКТ. А второй (посмотреть на GitHub контракт №2) — это и есть тот самый уникальный для каждого игрока контракт, на который принимаются PKT для оплаты подписки. Чтобы запустить приём PKT, нам осталось:

  • доработать базу данных, чтобы учитывать в ней PKT-баланс пользователя;
  • создать новую службу, обеспечивающую:
    • мониторинг входящих транзакций на адрес;
    • публикацию новых контрактов для отправки на них PKT пользователями с проверкой, что контракт попал в блокчейн;
    • сбор РКТ с этих контрактов;
  • добавить на сайт выдачу адресов для оплаты РКТ;
  • добавить РКТ в интерфейс выбора платёжных систем и реализовать соответствующий функционал;
  • реализовать метод для расчёта стоимости подписки в валюте пользователя, исходя из текущего курса РКТ;
  • как следует всё протестировать (постоянные читатели наверняка заметили, как мы любим тесты).  

Планируем управиться до конца мая, так что PKT начнет реально использоваться в живом продукте уже совсем скоро.

Work-in-progress screenshot.

Элемент макета интерфейса. Рабочая версия.

Захватываем стол

Параллельно команда под руководством Алексея Проничева завершает разработку решения под кодовым названием “десктоп”. На этой неделе мы приступили к закрытому бета-тестированию внутри компании. “Десктоп” — это принципиально новый функционал для нашей платформы, жизненно необходимый при запуске децентрализации.

Текущая версия Playkey работает на уровне игры. Она внедряется в процесс и изолирует его от системы, перехватывая вызовы системных функций (WinAPI). Их, кстати, больше 1000. Однако такую архитектуру сложно и дорого поддерживать. В частности, нередко возникают ошибки при подключении новых игр. Вот недавно был случай с Far Cry 5: все прекрасно работает, кроме управления транспортом с клавиатуры! Поиск единственной проблемной функции — это как история с иголкой и сеном. Даже сейчас, когда платформа еще централизованная! А для децентрализованной архитектуры данное решение стало бы тупиковым. Майнерам пришлось бы самим следить за корректной работой своих систем, а те бы неизбежно время от времени выходили из строя.

Gameplay Screenshot

Даже если бы хотел, не отвернул бы…

И вот здесь появляется “Десктоп”! В этом решении мы перехватываем не игру, а всю систему. Условно, весь рабочий стол. Мы даём игре и пользователю полный доступ к запущенной системе (ВМ), а после игры возвращаем её к исходному состоянию. Такая архитектура обеспечивает и более простой, надежный способ стриминга игр, и новый уровень безопасности сервиса. Когда сервера стоят в защищенных дата-центрах, требуется меньше усилий и решений для обеспечения сохранности протоколов. В децентрализованной платформе ПО ставится на компьютеры майнеров, в том числе на машины, подключенные в домашних условиях. И в новой реализации, если игрок установит вредоносное ПО, то оно будет удалено при следующем запуске.

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

Gameplay Screenshot

Через “Десктоп” удалось запустить некоторые из тех игр, которые в текущей реализации не заработали. Например, Diablo III.

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

Задавайте свои вопросы и узнавайте все подробности из жизни Playkey в наших сообществах в TelegramTwitter и Facebook.

6 комментариев к “Дневники разработчика Playkey. Двенадцатый выпуск

  1. Дух Скорпиона

    можно мудет свои модификации скачивать и ставить на игры? или этого нам не позволено будет делать? хотелось бы в некоторые игры на которых нет тех или иных модов в стиме в качестве DLC поиграть и с любительскими созданными игроками модификациями как новый транспорт в гта или замена оружия в резидент эвил

    1. Павел Котов

      Если технически нам разрешат арендовать часть памяти жесткого диска, для отдельной копии игры и модификаций, то это будет возможным, но так же может понести за собой ряд проблем, например с читерским софтом в онлайн играх, хотя можно будет обрубить таким играм с модификациями интернет соединение, так, например, можно сделать с GTA V. Но ещё, дополнительно, мало вероятно, что вам разрешат устанавливать моды так, как вы привыкли это делать у себя на компьютере, скорее всего, это должно будет работать с доступом к точной папке с игрой в проводнике ВМ, куда с помощью двух стороннего Drag’n’Drop’па вы сможете закинуть свои модификации, либо ещё есть вариант с отдельной программой, куда будут добавлены разрешенные модификации с автоматической установкой.
      Есть, конечно, ещё один вариант, но я не уверен как он будет работать с точки зрения возможностей работы архитектуры, подобие запуска одной копии игры с определенными дополнительными файлами. Этот вариант намного лучше, потому что вам придется арендовать только память под сам модификации, без отдельной копии игры под вас.
      С модификациями из стима, все аналогично.

    2. Roman Epishin

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

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

Войти с помощью: 

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