2012-10-13 13 views
5

Wdrażam aplikację do gier na podstawie cocos2d-x. Aby technicznie zapobiec oszustwom, jednym z pomysłów jest użycie HTTPS do komunikacji między klientem a serwerem, co utrudnia uzyskanie logiki formatu/gry i wysłanie zmodyfikowanej prośby o oszustwo. (Wiem, że "zapobiec" jest w rzeczywistości niemożliwe, ale dla zwiększenia kosztów dokonywania oszustw w grze jest ok:). Moje pytanie brzmi:HTTPS na Cocos2d-x

  1. W jaki sposób wykonać żądanie HTTPS w Cocos2d-x? Możliwy?
  2. W bardziej ogólnym przypadku, technicznie, co zrobić, aby ograniczyć takie hackowanie gier? Jaką strategię trzymać?

Odpowiedz

0

za pomocą biblioteki curl można utworzyć połączenie https. Jeśli chcesz technicznie chronić swoją grę, użyj własnej, silnej techniki szyfrowania.

Dzięki

2

dla rodzimych wieloplatformowym C++ sieciowych można rozważyć użycie biblioteki boost C++. Boost.Asio jest używany do tworzenia sieci.

Boost.Asio Link: tutoriale http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio.html

Boost.Asio link: http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/tutorial.html

Chociaż nie jest oficjalnie obsługiwane (tylko ze względu na brak testów regresji na iOS i Android), doładowania działa bez żadnych problemów na iOS i Android (i prawdopodobnie także inne platformy mobilne oparte na C++).

Aby zapobiec oszustwom, zazwyczaj polegasz na zewnętrznym źródle (które może być Twoim serwerem gry), np. jeśli twoja gra zależy od pory dnia, możesz uzyskać czas z zewnętrznego serwera. Możesz używać bibliotek szyfrowania do przesyłania danych po stronie klienta i serwera.

+0

Dziękuję bardzo, ale to nie jest nowy post. :) –

+1

Tak, zdaję sobie sprawę, że to nie jest świeży post, wciąż czułem potrzebę udzielenia odpowiedzi na to pytanie, ponieważ ludzie zwykle mają problemy z łącznością między platformami w C++. –

0

Witam, to jest problem, z którym cały czas mamy do czynienia. Jeśli oszukiwanie jest ograniczone do instancji oszusta, pytania są akademickie i powinny być badane w wolnym czasie.

Z drugiej strony, gdy dochód ma wpływ lub gdy działania oszusta wpływają na innych graczy i pogarszają wrażenia z gry, powinieneś poświęcić trochę czasu na testowanie stanu gry pod kątem niespójności, zabezpieczyć transakcje klient/serwer i radzić sobie z oszustwami bardzo subtelne sposoby uniknięcia całkowitego odstraszenia zainteresowania oszustów.

Implementacje C++ https są dostępne z podkręceniem i zwiększeniem.

W przypadku danych gry najprostszym sposobem na sprawdzenie niespójności są wyniki. Możesz dodać kilka wskaźników, aby uniknąć zanieczyszczania tabel wyników. Możesz dodać specjalne sumy kontrolne na podstawie składników partytury (czasu spędzonego w grze, liczby bonusów i otrzymanych mnożników punktów ...), jeśli możesz ponownie obliczyć wynik na serwerze i jeśli odkryjesz niespójności, możesz sobie z tym poradzić.

Możesz także pobrać chwile stanu gry i kilka poleceń, zakodować i odtworzyć sekwencje na serwerze, aby sprawdzić niespójności. Zajmij się jednak oszustami.

Podczas gry na serwerze pozwól serwerowi zarządzać gamestatem i nie dopuszczaj żadnych zmian stanu gry po stronie klienta, które mogłyby wpłynąć na graczy. Sprawdź spójność danych wejściowych itp ...

Podczas korzystania z mikroprocesów każda mikro transakcja powinna zostać zweryfikowana przez serwery dostawców, zanim zostanie w pełni zatwierdzona na koncie gracza.

Nawet jeśli te dokumenty 1, 2 od zaworu odnoszą się do gier FPS, powinny dać ci kilka wskazówek, jak radzić sobie z niespójnościami państwowymi (wprowadzone przez opóźnienia komunikacji). Powinno to pomóc w uniknięciu fałszywych pozytywów i zrujnowaniu doświadczenia dla nie-oszustów.