<colbgcolor=#358> Europa Engine 유로파 엔진 |
|
Clausewitz Engine 클라우제비츠 엔진 |
|
Jomini Engine 조미니 엔진 |
|
개발사 | |
유형 | 게임 엔진 |
기반 언어 | C++ |
타겟 플랫폼 | Microsoft Windows | macOS | Linux |
라이센스 | 사유 소프트웨어 |
[clearfix]
1. 개요
클라우제비츠 엔진(Clausewitz Engine)은 패러독스 인터랙티브 산하의 패러독스 개발 스튜디오에서 자체개발하는 게임 엔진으로, C++로 개발되었으며 역사 시뮬레이션 게임 개발에 특화되었다. 패러독스 개발 스튜디오의 대표작인 Crusader Kings 시리즈, Europa Universalis 시리즈, Victoria 시리즈, Hearts of Iron 시리즈, Stellaris 시리즈에 모두 이용되었다. 엔진 명칭은 카를 폰 클라우제비츠에서 따왔다.2. 역사
2.1. 유로파 엔진
클라우제비츠 엔진의 전신이 되는 엔진으로, 패러독스 게임 스튜디오의 구작[1]에 이용되었다. 유로파라는 이름답게 역사 시뮬레이션 전용으로 만들어진 2D 엔진이다. 라이선싱 자체를 하지 않는 클라우제비츠 엔진과 다르게 For the Glory, Arsenal of Democracy, Iron Cross 등 원하는 개발사 및 모더들에게 라이선싱 하기도 했다. 다만 사후 지원의 문제인지 더 이상 라이선싱을 하지 않는다.2.2. 클라우제비츠 엔진 1
2004년 즈음을 기점으로 개발이 시작되었다. 2007년 Europa Universalis III에 처음 적용된 엔진으로, Hearts of Iron III 및 Victoria II의 기본 버전에 사용되었다. 이 엔진이 적용된 게임들의 일부는 후에 클라우제비츠 엔진 1.5로 업그레이드 되었다. 그리고 낀세대에 속하는 Sengoku의 경우엔 기본 버전이 클라우제비츠 엔진 1.8이었으며 후에 클라우제비츠 엔진 2.5까지 업그레이드 되었다.2.3. 클라우제비츠 엔진 2
크루세이더 킹즈 2에만 적용된 엔진으로, 2012년에 출시된 Europa Universalis IV부터는 클라우제비츠 엔진 2.5가 사용되었다. 또한 Sengoku와 CK2의 경우에는 클라우제비츠 엔진 2.5까지 업그레이드되었다. 해당 버전의 가장 큰 특징은 유로파 엔진의 2D 흔적이 남아있던 클라우제비츠 엔진 1과 다르게 많은 부분이 3D로 이루어졌다는 점이다. 하지만 멀티스레딩의 중요성이 대두되고 있던 시대임에도, 게임 개발진들이 주먹구구식 개발을 하다보니 0번 스레드를 학대하는 수준의 극악한 최적화를 보여준다.[2]2.4. 클라우제비츠 엔진 3
2015년을 기준으로 EU4를 비롯한 게임들에 적용된 버전이다. 원래는 32비트였으나 MacOS의 32비트 중단에 따라 64비트까지 지원하기 시작했으며, 체감은 미미하지만 일부 게임들에 멀티스레딩이 부분적으로나마 적용되었다.2.5. 클라우제비츠 엔진 4
Hearts of Iron IV(2016)에서 사용되었다.2.6. 조미니 엔진
스위스와 프랑스의 장군이자 당대에 클라우제비츠의 '전쟁론'과 쌍벽으로 인정받던 '전쟁술'의 저자인 앙투안 앙리 조미니의 이름을 따서 지은 클라우제비츠 엔진의 개량 엔진으로, 가장 큰 특징은 새로운 64비트 기본 지원 및 다이렉트X 11 지원 및 모딩 툴셋이 생겼다는 점이다. 임페라토르: 롬과 크루세이더 킹즈 3, 빅토리아 3의 게임 엔진이다. 멀티스레딩이 본격적으로 지원되기에 이전에 비해 최적화가 상당히 좋아졌다.3. 상세
클라우제비츠 엔진은 거대한 자율적 에이전트 모델로, 수만개의 에이전트들이 인스트럭션에 맞추어 가동되게 만들어졌다. 이 엔진으로 제작된 게임은 모두 넓은 지역에서의 세미 리얼타임 대전략 시뮬레이션이며, 기본적으로 실시간이지만 일시정지를 자주 사용해야 한다는 공통점이 있다.클라우제비츠 엔진은 2007년 EU3에서 처음 도입되어 윈도우와 OS X에 포팅되었다. 그 후 2011년 Sengoku에서 클라우제비츠 엔진 2.5가 사용되었다. EU4부터 클라우제비츠 엔진 3이 사용되었으며, 2014년부터 리눅스 포팅을 공식적으로 지원하기 시작했다. 그리고 2016년에 나온 HOI4에서 클라우제비츠 엔진 4가 사용되었다.
클라우제비츠 엔진 사용 이전과 이후로 역설사 작품의 방향성이 갈리는데, 기존의 유로파 엔진을 사용한 이전 작품들은 기존의 역사를 재현하려는 느낌이 강했다면 클라우제비츠 엔진 기반의 EU3, HOI3 등은 플레이어가 만들어가는 역사에 중점을 둔다. 예를 들면 VIC1에서 한국으로 플레이해서 근대화하고 열강이 되었는데 역사이벤트(강화도 조약)에 의해 이미 밟아 놓은 속국 일본이 최강대국 한국에 돈내놓으라고 객기를 부린다거나(...) EU2에서 명나라는 역사 이벤트로 인해 좋든 싫든 후반에 미칠듯한 반란이 일어나며 만주에게 대륙의 패권을 물려주게 되지만, EU3는 그 정도가 줄어들었고 대신 일본이 강해져서 일본이 동아시아를 호령하는 괴이한 상황이 일어난다. HOI3도 할 때마다 도저히 미래를 예측할 수가 없다. 유로파 엔진보다 역사의 흐름이 더 다이나믹하고 예측할 수 없어서 좋아하는 사람도 있지만, 역사 배경 게임이 실제 역사를 크게 벗어나는 것에 불만인 사람도 있다.
덤으로 패러독스 인터랙티브 측에선 클라우제비츠 엔진을 라이선싱 할 생각이 없다는걸 분명히 했으며, 개발자들보고 간단하게 유니티 3D나 잡으라고 입장을 표했다.
한글패치 제작자들에게는 이런저런 고생을 안겨주기도 했다. 글자 인코딩을 1바이트밖에 지원하지 않아서 정상적인 방법으로는 한글 출력이 불가능했기 때문이다. 따라서 중국이나 일본에서 나온 2바이트 글자 출력이 가능한 패치를 이용해서 한글을 출력하든가, 아스키 코드 확장 영역에 한글 초중종성을 때려넣어서 직결식 글꼴을 이용하여 조합형의 방법으로 한글을 출력하는 방식이 있었다. VIC2, EU4가 전자의 방법[3]을, CK2가 후자의 방법을 쓴다[4]. 다행히 스텔라리스와 HOI4부터는 유니코드를 지원하기 때문에 한글도 글꼴만 추가하면 정상적인 방법으로 입출력이 된다.
4. 엔진 성능
클라우제비츠 엔진으로 만든 역설사 게임들은 각종 수치 연산을 게임 구현에 사용하는데, 이중에는 MTTH 같은 다른 게임에서는 보기 드문 특이한 요소들도 많고, 이것들은 상당한 연산 부담을 가지는 요소들이다. 또한, 각종 이벤트가 실시간으로 트리거 조건을 스캔해서 동작하기 때문에 실시간으로 수치란 수치는 싸그리 다 읽어들인다.[5] 이런식으로 게임을 굴리는 엔진은 사실상 클라우제비츠 엔진 뿐이며, 역설사 게임이 대체재가 없는 근본적인 이유이다.또한, 각종 수치 연산으로 게임을 굴리기 때문에 변동치(modifiers)와 효과(effects), 이벤트, 디파인 같은 매우 단순한 요소로 이루어진 소프트 코드를 스크립트로 드러내놓을 수 있고, 이 때문에 모딩 가능한 범주가 매우 넓다. 그리고 이 모든 연산을 비교적 매우 효과적으로 해낸다. 즉, 엔진 자체 성능은 매우 좋다. 또한, 엄연히 멀티 쓰레딩을 완전히 지원한다.
문제는 음수로 내려갈 일이 없는 값을 사인인트로 두는 등 개발자들이 코드를 이상하게 짠다. 그리고 엄연히 멀티 쓰레딩을 지원함에도 멀티 쓰레딩을 안 하게 코드를 짜서 엄청난 랙이 유발된다. 덕분에 코어 하나만 사용량이 100%를 찍고 나머지는 조용하기 이를 데 없다.
또한 윈도우외 OS에서도 동작할때는 OpenGL을 사용하는것이기에 윈도우외 OS에서 실행할경우 DXVK이나 ANGLE 드라이버같이 Vulkan이나 macOS한정 Metal로 변환시켜주는 프로그램이 없으면 GPU 최적화도 매우 좋지 않다. 이는 제미니 엔진에서도 동일하다. 참고로 OpenGL 네이티브 연산을 지원하지않는 RDNA기반 GPU에서 OpenGL로 실행시키면 앵글 드라이버 관련 문제로 이렇게 된다. 다행히 크킹3의 경우 후견인과 피후견인 DLC패치부터는 Vulkan을 도입했다.
역설사 게임이 실행중에 에러로 튕기는 것을 '역설신'이라는 은어로 부르는데, 멀티쓰레딩을 제대로 지원하게된 조미니 엔진에서도 역설신이 꽤나 자주 강림한다. 패독겜 멀티 주최자들과 유튜버들을 괴롭히는 1순위 현상.
5. 여담
- 클라우제비츠 엔진의 로고에 그려진 톱니바퀴는 유로파 엔진의 로고에도 동일하게 그려져있다.
[1]
EU1, EU2, CK1, VIC1, HOI1, HOI2
[2]
엔진의 멀티스레딩은 그 이전부터 지원되고 있었다.
# 즉, 이걸 제대로 못 써먹는 게으른 개발진들이 문제라는 것(...)
[3]
EU4도 패치 직후라 2바이트 글꼴을 출력하지 못하는 경우에는 한시적으로 후자의 방법으로 한글 패치를 낸다.
[4]
원래 전자의 방법을 썼는데, 업데이트로 인해 글자 출력 부분이 꼬이면서 2바이트 출력 패치가 통하지 않아 후자의 방법을 쓰게 되었다. 이후 일본에서 2바이트 글꼴 출력 패치가 나와서 2바이트 한글 패치도 나왔지만 CK3이 출시되기 직전이라 묻혔다.
[5]
쉽게 말해 지금이 이벤트가 발생해야하는 때인가를 게임 실행 내내 감시한다는 것이다. 컴퓨터 자원 낭비가 극심할 수밖에 없다.