In fast jedem Spiel, auf das ich gestoßen bin, gibt es eine dunkle Situation, die die Art und Weise verändert, wie ein Benutzer mit der Umgebung umgeht. Es gibt immer einige Spieler, die die Gammakorrektur ihres Monitors aufdrehen, um den gewünschten Effekt zu negieren.
Gibt es eine Möglichkeit, Benutzer daran zu hindern, ihre Gammakorrektur so anzupassen, dass sie ihren Weg aus einer Herausforderung betrügen? (die Finsternis)
Ich würde mir vorstellen, wenn Sie die aktuelle Gammakorrektur des Monitors des Benutzers zuverlässig abrufen könnten, könnten Sie damit mehr oder weniger den Vorteil verhindern, den er sonst gewähren würde, ohne den normalen Benutzern Unannehmlichkeiten zu bereiten.
rendering
anti-cheat
Athix
quelle
quelle
Antworten:
Wenn Sie unbedingt kontrollieren müssen, ob der Spieler etwas sehen kann oder nicht, möglicherweise für Multiplayer-Anti-Cheat oder wenn es der Schlüssel zu Ihrer Spielmechanik ist, dann verdecken Sie diese vollständig . Auf diese Weise werden sie durch keine Gammakorrektur sichtbar.
Nicht das beste Beispiel, aber in Closure sind Bereiche, die nicht beleuchtet werden, vollständig dunkel:
Bitte gehen Sie nicht diesen Weg; Es gibt viele Gründe - außer Betrug -, um Gamma zu korrigieren. Vielleicht hat der Spieler schlechtes Sehvermögen oder einen schlechten Monitor oder spielt tagsüber. Bitte respektiere deine Benutzer! Lass nicht zu, dass ein paar Betrüger / Piraten / Was-hast-du die Erfahrung für alle anderen ruinieren.
quelle
Ich würde vorschlagen, der gerenderten Ausgabe ein wenig weißes Rauschen hinzuzufügen. In hellen Szenen ist dies nicht sichtbar, in dunklen Szenen mit gewöhnlicher Gamma-Einstellung ähnelt es dem, was Kameras oder das menschliche Auge tatsächlich in der Realität tun. Aber für jemanden, der das Gamma hochdreht, wäre dieses Geräusch ein starkes Ärgernis. Dunkle Objekte werden nicht nur nicht richtig sichtbar, die Verstärkung des Rauschens im unteren Bereich lenkt auch von hellen Objekten ab. Daher sollte es die Menschen ausreichend davon abhalten, dies zu tun.
(Natürlich haben sehr clevere Leute immer noch ausgefeilte Entrauschungstechniken, aber diese sind zumindest auf normalen Monitoren nicht verfügbar.)
quelle
Es gibt einige Windows-API-Funktionen, die den Trick ausführen können : SetMonitorBrightness und SetDeviceGammaRamp . Dies ist jedoch hardwareabhängig. Wahrscheinlich unterstützen nicht alle Monitore die programmgesteuerte Einstellung der Helligkeit, und verschiedene Monitore können unterschiedliche Ergebnisse usw. liefern.
Außerdem klingt es nicht nach einer sehr guten Idee. Das Sperren der Gamma / Helligkeit auf einen festen Wert wird Ihre Spieler sicherlich ärgern und das Spiel sehr wahrscheinlich für einige Spieler unspielbar machen, da es in ihrem Setup zu dunkel (oder zu hell) erscheint.
Wenn es sich letztendlich um ein Einzelspielerspiel handelt und der Spieler das Spiel für sich selbst vereinfachen möchte, ist dies das Richtige für ihn. Warum solltest du sie aufhalten? Wenn es sich um ein Multiplayer-Spiel handelt, sind andere Strategien erforderlich, z. B. das Senden von Informationen zu Ereignissen, die so nah sind, dass sie oder innerhalb ihres Taschenlampenstrahls sehen können, oder etwas Ähnliches.
quelle
Angesichts der zufälligen Helligkeit, des zufälligen Kontrasts und des zufälligen Gammas der Bildschirme des Benutzers und nicht der Raumbeleuchtung, in der sich der Benutzer befindet, gibt es keine zuverlässige Möglichkeit, etwas zu erstellen, das "gerade sichtbar genug" oder "gerade unsichtbar genug" ist. Wenn Sie möchten, dass etwas unsichtbar ist, machen Sie es schwarz. Wenn Sie etwas mehrdeutig wahrnehmbar machen möchten, müssen Sie akzeptieren, dass einige Spieler eine bessere Gelegenheit haben, es zu sehen.
quelle
Wenn es ein Einzelspieler ist, spielt es keine Rolle.
Wie wäre es mit einer Kollisionsanzeige im Mehrspielermodus, die anzeigt, was sie anzeigen können? Wenn sie sich in einem dunklen Bereich befinden, teilen Sie dem Client mit, dass er andere Spieler / Bühnenobjekte / usw. erst dann zeichnen soll, wenn sie sich im Kollisionsfeld der Feldansicht befinden.
quelle