표 요약 복원 역사 : 월드 오브 워크래프트 : 클래식.


알로하! 소프트웨어 엔지니어 Brian Birmingham, Omar Gonzalez 및 게임 디렉터 Ion Hazzikostas가 World of Warcraft : Classic 경험을 만드는 방법에 대해 몇 가지 설명을했습니다.

표 요약 복원 역사 : 월드 오브 워크래프트 : 클래식.

커뮤니티 내에서 예상되는 경험에 대해 꽤 오랫동안 이야기를 해왔습니다. 월드 오브 워크래프트 : 클래식하지만 블리자드의 품질 수준에서 이러한 경험을 만드는 작업을 완전히 이해하기 위해 소프트웨어 엔지니어 Brian Birmingham, Omar Gonzalez 및 게임 디렉터 Ion Hazzikostas와 함께 무대에 올랐습니다.

부품 찾기

Omar는 데이터베이스 데이터, 미술 자료 및 소스 코드의 세 가지 요소로 나누어 게임을 만드는 기본 사항을 단순화했습니다.

  • 데이터베이스의 데이터에는 생물의 체력, 아이템의 체력, 전 세계의 스폰 위치 및 기타 백만 가지가 포함됩니다.
  • 아트 재료는 나이트 엘프가 Shadow Fusion을 사용할 때의 모습에서부터 도끼를 휘두르는 오크의 움직임, 파이로 블라스트가내는 소리에 이르기까지 다양합니다.
  • 소스 코드는 게임을 표시하고 입력을 처리하고 플레이어를 연결하는 데 필요한 지침입니다.

시작하려면 소스 코드가 얼마나 오래 걸 렸는지 확인해야했고 코드 저장소가 개발이 시작되기 훨씬 전인 1997 년으로 거슬러 올라간다는 사실을 발견해야했습니다. 월드 오브 워크래프트.

좋은 시작 이었지만 이전에 개발자가 데이터베이스 업데이트를 처리하는 방식에 문제가있었습니다. 개별적으로 작업하고 개발할 수있는 게임의 여러 포크가있는 우리 코드와 달리 데이터베이스의 첫 번째 데이터는 각 업데이트로 덮어 써졌습니다. 운 좋게도 우리는 출시 후이 문제를 매우 빠르게 수정했으며 검색 후 버전 1.12 등으로 거슬러 올라가는 데이터를 발견했습니다.

마지막으로, 우리는 우리가 보관 한 데이터베이스의 모든 데이터와 일치하는 오래된 백업 사본에서 예술 자료를 찾았습니다.

세 가지 구성 요소를 결합하여 게임을 테스트하고 로그인하고 새로운 캐릭터를 만들고 멧돼지를 죽이고 일부 미션을 완료 할 수있었습니다.

현대 세계의 고전 게임 플레이

게임의 작동 버전이 있었지만 해결해야 할 더 많은 과제가있었습니다. 게임이면의 기술은 클라우드 지원, Battle.net 앱과의 통합, 고객 지원 기능, 수많은 버그 및 공격 이후 수정되었습니다.

이러한 장애물을 극복하기 위해 우리는 우리가 좋아하는 것 (아트와 데이터)과 싫어하는 것 (코드)을 살펴 보았습니다. 우리는 모든 것을 날려 버리지 않고 현대 코드에서 아트 재료와 클래식 데이터를 사용할 수 있는지 확인하고 싶었습니다. 처음부터 일이 잘 풀리지 않았지만 시행 착오를 거쳐 우리는 플레이 가능한 무언가로 이어질 수있는 통합 프로세스의 개념 증명을 개발했습니다. 이는 블리자드가 현대 플랫폼에서 잘 알려진 수준의 경험을 생성 할 수있는 능력에 대한 우리의 믿음을 증가 시켰습니다.

프로토 타입에서 데모까지

빌딩 블록, 데이터베이스 데이터, 소스 코드 및 아트 자료가 결합되어 지형, 게임 메커니즘, 애니메이션 및 조명과 같은 플레이어 친화적 인 기능을 만듭니다. 서로 다른 기능을 사용하려면 빌딩 블록이 서로 다른 방식으로 관련되어야합니다.

상호 작용을 완전히 이해하기 위해 지형을 예로 들어 보겠습니다. 여기에는 언덕과 계곡, 나무, 건물 등의 위치가 포함됩니다. 이전 지형 데이터 파일을 새로운 게임 시스템에 연결했을 때 데이터를 다르게 분석 한 것을 발견했습니다. 그 결과 업데이트 된 시스템과 클래식 데이터가 잘 정렬되지 않았기 때문에 대격변 당시 수중 콜 카르 모닥불이나 불에 타 버린 나무 같은 것을 발견했습니다.

