크라이 엔진
크라이 엔진 (Cry Engine)
개발사 : 크라이텍 (CryTek)
엔진 역사 : 1999년에 독일의 3형제가 설립한 크라이텍은 아주 작은 회사였으며 엔비디아의 지포스 2 데모를 만들게 됐는데 그 데모의 이름은 X-Isle이었으며 한 섬에서 초목과 공룡이 있는 맵을 표현한 데모였다. 그 엔진의 이름은 회사의 이름을 따서 크라이 엔진이라고 붙였으며 2001년에 약간 더 개량된 버전의 X-Isle로 지포스 3용 데모로 픽셀 셰이더를 활용해서 범프 매핑과 퍼-픽셀 라이팅을 구현한 공룡의 모습을 선보였다. 그 후 이 개발진들은 id의 존 카멕, 에픽의 팀 스위니등이 참여한 엔비디아 기술 자문 및 MS 기술 자문에 참여하면서 욕심이 생겨서 자신들의 크라이 엔진을 판매하고 싶어했으며 노말 매핑을 폴리범프 (PolyBump)라는 이름으로 특허를 내기도 했다. 그런 와중에 거대 게임 개발 및 유통사인 유비소프트와 계약을 맺고 엄청난 자금을 지원받아 회사를 확장해서 파 크라이라는 게임을 만들게 됐고 게임은 크게 성공하였다. 이후에 크라이텍은 유비소프트와 결별하고 EA를 유통사로 정하고 크라이 엔진 2로 크라이시스를 개발중에 있다. 파 크라이는 유비소프트의 자금을 지원받아서 만들어진 게임이기 때문에 판권이 유비소프트에게 있다. 크라이 엔진은 업데이트가 몇년전에 종료되었으며 더 이상의 지원이 없고 현재는 한창 개발중인 차기 엔진인 크라이 엔진 2가 릴리즈 되었다.
엔진 타입 : 통합형 FPS/TPS 엔진
- C++ DLL 모듈 기반
- Plug-in 컴포넌트화
- 게임 스크립트로 Lua 사용
가격 : ?
- PC 버전 (32/64-bit Windows)
- Far Cry 1.33 / 2005년 8월 16일 (이날 이후로 업데이트 및 크라이
엔진 1에 관한 모든 지원 중단)
- 정확하게 크라이 엔진이라는 것은 별도로 존재하지 않으며 Far Cry의 소스 코드 자체를 크라이 엔진이라 칭하고 있는 것이다. 즉, Far Cry의 최신 버전의 패치가 곧 크라이 엔진의 업데이트가 되는 것이다.
- Far Cry 1.33 버전이 마지막으로 더 이상의 업데이트는 없다.
크라이 엔진의 업데이트는 1.33 버전으로 종료되었다.
- Far Cry 1.4 및 그 이후 버전이 있으나 Far Cry의 저작권 및 판권은 Ubisoft로 완전히 넘어갔으며 1.4 및 그 이후 버전의 업데이트는 Ubisoft에서 개발한 것으로서 크라이텍에게 저작권이 없으며 당연히 엔진을 구입한 업체에게도 제공되지 않는 것이다.
- Far Cry 1.33 / 2005년 8월 16일 (이날 이후로 업데이트 및 크라이
엔진 1에 관한 모든 지원 중단)
- Xbox 버전
- Cry Engine Xbox / 2002년
- 아주 오래전에 크라이 엔진의 Xbox 버전을 단순 포팅하여 만들어
두었으며 PC 버전과 많은 차이가 있다. 매우 구버전의 포팅에
머물렀다. 크라이 엔진의 Xbox 버전을 사용한 게임 타이틀은 단
하나의 타이틀도 없다.
- Far Cry Instinct가 Xbox로 개발되었으나 그것은 Ubisoft가 자체적으로 Far Cry를 Xbox로 직접 이식한 것이다. 이 구버전의 크라이 엔진 Xbox 버전과는 관련이 없다. 따라서 Ubisoft의 자산인 Far Cry Instinct는 크라이텍에게 저작권이 없으며 엔진 구입 업체에게는 제공되지 않는다.
- 아주 오래전에 크라이 엔진의 Xbox 버전을 단순 포팅하여 만들어
두었으며 PC 버전과 많은 차이가 있다. 매우 구버전의 포팅에
머물렀다. 크라이 엔진의 Xbox 버전을 사용한 게임 타이틀은 단
하나의 타이틀도 없다.
- Cry Engine Xbox / 2002년
- PlayStation 2 버전
- Cry Engine PlayStation 2 / 2002년
- Xbox 버전과 마찬가지로 오래전에 구버전을 PS2로 단순히 포팅한 것에 불과하다. 크라이 엔진 2의 PS2 버전을 사용한 게임 타이틀은 단 하나의 타이틀도 없다.
- Cry Engine PlayStation 2 / 2002년
제공되는 코드 : 파 크라이의 전체 소스 코드 및 Sandbox 툴과 제공되는 유틸리티의 소스
제공되는 툴 : Sandbox
- Sandbox는 통합형 툴셋으로 언리얼 엔진의 UnrealEd 보다는 불편함이 있지만 쥬피터 엔진의 Dedit나 밸브 소스 엔진의 Valve Hammer Editor에 비해서는 매우 방대한 기능을 가지고 있다.
제공되는 컨텐츠 : 파 크라이 컨텐츠 일부
엔진 개발사에서 만든 게임
- 파 크라이 (오리지널 PC 버전만 크라이텍에서 개발)
- 파 크라이: 인스팅트 (Xbox 버전, 스토리상으론 PC 버전에서 이어진다. 파 크라이의 소유권이 Ubisoft으로 완전히 넘어갔으며 콘솔 버전들은 Ubisoft에서 자체적으로 개발한 것이므로 크라이텍에게는 저작권이 없다, 따라서 파 크라이 콘솔 버전들의 소스는 라이센시에게 전혀 제공되지 않는다)
- 파 크라이: 에볼루션 (Xbox 버전, 스토리상으로 인스팅트에서 이어지며 인스팅트의 확장팩격이다. 파 크라이의 소유권이 Ubisoft으로 완전히 넘어갔으며 콘솔 버전들은 Ubisoft에서 자체적으로 개발한 것이므로 크라이텍에게는 저작권이 없다, 따라서 파 크라이 콘솔 버전들의 소스는 라이센시에게 전혀 제공되지 않는다)
- 파 크라이: 프레데터 (Xbox 360 버전, 인스팅트와 에볼루션을 합쳐 Xbox 360으로 컨버전한 작품이다. 렌더링 엔진에 상당한 향상점이 있으나 역시 이것은 Ubisoft의 소유이므로 크라이 엔진을 라이센스한 개발사들에겐 전혀 제공되지 못한다)
- 파 크라이: 벤젠스 (Wii 버전, 스토리상으로 에볼루션에서 이어지며 Wii 전용으로만 나온 게임이다. 이 소스도 역시 크라이 엔진을 라이센스 한 개발사들에겐 전혀 제공되지 못한다)
차세대 게임 파 크라이 2는 크라이텍과 아무런 관련이 없이 Ubisoft에서 자체 개발한 작품이다.
파 크라이 2는 크라이 엔진도 크라이 엔진 2도 아니며 Ubisoft가 파 크라이 2만을 위해서 기술력을 집결한 자체 개발한 엔진인 Dunia 엔진으로 만들어진 게임이다.
파 크라이 2의 기술적 우수성을 보고 그것을 크라이 엔진으로 착각하지 말아야한다.
국내에서 사용하는 게임
- NC 소프트의 아이온
- 위메이드 엔터테인먼트의 카일라스
- 위메이드 엔터테인먼트의 네드 온라인
- 한국 시장에서 크라이 엔진을 라이센스 한 회사는 2002년부터 지금까지 약 30여곳이 넘는다. 하지만 현재까지 공개된 게임은 위의 3개뿐이다.
국내에서 개발중 취소된 경우
- 크라이 엔진을 구입했다가 게임의 개발에 실패하고 엔진을 포기한 경우도 몇건이 있는데 이유는 크라이 엔진은 기본적으로 FPS 엔진이며 MMORPG에 적용하기가 힘들다는 이유이다.
- 쥬피터 엔진이 네트웍이 렌더링과 통합되서 MMOG 네트웍을 새로이
구축하고 연동하는데 엔진을 거의 새로 만들다시피 뜯어 고쳐야 하는
점이 있는데 크라이 엔진도 비슷한 점이 있다.그럼에도 쥬피터
엔진보다는 툴셋이나 렌더링면에서는 더 뛰어난 편이며 가격도 쥬피터
엔진보다는 비싸기 때문에 포기하지 않고 오랫동안 많은 커스터마이징을
거쳐서 MMORPG에 적용하는 소수의 개발사가 국내에 있긴 하다.
- 언리얼 엔진 2의 경우에는 FPS 엔진이긴해도 각각의 코드마다 모듈화가 철저하게 되어 있고 커스터마이징을 고려해서 비교적 커스터마이징이 용이한 편이며 네트웍이나 물리, AI의 분리와 새로운 모듈 연동 또는 렌더링 시스템의 개선이나 커스터마이징에 큰 문제가 없는데 비해서 크라이 엔진은 렌더링, 물리, UI 시스템, LUA 스크립트 시스템, AI 시스템, 사운드를 비롯한 거의 모든 코드들이 단일화된 통짜형 코드 베이스로 짜여져 있어서 각각의 모듈들을 따로 커스터마이징하거나 전체적으로 커스터마이징하기가 매우 까다롭다. 예를 들어 렌더링부분에서 지형 시스템의 커스텀을 위해 코드를 수정하거나 물리 시스템을 따로 재구축하려면 코드를 전체적으로 크게 손봐야 하며 그로 인해 다른 부분에 연동되서 작동되지 않는 코드들을 손봐야 할 일이 생기는 수가 많다.
- 약 2002년~2003년경에 국내에서 크라이 엔진을 많이 구입하였으며 당시엔 가격이 낮아서 국내의 약 20여곳에서 도입했다가 거의 다 포기한 사례가 있다. 현재 남아있는 것은 알려진 NC 소프트의 아이온과 위메이드의 카일라스와 네드 온라인 외에 소수의 미발표 타이틀 뿐이다. 그 당시에는 언리얼 엔진 2에 비해서 가격이 많이 낮아서 많은 업체가 구입했었지만 이후 2004년에 파 크라이가 발매되어 큰 성공을 거두자 크라이 엔진의 가격이 크게 상승했으며 그 이후엔 섣불리 라이센스되지 않았다. 크라이 엔진의 가격이 오른 후에는 대부분의 업체들이 비교적 가격이 저렴한 엔진을 도입하기 위해 FPS를 위해서라면 쥬피터 엔진을 도입하거나 MMORPG를 위해 게임브리오를 채택하게 된다. 그리고 2004년엔 언리얼 엔진 3가 나온 후이므로 고 퀄리티 비주얼을 지향하기 위해선 언리얼 엔진 3를 도입하게 된다.
- 파 크라이 엔진 (크라이 엔진 1)이라는 이 엔진의 가장 큰 문제점은 엔진의 각각을 이루는 코드들이 분리하거나 수정하는 작업이 힘든 커플링이 심하다는 점이다. 기본적으로 게임 엔진으로서의 설계를 가진 코드로 설계된게 아닌 테크 데모로부터 시작된 코드에 코드를 얹고 또 얹어가면서 툴을 덧붙이며 게임 코드로 변형되어간 코드의 형태며 거기에 더해 LUA가 엔진에 심하게 얽혀져있고 엔진과 게임의 분리가 거의 이루어지지 않아 개발중 게임에 엔진 인터페이스가 노출되거나 게임에 들어가야 할 코드가 엔진에 얽혀 들어가는 일이 잦으며 엔진의 각 부분 역시 렌더링, 물리, AI, 네트웍, 심지어 사운드까지 모든 코드가 얽혀있어 각 부분을 적출하고 새로운 코드를 쓰거나 기존의 것을 수정하는데에는 많은 애로사항이 존재한다. 라이센스 되기 시작한 초기부터 최종 버전업이 있기까지 많은 변화가 있었지만 계속 이런식으로만 코드의 덩치가 불었으며 아예 무에서부터 완전히 새로운 엔진을 작성하지 않는 이상엔 이 엔진의 새로운 버전 업데이트도 계속 이런식으로 코드의 덩치만 불어갈 수 밖에 없는 상황으로 치닫았다. 그런 덕분에 이 엔진의 후속 버전인 크라이시스 엔진 (크라이 엔진 2)도 이런 상황을 벗어나지 못하고 더 복잡해지고 그 상태에서 더 복잡해지고 코드의 양이 더 불어나서 오히려 이전 버전보다 더 다루기 힘든 문제에 직면했다. 이 엔진 시리즈를 원하는대로 수정하고 변형해서 다루기 위해선 많은 시간과 노력이 필요할 것이다.
해외에서 사용하는 게임 : 유비소프트의 파 크라이 콘솔버전들
크라이 엔진의 특징
플랫폼
- 32-bit Windows (Windows 98/ME/2000/XP)
- 64-bit Windows (Windows 2000/XP)
- Xbox
- PlayStation 2
렌더링 엔진
- 렌더링 API 지원
- Direct3D 8 (Windows 98/ME/2000/XP, Xbox)
- Direct3D 9 (Windows 98/ME/2000/XP)
- OpenGL (Windows 98/ME/2000/XP, PlayStation 2)
- 하드웨어 셰이더 지원
- 인도어 (Constructive Solid Geometry, Occlusion Culling, Collision
Detection, Level of Detail)
- Long-ranged Distance Indoor Space and Static/Dynamic Meshes (가시거리의 범위가 매우 크며 64비트 프로세싱을 할 경우에는 가시거리의 범위와 늘어나며 더욱 세밀한 구조물들을 빠른 속도로 구현이 가능하다)
- 실시간 지역/물체 동적 변형
- 미리 정해 놓은 한도내의 변화
- 미리 구성된 변화
- 아웃도어 (Height-field Terrain, Occlusion Culling, Collision
Detection)
- Level of Detail
- Long-ranged Distance Terrain (64비트 프로세싱을 할 경우에는 가시거리의 범위가 늘어나며 지형의 세밀한 굴곡 표현 등의 정밀도도 향상된다)
- Seamless Mixing of Indoor Meshes and Outdoor Terrain Meshes (인도어와 아웃도어의 이음새가 없이 부드럽게 연결되며 넓은 범위의 인도어와 아웃도어를 동시에 렌더링이 가능하다)
- Procedurally-placed Meshes
- Grass Layers and Vegetation Layers
- 라이팅/셰이딩/셰도우
- Per-vertex (Gouraud) Lighting/Shading, Per-pixel (Phong) Lighting/Shading
- 텍스처링
- Alpha-blending
- Light Mapping and Shadow Mapping
- PolyBump (Normal Map/Bump Map/Specular Map/Diffuse Map)
- 애니메이션
- Vertex Animation
- With Level of Detail
- Keyframed
- Inverse Kinematics
- Motion Captured
- Animation Blending
- Procedural Motion Warping
- Skeletal Animation
- With Level of Detail
- Animated
- Motion Captured
- Smooth-skinned Geometry
- Software Skinning
- Hardware Skinning
- Animation Blending
- Vertex Animation
- 수면 효과
- UI 및 GUI 시스템
- 커스텀화하기가 상당히 불편하다.
- 로컬라이제이션
- 3개국어 지원 (영어, 불어, 독어)
- 이미지 추출 기능
- 고컬러, 고품질, 고해상도의 스크린샷 추출 가능
- 무비 레코딩 기능
- 엔진을 통한 실시간 Demo 녹화 기능
물리 엔진
- 자체적인 물리 엔진을 탑재하고 있다. 랙돌 효과를 지원하고 탈것의 물리등 몇가지 효과를 지원하지만 매우 빈약한 수준이다.
인공지능 엔진
- 싱글 플레이 기반의 다양한 A.I. 구현 시스템
- 싱글 플레이에서 동료의 A.I.에 대한 구현 시스템
- Path Finding (길찾기)
- 상황 판단 능력 A.I.
사운드 엔진
- FMOD 사운드 시스템 (공개 소프트웨어)
- 돌비 서라운드 사운드
- 모노 및 스테리오와 다중 채널 (4.0, 5.1, 6.1, 7.1) 지원
- EAX 지원 (1.0, 2.0, 3.0, 4.0, 5.0)
- 자체 음악 포맷 지원
- 3D Positioning (3D 위치 기반 사운드 포지션), Spatialization (좁은 공간에서 소리의 울림, 떨림, 왜곡 등의 효과), Doppler Shift (도플러 이동 사운드 효과)
- Data-driven Sound (데이터 기반 사운드) 지원
네트워크 엔진
- FPS에 최적화된 네트워크 엔진을 제공하지만 빈약한 수준이다.
- MMOG 네트워크 엔진은 제공되지 않는다.
토론 및 의견
- 크라이 엔진의 초기 데모인 X-Isle이라는 데모 프로그램을 인터넷에서
다운로드 받아 실행시켜 볼 수 있다. 이 데모는 매우 초기버전의 것으로
완성된 크라이 엔진과는 많은 차이가 있다. 이 데모는 Nvidia 지포스 3
테크 데모로 시연된 것이다
- 파크라이 출시후에 ATi 테크 데모로 나온 The Project라는 데모는 크라이 엔진 1이 아닌 크라이 엔진 2의 초기 데모이다
- 파 크라이 엔진 (크라이 엔진 1)이라는 이 엔진의 가장 큰 문제점은 엔진의 각각을 이루는 코드들이 분리하거나 수정하는 작업이 힘든 커플링이 심하다는 점이다. 기본적으로 게임 엔진으로서의 설계를 가진 코드로 설계된게 아닌 테크 데모로부터 시작된 코드에 코드를 얹고 또 얹어가면서 툴을 덧붙이며 게임 코드로 변형되어간 코드의 형태며 거기에 더해 LUA가 엔진에 심하게 얽혀져있고 엔진과 게임의 분리가 거의 이루어지지 않아 개발중 게임에 엔진 인터페이스가 노출되거나 게임에 들어가야 할 코드가 엔진에 얽혀 들어가는 일이 잦으며 엔진의 각 부분 역시 렌더링, 물리, AI, 네트웍, 심지어 사운드까지 모든 코드가 얽혀있어 각 부분을 적출하고 새로운 코드를 쓰거나 기존의 것을 수정하는데에는 많은 애로사항이 존재한다. 라이센스 되기 시작한 초기부터 최종 버전업이 있기까지 많은 변화가 있었지만 계속 이런식으로만 코드의 덩치가 불었으며 아예 무에서부터 완전히 새로운 엔진을 작성하지 않는 이상엔 이 엔진의 새로운 버전 업데이트도 계속 이런식으로 코드의 덩치만 불어갈 수 밖에 없는 상황으로 치닫았다. 그런 덕분에 이 엔진의 후속 버전인 크라이시스 엔진 (크라이 엔진 2)도 이런 상황을 벗어나지 못하고 더 복잡해지고 그 상태에서 더 복잡해지고 코드의 양이 더 불어나서 오히려 이전 버전보다 더 다루기 힘든 문제에 직면했다. 이 엔진 시리즈를 원하는대로 수정하고 변형해서 다루기 위해선 많은 시간과 노력이 필요할 것이다. --- 프로그래머