W prawie każdej grze, którą spotkałem, która zawiera mroczną sytuację mającą na celu zmianę sposobu interakcji użytkownika z otoczeniem, zawsze są tacy gracze, którzy włączają korektę gamma swojego monitora w celu zanegowania pożądanego efektu.
Czy istnieje sposób, aby uniemożliwić użytkownikom dostosowanie korekcji gamma w celu „oszukiwania” w celu wyjścia z wyzwania? (ciemność)
Wyobrażam sobie, że gdybyś mógł niezawodnie odzyskać bieżącą korekcję gamma monitora użytkownika, możesz użyć tego, aby w mniejszym lub większym stopniu zapobiec przewadze, jaką w innym przypadku by to zapewnił, nie powodując normalnych użytkowników żadnych niedogodności.
rendering
anti-cheat
Athix
źródło
źródło
Odpowiedzi:
Jeśli absolutnie potrzebujesz kontrolować, czy gracz może coś zobaczyć, czy nie, być może w celu przeciwdziałania oszustwom dla wielu graczy lub czy jest to klucz do mechaniki gry, całkowicie je ukryj . W ten sposób żadna ilość korekcji gamma nie sprawi, że będą widoczne.
Nie najlepszy przykład, ale w Zamknięciu obszary, które nie są oświetlone, są w całkowitej ciemności:
Proszę nie idź tą ścieżką; istnieje wiele powodów - innych niż oszustwo - dla korekty gamma; być może gracz ma słaby wzrok, słaby monitor lub gra w ciągu dnia. Szanuj swoich użytkowników! Nie pozwól, aby kilku oszustów / piratów / what-have-you zepsuło to doświadczenie dla wszystkich innych.
źródło
Sugeruję dodanie niewielkiej ilości białego szumu do renderowanego wyjścia. W jasnych scenach nie będzie to widoczne, w ciemnych scenach ze zwykłym ustawieniem gamma jest to podobne do tego, co faktycznie robią kamery lub ludzkie oko. Ale dla kogoś, kto podkręca gamma, hałas ten byłby bardzo uciążliwy. Ciemne obiekty nie tylko nie będą odpowiednio widoczne, ale podbicie szumów niskiego zasięgu odwróci również uwagę od jasnych obiektów; dlatego powinno to wystarczająco zniechęcać ludzi do robienia tego.
(Oczywiście, bardzo sprytni faceci mogą wciąż wymyślić zaawansowane techniki usuwania szumów, ale przynajmniej nie są one dostępne w zwykłych monitorach)
źródło
Istnieje kilka funkcji Windows API, które mogą załatwić sprawę : SetMonitorBrightness i SetDeviceGammaRamp . Będzie to jednak zależało od sprzętu; prawdopodobnie nie wszystkie monitory obsługują programowe ustawianie jasności, a różne monitory mogą dawać różne wyniki itp.
Co więcej, nie brzmi to jak bardzo dobry pomysł. Zablokowanie wartości gamma / jasności do pewnej stałej wartości z pewnością zirytuje graczy i bardzo prawdopodobne, że dla niektórych gra będzie niemożliwa do gry, ponieważ zdarza się, że przy ustawieniu jest ona zbyt ciemna (lub zbyt jasna).
Ostatecznie, jeśli jest to gra dla jednego gracza, a gracz chce ułatwić sobie grę, ma rację. Dlaczego warto je zatrzymać? Jeśli jest to gra wieloosobowa, potrzebne są inne strategie, takie jak wysyłanie graczowi informacji o wydarzeniach wystarczająco blisko, aby mogli zobaczyć lub w promieniu latarki, lub coś w tym rodzaju.
źródło
Biorąc pod uwagę losową jasność / kontrast / gamma ekranów użytkownika, nie wspominając o oświetleniu pokoju, w którym siedzi użytkownik, nie ma niezawodnego sposobu na stworzenie czegoś, co będzie „wystarczająco widoczne” lub „tylko niewidoczne”. Jeśli chcesz, aby coś było niewidoczne, spraw, aby było czarne. Jeśli chcesz stworzyć coś niejednoznacznie wyczuwalnego, musisz zaakceptować fakt, że niektórzy gracze będą mieli lepszą okazję, aby to zobaczyć.
źródło
Jeśli jest to single player, to nie ma znaczenia.
W grze wieloosobowej, co z samą kolizją pokazującą, co mogą zobaczyć. Jeśli są w ciemnym obszarze, powiedz klientowi, aby w ogóle nie rysował innych graczy / obiektów scenicznych / etc, dopóki nie znajdą się w polu kolizji widoku pola.
źródło