지형 데이터 1.12

1.12 엔진

최신 엔진

지상 높이

잔디

개체 위치

지상 높이

잔디

개체 위치

지상 높이

개체 위치

잔디

운 좋게도 최신 편집기는이 데이터에 대해 일부 변환을 수행 할 수 있습니다. 지형 데이터는에서 사용하는 것과 동일한 편집기로 변환 할 수 있습니다. 아제로스 전투. 최신 편집기는 이전 지형 형식을로드하고 새 형식으로 변환하고 최신 엔진으로 내보내는 방법을 알고 있습니다. 이로 인해 모닥불 위치 및 나무 생성과 관련된 문제가 수정되었습니다.

우리가 극복 한 또 다른 장애물은 데이터를 저장하고 결합하는 방법이었습니다. 월드 오브 워크래프트 각 패치는 개발 단계가 다르기 때문에 항상 여러 패치를 개발 중입니다. 패치에 아트 워크 또는 지형 파일을 추가 한 경우 후속 패치에 자동으로 나타나기를 원했습니다. 프로젝트의 XNUMX 년 동안, 이것은 항상 연대순으로 이루어졌습니다. 새로운 패치를 구현했다면 클래식 현재 개발에서 우리는 Loch Modan의 현재 제방과 같은 것을 이전 복원 버전으로 덮어 썼을 것입니다. 이것은 시작에 문제를 일으켰을 것입니다. 아제로스 전투.

이를 피하기 위해 우리는 도구에 패치를 구현할 수있는 몇 가지 트릭을 가르칩니다. 클래식 게임의 현재 버전에 영향을주지 않습니다. 버전 1.12의 데이터를 새 프로젝트로 복사하고 도구를 구분하여 구분하도록 가르쳤으며 이제 패치를 만들 때 모든 변경 사항이 기본 패치와 상호 작용하지 않고 클래식 프로젝트에 남아 있습니다. 이것은 디렉토리를 복사하는 것만 큼 간단 해 보일 수 있지만 어려운 부분은 도구가 프로세스를 이해하여 자동으로 수정할 수 있도록 도구를 가르치는 것입니다. 내부 도구를 사용할 수있는 능력은 큰 장점이며 클래식 우리의 모든 데이터와 인프라에 액세스 할 수있었습니다.

클래식 애니메이션 및 모델

우리는 또한 모델을 클래식 한 모습으로 완전히 복원 할 기회를 잡았지만 그 과정에서 일부가 '깨진'것을 발견했습니다. 어떤 경우에는 텍스처가 누락 되었기 때문에 이러한 요소가 시스템 내에서 어떻게 나타나고 수정되는지 알아보기 위해 조사를해야했습니다.

원래 애니메이션도 복원했지만 애니메이션 시스템이 게임 코드와 밀접하게 연결되어 있기 때문에 애니메이션을 1.12 모양과 느낌으로 되돌리려면 데이터와 코드를 모두 변경해야했습니다. 이 과정에서 몇 가지 버그를 발견했습니다. 예를 들어, 누워 있어야하는 일부 모델은 그렇게 똑바로 세웠고 그 반대의 경우도 마찬가지였습니다. 그러나 우리는 그것들을 쉽게 수정할 수있었습니다.

수업 시스템 복원

데이터를 코드로 변환하는 데 큰 진전을 이루었지만 일부 시스템에는 현대적인 기능이 없습니다. 아마도 가장 영향을받은 직업은 사냥꾼의 직업 일 것입니다. 애완 동물 충성도 및 행복 시스템, 애완 동물 훈련 및 원거리 무기와 근접 무기를 모두 사용할 수있는 기능이 제거되었습니다. 이러한 경우 이전 데이터를 새 시스템으로 변환하는 것은 해당 데이터가 존재하지 않았기 때문에 작동하지 않았을 것입니다. 그래서 우리는 이전 코드를 다시 가져와야했습니다. 다행히 복원 과정은 순조롭게 진행되었습니다.하지만 화살을 사거나 애완 동물에게 다시 먹이를 주어야하는 현실은 많은 사람들을 놀라게했습니다.

