우리는 우리만의 게임 엔진을 만들었습니다. PC, PS 모든 버전, Nintendo, Wii 및 Xbox에서 지원됩니다.

우리는 모두 게임 제작 엔진에 대해 들어봤지만 그것이 무엇인지 이해하는 사람은 거의 없습니다.

비디오 게임을 개발하는 스튜디오 자체에서도 용어에 대한 매우 모호한 정의를 제공하며, 오히려 게임 자체를 게임이 제작된 엔진과 분리할 수 없습니다.

질문을 이해하고 역할의 상황에 접근하여 생각해 봅시다. 가장 인기 있는 게임 엔진: 그 특징, 적용 범위, 약함 및 강점.

개념

게임 엔진아니면 게임 엔진이를 기반으로 특정 장르의 컴퓨터 게임을 만들기 위해 개발된 원본 소프트웨어입니다.

이 용어는 90년대 중반에 다음과 같은 저격수와 관련하여 형성되었습니다. 퀘이크, 울펜슈타인, 둠.

그런 개념이 생기기 전부터 게임 세계나는 그들이 놀랍게도 잘 결합되어 있음을 발견했습니다.

  • 3차원 그래픽;
  • 물체와의 충돌 계산;
  • 방대한 게임 세계;
  • 사운드 구성요소;
  • 인벤토리(무기 시스템) 및 기타 규칙.

이를 본 개발자들은 동일한 Doom을 기반으로 자체 게임을 출시하기 시작했습니다., 최소한의 변경: 지도 및 기타 그래픽 모델 다시 그리기, 물리 엔진 편집.

대다수의 엔진은 특정 게임 장르와 특정 플랫폼용으로 제작되는 경우가 많습니다.

여러 플랫폼이나 장르에 걸쳐 게임 엔진을 사용하면 통합성과 최적화성이 떨어지며 잠재력을 발휘하지 못합니다.

품종

게임 개발 엔진은 장르에 특화되어 있습니다.

예를 들어 기본 소프트웨어와 동작은 주요 구성 요소에서도 상당히 다릅니다. 그럼에도 불구하고 이들 모두에는 공통적이거나 유사한 부분(코드 줄)이 많이 있습니다.

모든 게임에는 개체 간의 상호 작용이 있습니다., 게임 패드, 마우스 및 키보드를 사용하여 사람 또는 사물 제어, 그림 및 사운드 출력, 텍스트 오버레이, 3차원 개체 렌더링(3D 게임).

이를 고려하여 일부 엔진은 다양한 장르의 엔터테인먼트를 개발하는 데 성공적으로 사용됩니다. 원래는 1인칭 슈팅 게임을 만들기 위한 플랫폼이었지만 전쟁 무기(3인칭 시점) 그리고 스피드 스타(경주)를 기반으로 한 본격적인 비디오 게임으로 밝혀졌습니다.

사수

덕분에 엔진이라는 개념이 등장했고, 시작해보자.

슈팅 게임 제작을 위한 플랫폼은 어느 정도 기술적으로 가장 진보되고 정교하며 복잡합니다. 높은 품질 외에도 장난감에 대한 다음 요구 사항이 제시됩니다.

  • 사건의 역학을 고려한 가상의 3차원 세계를 모델링하는 기능;
  • 조준 제어의 존재;
  • 반응성이 뛰어난 게임 메커니즘;
  • 캐릭터의 손과 무기의 그림과 디테일이 상당히 명확합니다.
  • 입자 상호작용을 기반으로 한 탄과 폭발의 좋은 애니메이션;
  • 물체의 파괴 가능성을 포함하여 사격 및 폭발에 반응하는 환경의 현실적인 동작. 이러한 엔진은 운동학 분야에서 높은 요구 사항을 따르게 됩니다.
  • 다양한 특성을 지닌 다양한 무기 선택;
  • 잘 발달된 캐릭터 움직임과 상호작용 모델;
  • 품질 인공지능면전에서 싱글 플레이어;
  • 다양한 게임 모드와 기업 모드의 대규모 참여.

플랫폼 게임

보통 2차원 엔터테인먼트인데, 이에 대한 요구 사항은 더 관대합니다.

  • 많은 관심이 집중되고 있습니다 모습, 주인공의 사용자 정의, 행동 및 애니메이션;
  • 다양한 소위 이동 플랫폼(낙하, 다른 궤적을 따라 이동, 사라지기, 회전);
  • 계단, 로프, 사다리, 파이프 및 상호 작용 시스템 형태의 추가 플랫폼;
  • 퍼즐 요소의 존재;
  • 다층 기하학;
  • 객체 상호작용의 간단한 물리학;
  • 다른 사람과의 상호 작용 게임 캐릭터(대화, 싸움).

화이팅

그들은 특징이 있습니다 큰 다양성독특한 능력과 기술을 가진 캐릭터, 각각의 개별 애니메이션, 표정과 몸짓, 라운드 전반에 걸친 작업 완료, 복잡한 타격 시스템, 조합, 방어 동작, 콤보 및 특수 기술.

네트워크 상호작용, 캐릭터 커스터마이징, 전투 결과의 출현(스크래치, 찰과상) 및 마무리 기술도 격투 게임에서 흔히 볼 수 있습니다.

경주

경주용으로 제작됨 게임의 특성을 고려한 둘 이상의 게임 엔진.

멀티스레딩 구현으로 인해 PhysX는 검사 없이 전용 스레드가 있다는 점에서 구별됩니다. 이를 통해 병렬 스레드에서 여러 작업을 동시에 실행할 수 있습니다.

테셀레이션을 사용하면 색상 교정에 긍정적인 영향을 미치고 실시간으로 이미지에 노이즈와 그레인을 오버레이할 수 있습니다.

체적 안개, 모션 블러, 모든 표면의 시차, 상당한 정확도 및 높은 디테일이 엔진의 모든 장점은 아닙니다.

오디오 구성 요소는 3차원 포지셔닝을 지원하여 3차원 공간감을 제공하고 사운드 소스를 계산하는 기능을 제공합니다.

기타 기능:

  • 넓은 색 공간으로 장면 시각화;
  • 프레임에 수십 개의 광원을 사용합니다.
  • 완전 동적 조명;
  • 성능에 영향을 주지 않고 모션 블러;
  • 시각화 프로세스의 탁월한 병렬화;
  • 소리 전파 계산, 장애물로부터의 흡수 및 반사;
  • 많은 전투 조건;
  • 편리하고 이해하기 쉬운 스크립팅 시스템;
  • AI 토폴로지 분석 시스템;
  • 캐릭터에게는 시각, 청각 및 기타 감각이 부여되어 심각한 상대가 됩니다.
  • 집단 행동.
  • 게임을 콘솔로 이식하는 과정의 복잡성;
  • 독창적인 개발은 아니지만 개선된 X-Ray입니다(사실은 입증되지 않았지만 이에 대한 힌트가 있습니다).
  • DirextX12 지원은 구현되지 않습니다.
  • 향상된 그래픽;
  • 모델의 파괴성 및 PhysX의 기타 장점;
  • 특수효과를 위한 특수효과는 없습니다(필요한 것만 추가합니다).

계략: Metro Exodus 및 Arktika.1을 포함한 Metro 시리즈가 개발 중입니다.

개인적인 야망의 실현을 보여주는 놀라운 예이자 CIS에서 만들어진 세계적으로 유명한 몇 안 되는 엔진 중 하나입니다.

모루

Ubisoft의 자회사가 제작하여 회사 내에서만 출시용으로 사용됩니다.

첫 번째 게임은 Assassin's Creed의 첫 번째 부분이었고, 이후 스노우보드 시뮬레이터와 Prince of Persia가 등장했습니다.

그들 중 누구라도 많은 놀라움을 불러일으켰고 가상 엔터테인먼트 세계에 많은 새로운 것을 가져왔습니다.

PC, PS 모든 버전, Nintendo, Wii 및 Xbox에서 지원됩니다.

코드는 C++로 작성되었고, 모델은 ZBrush로 그려졌으며, 주변 세계는 3ds Max로 그려졌습니다.올바른 골격 애니메이션을 위해서는 . 가상 세계의 물리학은 전설적인 Havok에 의해 모델링되었습니다. 최근 릴리스에서는 시간 변경, 동적 조명 및 원격 렌더링에 많은 관심을 기울였습니다. 또한 진보적인 식생 체계(Far Cry 2와 같은)를 새로운 AI와 통합했는데, 중요한 차이점은 개선된 NPC 내비게이션 시스템입니다. Direct3D 10/11의 구현 및 디버깅은 매우 비용이 많이 들지만 작업은 여전히 ​​완료되었습니다.

