Есть ли способ запретить пользователям корректировать гамма-коррекцию, чтобы «обмануть» их выход из «темной» области?

13

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

Есть ли способ запретить пользователям корректировать гамма-коррекцию, чтобы «обмануть» их выход из проблемы? (темнота)

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

Athix
источник
17
Это для многопользовательской игры, где я мог бы получить несправедливое преимущество? Если нет, как игрок, я бы предпочел, чтобы вы оставили мои настройки дисплея в покое, спасибо.
3
Как сказал Конг Сюй, вы получаете минимальный эффект, регулируя гамму, потому что она только изменяет яркость того, что действительно видно. Если вы не хотите, чтобы что-то было видно, нарисуйте его полностью черным, и игрок практически не сможет обмануть, настроив гамму.
LiquidFeline

Ответы:

44

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

Не лучший пример, но в Closure области, которые не освещены, находятся в полной темноте:

введите описание изображения здесь

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

Пожалуйста, не иди по этому пути; Есть много причин - кроме обмана - для исправления гаммы; возможно, у игрока плохое зрение или плохой монитор, или он играет в течение дня. Пожалуйста, уважайте своих пользователей! Не позволяйте нескольким мошенникам / пиратам / «что у вас» испортить опыт для всех остальных.

congusbongus
источник
9

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

(Конечно, очень умные ребята все еще могут придумать сложные методы шумоподавления, но они, по крайней мере, недоступны в обычных мониторах)

leftaroundabout
источник
Примером этой техники является флэш-игра « Не
сбегай»
Если вы добавите белый шум (вместо усреднения / наложения), то темные области будут очень шумными, в то время как на светлых и средних полутонах будет едва заметный шум. Вам может понадобиться больше точек для шума, в зависимости от разрешения игры - более высокие разрешения делают шум менее эффективным.
Логан Пикап
8

Есть пара функций API Windows, которые могут сделать свое дело : SetMonitorBrightness и SetDeviceGammaRamp . Однако это будет зависеть от оборудования; вероятно, не все мониторы поддерживают настройку яркости программно, и разные мониторы могут давать разные результаты и т. д.

Более того, это не очень хорошая идея. Если привязать гамму / яркость к некоторому фиксированному значению, это, несомненно, вызовет раздражение у ваших игроков, и, скорее всего, сделает игру непригодной для некоторых, потому что в их настройках получается слишком темно (или слишком ярко).

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

Натан Рид
источник
0

Учитывая случайную яркость / контрастность / гамму экранов пользователя, не говоря уже о освещении комнаты, где сидит пользователь, нет надежного способа сделать что-то, что будет «достаточно видимым» или «просто невидимым». Если вы хотите, чтобы что-то было невидимым, сделайте это черным. Если вы хотите сделать что-то неоднозначно приемлемым, вы должны признать, что у некоторых игроков будет лучшая возможность увидеть это.

ddyer
источник
0

Если это один игрок, это не имеет значения.

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

Джош Джонс
источник