이 문제는 사냥꾼에게만있는 것이 아닙니다. 또한 현대 자원 시스템은 콤보 포인트를 획득하고 소비하는 방법을 알고 있지만 목표를 변경할 때 잃는 방법은 알지 못하기 때문에 도적의 콤보 포인트에 대한 코드를 변경해야했습니다. 우리는 또한 다른 고대 전투 공식을 고려해야했습니다. 이 경우 치명타 및 압도 적중을 포함하여 이전 전투 공식에 대한 코드를 다시 가져옵니다. 그것들이 생산 될 확률은 또한 방어자의 방어와 공격자의 무기 능력의 차이에 의해 수정됩니다. 예, 무기 기술이 돌아 왔습니다! 우리는 데이터를 가지고 있었지만, 당신이 그것을 사용했을 때 당신의 능력을 증가시키고 당신의 스킬 레벨이 당신의 치고 나 쳐다 보는 능력에 영향을 미치도록 만드는 코드를 복원해야했습니다.

사용자 인터페이스 및 조명

캐릭터 메뉴는 화면 효과에서 캐릭터 조명에 이르기까지 동일한 느낌을 유지하기 위해 최선을 다해 복원해야하는 상징적 인 UI의 좋은 예입니다. 완벽 할 것이라고 약속하고 싶지는 않지만, 진정한 경험을 만들기위한 노력없이 병렬 비교를하고 있음을 확신합니다.

조명의 또 다른 예는 Elwynn Forest입니다. 워크래프트의 역사에서 모든 조명 방정식을 변경 한 기간이 있었기 때문에 환경 디자이너는 조명을 개선하고 새로운 방정식을 활용하기 위해 모든 영역을 검토해야했습니다. 원래 경험을 재현하려면 이러한 변경 사항을 되돌려 야했습니다. 먼저 기존 조명 데이터를 복원하여 원래 조명에 훨씬 더 가까워졌습니다. 안개 및 거리 공식에 더 많은 변경 사항을 적용하고 일련의 그림자 수정을 적용하여 원래 조명에 더 가까워졌습니다.

아직 끝내 셨나요?

많은 작업을 마친 후에는 우리가 이미 완료했는지 아니면 참조 클라이언트를 업데이트하는 것으로 제한하는 것이 더 쉬웠는지 궁금 할 것입니다.

XNUMX 년 동안이 프로젝트를 수행하고 다양한 오류와 과제를 처리 한 후 반복되는 주제가 있습니다. 우리가 가진 것과 원하는 것의 차이가 분명하게 드러난다는 것입니다. 우리가 볼 때 월드 오브 워크래프트 현재, 우리는 존재하는 차이점을 볼 수 있습니다. 참조 클라이언트를 업데이트하려고하면 잠재적 인 취약성, 동시에 온라인에서 플레이하는 수백만 명의 플레이어가있을 때까지 나타나지 않는 예기치 않은 폐쇄 등 보이지 않는 많은 변경 사항을 감지 할 수 있습니다. 우리는 감지하기 어려운 것이 아니라 우리의 작업을 분명하게 만드는 방식으로이 문제에 접근하라고 말합니다. 

그러나 우리는 아직 끝나지 않았습니다. 우리는 은행과 경매장과 같은 자본의 많은 특성을 아직 검토하지 않았습니다. 또한 보스 기술이 계속 제대로 작동하는지 확인하기 위해 던전과 레이드를 테스트해야합니다. 그리고 모든 PvP 시스템을 조사해야합니다.

철학 및 향후 계획

복원 할 때 월드 오브 워크래프트 : 클래식우리는 누군가가 초창기부터 게임을하지 않았다면 그들이 중단 한 부분을 정확히 시작할 수 있도록 진정한 경험을 제공하고 싶었습니다. 지금은 상황이 더 부드러워지고 팀이 더 좋아질 수 있지만 게임을 할 때와 같은 감각을 유발해야합니다. 월드 오브 워크래프트 전투와 기술의 방정식을 넘어서도 중요한 부분은 사회적 역동 성과 타인에 대한 의존성입니다. 예를 들어, 던전이나 전투에 들어갈 때 그룹 찾기의 어려움과 그 그룹에 대한 신뢰가 있습니다. 또한 버전 2006와 그에 따른 게임 경험에 대한 데이터를 강제로 변경하고 싶지 않았습니다.

우리가 내린 많은 결정은 아주 분명했습니다. 던전 파인더 같은 것을 제거해야한다는 것이 분명했습니다. 또한 영역 간 그룹, 업적 시스템, 통합 경매장, 비행 능력도 제외했습니다. 

다른 결정은 좀 더 복잡했습니다. 피해 제한이 8 인 때가있었습니다. 그런 다음 16으로 확장되었고 나중에 완전히 제거되었습니다. 이 변경은 플레이어가 콘텐츠를 극복하는 데 사용할 수있는 직업 균형 및 디버프 전략을 크게 변경했습니다. 버전 1.12의 데이터를 수정할 필요가 없도록하기 위해 16 개의 손해 한도를 결정했습니다. 클래식.

