Existe uma maneira de impedir que os usuários ajustem sua correção de gama para "enganar" a saída de uma área "escura"?

13

Em quase todos os jogos que deparei com uma situação sombria projetada para mudar a maneira como um usuário interage com o ambiente, sempre existem jogadores que aumentam a correção de gama de seus monitores para negar o efeito desejado.

Existe uma maneira de impedir que os usuários ajustem sua correção de gama para "enganar" a saída de um desafio? (a escuridão)

Eu imagino que, se você puder recuperar com segurança a correção gama atual do monitor do usuário, poderá usá-la para evitar mais ou menos a vantagem que ela concederia sem causar aos usuários normais qualquer inconveniente.

Athix
fonte
17
Isso é para um jogo multiplayer onde eu poderia obter uma vantagem injusta? Caso contrário, como jogador, prefiro que você deixe minhas configurações de exibição em paz, obrigado.
3
Assim como Cong Xu afirmou, você obtém um efeito mínimo ajustando a gama, porque apenas altera o brilho do que é realmente visível. Se você não quer que algo seja visto, desenhe-o completamente preto e não haverá praticamente nenhuma maneira de o jogador trapacear ajustando a gama.
LiquidFeline

Respostas:

44

Se você absolutamente precisar controlar se o jogador pode ver algo ou não, possivelmente para anti-fraude para vários jogadores ou se é a chave para a mecânica do seu jogo, obscurece-o completamente . Dessa forma, nenhuma quantidade de correção gama os tornará visíveis.

Não é o melhor exemplo, mas em Closure , as áreas que não estão sendo iluminadas estão em completa escuridão:

insira a descrição da imagem aqui

... se você pudesse recuperar com segurança a correção gama atual do monitor do usuário ...

Por favor, não siga este caminho; existem muitas razões - além da trapaça - para corrigir a gama; talvez o jogador tenha uma visão ruim ou um monitor ruim ou esteja jogando durante o dia. Por favor, respeite seus usuários! Não deixe que alguns trapaceiros / piratas / o que você tem arruinem a experiência de todos os outros.

congusbongus
fonte
9

O que eu sugeriria é adicionar uma pequena quantidade de ruído branco à saída renderizada. Em cenas brilhantes, isso não será visível; em cenas escuras com configuração gama comum, é semelhante ao que as câmeras ou o olho humano realmente fazem na realidade. Mas para alguém que aumenta a gama, esse barulho seria um forte incômodo. Não apenas os objetos escuros não se tornam adequadamente visíveis, como o aumento do ruído de baixo alcance também distrai os objetos brilhantes; portanto, deve desencorajar suficientemente as pessoas a fazer isso.

(É claro que caras muito inteligentes ainda podem criar técnicas sofisticadas de redução de ruído, mas essas pelo menos não estão disponíveis em monitores comuns)

leftaroundabout
fonte
um exemplo dessa técnica é o jogo em flash , não escape
user1937198 20/06/2013
Se você misturar de maneira aditiva o ruído branco (em vez da média / sobreposição), as áreas escuras ficarão muito barulhentas, enquanto os realces e os tons médios terão um ruído quase imperceptível. Você também pode precisar de pontos maiores para o ruído, dependendo da resolução do jogo - resoluções mais altas tornam o ruído menos eficaz.
Logan Pickup
8

Existem algumas funções da API do Windows que podem ajudar: SetMonitorBrightness e SetDeviceGammaRamp . No entanto, isso depende do hardware; provavelmente nem todos os monitores suportam a configuração do brilho programaticamente, e monitores diferentes podem produzir resultados diferentes etc.

Além disso, não parece uma boa ideia. Travar a gama / brilho a algum valor fixo certamente incomodará os seus jogadores e provavelmente tornará o jogo impossível de jogar para alguns, porque acontece que fica muito escuro (ou muito claro) na configuração deles.

Por fim, se é um jogo para um jogador e o jogador quer facilitar o jogo para si, é isso mesmo. Por que você deveria detê-los? Se for um jogo multiplayer, são necessárias outras estratégias, como enviar apenas ao jogador informações sobre eventos próximos o suficiente para que eles vejam ou dentro do raio da lanterna, ou algo dessa natureza.

Nathan Reed
fonte
0

Dado o brilho aleatório / contraste / gama das telas do usuário, sem mencionar a iluminação da sala onde o usuário está sentado, não há maneira confiável de fazer algo que será "apenas suficientemente visível" ou "apenas suficientemente invisível". Se você deseja que algo fique invisível, faça-o preto. Se você deseja tornar algo ambiguamente perceptível, você deve aceitar que alguns jogadores terão uma oportunidade melhor de vê-lo.

ddyer
fonte
0

Se for um jogador único, isso realmente não importa.

No multiplayer, que tal apenas ter uma caixa de colisão mostrando o que eles podem ver. Se eles estiverem em uma área escura, diga ao cliente para não desenhar outros jogadores / objetos de palco / etc até que estejam na caixa de colisão de exibição em campo.

Josh Jones
fonte