• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

안녕하세요. 루키스님^^

22.04.08 18:01 작성 조회수 277

1

안녕하세요^^ 루키스님

항상 열심히 사시느라 존경스럽다는 말을 먼저 서두에 넣고 싶네요.

바쁘신 와중에 질문글을 올리는게 

너무나 죄송스럽습니다.

분명 기본적으로 알려주실껀 다 알려주셨지만

이런쪽으로 머리를 써본일이 적다보니

이동 관련하여 막힌 난관에 

도무지 스스로 해결책을 찾을 방도가 없어

이렇게 실례를 무릎쓰고 글을 적게되었습니다 ㅠ

다름이 아니고 일단 영상을 하나 봐주세요.

https://m.blog.naver.com/hyhc125/222695406876

현재 오라클 클라우드 서버에

두 인스턴스를 생성해

하나는 AccountServer, 하나는 GameServer로 돌리고 있고 DB는 오라클에서 제공해주는 ATB(자율구동데이터베이스)를 사용하고 있습니다.

영상을 보시면 케릭터가 이동 중에

몬스터를 관통하거나 혹은 케릭터와 몬스터가 한 좌표에 겹쳐지는 현상이 나타납니다.

제 생각엔 한 좌표에 동시에 몬스터와 케릭터가 진입(몬스터와 케릭터가 앞으로 이동 할 지점에 대하여 CanGo()로 검사를 하는데 두 개가 동시에 true가 되는 경우)을 하는게 원인같다고 판단은 했는데

막상 이에 대한 해결책을 찾자니

도무지 떠오르는 아이디어가 없어서

한참 고민하다가 

루키스님께 조그마한 힌트라도 얻을 수 있을까 싶어

질문드리게 되었습니다.

이런 경우 어떻게 겹치지 않게 할 수 있을가요?

 

 

 

답변 1

답변을 작성해보세요.

1

클라 선이동 방식이라면 운 나쁘게 겹칠 수도 있고,
이런 경우엔 이상함을 감지해서 롤백하는 방법밖엔 없습니다.
서버 허락을 받고 이동하는 방식이라면 그나마 미연에 방지할 수 있습니다.
CanGo()가 동일하게 두 번 true로 되는 상황이라도
먼저 좌표를 선점하는 쪽이 가게끔 만들어주면 되겠죠.
(단 Job 방식이 아니라 바로 적용)

ChaYong님의 프로필

ChaYong

질문자

2022.04.09

답변 감사합니다.

바로 시도해보겠습니다^^