해결된 질문
작성
·
316
1
약간 별개의 질문이긴한데요
현재 언리얼에서 플레이펩이라는 클라우드 웹서버로
방치형 키우기 게임을 위해 사용중입니다.
웹서버가 제공하는 API로
UpdatePlayerData: 클라의 변수를 서버로 업로드
ExecuteCloudScript: 클라우드 스크립트 실행
이렇게 두개의 함수가 있는데요
방치게임의 공격력 레벨을 업그레이드 한다고 했을때
Update와Exec중 Exec로 서버에서 플레이어 데이터를
처리해야 치트,핵유저를 방지할수있을까요?
사실상 대부분의 게임기능이 CloudScript를 사용해야하는것인가요?
답변 3
1
그건 사양과 상황에 따라 다릅니다.
기본적으로 클라에서 판정하면 해킹 가능성이 있고,
서버에서 판정하면 안전하지만 성능을 많이 잡아먹으니
위험성과 성능 중 어느쪽을 우선시할지가 결정되어야 하고
추가로 게임 장르에 따라서 서버가 어느 정도 부하를 견딜 수 있는지도 고려가 되어야 합니다.
공격력 등의 플레이어 데이터를 서버에서 계산하고 관리하는게 당연하지만,
어차피 공격력과 같은 스탯'만' 서버에서 관리를 하고
실제 전투는 클라가 각기 판정한다면,
클라가 해당 스탯 정보를 서버로부터 받은 다음에
스탯에 해당하는 메모리를 조작하면 그만입니다.
그러니 결국 모든 판정을 서버에서 하지 않고 일부만 하는 형태로 만들게 될 경우
어차피 반쪽짜리 보안이라는 말이 됩니다.
결과적으로 정말 100% 보안을 신경써야 하는 게임인지 (MMO처럼),
아니면 해킹을 감안하고 만들지를 우선 고려를 해야 합니다.
0
네 그 정도면 정석적인 방법으로 보이네요.
전투가 끝날때마다 서버에서 로그를 남겨서
너무 비정상적으로 빨리 끝났다거나~
하는 부분을 나중에라도 잡을 수 있게 준비만 하면 될 것 같습니다.
0
어느정도 감안을 해야하는것이군요.
유저가 수정을 요구할때 다시 서버에서 Get 해서 로컬 변수를 덮어씌워주고 Update 후 클라적용해주는것 정도면
타협할만 할까요?
전투는 어쩔수 없지만 재화와 레벨정도는 신경써주고 싶습니다