пятница, 2 октября 2009 г.

GT300, игры и борьба с пиратством

NVIDIA пошла на досрочное разглашение подробностей нового поколения своих GPU... Видимо пытаются подогреть интерес из-за проблем с выпуском годных чипов. Если всё, что они понаписывали - правда, и новый чип может исполнять хоть в каком-то виде код C++ - то Intel пора хвататься за голову. Можно представить себе, как в 2012 выйдёт новый универсальный потоковый процессор от NVIDIA на её же материнской плате, выполняющий через эмулятор код старых x86 программ в 10 раз быстрее какого-нибудь 8-ядерного Intel Core i10... Помните, что случилось с Silicon Graphics?

PS. А пока что NVIDIA показывает фейковые прототипы с отпиленной (ножовкой) PCB. Интересно, был ли хоть чип под системой охлаждения? Совсем обнаглели.

Ещё одна интересная тема - а зачем, собственно, делать новые видеокарты, если рынок PC-игр, похоже, верно загибается? Всякая шняга, конечно, на нём всегда будет присутствовать, но на новые крупные многомиллионные тайтлы (способные показать "красу" и утилизировать мощь топовых видеокарт) придётся закатать губу. Crytek фичекатят енджин под дряхлый PS3 - "больше никаких эксклюзивов на PC". Есть правда Rage... Думаю, что чем больше распиарят новые DirectX 11 игры, тем быстрее их повзламывают и повыкладывают на торрентах. Замкнутный круг. Пока отсутствие софта не скажется на спросах на железо, которое этот самый софт должно запускать, HW-вендоры, похоже, проблему нелицензионного копирования решать не намерены.

Вот пришла интересная идея, как ограничить запуск одной лицензионной копии игры одной аппаратной конфигурацией. Основана, как и прошлая идея с "remote function execution", на том, что пользователь получает в своё распоряжение не весь код игры, а только часть - на этот раз, без шейдеров :). Для реализации необходимо, чтобы в GPU видеокарты был встроен механизм криптования бинарных шейдеров (та часть, что отвечает за дешифровку) и зашит уникальный ключ для дешифровки. Механизм защиты следующий:

Шейдеры в виде исходных кодов хранятся только на сервере издателя. В процессе первого запуска игры юзер подключается к серверу издателя игры (нужен интернет), вводит серийный номер с диска и задаёт свои уникальные имя/пароль, игра отсылает их на сервер. Если сервер подтверждает уникальность серийного номера копии игры, то дальше игра отсылает модель GPU, уникальный GPUID, версию установленного видеодрайвера и т. д. Затем на сервере хранящиеся там шейдеры компилируется в бинарные блобы, подходящие под GPUID и видеодрайвер пользователя и шифруются ключом (на сервере хранится таблица пар GPUID/ключ). Получается такой shader cache из зашифрованных бинарных шейдеров, который единожды передаётся и инсталлируется на машине игрока. В таком виде шейдеры загружаются в видеокарту, а там GPU использует свой ключ для их дешифровки перед загрузкой кода в видеопамять. Предполагается, что прочитать из видеопамяти расшифрованный бинарник невозможно.

Всё. Полученный shader cache будет работать только с тем GPU, ключ которого соответствует ключу, использованного при его шифровании. Если пользователь сменил аппаратную конфигурацию, то процедуру получения нового кэша придётся повторить, при этом введя свои имя/пароль и серийный номер диска. При этом "аккаунт" для старой железки становится невалидным.

Комментариев нет:

Отправить комментарий