대항해시대 인벤 폴라리스 서버 게시판

전체보기

모바일 상단 메뉴

본문 페이지

1:1 대전시 랜선 빼는 것에 대한 이야기

아이콘 소노다우미
댓글: 6 개
조회: 2063
2014-02-24 14:30:20
다들 아는 내용이겠지만, 대충 이야기해봅니다.

혹시 틀리거나 잘못될 가능성이 좀 있으므로, 보충설명 가능하시면 부탁드리겠습니다.



대항해시대를 하다가 가끔 생기는 현상 중 다음과 같은 현상이 있습니다.

분명히 5클을 다 끌고 가고 있는데, 배 하나가 갑자기 저 뒤에서 나타난다던가 하는 현상이죠. 꼭 이럴때 보면 클라이언트중 하나가 화면이 검은데, 누르면 **해역으로 진입하게 됩니다. (잘못하면 따라가기도 해제되죠)


전 왜 그런가 별로 생각은 안 해 봤는데, 어제 스샷을 보고 이해를 했습니다.


아무튼 각설하고, 이 문제는 대항해시대 위치랙에 관한 문제입니다. 이 현상이 발견되는 이유는, 다들 아시겠지만 이 게임이 오래되었기 때문이고, 이걸 고칠수는 없을겁니다. 게임 시스템을 다시 짜야 해서.



현실세계에서의 물리적 이동은 벡터값으로 이동하는 것이 아니라, 물건이 주어진 힘에 따라 상대적으로 이동하게 됩니다. 당연한거죠. 그리고 우리는 이것을 정확히 눈으로 보게 됩니다.

게임세계에서는 이야기가 달라집니다. 14,14 위치에 있는 캐릭터를 13,13 으로 이동하기 위해서는 위로 한칸, 왼쪽으로 한칸 이동해야합니다. 명령을 내려야죠. 하지만 모종의 오류가 생겨서 이동하지 않을 경우도 있습니다. 흔히 위치랙이라고 부르는 현상이 이때 발생하겠죠. 해결책에는 여러가지 방법이 있겠지만 거기에 대해서는 알 수 없으니 패스하도록 하겠습니다.

마비노기같은 경우 (위치랙이 가장 쩔어주던 게임) 를 보면 클라이언트에서 상대적 이동값을 계속 받아 이동한 캐릭터가 클라이언트에서 보이는 위치와 서버에서 측정한 위치가 다를 때, 이동은 그냥 되지만 특정한 상태변동 (물건을 움직인다던가, 공격을 받는다던가 등등) 이 있을 경우, 클라이언트에서 보이던 위치는 폐기되고 캐릭터가 서버에서 측정한 위치로 갑자기 이동되어 보이는 현상이 있게 됩니다. (갑자기 캐릭터가 순간이동하게되죠) 클라이언트-서버간의 위치데이타 공유가 주기적으로 이루어지지 않아서 생기는 문제겠죠. 

뭐 이정도면 괜찮습니다.

그러면 왜 대항에서는 그런 문제가 생기냐면....

위치랙이 해소되지 않기 때문입니다.

일단 자세히 이야기를 해보겠습니다.

1) 대전을 겁니다

2) 랜선을 뽑고 움직입니다

이 상태에서, 상대방의 클라이언트에 있는 캐릭터의 위치와 서버에 있는 캐릭터의 위치는 랜선을 뽑은 동안은 동기화가 되지 않은 상태입니다.

3) 랜선을 꼽으면 상대방의 클라이언트에서 캐릭터가 빠르게 움직이게 됩니다

2번상태에서 밀렸던 처리를 빠르게 하는겁니다. 이 상황에서 움직이는 명령중 몇개만 켄슬되면, 랜선뽑은 사람의 클라이언트상의 캐릭터 위치와 대전상대방이 보는 캐릭터 위치, 그리고 서버상의 캐릭터 위치가 셋 다 달라지거나, 두개가 다른 나머지 하나와 달라질 수 있습니다.

4) 그리고 공격을 안 받고, 공격을 합니다.

클라이언트에서 보여지는 캐릭터들의 위치는 실제 위치와 다르기 때문에 (위치랙상태) 위치랙이 해소되어야 하지만, 불행히도 우리 대항해시대에서는 위치랙을 강제로 제거하는, 즉 캐릭터의 클라이언트-서버상 위치를 동기화하는 작업을 따로 수행하지 않는 듯 합니다. (설정인지, 능력부족인지, 오래되서 그런건지, 의도된건지는 모르지만) 따라서 클라이언트에 보이는 위치와 서버상 위치는 달라지게 되기 때문에, 공격을 무시하게 됩니다. (클라이언트에선 공격범위 안이지만, 서버에서 거부합니다!)

여기서 공격을 하는 방법은 사실 간단할텐데, 창이 아니라 리치가 더 긴 원거리 무기, 즉 총이나 활을 들면 공격이 될 가능성이 높을겁니다. (이걸로 안되면 저도 잘 모르겠습니다 -_-)

Drogba님이나 다른 분이 설명해주시면 감사하겠지만, 어제 올라온 스샷에서 오싹님이 쓴 무기가 활/총 계열이면 확인사살입니다.


서두에서 이야기했던 현상도 마찬가지죠. 다클을 킬 경우 다른 해역으로 넘어가지 않아서 뒤에서 검은화면으로 오랬동안 있는 상태가 있는데, 비슷한 현상일겁니다. 클라이언트상에서 해역이 넘어가서 따라가기를 재대로 시작되지 않으면 서버에서도 그 처리를 안해주는거죠. (그래서 클라이언트에서 어긋나면 서버에서도 어긋나게 되는게 아닐까 싶기도 하고요)


이런식의 허점을 파고들어서 1:1 전투에서 이용하는것은 치졸하며, 악랄하다고밖에는 표현하기가 힘듭니다. 피겨 금메달 딴 모 선수와 다를바가 없다고 생각합니다.

Lv80 소노다우미

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

지금 뜨는 인벤

더보기+

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징

AD