엔진의 이름없는 기능 중 다음 사항을 강조하겠습니다.

  • 최대 32개 스레드의 멀티 코어 시스템 작업 최적화;
  • 파노라마 모드로 여러 화면에서 게임을 시작합니다.
  • FPS를 떨어뜨리지 않고 모래폭풍을 시뮬레이션할 수 있는 복잡한 소음 안개;
  • 물에서 빛의 굴절, 반사 및 산란 효과;
  • 하나의 컷씬에 최대 6명의 서로 다른 캐릭터;
  • 대부분의 애니메이션은 실제 배우를 기반으로 합니다.
  • 한 장면에는 최대 3,000명의 참가자가 있을 수 있으므로 PC가 부하를 감당할 수 있는 한 대규모 전투를 조직할 수 있습니다.
  • NPC는 영웅에게 적극적으로 반응하며 동시에 공격할 수 있으며 하나씩 공격할 수는 없습니다.
  • 모델을 잘라내고, 도면 깊이에 따라 개체를 분류하는 기술입니다.
  • 자원 요구;
  • 라이센스가 없습니다.
  • 오랫동안 DirectX 10과 11을 지원하지 않았습니다.
  • 멀티스레딩의 좋은 구현;
  • PC 및 많은 콘솔에서 작동합니다.
  • 수백 명의 게임 캐릭터가 참여하여 추가 기능을 구현하는 능력.

와 함께Ubisoft는 엄청난 혼란을 일으키고 더 많은 사람들을 한 곳으로 몰아넣는다는 점에서 누구도 비교할 수 없습니다.

창조 엔진

Skyrim에서 그 기능을 시연한 미국 스튜디오 Bethesda의 상당히 새로운 엔진입니다. 이전 솔루션과 마찬가지로 개발자의 요구에 의해서만 만들어졌습니다. Gamebryo는 Oblivion 및 해당 애드온에 대한 도움말로 기본으로 사용되었습니다.

기술에 관한 첫 번째 흥미로운 점– 장거리 렌더링, 자유롭고 빠른 이동으로 거대한 위치를 지원합니다.

물과 눈을 다루는 작업에 많은 주의를 기울였으며, 강수량, 돌, 나무, 풀을 자동으로 생성하는 시스템은 지형에 따라 생성된 객체의 비율을 독립적으로 결정합니다.

Oblivion에 사용된 향상된 AI는 사람들의 삶과 주인공과의 관계를 더욱 현실적으로 시뮬레이션합니다.

플롯 개발 관리의 개념은 다음을 생성할 수 있습니다. 추가 작업플레이 스타일을 고려하여.

새 버전의 엔진에서는 트리 구축 시스템이 크게 재설계되어 다양한 작업이 가능해졌습니다. 야채 세계, 계산을 위해 언로드합니다.

Havok의 타사 도구를 사용하여 캐릭터를 애니메이션했습니다.

특징:

  • 게이머 및 모드 개발자를 위한 Creation Kit 레벨 편집기 가용성
  • Fallout에는 물리 기반 렌더링이 등장했습니다.
  • 모더를 위한 많은 도구;
  • 수정 사항을 콘솔로 쉽게 전송할 수 있습니다.
  • 라이센스가 없습니다.
  • 양손 무기를 만드는 것은 어렵습니다.
  • 캐릭터 행동 시스템이 상당히 약합니다.
  • 모든 플랫폼에서 작동하는 모드 편집기가 있습니다.
  • 긴 그리기 거리;
  • 나무와 그 애니메이션을 생성하는 독특한 방식입니다.

아직 모더를 위해 더 나은 것이 개발되지 않았기 때문에 Fallout보다 더 많은 것이 Oblivion을 위해 만들어졌습니다.

크라이엔진 4

최신 버전 1인칭 슈팅 게임을 위한 독일 회사 Crytek의 엔진입니다.

최대 좋은 예사용 - .

2016년부터 엔진은 "원하는 만큼 지불" 방식에 따라 배포되기 시작했지만 게임용으로만 사용되었습니다.

특징 및 기능:

  • 복도가 아닌 거대한 영토의 존재;
  • 위치는 이음새 없이 생성됩니다.
  • 캐릭터와 차량의 역운동학, 환경과의 상호 작용 지원;
  • 다양한 비고체 물체의 모방: 직물, 물;
  • 각 유형의 무기마다 고유한 특성을 지닌 거대한 무기고;
  • 스크립트 및 명령 인텔리전스;
  • 프로그래밍 지식 없이도 AI 매개변수를 변경할 수 있습니다.
  • 대화형 음악 반주 - 음악이 상황과 일치합니다.
  • 5.1 사운드 시스템을 완벽하게 지원합니다.
  • 환경, 소리의 반사 및 흡수를 고려한 자연음의 재현;
  • 열과 불의 현실적인 효과;
  • 유리의 투명성 - 건물 안에 무엇이 있는지 볼 수 있습니다.
  • 최대 2000m의 가시 거리를 가진 다단계 환경을 얻기 위한 높이 맵 작동;
  • Crysis가 완벽하게 보여주는 조명 및 그림자 작업에 대한 놀라운 가능성;
  • 대기를 추가하기 위한 부피가 큰 두꺼운 안개와 연기;
  • 비정상적인 물리적 효과(예: 나노슈트)의 존재.

이것은 야심찬 게임 개발자를 위한 자료 시리즈의 다섯 번째 기사입니다. 게임 엔진 - 직접 작성하시겠습니까, 아니면 기성품을 사용하시겠습니까?

초보 개발자의 가장 흔한 실수 중 하나는 무슨 수를 써서라도 자신만의 게임 엔진을 작성하고 그 위에 게임을 만들려는 욕구입니다. 이 두 가지를 동시에 수행하려고 시도했지만 결국 두 가지 모두 성공적으로 실패하는 경우도 드물지 않습니다.

자신만의 게임 엔진을 작성하면 안되는 이유

우선, 당신은 하나의 간단한 질문에 답해야 합니다. 정확히 무엇을 하고 싶은지, 게임또는 엔진? 엔진이라면 게임은 잊어버리고 게임에만 집중하세요. 게임이라면 기성 엔진이나 디자이너를 데리고 소프트웨어 부분을 개발하는데 방해받지 않고 게임을 만들어보세요.

본격적인 게임 엔진을 만들려면 특별한 지식, 게임 작동 방식에 대한 이해, 엄청난 자유 시간, 소스 코드 작성에 대한 열망이 필요합니다. 그리고 저를 믿으세요. 이것은 보이는 것처럼 결코 재미있는 활동이 아닙니다. 사용 가능한 무료 기성 솔루션이라도 수천 시간의 프로그래밍 시간이 필요하며 시간 외에도 상당한 재정이 투자되는 상업용 엔진은 말할 것도 없습니다. 주변의 모든 사람이 차를 운전할 때 바퀴를 발명하는 것은 감사할 일이 아니며 완전히 불필요한 작업입니다.

