
Quake II
Buy GameQuake II Enhanced 버전에 대한 전체 기술 개요를 확인하세요
Quake II
Buy GameQuake II의 새로운 버전은 많은 개선 사항을 포함하고 있습니다.
동적 음영과 같은 많은 내용이 최신 추가 사항인 반면 1997년의 오리지널 버전의 Quake II에 사용된 기술을 반복한 개선 사항도 있습니다.
1990년대에 처음 선보인 이후로 게임 플레이가 여전히 완벽하게 보존되는 가운데, Quake II를 새로운 세대의 플레이어에게 선보이기 위해 포함된 주요 기술적 향상, 개선 사항, 심지어 콜라보레이션까지 포함된 개요를 제공해 드립니다. 베테랑 모드 제작가든, 복고풍 게임 마니아든 아니면 단순히 이 버전의 Quake II의 특징이 무엇인지 궁금한 분이든 이 개요는 도움이 될 것입니다!
맵 컴파일링 도구
오리지널 1997년 버전과 유사하게 Quake II의 대부분 라이트는 컴파일링 시점에 BSP 파일에 베이킹됩니다. 라이트는 라이팅 도구에 의해 사전 계산되고 포함된 라이팅 텍스처는 BSP 파일에 저장됩니다.
우리는 인기 ericw 도구의 공헌자 두 명인 Eric Wasylishen 그리고 Jonathan Barkley와 협업해 Quake II의 BSP 지원을 개선했습니다. 또한 오리지널 게임이 지원하는 바를 넘어서 오리지널 맵과 유저 맵 모두에서 향상된 라이팅을 가능하게 했습니다.
라이트 베이킹은 여전히 전적으로 CPU 기반 프로세스이며 GPU를 탑재하지 않은 헤드리스 머신에서 수행할 수 있습니다. 1997년 PC 버전의 오리지널 맵을 라이팅할 때는 최종 베이킹이 몇 시간이나 걸리는 일이 흔했으며 하루를 넘기는 경우도 있었습니다. 그러나 최신 부가 기능을 사용해 맵을 라이팅하는 경우, 더 큰 메가헤르츠당 효율성과 수십 개의 코어를 사용할 수 있으므로 몇 분 안에 완료할 수 있습니다.
럭셀 밀도 증가
화려한 전문 용어들이 사용되었지만, 이 맵 컴파일러 개선은 간단한 것으로 오리지널 게임은 월드를 16:1의 비율로 라이팅하며, 게임에 등장하는 16개의 유닛마다 하나의 라이트 샘플에 매핑됩니다. 우리는 모든 맵을 재구축해서 이 비율을 8:1로 개선해 디테일이 4배 증가했습니다. 확산된 라이트가 많은 지역에서는 효과가 미미하지만, 강한 그림자를 남기는 스포트라이트가 있는 지역에서는 혜택이 상당합니다.
라이트 그리드 지원
이 맵 컴파일러 기능은 Quake III Arena에서 백포팅되었습니다. 오리지널 Quake II의 라이팅의 과제는 개체가 지상에서 서 있는 위치에 기반해 빛난다는 것입니다. 이는 지상 아이템과 적의 경우에는 문제가 없지만, 날아다니는 괴물이 있을 때 시스템이 어려움을 겪습니다. 낮은 각도의 그림자나 그 비슷한 것 위를 지나가기 때문에 공중에서 어두운 경우가 자주 있을 것입니다.

라이트맵을 저장하는 것 외에도, 이제 모든 기여 광선이 해당 영역을 통과하므로 라이트의 샘플을 포함하는 밀폐된 월드 공간 안의 복셀 그리드를 저장합니다. 이것은 대부분 더 큰 맵 파일 크기 및 메모리에 의존하는 꽤 단순한 시스템이며, 이러한 이유로 Quake III Arena 이전에는 사용되지 않았을 것입니다.
텍스처 독립적 라이팅
Quake III Arena에서 백포팅된 또 다른 개념은 표면과 관련하여 라이트맵을 저장하는 방식입니다. 오리지널 Quake II에서는 텍스처를 스큐잉하거나 스케일링하면 라이트맵도 마찬가지로 스큐잉 또는 스케일링하게 됩니다. 이제 라이트맵은 텍스처의 크기가 아니라 브러시 크기에 기반해 저장됩니다.

