마법사(남) 통합
흡연소년 | 날짜 : 2013-11-13 20:06 | 조회 : 972 / 추천 : 6 |
---|---|---|
[빙결사] 내일 패치노트에서 주목할 부분
파티플레이시 파티원과의 통신이 원할하지 않을 경우 로봇류 스킬이 폭발하지 않는 현상이 수정됩니다.
이 부분 말인데요...의미가 큽니다. 던파의 데이터 처리방식은 중앙서버에서 하는게 아니라 p2p방식입니다. 즉 파티플시에 호스트컴퓨터는 중앙서버가 아닌 유저의 컴퓨터가 되죠. 이 때문에 데이터 해킹보다 플레이시 간섭하는 핵이 상대적으로 빈번한 거고요. 요즘 게임에선 거의 안쓰는 방식이지만요... 유저의 사용환경은 천차만별이기에 호스트컴퓨터의 데이터 처리능력이나 호스트컴퓨터와 게스트컴퓨터간에 통신속도에 심각한 차이가 생길경우에 그것을 최소한으로 조정하는 동기화 알고리즘이 내장되어 있을겁니다. 이 동기화 알고리즘의 우선순위와 처리능력이 만들어 내는게 바로 '렉'입니다. 내가 좋은 컴퓨터와 안정적인 통신환경을 가지고 있고 파티원이 나쁜컴퓨터와 불안정한 통신환경을 가지고 있다고 했을때, 파티플레이에서 처리되는 정보들을 파장인 내 컴퓨터에서 처리하고 각 파티원의 컴퓨터로 보내는데, 그렇게 보내진 데이터는 각 파티원의 컴퓨터에서 처리될 부분이 처리되고 새로운 명령들을 받아 내 컴퓨터로 다시 보내줍니다. 이 과정에서 한 파티원의 컴퓨터가 느리거나 통신상태가 안 좋을경우 한 사람의 데이터만 늦게 오겠죠? 이 늦은 데이터를 동시에 처리하기 위해 호스트컴퓨터, 즉 파장컴은 게임의 진행속도를 떨어뜨립니다. 늦게 오는 사람과 함께가려고 페이스를 조절하는거죠. 이게 동기화 렉입니다. 그래서 던파같이 p2p방식의 게임에서는 파장컴이 아무리 좋아도 파티원 컴이 나쁘면 렉이 생기죠. 다른 게임은 이 과정을 서버컴퓨터가 주로 수행하므로 이런 문제는 적구요. 그런데 이게 지나치게 민감할 경우 시도 때도 없이 게임이 느려졌다 빨라졌다를 반복할 위험이 있으므로 개발자는 최대한 게임속도를 떨어뜨리지 않으려 합니다. 대신 데이터 처리속도의 차이가 있을경우 최대한 이것을 비슷하게 맞추는 과정을 먼저 진행하죠. '불필요한 데이터를 제거함'으로써, 데이터 과부화를 줄이는 겁니다. 즉 전체속도를 유지하는 대가로 퍼포먼스를 줄이는 거죠. 저 위에 나와있는 패치내용으로 우리가 던파의 동기화 알고리즘에 대해 추측할수 있는 부분이 있습니다. '오브젝트는 동기화 알고리즘상 우선순위에서 밀렸었다' 라는거죠. 즉 게임속도를 떨어뜨리느니 차라리 오브젝트를 무시해버리자 라는게 이때까지의 던파 동기화 알고리즘이었다는 거죠. 일단 로봇류라 한정해서 공지되어 있습니다만, 왜 피오아 히트수가 씹히는가에 대한 큰 단서가 됩니다. 피오아 히트수 씹힐때 게임속도가 느려지진 않죠? 펜티엄 시대때 던파 하셨던 분들이라면 소환사가 물량 뽑을때 게임 속도가 느려지던 걸 경험해보셨을 겁니다. 소환사의 소환물은 필수요소라서 게임속도가 느려지는 것을 감수하고 다 처리하는 것이고 로봇이나 피오아는 그 우선순위가 낮게 잡혀있어서 게임속도를 떨어뜨리지 않는 대신 연산을 생략해버리는게 던파의 동기화 알고리즘이었다는 겁니다. 즉 던파의 프로그래머들은, 피오아 히트수가 씹히는 원인에 대해 분명히 알고 있는 것이며 로봇류의 연산우선순위는 올려도 괜찮겠다라고 판단한 반면 피오아는 아직 안된다고 말하고 있는 겁니다. 만약 피오아의 우선순위를 올릴경우 히트수는 전부 들어가겠지만, 대신에 쓸때마다 높은확률로 동기화 렉이 발생할 것이고 이 렉에 의해 게임속도의 저하와 팅길위험도가 높다고 '기술적인 판단'을 한것이죠. 기본적으로는 던파의 메인 엔진이 워낙 구식이라 생기는 문제지만, 사용자들의 평균적인 컴사양 및 통신환경에 관련된 문제라서 메인소스를 뜯어고치거나 피오아의 메커니즘이 바뀌지 않는 한 간단히 해결될 문제는 아닙니다. 예를들어 오브젝트 판정이 아니라 범위 적용이라던가, 혹은 발사수는 유지하되 발사속도를 떨어뜨리던가 하는식으로 말이죠. 제가 만약 이 알고리즘 프로그래머라면, 피오아의 발사속도를 줄이겠습니다만은... from Mobile
|
흡연소년
0
205,720
프로필 숨기기
신고
53
67%