1. 이삭(타워 서버) 건의사항.

    건의사항.jpg

1.1 내 생각인 이 게임의 클라이언트와 서버의 작동방식 (몬스터정보가 클라이언트에서 처리될시)

서버 흐름(통신 최소화시).jpg

1.2 몬스터 정보가 서버에서 처리되어 클라이언트로 보여주기만 할시.

서버 흐름(몬스터 가 서버에서 이동시).jpg

이때 아래의 경우라면 서버에서는 변조가 일어나지 않기 때문에. 특별한 검증 절차 필요 없이 그냥 최종 스코어를 저장하면 되지만.

위처럼 클라이언트가 로직을 수행하고 서버에서는 검증을 한다면 클라이언트의 변조(버그, 핵)등을 검증해야 하기 때문에 많은 검증사항이 필요하고, 요청한 데이터의 추가도, 그러한 검증사항에 필요한 데이터라 생각해 추가를 요청한 것입니다.

그럼 맞은 데이터 [{때린놈 , 맞은 위치, 맞은시간 }] 은 왜 필요한가?

  1. 때린놈은 내가 가지고 있는 포탑인지 즉시 확인하기 위해, 맞은 위치는 사거리가 닿는지 확인하기 위해, 맞은 시간은 쿨타임중에 때린건 아닌지 확인하기 위해 필요합니다.

  2. 서버에서 확인을 받는다면 , 그 데이터는 나중에 사망데이터검증시 필요하기 때문에 클라이언트 몬스터에게 넣어줍니다.

    죽은 데이터는 왜 필요한가.

죽는다면 그 데이터는 즉시 보낼수도 있고, 나중에 한번에 확인할 수도 있습니다. (라운드 이동시 라운드 정보에서 확인하는게 좋을거 같다고 생각합니다만 이건 라운드 서버의 영역이니 그 선택에 따를 것입니다.)

확인시

  1. 죽인 놈이 포탑이라면. 내가 가지고 있는지, 사거리는 닿는지, 맞은 시간은 쿨타임중 때린건지
  2. 맞을때 데미지+ 죽일때 막타 데미지 ≥ 이것의 체력 인지 확인합니다.