베이킹된 앰비언트 오클루전
ericw-tools에서 가장 초기에 향상된 기능 중 하나는 더트 매핑이라고도 알려진 앰비언트 오클루전으로, 이는 일반적으로 모서리가 주변에서 반사된 빛을 덜 받는다는 사실을 반영하여 모서리를 어둡게 해 월드에 깊이를 더하도록 도움을 줍니다.

퐁 셰이딩
Quake II가 출시된 이후, 퐁 셰이딩을 지원하는 향상된 라이팅 도구인 ArghRad가 출시되었습니다. 이는 1970년대로 거슬러 올라가는 적은 수의 폴리곤으로 이루어진 표면의 조명을 조정하는 오래된 기술입니다. 구조를 재구축해 폴리곤 수가 증가하도록 하지 않고 대상을 둥근 모습으로 표현하는 효과에 도움을 줍니다. 우리의 업데이트된 맵은 적절한 곳에 이 기술을 사용합니다.

반투명 재질
공간의 라이팅을 실제로 향상시킨 또 다른 변경 사항인 반투명 재질은 광선이 텍스처를 통과하고 텍스처 색상 중 일부가 광선의 목적지에 기여하도록 합니다. 이는 라이트가 색 유리, 홀로그램, 터미널 및 기타 브러시를 통과해 빛날 수 있으며, 통과하는 라이트에 적절한 영향을 미칠 수 있음을 의미합니다.

액체 조명
Quake 맵 제작자 커뮤니티에서 관심을 받는 기능인데 그 이유는 크기에 관계 없이 액체가 포함된 맵을 제작하기 위한 상당한 개선 사항이기 때문입니다. 오리지널에서 물에는 조명이 전혀 적용되지 않았으며 항상 가장 밝은 모습이었습니다. 이제 액체 표면은 다른 모든 표면처럼 라이트맵을 받으며 아래로 통과하는 광선을 차단하지 않습니다.

그래픽
과거 Quake II의 가장 멋지고 새로운 기능은 컬러 라이팅이었습니다. 이제 이 기능은 완전 구식이 되었지만, 새로운 버전의 Quake II에는 여전히 원래의 기술에 충실한 동시에 개선하기 위한 약간의 업그레이드가 추가되었습니다.
애니메이션
Quake II에서 Paul Steed의 애니메이션은 놀라울 정도로 많은 캐릭터를 월드에 추가했습니다. 미묘한 씰룩거림과 유휴 애니메이션부터 과도한 뒤집기와 다이빙에 이르기까지, 적들이 무엇을 할지 확신할 수 없었습니다. 당시 처음으로 게임을 플레이하는 많은 사람들에게 경비병 오리가 빗발치는 사격을 당하는 모습은 '놀라운' 순간이었습니다. 그러나 당시 기술로는 이러한 애니메이션이 잠재력을 완전히 발휘하지 못하도록 하는 몇 가지 한계가 있었습니다.
무엇보다 MD2 모델 포맷은 정점 정밀도에 있어서 범위가 제한되어 있습니다. 이는 특히 1인칭 총 모델에서 볼 수 있는 "위글" 효과로 이어집니다. 우리는 게임에 포함된 대부분 모델에 대한 원본 애니메이션 파일을 복구할 수 있었고 이러한 고해상도 애니메이션을 사용하여 위글 효과를 제거하면서 향상된 모델을 위한 골격 애니메이션을 만들 수 있었습니다.

골격 애니메이션으로 전환하면서 선형 보간에 실패한 일부 경우도 해결되었습니다. 이는 선형 보간 애니메이션이 폴리곤 죽이 될 정도로 빠르게 뒤집히고 회전하는 Parasite의 처치 애니메이션에서 가장 눈에 띕니다.

글로우맵
Quake II에는 무기의 빛나는 부분들과 같은 다양한 스크린 및 라이트가 포함되어 있습니다. 그러나 기본 엔진에서는 다른 것들과 마찬가지로 빛과 어둠에 영향을 받습니다. 이제 텍스처 위에 적용되어 빛나야 하는 부분을 지정하는 마스크인 글로우맵을 지원합니다. 이는 적에 대한 라이트가 어둠 속에서 빛나고 무기의 라이트가 반짝여 기존 스킨의 라이팅 디테일에서 채색을 향상시킨다는 것을 의미합니다.