게다가 무료게임 개발 시스템, 많은 상용 게임 엔진, 게임 프로젝트에 즉시 사용할 수 있는 다양한 기능 제공 매우 매력적인 라이센스 체계: 완전 무료 ( 유니티 3D이전 인디 에디션에서는 로열티 지불과 혼합 방식( 언리얼 개발 키트) - 라이센스 비용 $99 및 처음 $5,000 획득 후 수익의 25% 지불 또는 저렴한 정식 상용 라이센스 비용(Unity Pro $1,500).

또한 게임 준비의 특정 단계까지 어느 누구도 엔진의 무료 버전 사용을 금지할 수 없으므로 나중에 자신의 노력에 대한 유형적이고 가장 중요한 시각적 결과를 통해 타사 검색을 시작할 수 있습니다. 프로젝트를 상업용 라이센스로 이전하기 위한 자금 조달.

모든 장르 및 초점의 게임 프로젝트 중 95%에서는 요구 사항을 충족하는 기성 솔루션을 찾는 것이 가능합니다. 게임 엔진이 국내 게임 개발 시장과 비용이 궁금해지던 시절 큰돈, 통과 - 그리고 그들과 함께 자신의 게임 엔진을 작성하는 데 찬성하는 주장이 끝났습니다.

더욱이, 모든 것을 직접 작성하려는 욕구와 그러한 해결책이 될 것이라는 환상과 결합됩니다. 최고의 제품기존 유사품보다 완전히 불필요한 작업(개인 경험)에 이미 매우 제한된 리소스가 투자되어 궁극적으로 프로젝트가 조기 종료되는 경우 초보 개발자에게 매우 잔인한 농담을 할 수 있습니다.

요약하자면: 자신에게 필요한 것이 정확히 무엇이고 왜 필요한지 명확하게 이해하고, 이 접근 방식의 적절한 이점을 확인하고, 합리적인 시간 내에 계획을 구현할 수 있는 사람들이 자신만의 게임 엔진을 작성할 수 있습니다. 다른 사람들은 기성 솔루션을 찾아야 합니다. 다행스럽게도 그 중 최근에 등장한 솔루션은 최소한 동일한 Unity 3D 및 UDK를 사용하는 것입니다.

최근에 저는 C++로 게임 엔진을 작성하느라 바빴습니다. 작은 것을 만들 때 사용해요 모바일 게임 홉 아웃. 제 아이폰6로 녹화한 영상입니다. (소리를 켜셔도 됩니다!)


귀하의 브라우저는 HTML5 비디오를 지원하지 않습니다.


Hop Out은 제가 직접 플레이하고 싶은 게임입니다. 만화 같은 3D 그래픽을 갖춘 복고풍 아케이드 게임입니다. 게임의 목표는 Q*Bert처럼 각 플랫폼을 다시 색칠하는 것입니다.



왜 게임 엔진을 작성하고 싶은 사람이 있을까요? 가능한 이유는 다양합니다:

  • 당신은 장인입니다. 당신은 시스템을 처음부터 구축하고 그것이 실제로 구현되는 것을 보는 것을 즐깁니다.
  • 게임 개발에 대해 더 알고 싶으십니까? 저는 14년 동안 게임 산업에 종사해 왔지만 아직도 어떻게 해야 할지 고민 중입니다. 나는 내가 엔진을 작성할 수 있을지 확신조차 없었습니다. 깨끗한 상태, 대형 스튜디오에서 일하는 프로그래머의 일상적인 업무와는 너무나 다르기 때문입니다. 나는 확인하고 싶었다.
  • 당신은 통제감을 좋아합니다. 원하는 방식으로 코드를 구성하고 모든 것이 어디에 있는지 항상 아는 것은 재미있습니다.
  • AGI(1984), id Tech 1(1993), Build(1995)와 같은 클래식 게임 엔진과 Unity 및 Unreal과 같은 거대 업계 엔진에서 영감을 받았습니다.
  • 당신은 우리 게임 산업이 엔진 개발 과정에서 미스터리를 제거해야 한다고 생각합니다. 우리는 아직 게임 개발의 기술을 완전히 익히지 못했습니다. 말도 안 돼요! 이 프로세스를 주의 깊게 살펴볼수록 개선할 가능성이 커집니다.

2017년의 게임 플랫폼(모바일, 콘솔, PC)은 매우 강력하고 여러 면에서 서로 유사합니다. 게임 엔진 개발은 더 이상 과거처럼 약하고 희귀한 하드웨어로 인해 어려움을 겪지 않습니다. 내 생각엔 지금은 상대와의 싸움에 가깝다. 자신의 작업의 복잡성. 쉽게 몬스터를 만들 수 있어요! 이것이 바로 이 기사의 모든 팁이 코드를 관리 가능하게 유지하는 방법을 중심으로 설명되는 이유입니다. 나는 그들을 세 그룹으로 분류했습니다.

  1. 직렬화는 광범위한 주제라는 점을 인식하세요.

이 팁은 모든 게임 엔진에 적용됩니다. 셰이더를 작성하는 방법, 옥트리가 무엇인지, 물리학을 추가하는 방법에 대해서는 설명하지 않겠습니다. 나는 당신이 이것을 알아야 한다는 것을 이미 알고 있다고 생각합니다. 그리고 이러한 주제의 대부분은 당신이 만들고 싶은 게임 유형에 따라 다릅니다. 그 대신, 나는 널리 다루어지지 않는 주제, 즉 무언가를 설명하려고 할 때 가장 흥미롭다고 생각하는 주제를 의도적으로 선택했습니다.

반복적인 접근 방식을 사용하세요

첫 번째 팁은 주저하지 말고 무엇이든 작동하도록 만든 다음 반복하는 것입니다.


가능하다면 장치를 초기화하고 화면에 무언가를 그리는 샘플 애플리케이션으로 시작하세요. 이 경우에는 SDL을 다운로드하고 Xcode-iOS/Test/TestiPhoneOS.xcodeproj를 연 다음 iPhone에서 testgles2 예제를 실행했습니다.



짜잔! OpenGL ES 2.0을 사용하는 멋진 회전 큐브가 있습니다.


나의 다음 단계누군가가 만든 마리오의 3D 모델을 다운로드 받은 것이 있었습니다. 나는 대략적인 OBJ 파일 로더를 빠르게 작성했고(형식은 그리 복잡하지 않습니다) 벽돌 대신 마리오를 그릴 수 있도록 예제를 수정했습니다. 또한 텍스처를 로드하기 위해 SDL_Image를 통합했습니다.



그런 다음 마리오를 움직일 수 있는 듀얼 스틱 컨트롤을 구현했습니다. (처음에는 듀얼 스틱 슈터를 만드는 아이디어를 고려했습니다. 그러나 마리오에서는 그렇지 않았습니다.)



다음으로 하고 싶었던 일은 뼈대 애니메이션을 시작하는 것이었습니다. 그래서 블렌더를 열고 촉수 모델을 만든 다음 앞뒤로 진동하는 뼈 두 개로 이루어진 뼈대를 거기에 연결했습니다.



이 시점에서 저는 OBJ 형식을 포기하고 Blender에서 JSON 파일을 내보내는 Python 스크립트를 작성했습니다. 이러한 JSON 파일은 스킨 처리된 메시, 스켈레톤 및 애니메이션 데이터를 설명합니다. C++ JSON 라이브러리를 사용하여 이 파일을 게임에 로드했습니다.



모든 것이 제대로 작동한 후 블렌더로 돌아가 좀 더 상세한 캐릭터를 만들었습니다. (이것은 제가 만들고 리깅한 최초의 3D 인물이었습니다. 상당히 자랑스러웠습니다.)



다음 몇 달 동안 나는 다음과 같은 조치를 취했습니다.

  • 나는 벡터와 행렬 작업을 위한 함수를 나만의 3차원 수학 라이브러리로 분리하기 시작했습니다.
  • .xcodeproj를 CMake 프로젝트로 대체했습니다.
  • 저는 Visual Studio에서 작업하는 것을 좋아하기 때문에 Windows와 iOS 모두에서 엔진을 실행하도록 만들었습니다.
  • 코드를 별도의 라이브러리 "엔진"과 "게임"으로 이동하기 시작했습니다. 시간이 지나면서 나는 그것들을 더 작은 도서관으로 나누었습니다.
  • JSON 파일을 게임이 직접 로드할 수 있는 바이너리 데이터로 변환하기 위해 별도의 애플리케이션을 작성했습니다.
  • 어떤 시점에서는 iOS 빌드에서 모든 SDL 라이브러리를 제거했습니다. (Windows 빌드에서는 여전히 SDL을 사용합니다.)

핵심은 다음과 같습니다. 프로그래밍을 시작하기 전에는 엔진 아키텍처를 계획하지 않았습니다.. 그것은 의식적인 선택이었습니다. 대신 다음 기능을 구현하는 가장 간단한 코드를 작성한 다음 어떤 아키텍처가 나타나는지 살펴보았습니다. 당연히. "엔진 아키텍처"란 게임 엔진을 구성하는 모듈 세트, 해당 모듈 간의 종속성, 각 모듈과 상호 작용하기 위한 API를 의미합니다.




항상 완전히 다시 작성해야 하는 잘못된 코드를 작성하기 때문에 이 접근 방식을 사용하면 많은 시간이 낭비되는 것처럼 보일 수 있습니다. 그러나 대부분의 변경 사항에는 하나의 .cpp 파일에서 다른 .cpp 파일로 코드 이동, 함수 정의를 .h 파일로 추출 또는 기타 똑같이 간단한 작업이 포함됩니다. 정의하다, 어디무엇을 놓아야 하는가는 어려운 작업이며, 코드가 이미 존재하면 해결하기가 더 쉽습니다.


나는 반대 접근 방식, 즉 필요한 모든 것을 수행할 아키텍처를 미리 생각하려고 하면 더 많은 시간이 낭비된다고 확신합니다. 오버엔지니어링의 위험성에 대해 제가 가장 좋아하는 두 기사는 Tomas Dabrowski의 The Vicious Circle of Generalization과 Joel Spolsky의 Don't Let Architecture Astronauts Scare You입니다.


코드에서 문제를 만나기 전에 종이에서 문제를 해결해서는 안 된다는 말은 아닙니다. 또한 필요한 기능이 무엇인지 미리 결정해서는 안 된다는 뜻도 아닙니다. 예를 들어, 나는 엔진이 백그라운드 스레드의 모든 리소스를 로드하기를 원한다는 것을 처음부터 알고 있었습니다. 나는 내 엔진이 최소한 일부 리소스를 로드하기 시작할 때까지 이 기능을 설계하거나 구현하려고 시도하지 않았습니다.


반복적 접근 방식은 빈 종이를 보면서 상상할 수 있었던 것보다 훨씬 더 우아한 아키텍처를 제공했습니다. 현재 내 엔진의 iOS 빌드는 자체 수학 라이브러리, 컨테이너 템플릿, 반사/직렬화 시스템, 렌더링 프레임워크, 물리 및 오디오 믹서를 포함하여 100% 원본 코드로 구성되어 있습니다. 나는 이 모듈 각각을 직접 작성해야 할 이유가 있었지만 이것이 여러분에게는 필요하지 않을 수도 있습니다. 대신, 귀하의 엔진에 적합할 수 있는 훌륭한 오픈 소스 및 허용 라이선스 라이브러리가 많이 있습니다. GLM, Bullet Physics 및 STB 헤더는 흥미로운 예 중 일부에 불과합니다.

너무 일반화하기 전에 다시 한 번 생각해보세요

프로그래머로서 우리는 코드 중복을 피하기 위해 노력하고 코드가 일관된 스타일을 따르는 것을 좋아합니다. 하지만 이러한 본능이 모든 결정을 내리게 놔두지 않는 것이 도움이 된다고 생각합니다.

때때로 DRY 원칙을 어기세요

예를 들어 보겠습니다. 내 엔진에는 std::shared_ptr과 유사한 스마트 포인터의 여러 템플릿 클래스가 포함되어 있습니다. 각각은 원시 포인터 주위의 래퍼 역할을 하여 메모리 누수를 방지하는 데 도움이 됩니다.

  • 소유<>단일 소유자가 있는 동적으로 할당된 개체의 경우.
  • 참조<>객체가 여러 소유자를 가질 수 있도록 참조 계산을 사용합니다.
  • 오디오::앱 소유<>오디오 믹서 외부의 코드에서 사용됩니다. 이를 통해 게임 시스템은 오디오 믹서가 사용하는 개체(예: 오디오 믹서가 사용하는 개체)를 소유할 수 있습니다. 이 순간재현.
  • 오디오::오디오핸들<>오디오 믹서 내부의 참조 카운팅 시스템을 사용합니다.

이러한 클래스 중 일부는 DRY 원칙을 위반하여 다른 클래스의 기능을 복제하는 것처럼 보일 수 있습니다. 사실 개발 초기에는 기존 Reference 클래스를 재사용하려고 했습니다.<>가능한 한 많이. 그러나 나는 오디오 객체의 수명이 특별한 규칙: 객체가 조각 재생을 마쳤고 게임이 해당 객체에 대한 포인터를 소유하지 않은 경우 즉시 삭제 대기열에 들어갈 수 있습니다. 게임이 포인터를 캡처한 경우 오디오 개체를 삭제하면 안 됩니다. 그리고 게임이 포인터를 캡처했지만 플레이가 끝나기 전에 포인터의 소유자가 파괴되면 포인터를 취소해야 합니다. 복잡한 참조 대신<>, 별도의 템플릿 클래스를 도입하는 것이 더 실용적이라고 판단했습니다.


95% 재사용 가능 기존 코드- 맞아요. 그러나 그것이 당신을 수렁에 빠뜨리기 시작하거나 한때 단순했던 것을 복잡하게 만든다면, 코드베이스의 이 부분을 실제로 둘로 나누어야 하는지 스스로에게 물어보세요.

다른 호출 규칙을 사용해도 괜찮습니다.

Java에 대해 내가 좋아하지 않는 점 중 하나는 클래스 내부의 모든 함수를 정의해야 한다는 것입니다. 내 생각에는 이것은 무의미하다. 이렇게 하면 코드가 더욱 일관되게 보일 수 있지만 지나치게 복잡해지며 앞서 설명한 반복적 접근 방식을 지원하지 않습니다.


내 C++ 엔진에서 일부 함수는 클래스에 속하고 일부는 클래스에 속하지 않습니다. 예를 들어, 게임의 모든 적은 클래스이고 대부분의 적 행동은 예상대로 해당 클래스에서 구현됩니다. 반면, 내 엔진에서는 물리 네임스페이스의 함수가sphereCast() 를 호출하여 실행됩니다. sphereCast()는 어떤 클래스에도 속하지 않습니다. 단지 물리 모듈의 일부일 뿐입니다. 나는 모듈 간의 종속성을 관리하는 빌드 시스템을 가지고 있는데, 이는 코드를 상당히 잘 정리된 상태로 유지합니다. 이 함수를 임의의 클래스로 래핑해도 코드 구성이 어떤 방식으로든 개선되지 않습니다.



최소한 요구 사항이 얼마나 복잡한지 상상해 보십시오. 몇 가지 자산을 사용하여 Flappy Bird와 같은 소규모 게임을 만드는 경우 직렬화에 대해 많이 생각할 필요가 없을 것입니다. 아마도 PNG에서 직접 텍스처를 로드할 수 있으며 그것만으로도 충분합니다. 컴팩트하고 이전 버전과 호환되는 바이너리 형식이 필요하지만 직접 개발하고 싶지 않은 경우 Cereal 또는 Boost.Serialization과 같은 타사 라이브러리를 살펴보세요. 저는 Google 프로토콜 버퍼가 게임 자산 직렬화에 이상적이라고 생각하지 않지만 여전히 살펴볼 가치가 있습니다.


게임 엔진을 작성하는 것은 작은 일이라 할지라도 큰 일입니다. 할 수 있는 말은 더 많지만 솔직히 이 정도 길이의 기사에 대해 제가 생각할 수 있는 가장 유용한 조언은 다음과 같습니다. 반복적으로 작업하고, 코드를 일반화하려는 충동을 약간 억제하고, 직렬화는 광범위한 주제라는 점을 기억하세요. 적절한 전략을 선택해야 합니다. 내 경험상 이러한 점 하나하나를 무시하면 걸림돌이 될 수 있다.


나는 이 주제에 관해 메모를 비교하는 것을 좋아하므로 다른 개발자의 의견을 듣고 싶습니다. 만약 당신이 엔진을 작성했다면, 당신의 경험도 같은 결론을 이끌어냈나요? 그리고 아직 글을 쓰지 않았거나 글을 쓰려고 계획하고 있다면 당신의 생각도 나에게 흥미로울 것입니다. 어떻게 생각하나요 좋은 자원훈련을 위해? 어떤 면이 아직도 당신에게 신비롭게 느껴지나요? 아래에 댓글을 남겨주시거나 저에게 연락해주세요.

게임 엔진이란 무엇입니까? 모든 사전에서 이 문구의 정의를 찾을 수 있는 것은 아닙니다. 하지만 이 질문에 대한 답을 스스로 찾으려고 한다면 아마도 다음과 같을 것입니다. "게임 엔진은 비디오 게임을 만들고 실행할 수 있게 해주는 소프트웨어 구성 요소입니다." 이는 개발자에게 대부분의 게임 구성 요소를 생성하고 이를 함께 구성할 수 있는 도구를 제공합니다. 게임 엔진은 렌더링, 물리, 사운드 디자인, 스크립팅, AI 생성, 네트워크 측면 종료 등 게임의 모든 구성 요소에 영향을 미칩니다. 그리고 이를 사용하여 무언가를 생성할 수 없는 경우에는 전문 프로그램에서 생성한 다음 게임으로 가져올 수 있습니다. 어쨌든 게임 엔진은 현대 비디오 게임의 일꾼입니다.

아시다시피 현재 개발자와 퍼블리셔가 상당히 인상적인 가격에 구입할 수 있는 Quake 및 Unreal과 같은 잘 알려진 브랜드부터 개발자가 내부 프로젝트를 위해 특별히 만드는 엔진에 이르기까지 수많은 게임 엔진이 있습니다.
아래에서는 현 세대 최고의 게임 엔진 목록을 소개합니다. 이들은 제작자의 손에서 자랑스럽게 빛나는 진정한 최고의 대표자들이며, 여러분에게 매우 기억에 남는 작품을 선사합니다. 게임 프로세스. 다음은 훌륭하고 창의적인 아이디어가 얼마나 흥미진진한 게임플레이를 가져올 수 있는지 보여주는 예입니다.
참고: 모든 개발자가 자신의 게임 엔진에 대해 이야기하는 것은 아니며 많은 개발자가 이를 철저히 비밀로 유지한다는 점은 주목할 가치가 있습니다. 따라서 우리가 모르는 많은 좋은 엔진은 그럴 자격이 있지만 이 목록에 포함되지 않습니다. 이러한 시크릿의 예는 Metal Gear Solid 4, FIFA 및 God of War III를 만드는 데 사용되었습니다.

***
다음과 같은 프로젝트에서 볼 수 있습니다: Rockstar Table Tennis,
GTA IV + 추가 콘텐츠
미드나잇 클럽: 로스앤젤레스,
레드 데드 리뎀션,
라. 느와르(아마도)
***

GTA III, 바이스 시티, 산 안드레아스 Bully는 훌륭하기는 하지만 Rockstar의 자체 엔진에서 생성되지 않고 대신 Criterion의 "Renderware" 엔진을 사용하여 만들어졌습니다. 그러나 Red Dead Revolver가 덜 상업적인 게임인 것처럼 보임에도 불구하고 인기 퍼블리셔에게 차세대 콘솔을 위한 자체 엔진을 만드는 아이디어를 준 사람은 바로 그 사람이었습니다. 다른 어떤 게임 엔진도 이룰 수 없는 훌륭한 속편을 꿈꾸는 Rockstar San Diego는 2004년부터 RAGE(Rockstar Advanced Game Engine) 게임 엔진 개발 작업을 시작하여 최초로 시도해 보았습니다. 게임 레드죽은 구원. 그리고 개발자들에 따르면 이미 이 엔진으로 출시된 3개의 게임에 2010년에는 적어도 하나의 게임이 더 추가될 예정이라고 합니다. 그리고 이것은 바로 Red Dead Redemption의 원하는 속편입니다.

RAGE에는 많은 장점이 있습니다. 그중에서도 GTA IV가 우리에게 입증한 광대한 세계, 복잡한 AI, 날씨 효과, 빠른 네트워크 코드 및 다양한 게임플레이 스타일을 만들 수 있는 가능성에 주목할 가치가 있습니다. 이 엔진은 다른 게임 엔진과의 공생에도 매우 우호적입니다. 예를 들어, 현재 인기 있는 NaturalMotion의 Euphoria 엔진은 마치 RAGE가 태어날 때부터 있었던 것처럼 적합했습니다(LucasArts도 최근 게임인 Star Wars: The Force Unleashed에서 그러한 공생을 달성하지 못했습니다). 총알 게임 시뮬레이션을 담당하는 Erwin Koumans의 물리 엔진도 RAGE에 완벽하게 들어맞습니다. 그리고 더 놀라운 점은 이 엔진이 아직 매우 어리고 추가 개발이 가능하다는 점입니다. 향상된 물리학, 생태계, 향상된 AI 및 그리기 거리는 개발자들이 RAGE가 다음 게임에서 우리에게 가져올 개선 사항 중 일부일 뿐입니다.

***
Far Cry,
크라이시스, 크라이시스: 워헤드, 크라이시스 2,
아이온: 영원의 탑
***

CryTek의 독일 개발자들이 스스로 큰 이름을 만드는 데는 오랜 시간이 걸리지 않았습니다. 2004년에 출시된 첫 번째 게임인 Far Cry는 모든 사람에게 새로운 놀라움을 선사했습니다. 예상대로 세계가 차세대 PC 게임의 출현을 예고한 Half-life 2, Doom 3 및 S.T.A.L.K.E.R.의 등장을 기다리고 있는 동안 CryTek은 모든 사람보다 한 발 앞서 있었습니다. 스튜디오 "CryEngine"의 내부 엔진에서 제작된 화제의 슈터를 출시합니다. 3 년 후에 새로운 게임 CryEngine 2 엔진의 두 번째 버전으로 개발된 Crysis는 게임 개발에 새로운 시각적 기준을 제시하며 다시 한번 동일한 성공을 거두었습니다. 다음 선택은 이미 CryEngine 3 엔진의 세 번째 버전으로 개발된 Crysis 2입니다. 그것의 도움으로 Crytek은 콘솔 시장을 커버하려고 노력할 것입니다.

CryTek에 따르면 CryEngine 3는 개발자가 차세대 콘솔에서 DirectX 10 기능을 사용할 수 있게 해주는 Xbox 360 및 PlayStation 3의 첫 번째 엔진이 될 것입니다(푸! - 편집자 주). 대부분의 경쟁업체와 달리 이 엔진은 다른 추가 게임 엔진 간의 동맹이 필요하지 않습니다. 게임의 물리학, 사운드 및 애니메이션과 함께 작동할 수 있습니다. 이러한 엔진의 도움으로 게임은 높은 시각적 높이를 달성할 수 있습니다. 사실 크라이텍이 인기를 끌 수 있었던 것도 그들 덕분이었습니다. 그리고 Crytek의 자체 게임이 CryEngine을 최고의 엔진 목록에 추가하기에 충분하지 않다면 개발자가 CryEngine을 다음과 같이 홍보하기 위해 가능한 모든 노력을 다하고 있다는 사실에 주목할 가치가 있습니다. 소프트웨어다른 개발자가 사용할 수 있습니다. 이것은 우리 게이머들에게는 좋은 소식이지만, 매우 가치 있는 경쟁자가 있을 것으로 보이는 Epic Games와 그들의 Unreal Engine 3에게는 그리 좋은 소식이 아닙니다.
추신 그리고 CryEngine 3의 TimeSplitters 4에 대한 소문이 사실이 되기를 바랍니다.

버릇없는 개 게임 엔진

***
Uncharted: Drake's Fortune,
언차티드 2: 도둑들 사이에서
***

의심할 여지 없이, Uncharted 2: Between Thieves는 지난 E3의 경이로운 그래픽 중 하나였으며, 가장 중요한 것은 PlayStation 3가 게임 엔진 제작에 올바른 접근 방식을 취한다면 엄청난 잠재력을 가지고 있음을 입증했다는 것입니다. Uncharted뿐만 아니라 Jak & Daxter와 같은 인기 시리즈를 제작한 스튜디오의 이름을 딴 Naughty Dog 엔진은 PS3 아키텍처용으로 특별히 제작되었습니다. 이러한 도움으로 개발자들은 2007년 Uncharted: Drake's Fortune을 출시하면서 엄청난 성장을 이루었습니다. 탁월한 애니메이션 및 캐릭터 모델, 볼륨감 있는 조명, 화려한 사운드, 풍부한 색상 팔레트 및 헐리우드와 같은 컷 장면이 그들의 명함이 되었습니다. Uncharted 2: Between Thieves 개발에 이미 사용된 Naughty Dog 2.0 엔진을 만드는 데 2년 이상의 노력이 소요되었습니다. 이 작업의 결과는 놀랍습니다. 게임의 모든 위치는 수많은 캐릭터로 가득 차 있습니다. 자체 물리학을 지닌 동적 개체 환경의 애니메이션이 더 부드럽고 다양해졌습니다. . 게임의 조명과 AI가 놀라울 정도로 개선되었습니다. 게임에서 컷씬으로 또는 그 반대로 원활하게 전환됩니다. 그리고 잊지 마세요. Uncharted의 새로운 부분에서 우리를 기다리는 것은 무엇입니까? 협동 게임그리고 멀티플레이어. 정말 놀라운 결과입니다.

또한 우리 데이터에 따르면 Naughty Dog는 향후 PS3의 모든 프로젝트를 개선하는 데 도움이 될 기본 도구 세트를 개발하고 있는 Sony의 비밀 스튜디오 The Ice Team과 지식과 경험을 공유하고 있습니다. 그리고 지난 E3에서 개발자들은 인기 있는 Jak & Daxter 시리즈의 새로운 부분이 내년에 나타날 수 있음을 암시했다는 사실을 잊지 마십시오.

***
다음과 같은 프로젝트에서 볼 수 있습니다. 죽은 공간,
단테의 지옥
***

Dead Space는 정말 훌륭했습니다. 너무 훌륭해서 출시 직후 알려지지 않은 스튜디오 EA Redwood Shores가 명성을 얻었습니다. 지난 5월 Electronic Arts는 지능형 액션 게임 제작에 중점을 두고 있는 스튜디오의 문화와 개성을 더 잘 표현하기 위해 스튜디오 Visceral Games로 이름을 변경했습니다. Dead Engine은 Visceral Games 엔진의 공식 명칭은 아니지만(Dead Space의 언론과 팬들이 그렇게 불렀음), 그 존재와 기술적 능력 Glen Schofield는 호주에서 열린 Dead Space 프로모션 중 하나에서 이렇게 말했습니다.

2006년 The Godfather가 출시된 후 개발팀은 해체되었고 일부 개발팀은 엔진을 가져가서 Dead Space를 출시한 동일한 EA Redwood Shores 스튜디오가 되었습니다. 엔진은 Dead Space의 공포와 미래 지향적인 요구 사항에 맞게 거의 완전히 재설계되었습니다. 궁극적으로 엔진의 성공은 The Godfather보다는 Dead Space에 더 많은 영향을 받았습니다. Dead Space는 거의 모든 면에서 우리를 놀라게 했습니다. 새로운 위치그러나 엔진의 주요 장점은 사용이 간편하고 게임의 사운드 및 조명 작업이 가능하다는 것입니다. Dead Space는 비디오 게임 역사상 가장 무서운 게임 중 하나입니다. 그리고 엔진 개발의 다음 포인트는 새로운 게임 Visceral Games Dante's Inferno입니다.

***
다음과 같은 프로젝트에서 볼 수 있습니다. Gears of War,
매스 이펙트,
바이오쇼크,
언리얼 토너먼트 3
보더랜드,
브라더스 인 암스: 지옥의 고속도로,
홈프론트,
거울의 가장자리,
특이,
레인보우 식스: 베가스
***

다양한 비디오 게임 리뷰나 게임 보도 자료에서 "대대적으로 수정된 Unreal Engine"이라는 단어를 몇 번이나 들어 보셨나요? 1998년 처음 등장한 이후 Epic Games의 Unreal Engine(현재 세 번째 버전)은 가장 유명하거나 덜 유명한 비디오 게임 개발자의 주요 무기가 되었습니다. 그는 또한 Surf's Up과 같은 어린이 프로젝트와 심지어 그 외에 자체 엔진을 가지고 있는 스튜디오의 게임에도 출연했습니다.주요 질문은 왜일까요?

일부 부정적인 리뷰(Too Human의 제작자인 Silicon Knights)와 PS3 초기 프로젝트의 성능과 관련된 문제(주로 초당 프레임 저하 문제)에도 불구하고 Epic Games의 엔진은 소비자에게 높은 품질과 능력을 제공했습니다. 절대적으로 모든 장르의 게임을 개발하십시오. 그리고 그 적당한 가격으로 인해 많은 사람들이 값 비싼 자체 엔진 제작을 단념했습니다. 가장 인기 있는 게임 엔진은 언리얼 엔진으로, 차세대 게임이 어떤 모습이어야 하는지에 대한 그림을 우리에게 제시한 엔진이었습니다.
최신 보고서에 따르면 Epic Games는 이미 Unreal Engine 4 작업에 열중하고 있으며 계획에 따르면 이 엔진은 차세대 콘솔 출시에 맞춰 등장해야 하며 가능한 출시 날짜 중 2012년이 발표되었습니다.

눈사태 엔진

***
다음과 같은 프로젝트에서 볼 수 있습니다. 다만 원인저스트 코즈 2,
사냥꾼
***

Just Cause 2는 지난 E3에서 우리를 정말 놀라게 했던 게임 중 하나였습니다. 첫 번째 부분은 꽤 흥미로웠지만, 출시된 지 거의 4년이 지났고 우리는 점차 게임에 대해 잊어버리기 시작했습니다. 이 평온한 기간은 두 번째 부분에 대한 우리의 관심을 조금 죽였고 우리는 더 이상 그것을 기대하지 않았습니다. 그러나 게임 제작자 인 Avalanche Studios는이 모든 시간을 헛되이 보내지 않은 것으로 나타났습니다. 그들은 Avalanche 엔진을 완전히 변경하고 많은 요소를 처음부터 다시 구축했습니다. 그래서 개발자들은 새로운 Avalanche Engine 2.0을 사용하여 게임의 첫 번째 부분의 성공을 쉽게 능가할 수 있는 Just Cause 2를 만들었습니다.

Just Cause 2를 보면 개발자들이 새로운 엔진으로 달성한 성과에 놀라지 않을 수 없습니다. 엔진은 매우 다양한 것을 생산합니다 게임 메커니즘(스카이다이빙, 운전, 사격, 3인칭 전투, 다이빙 등). 화면에는 수많은 폭발과 적들이 끊임없이 깜박입니다. 주인공은 새로운 기회를 얻었고, 주요 기회는 갈고리입니다. 적 AI도 여러 가지 변화를 겪었고 이제 우리가 첫 번째 부분에서 본 것보다 몇 배 더 좋아 보입니다. 게다가 게임의 그림도 매우 인상적입니다. 이 모든 작업은 눈 덮인 산봉우리, 열대 정글, 모래 해변이 우리를 기다리고 있는 광대한 지역에서 이루어집니다. 이러한 모든 장점으로 인해 Avalanche Engine은 현 세대 최고의 게임 엔진 중 하나가 되었습니다.
추신 또한, 이미 발표된 다음 프로젝트는 Avalanche 2.0을 기반으로 하며 판타지 환경에 구축된 AionGuard라는 게임이 될 것입니다. 이 엔진이 이런 작업을 어떻게 처리할지 궁금합니다.

***
Call of Duty 2,
콜 오브 듀티 - 모던 워 페어,
콜 오브 듀티: 월드 앳 워,
퀀텀 오브 솔러스,
현대전 2
***

명확히 하자면, IW는 현 세대의 가장 인기 있는 게임 시리즈 중 하나인 Call of Duty를 제작한 전설적인 스튜디오인 Infinity Ward의 약자입니다. 그리고 게임 시리즈 Infinity Ward의 첫 번째 부분에서는 id Tech 3 엔진을 사용했지만 이미 두 번째 부분 출시를 위해 자체 내부 엔진을 준비했지만 안타깝게도 아직 공식 이름을 얻지 못했습니다. 지난 E3에서 엔진에 관해 우리가 물었던 질문 중 하나에 이어 Infinity Ward는 곧 출시될 히트작 Modern Warfare 2가 엔진의 네 번째 버전, 즉 IW 4.0에서 만들어졌다고 알려주었습니다. 동일한 버전의 엔진이 2007년 출시된 걸작 Call of Duty 4를 제작하는 데 사용되었습니다.
게임을 플레이해 본 적이 있다면 아마도 이 엔진의 성능과 플레이어에게 제공할 수 있는 게임 경험의 종류를 알고 있을 것입니다. 경이로운 애니메이션과 조명, 복잡한 AI, 놀라운 사운드, 실제 총알 동작 시뮬레이션 등 엔진은 이 모든 것을 매우 빠르게 처리할 수 있으며, 누구도 이를 부인하지 않습니다. 또한 이 모든 아름다움은 친구들과 온라인으로 플레이하면서 볼 수 있습니다. Call of Duty가 가장 성공적인 게임 중 하나로 간주되는 것은 아무것도 아닙니다. 온라인 게임비디오 게임의 역사를 통틀어. 물론 Modern Warfare 2의 두 번째 부분에서는 엔진이 큰 변화를 겪지 않았지만 우리를 다시 놀라게 할만큼 중요합니다. 새로운 텍스처링 시스템은 세계의 디테일을 높이고 텍스처의 해상도를 높일 것입니다. 그리고 주요 변경 사항은 게임의 조명, 물리 및 AI에 영향을 미칩니다.

추신 또 다른 좋은 소식은 Infinity Ward가 Treyarch와 같은 Activision 산하의 다른 스튜디오에서 자사 엔진을 사용할 수 있도록 허용하고 있다는 것입니다.

***
Assassin's Creed와 같은 프로젝트에서 주목을 받았습니다.
페르시아의 왕자 (2008),
숀 화이트 스노보드,
어쌔신 크리드 II
***

아마도 Ubisoft는 게임을 만들기 위해 다른 사람의 기술을 사용하는 데 지쳤기 때문에 최근 Ubisoft 스튜디오는 자체 게임 엔진을 차례로 찢어내기 시작했습니다. 이제 이러한 엔진이 약 12개 있으며 그 중 다음과 같은 엔진이 주목할 가치가 있습니다. Dunia(Far Cry 2), LEAD( 스플린터 셀: Conviction), Fox(Naruto: Broken Bond), LyN(Beyond Good & Evil 2), IRISZOOM(R.U.S.E) 그리고 우리의 영웅 Anvil, 일명 Scimitar 2.0 Engine. 사실, 이 엔진을 기반으로 제작된 게임을 그냥 지나치고 그것이 만들어내는 그림에 놀라지 않는 것은 어렵습니다. 또한 호평을 받은 히트작인 Assassin's Creed가 이 엔진 덕분에 인기를 얻었음을 잊지 마십시오.
Assassin's Creed와 Prince of Persia에서 Anvil은 애니메이션이 환경과 실시간으로 상호 작용할 수 있도록 했습니다. 가상 세계수백 가지 모델에 자체적으로 매우 똑똑한 AI를 부여합니다. Assassin's Creed의 속편을 위해 Ubisoft Montreal의 개발자는 향상된 조명 시스템, 반사, 동적 의상, 고급 AI를 준비하고 외부 세계와 상호 작용하는 능력을 높이고 그리기 거리를 늘리며 하루의 전체 주기를 추가하고 위의 모든 것 외에도 Anvil은 Far Cry 2가 구축된 Dunia 엔진의 기술 중 하나를 추가했다는 점도 주목할 가치가 있습니다. 이 기술은 게임의 식물 시뮬레이션을 담당합니다.

우리는 또한 Shaun White Snowboarding에서 Anvil이 플레이어에게 처음으로 온라인 게임을 제공했다는 사실에 주목했습니다. 이는 Assassin's Creed의 두 번째 부분에 온라인 모드가 나타날 것이라는 소문을 불러일으켰습니다.

***
다음과 같은 프로젝트에서 볼 수 있습니다: Colin McRae: DiRT,
레이스 드라이버: GRiD,
플래시포인트 작전: 드래곤 라이징,
콜린 맥레이 DiRT 2,
F1 2009,
F1 2010
***

Codemasters는 이미 이 세대의 콘솔 게임 중 매우 평범한 게임 몇 개를 출시했지만 스튜디오 내부 프로젝트에 관해서는 최고만을 제공하려고 노력합니다. 이 최고 수준의 대부분은 EGO 엔진(한때 NEON으로 알려짐)을 기반으로 구축되었습니다. 그건 그렇고, Sony 사람들도이 엔진 제작에 부분적으로 참여했다는 점은 주목할 가치가 있습니다. 많은 게이머들에게 Codemasters는 매우 인기 있는 고품질 레이싱 시뮬레이터인 Colin McRae & Race Driver 게임 시리즈로 유명합니다.
엔진의 장점 중 하나는 훌륭한 레이싱 게임플레이를 생성할 수 있는 능력뿐 아니라 엔진의 도움을 받아 동일한 자동차에 대한 모델과 물리학을 생성할 수 있다는 것입니다. 또한 특히 200km/h의 속도로 자동차 앞 창문을 통해 놀랍게 보이는 다양한 지형(사막과 눈 모두)의 매우 상세한 세계를 만들 수 있습니다. 또한 개발자는 이해하기 쉬운 손상 시스템, 뛰어난 AI 및 조명을 만들었습니다. 이러한 모든 장점은 EGO에서 만든 게임을 캔디로 만듭니다. 글쎄, EGO가 최고의 엔진 목록에 오른 주된 이유는 레이싱 엔진을 FPS와 같은 우수한 엔진으로 바꾸는 놀라운 능력 때문입니다. 이는 올 9월 매장 진열대에 등장할 초현실적인 Operation Flashpoint: Dragon Rising의 기반이 됨으로써 우리에게 이를 증명했습니다.

음, DiRT 2에서 개발자들은 게임에 더욱 사실감을 더하기 위해 게임의 물리학에 집중하기로 결정했습니다. 그리고 이것이 계속된다면, 여전히 주머니에 1년의 개발 기간이 남아 있는 F1 2010의 개발자들은 매우 진지하고 매력적인 결과를 얻게 될 것입니다.

***
다음과 같은 프로젝트에서 볼 수 있습니다. 레드 팩션: 게릴라
***

Digital Illusions가 Battlefield: Bad Company의 이전에 볼 수 없었던 동적 파괴 시스템을 소개하는 Frostbite 엔진을 출시했을 때, 우리는 전투 중 전장이 어떻게 변하는지에 깊은 인상을 받았습니다. 이 방향의 다음 단계는 LucasArts의 개발자들이 자체 물리 엔진인 Digital Molecular Matter를 갖춘 Star Wars: The Force Unleashed를 출시함으로써 이루어졌습니다. 그는 외부 세력의 압력에 따라 주변 세계가 변화하도록 허용했습니다. 표시된 내용은 지구상의 한 명 이상의 게이머를 놀라게 했습니다. 그러나 Volition Inc는 Red Faction: Guerrilla를 통해 더욱 발전했습니다. 사용 새로운 버전 Red Faction의 첫 번째 부분을 만들 때 2001년에 등장한 Geo-Mod 엔진입니다.
전체 게임 시리즈의 세 번째 부분을 통해 우리는 해당 지역의 모든 것을 무의미하게 파괴할 수 있었습니다. Geo-Mod를 사용하면 객체가 실제 프로토타입의 속성을 취할 수 있으며, 세계의 실제 법칙에 따라 파괴됩니다. 이는 플레이어의 행동뿐만 아니라 그를 둘러싼 객체에도 사실감을 심어줍니다. 어떤 엔진도 게임의 폭발적인 게임 플레이, 복잡한 AI를 시뮬레이션하고 프레임 속도를 잃지 않고 현실 세계의 법칙을 모방할 수 없습니다. 게다가 이 모든 작업은 훌륭하고 네트워크 게임. 이 엔진은 위에 나열된 경쟁사에 비해 장점이 많지 않지만 실제 법칙을 모방하고 실시간으로 놀라운 폭발을 생성하는 능력이 다른 엔진과 차별화됩니다.

우리는 개발자들이 향후 히트 시리즈 Saints Row 3의 후속작에서 이 엔진을 사용할 수 있는 방법을 찾을 수 있기를 진심으로 바랍니다.

그게 다야. 현재 사용 가능한 최고의 게임 엔진 목록을 안내해 드렸습니다. 여러분이 그토록 좋아하는 대부분의 게임은 이 말들의 도움으로 만들어졌습니다. 불행하게도 최고의 엔진이라는 타이틀을 획득할 수 있는 다른 많은 후보자들은 이 목록에 포함되지 않았지만 가까운 시일 내에 이 목록의 연속을 작성하여 나머지를 소개할 수 있기를 바랍니다.

유니티3D

Unity 3D는 매우 저렴한 엔진입니다. 경쟁사에 비해 부인할 수 없는 여러 가지 이점이 있으며, 아마도 핵심은 라이센스 비용을 한 번만 지불한다는 것입니다. 게임이 얼마나 인기를 얻는지는 중요하지 않습니다. Unity를 선택하면 다시 돈을 들이지 않아도 됩니다. 재정적 관점에서 볼 때 이는 특히 신생 기업과 초보 개발자에게 좋은 솔루션입니다.

  • 유리한 라이센스 정책;
  • 사용의 용이성;
  • 모든 플랫폼과 호환됩니다.
  • 훌륭한 커뮤니티;
  • 낮은 진입 문턱;
  • 개발자들 사이에서 인기가 높습니다(즉, 버그를 빨리 발견하고 수정한다는 의미).
  • 제한된 도구 세트(이 중 일부는 직접 개발해야 할 가능성이 높습니다)
  • 게임을 만드는 과정에는 많은 시간이 소요됩니다.

언리얼 엔진

언리얼 엔진은 AAA 게임 개발에 가장 널리 사용되는 엔진 중 하나입니다. Gears of War, Batman: Arkham Asylum, Mass Effect 등 모든 히트작이 여기에 만들어졌습니다.

  • 많은 개발자가 이를 사용하기 때문에 Unreal Engine은 아마도 경쟁사 중에서 최고의 커뮤니티를 보유하고 있을 것입니다. 몇 시간의 비디오 튜토리얼이 이에 대한 증거입니다.
  • 뛰어난 기술 지원 및 업데이트 메커니즘;
  • 업데이트할 때마다 새로운 도구가 나옵니다
  • 다양한 목적을 위한 다양한 도구(어떤 도구는 너무 사용하기 쉬워 초등학생도 조작할 수 있음)
  • 다양한 플랫폼(iOS, Android, Linux, Mac, Windows 등)과 호환 가능
  • 새로운 라이선스 정책에는 월 구독료 19달러와 게임 수익이 5,000달러 이상인 경우 로열티 5%가 포함되어 있어 엔진이 이전보다 개발자에게 훨씬 더 매력적입니다.
  • 주걱. 일부 개발자는 특정 도구에 익숙해지기 어렵다고 불평합니다.

크라이엔진 3

게임의 외부 구성 요소가 마음에 드신다면 CryEngine 3가 필요합니다.

  • Flowgraph 기능은 뛰어난 그래픽으로 게임을 장식하는 데 도움이 됩니다.
  • 강력한 사운드를 생성하기 위한 Fmod 기능 세트;
  • 해당 세그먼트에서 가장 간단한 AI 생성 프로세스;
  • 초보 개발자도 UI를 쉽게 만들 수 있을 것입니다.
  • 무료 버전에 대한 기술 지원이 상대적으로 엉성합니다.
  • 엔진은 업계에서 상대적으로 새로운 것이기 때문에 아직 강력한 커뮤니티를 형성하지 못했습니다.
  • 상대적으로 진입장벽이 높다.

HeroEngine

이 엔진은 멀티플레이어 게임 제작에서 그 자체로 잘 입증되었습니다. 예를 들어 Star Wars: The Old Republic을 예로 들 수 있습니다. 라이센스는 꽤 비싸고 초보 개발자에게는 적합하지 않을 것입니다. 그러나 프로젝트가 야심적이라면 이 옵션을 고려하는 것이 좋습니다.

  • 오픈 월드를 만드는 데 사용할 수 있는 여러 지도가 있습니다. 이들을 "완벽하게" 연결할 수 있습니다.
  • 엄청나게 강력한 AI!
  • 지도 모델링을 위한 편리한 도구 세트
  • 복잡한 임무 생성, 자원 제작 및 수집에 적합합니다.
  • HeroCloud 서비스를 통해 기술 지원이 제공되므로 매우 편리합니다.
  • 스크립트 엔진은 강력하지만 사용하기 불편합니다.
  • HeroEngine은 HeroCloud 고객 지원과 함께 너무 비싸고 초보 개발자가 접근하기 어려울 것입니다.
  • 진입 장벽이 높다.

분노 엔진

Rage Engine이 제공하는 광범위한 기능과 경쟁할 수 있는 제품은 거의 없습니다. Grand Theft Auto V, Red Dead Redemption 및 기타 많은 유명한 프로젝트가 이 엔진을 사용하여 제작되었습니다.

  • 넓은 세계와 날씨 효과를 만들 수 있는 풍부한 기회;
  • 강력한 AI;
  • 선택할 수 있는 다양한 게임플레이 스타일;
  • 빠른 네트워크 코드.
  • 엔진 인터페이스는 상대적으로 불편합니다.
  • 키보드와 마우스에 대한 컨트롤이 제대로 최적화되지 않았습니다.

프로젝트 무정부 상태

이 강력한 게임 엔진은 명확하고 이해하기 쉬운 문서로 인해 많은 개발자가 좋아합니다. 그러나 단점도 있습니다.

  • iOS, Android 및 Tizen 플랫폼에서 게임을 개발하려는 경우 라이선스는 무료입니다.
  • 버그를 찾고 수정하기 위한 강력한 도구;
  • 강력한 커뮤니티;
  • 게시자는 명확하고 이해하기 쉬운 문서와 샘플을 제공합니다.
  • 오디오 반주를 위한 Fmod;
  • 강력한 Havok AI.
  • Mac과 Linux에서 게임을 개발할 가능성은 없습니다.
  • 초보 개발자를 위한 소개 가이드는 없습니다.
  • 게임이 PC용이라면 라이선스 비용이 꽤 들 것입니다.

게임샐러드

이 인기 있는 게임 엔진의 제작자는 개발자가 단 한 줄의 코드도 작성할 필요가 없을 것이라고 약속합니다. 일반적으로 이는 사실입니다. 그러나 모든 좋은 점에 대해서는 비용을 지불해야 합니다. 엔진에는 여러 가지 중요한 단점이 있습니다. iPhone만으로 게임을 개발할 계획이라면 이것이 당신의 선택입니다.

  • 무료 라이센스(PRO 버전에 대해서만 비용을 지불하면 됩니다)
  • 활동적인 커뮤니티;
  • 신속한 프로토타이핑을 위한 탁월한 엔진;
  • Cocona, Moai 등 인기 모바일 플랫폼과 호환됩니다.
  • 제한된 개발 도구 세트;
  • iOS 플랫폼의 대부분의 기능에 액세스할 수 없습니다.

게임메이커:스튜디오

만약 당신이 초보 개발자이고 간단하고 이해하기 쉬운 엔진이 필요하다면 GameMaker: Studio가 당신의 목표를 완전히 충족시킬 것입니다.

  • 간단하고 직관적인 컨트롤;
  • 독점 프로그래밍 언어 GML(Game Maker Language);
  • Steam과의 통합;
  • 크로스 플랫폼.
  • 게임 문제를 해결하기가 상대적으로 어렵습니다.
  • 게임을 인기 있는 플랫폼으로 내보내려면 상당한 비용을 지불해야 합니다.

앱 게임 키트

App Game Kit는 개발자를 위한 크로스 플랫폼 소프트웨어입니다. 다양성과 사용 용이성으로 인해 높이 평가됩니다.

  • 주요 플랫폼에 대한 코드를 작성할 수 있습니다. 안드로이드 iOS, 윈도우, 맥, 리눅스;
  • 모든 장치에서 게임을 테스트할 수 있는 IDE가 완비되어 있습니다.
  • 추가 설치 없이 이미 IAP, AdMob 및 Push가 포함되어 있습니다.
  • 2D 그래픽, 물리 및 네트워크 상호 작용을 위한 강력한 스크립트가 있습니다.
  • 이 엔진을 사용하는 사람이 거의 없기 때문에 프로그램의 단점은 오랫동안 제거되지 않습니다(상대적으로 약한 기술 지원).
  • 많은 버그(이전 단락에서 자연스럽게 이어짐).

코코스2D

많은 디자이너들은 Cocos2D를 적응력이 뛰어나고 동시에 초보 개발자에게 완벽하게 적합한 몇 안 되는 엔진 중 하나로 간주합니다.

  • iOS 플랫폼에 완벽하게 통합되었습니다.
  • 무료 오픈 소스;
  • 다양한 개발 도구 선택;
  • 강력한 커뮤니티 지원.
  • 대부분의 아날로그보다 사용하기가 더 어렵습니다.
  • 높은 진입 장벽;
  • Mac 또는 iOS용으로 특별히 "맞춤형"으로 제작되었습니다. 크로스 플랫폼 기능은 없습니다.

결론적으로 사람들은 콘솔, 모바일 장치, PC, 심지어 TV에서도 게임을 하기 때문에 개발자는 항상 자신의 목표에 맞는 엔진을 찾을 수 있는 기회를 갖게 됩니다. 제 글이 여러분이 선택을 하고 계속 성장하는 게임 산업에 성공적으로 참여하는 데 도움이 되기를 바랍니다.