현재 길드원 간의 게임 내 이메일은 즉시 이루어 지지만 이전에는 낯선 사람과 한 시간 씩 지연되었습니다. 인스턴트 메일로의 전환은 일을 더 쉽게 만들었지 만 더 빨리 필요한 경우 거래를 위해 누군가를 만나야하는 사회적 상호 작용을 제거했습니다. 이러한 이유로 우리는 그 지연을 다시 도입했습니다. 이름 자동 완성 또는 빠른 사서함 비우기와 같은 실용적인 성격의 다른 변경 사항을 남겼습니다. 이 결정은 누구나 똑같이 할 수있는 플러그인을 만들 수 있었기 때문에 매우 간단했으며, 그러한 유형의 지원을 제거하는 것이 합리적이지 않은 것 같습니다.

과거에는 누군가가 실수로 가지고 있으면 안되는 것을 얻은 경우 전리품 교환시 고객 지원의 참여가 필요했습니다. 현재의보다 현대적인 시스템을 통해 플레이어는 전리품을 교환 할 수있는 기간을 갖게됩니다. 이 기능은 계속 유지할 가치가 있습니다. 클래식 완전히 불필요했던 수많은 지원 요청을 피하기 위해 (죄송합니다!)

도적과 같이 에너지 재생에 의존하는 클래스의 경우, 당시 이후로 상황도 많이 변했습니다. 클래식. 이전에는 서버의 "하트 비트"리듬에 맞춰 주기적으로 재생성이 발생했습니다. 따라서 20 에너지를 얻는 데 1 ​​초가 걸렸습니다. 오늘날 시스템이 완성되어 XNUMX/XNUMX 초마다 XNUMX 개의 에너지가 재생됩니다. 이 차이로 인해 특정 능력을 사용할 수있는 빈도가 변경되었습니다. 이제 사소한 특전처럼 보일 수있는 것은 실제로 전투 회전의 흐름과 클래식 게임의 폭발적인 피해 능력을 변경합니다. 진정한 경험을 제공하기 위해 복구하는 것이 중요해 보였습니다.

플러그인은 수년에 걸쳐 많이 변경되었습니다. 저자가 경험과 지식을 얻음에 따라 훨씬 더 정교 해졌습니다. 이것이 의미하는 바에 대한 완전히 일관된 솔루션을 아직 찾지 못했습니다. 클래식하지만 우리가 아는 것은 버전 1.12에서 플러그인 API로 돌아 가지 않는다는 것입니다. 그렇게하면 전투 결정을 거의 완전히 자동화 할 수있는 문이 열리 며, 이는 게임 경험과 상반되는 전형적인 '봇'행동입니다. 와우. 우리는 그것을 원하지 않는다는 것이 분명합니다. 스펙트럼의 다른 쪽 끝에서 최신 API는 소셜 기능을 만드는 데 더 많은 기능을 제공합니다. 클래식. 우리는 여전히 세부 사항을 다듬고 있으며 두 극단 간의 균형을 찾고 있습니다. 커뮤니티 및 플러그인 제작자의 피드백을 면밀히 모니터링하여 한계를 설정하는 위치를 결정할 것입니다.

콘텐츠 출시 계획

1.12 버전부터 시작하는 동안 플레이어가 기대하는 승차감을 확실히 전달하고 싶었습니다. 그 여행의 여정으로, 우리는 시간이 지남에 따라 경험에 통합 할 XNUMX 개의 추가 단계가 있습니다.

  • 1 단계 : 마그마 코어, 오닉시아, 대학살, 카자크, 아주르 고스
  • 2 단계 : 검은 날개 둥지, 전장 및 PvP 보상, 줄구룹
  • 3 단계 : 안퀴라즈 (오프닝 이벤트 포함), 레벨 0,5, 실리더스 콘텐츠, 그린 드래곤
  • 4 단계 : 낙스라마스 갱, 스컬지 침공

이러한 계획은 변경 될 수 있지만 우리가 준비한 내용을 알려 드리고자합니다. 앞으로 많은 일이 있지만 여러분의 의견을 기다리겠습니다.

블리즈컨 참석자 및 블리즈컨 2018 가상 입장권 이미 데모를 사용해 볼 수 있습니다. 클래식! 자세한 내용은 최신 기사를 읽어보십시오. 디자이너와의 커피 데모의 제한 사항과 함께 포럼에 게시됩니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.