안개의 높이
안개에 대한 지원을 확장해 높이에 기반한 안개에 대한 지원을 추가하여 맵 제작자가 두 가지 색상을 지정할 수 있도록 했습니다. 이는 맵에서 설정하는 볼륨이 아닌 후처리 효과로 이루어집니다. 여기에는 다소의 절충이 수반되지만, 맵 제작자가 공간에 다양성을 부여할 수 있는 훌륭한 효과입니다.

총구 섬광
엄밀히 기술적 추가 사항은 아니지만, 게임 플레이에 매우 긍정적인 영향을 미치는 변경 사항이므로 포함시켰습니다! 플레이어와 적 모두의 무기는 이제 동적 라이트 외에도 발사할 때 총구 섬광을 발생시킵니다. 플레이어가 자신에게 총을 쏘는 사람이 누구인지 빠르게 파악할 수 있도록 하며, 이는 동적 라이트가 잘 보이지 않는 밝은 방에서 특히 유용합니다.

오디오
Quake II Enhanced 버전의 오디오를 개선했습니다. 초기 오디오 코드의 버그를 수정하고 더 빠른 CPU로 더 많은 음성을 지원하기 위해 한계를 극복한 것 외에도, 이제 재질 이름을 각 텍스처에 첨부하도록 지원합니다.
그 목적은 두 가지입니다. 첫 번째는 트레이스가 부딪히는 표면의 재질을 반환할 수 있도록 하여 각 표면에 대한 고유한 발자취를 허용하는 것입니다. 두 번째는 이제 방 크기와 방 안의 재질에 대한 대략적인 추정치를 계산하여 반향 사전 설정을 선택하는 것입니다. 이는 지하 하수구에 있을 때와 잔디가 우거진 야외 지역에 있을 때 다른 소리가 나도록 해줍니다.
인공 지능
Quake II의 AI는 개발 과정에서 상당한 변화를 겪었습니다. Quake II는 원래 QuakeC를 사용하기로 되어 있었지만, 개발 후반부에 통역된 코드에서 네이티브 라이브러리로 전환하기로 결정했습니다. 이로 인해 기존의 모든 QuakeC를 C로 이식해야 했고 그 과정에서 AI는 약간 오리지널 Quake와 비슷하도록 단순화되었습니다. 이번 재출시 버전에서 우리는 봇을 기반으로 구축하고 봇의 내부 논리를 적 AI에 더 많이 노출할 수 있었습니다.
개선된 내비게이션
게임 DLL에 많은 봇 내비게이션 기능을 노출시켜 게임이 임의의 지점을 오가는 경로 계획을 관리할 수 있도록 했습니다. 그러나 AI는 여전히 수동으로 배치된 내비게이션 포인트가 필요합니다. 초기에는 Recast와 같은 솔루션을 통해 나브메시 생성을 조사했지만, 개발 일정에 맞지 않는다고 판단하고 대신 기존 봇을 위한 도구를 개선하기로 결정했습니다.

오리지널 Quake II의 AI는 주변 환경에서 자신이 움직일 방향을 판단하는 매우 기본적인 기능만 가졌었습니다. 이제 AI는 플레이어 근처에 이동 목적지를 설정하고 계단을 통해 복잡한 방들 사이에서 길을 찾거나 뛰어내릴 지점을 파악해 우위를 점할 수 있습니다.
개선된 의사 결정
AI의 의사 결정 능력이 개선되었으며 적들은 오리지널 버전과 비교해 더 깊이 있게 행동할 것입니다. 공격을 적중시킬 타이밍 판단 능력이 상당히 향상되었으며 이는 다양한 공격 능력을 가진 적의 경우에 더욱 빛을 발합니다.
예를 들어, 체인건을 든 손이 벽에 막힌 Gunner는 벽에 탄약을 낭비하는 대신 수류탄을 사용할 것입니다. 또한 적들은 때때로 그들의 이동 목표에 도달할 때까지 기다리는 대신 거리를 좁히며 사격하는 것을 선택할 것입니다. 이러한 변경 사항은 AI의 행동 또는 전투 방식을 바꾸지 않으면서 잘못된 선택을 하지 않도록 해줍니다.
새로운 비행 AI
비행 AI가 완전히 개선되어 더 자연스러워 보이고 갑자기 멈추는 대신 속도를 줄이고 활강해 회전할 것입니다. 비행하는 드론 무리는 서로 충돌하고 피해 자리를 잡을 것입니다.
복원된 콘텐츠
오리지널 Quake II 파일들을 자세히 살펴본 사람들이 초기 버전에서 사용되지 않은 추가적인 애니메이션들을 발견했습니다. 우리는 이것들을 살펴보고 다듬은 다음 게임에 다시 추가했습니다. 예를 들어 이제 Technician은 무시무시한 발톱을 뻗어 매복을 알리고 Berzerker는 도약 지상 공격으로 더 사나워졌습니다.

Parasite는 싸우는 재미를 더하기 위해 몇 가지가 변경되었습니다. 이제 주둥이는 회피할 수 있는 발사체이며 벽에 꽂힙니다. Parasite가 공격에 실패한 후에 취약한 상태가 되기 때문에 당기기 및 뒤집기 애니메이션을 사용할 수 있도록 이 내용을 추가했습니다.

봇
다음은 Quake II Enhanced 버전에 추가된 새로운 봇의 특징입니다.
- 이제 봇은 로켓 점프를 사용해 에지 위의 메가헬스와 같은 도달하기 어려운 지역에 접근할 수 있습니다.
- 게임에 등장하는 모든 무기, 아이템, 파워업은 적절한 때에 이해되고 사용됩니다.
- 모든 적이 이해되며 적대적일 경우 공격을 받습니다.
- 봇은 점프하고, 웅크리고, 엘리베이터/플랫폼에 타고, 사다리를 이용하고, 적에게 함정을 발동시키고, 스스로 함정을 피할 수 있습니다.
- 게임 DLL이 제공하는 높은 수준의 명령어를 사용하면 모더가 봇이 어디로 가고 무엇을 할지를 제어할 수 있습니다.
- 새로운 아이템, 무기, 적을 자신의 모드에 추가하고 간단한 텍스트 파일에 항목을 추가해 봇들이 보고 이해할 수 있도록 하십시오.(아래에서 추가 설명함)
모드 지원을 위한 데이터 기반 봇
봇은 어떤 개체가 자신에게 관심이 있고 그 개체가 어떻게 움직일지 설명하는 일단의 데이터 파일을 통해 최대한 빠르고 쉽게 모드를 지원하도록 설계되었습니다. 모드 제작자에게는 고유한 무기, 아이템, 몬스터의 모드별 정의 파일을 만드는 것처럼 간단합니다.
이용할 수 있는 파일의 목록과 아이템 파일의 예는 아래에서 볼 수 있습니다.

개선된 내비게이션 편집기
Quake II Enhanced 버전에서는 편집기가 제공하는 유용한 정보와 피드백을 통해 모든 맵에서 빠르게 내비게이션을 설정할 수 있습니다. 편집기에서 만든 NAV 파일은 모드 안에서 또는 친구와 공유할 수 있는 별도의 파일로 저장됩니다.

개선된 디버깅 도구
다양한 봇 디버깅 도구가 제공되어 특정 봇을 디버깅하고 명령을 내리거나 무슨 생각을 하는지 알 수 있습니다.
이 디버깅 도구들을 사용하면 다음을 할 수 있습니다.
- 봇의 일반적인 상태, 목표 등에 대한 정보를 표시합니다.
- 봇의 행동 시스템의 현재 상태를 표시합니다.
- 봇이 관심을 가지는 게임 모드 및 아이템/개체에 관한 정보를 표시합니다.
- 봇에게 월드에서의 이동 목적지를 부여해 내비게이션을 테스트할 수 있습니다.
- 봇이 볼 수 있는 적과 공격하고 있는 적을 표시합니다.
- 봇의 무기 시스템과 봇이 이용할 수 있는 인벤토리의 현재 상태를 표시합니다.

디버그 라인
이제 게임 코드에서 간단한 기본형을 그릴 수 있습니다. 이는 개체의 위치, 월드 텍스트 또는 심지어 어떤 대상이 움직이는 방향도 그릴 수 있도록 해주며, 이 모두는 디버깅에 유용합니다.
이용 가능한 디버그 렌더 기본형:
- 선
- 점
- 원
- 경계선
- 스피어
- 지향적 월드 텍스트 (이는 항상 로컬 클라이언트의 시야를 향합니다)
- 고정 월드 텍스트
- 실린더
- 광선
