동상과 같은 엔진은 초기 초기 단계에서 어떤 모습입니까? [닫은]


15

나는 Battlefield를 플레이하면서 큰 재미를 느꼈으 며, 모든 모습과 소리에 날아갔습니다. 게임 엔진이 어떤 삶을 시작하는지 궁금했습니다. 코드를 작성하는 시점에서 마지막으로 무언가를 수행하고 모든 텍스처, 빛 및 입자를 완벽하게 렌더링하기 전에 무엇을 했습니까?

좋은 기사, 온라인 또는 다른 사람이 본 사례가 있습니까?


1
하지 직접적인 대답하지만,이 비디오의 모든 5 개 부분을 보는 것은 당신에게 기술에 대한 통찰력 제공 할 수 있습니다 youtube.com/watch?v=EN549g0GNgc#t=9m22
Stowelly

답변:


25

당신이에서 얘기하는 경우 매우 시작과 거의 주요 게임 엔진이 더 이상 처음부터 코딩되는 메모와 노트이 예이며, 반드시 항상 작동하는 방법있다. . .

표현:

평평한 큐브를 렌더링하여 시작하십시오. 기본 조명 효과를 추가하십시오. 카메라를 움직일 수있는 방법을 추가하십시오. 이제 무한한 검은 색 빈 공간에 매달린 보링 큐브 주위를 날아갈 수 있습니다. 예

다음으로 모델을 가져 오려고합니다. 최소한 아티스트는 데모 모델 (찻 주전자는 놀랍도록 전통적 임)을 채울 수 있지만 실제 게임 모델을 보유하고있을 수도 있습니다. 다시, 우리는 현재 플랫 쉐이딩을 고수하고 있으므로 마치 마치 만든 것처럼 보일 것입니다. . . 글쎄요, 사실적인 물질은 아니지만 무광택 플라스틱과 도자기 사이의 일종의 십자가입니다. 그러나 조명 좋지 않습니다. 그리고 우리는 여전히 완전히 움직이지 않는 시점에 있습니다.

다음 3 가지 주요 단계는 순서에 관계없이 수행 할 수 있습니다.

  • 먼저 지형을 원할 것입니다. 대부분의 현대 게임은 렌더링을 "정적 지오메트리"와 "액터"로 나눕니다. 여기서 정적 지오메트리에는 변경되지 않는 것 (벽,지면, 가로등 기둥)이 포함되고 배우에는 변경되는 것 (플레이어, 차량, 파괴 가능한 가로등 기둥)이 포함됩니다. 기본 렌더링 개념은 둘 다 동일합니다. 액터에는 할 수없는 정적 지오메트리에 대해 최적화 할 수 있습니다. 게임 플레이 엔지니어가 실제로 가려면 지형 이 필요 합니다. 대기중인 경우 최소한 기본 지형 렌더링을 준비해야합니다.

  • 둘째, 텍스처링을 원할 것입니다. 이것은 주제이며, 이정표를 세우고 더 중요한 것을 수행 한 다음 반복해서 다시 돌아올 가능성이 높습니다. 첫 번째 패스는 단순히 모델에 텍스처를 추가 할 수 있습니다. 두 번째 패스는 향상된 조명 및 표면 동작을 추가 할 수 있습니다. 세 번째 패스는 그림자를 추가 할 수 있습니다 (그림자에 대한 전체 응답을 채울 수 있음). 어떤 종류의 게임을 하느냐에 따라, 이것은 임의로 복잡해질 수 있습니다. 여기 어딘가에서 전체 게임 엔진을 지연 렌더링으로 전환 할 수도 있습니다.

  • 셋째, 애니메이션이 필요합니다. 애니메이터 (1995 년에 거주하지 않는다고 가정)는 모델을 통해 실행되는 뼈와 특정 애니메이션 동안 뼈가 어떻게 움직이는 지에 대한 정보로 구성된 모델에 애니메이션 리그를 설정합니다. 필요할 때 애니메이션을 재생하는 기능부터 시작하여 애니메이션을 혼합하는 기능을 추가 할 수 있습니다.

이 모든 작업이 완료되면 이제 호환성 문제를 해결해야합니다. AAA 게임을하고 있다면, 여러 종류의 하드웨어에서 코드를 테스트 할 수있는 방법이있을 것입니다. 내부에 있거나 테스트 회사와 계약을 맺을 수도 있습니다. 많은 코드가 특정 그래픽 카드 또는 특정 드라이버 버전에서 작동하지 않으므로 최대한 많은 문제를 해결해야합니다.

또한 최적화를 고려해야 할 때입니다. 렌더링은 크고 큰 속도 문제이므로 이제 최대한 빨리 실행하기 위해 하드웨어를 가장 심도있게 활용하는 방법을 찾아야합니다. 이것이 "호환성"과 충돌 할 수 있다고 생각하면 맞습니다! 완전히 그렇습니다! 가장 좋은 최적화 방법은 일부 카드에서는 평평하지 않을 것입니다. 이러한 모든 요소의 균형을 맞 춥니 다.

이 시점에서 아티스트는 새로운 텍스처링 도구 또는 새로운 애니메이션 기능을 요구할 것이며 레벨 디자이너는 새로운 지형 렌더링 기술을 원할 것입니다. "다음 세 가지 주요 단계는 순서에 상관없이 수행"으로 돌아가서 게임이 끝날 때까지 반복하십시오.

게임 플레이 :

나는 시각적으로 눈에 띄지 않는 부분을 건너 뛸 것입니다. 먼저, 지형 렌더링이 시작될 때까지 기다려야하지만, 그때까지 수행 할 수있는 많은 백엔드 작업이 있습니다.

일단 그것을 얻으면 몇 가지 기본 충돌을 설정합니다. 이것은 게임 내 위치로 비행 한 다음 큐브를 떨어 뜨리는 버튼을 누르는 형태를 취할 것입니다. 큐브가 떨어지고 땅에 닿습니다. 큐브가 계속지면에 떨어지면 플레이어 이동 설정을 시작할 수 있으므로 플레이어와 같은 방식으로 전 세계를 달릴 수 있습니다.

기본 운동 물리학이 작동하면 "동시에 수행 할 수있는"세그먼트 중 하나에 속합니다.

  • 전투를 실시해야합니다. 사물을 사격 할 수있는 사물이 필요하며 모든 사물이 적절하게 행동해야합니다.

  • 물리학을 구현해야합니다. 충돌은 작동하지만 충돌은 물리의 작은 부분 일뿐입니다. 누군가 탱크에서 지프를 내릴 때, 모든 것이 의도 한대로 거동해야합니다.

  • 게임 메커니즘을 구현해야합니다. 언제 이겼는지 졌는지 어떻게 알 수 있습니까? 일이 얼마나 자주 발생하며 어떤 일을 통제합니까? 공산당이 스폰 지점을 정복하면 왜 아나키스트 차량이 계속 생성됩니까? 그런 종류의 것.

이러한 모든 작업은 디자이너가 원하는 작업량에 따라 임의의 시간이 걸릴 수 있습니다. 또한 버그를 추적하는 데 많은 시간을 할애 할 것입니다. 텍스처링되지 않은 세계, 캐릭터 리그 위치 에서 실행되는 모델 또는 "TANK"라는 단어가 무성하게 스프레이 페인트되어있는 큰 상자에있는 탱크에서는 이런 현상이 많이 발생합니다.

UI :

UI와 게임 월드 렌더링은 완전히 다른 코드 경로를 사용하는 경향이 있기 때문에 UI는 실제로 메인 렌더링 코드가 시작되기 전에 시작할 수 있습니다. 큐브로 시작하는 대신 상자로 시작한 다음 상자에 텍스처를 추가 한 다음 상자에 텍스트를 추가합니다.

이 시점에서 여러분의 인생은 범용 위젯을 작성하는 데 충분한 시간을 할애하면서 디자이너와 게임 메카니즘 개발자가 모호한 현실감으로 게임을 테스트 할 수있는 충분한 UI 시간을가집니다. 어느 시점에서 UI 아티스트는 UI에 대해 일관된 느낌을 갖게되고, 최종 UI 요소에 대한 작업을 시작하면서 실제 플레이어에서 UI 요소를 테스트하여 이해하고 사용 가능한지 확인합니다.

필요에 따라 이것에 대해 더 많이 이야기 할 수는 있지만, 그렇게하면 큰 반응으로 변할 것입니다. 지금은 :)


4
굉장합니다. 시간과 매혹적인 통찰력에 감사드립니다!
Djave

If the Communists conquer a spawn point, why does it keep spawning Anarchist vehicles?스페인 남북 전쟁에 관한 게임을하고 있습니까?
피터 테일러

1
나쁘지는 않지만 게시물은 AAA 게임이 아닌 기본 게임에만 적용됩니다. 이제 기술은 겨우 절반에 불과하고 도구는 다른 것입니다. UDK를 둘러 보면 얼마나 많은 기능이 들어 있는지 알 수 있습니다.
Peter Ølsted

1
또한, 텍스처와 쉐이더의 단순한 개념은 확산, 반사, 환경 및 에미 티브 (다른 것들 중에서)를 사용하여 며칠이 지날수록 훨씬 더 유쾌합니다. 지금 며칠 동안 재료가 어떻게 만들어 지는지 살펴보십시오. udk.com/elements/img/galleries/features-shaders-hero.jpg
Peter Ølsted

1
이것은 굉장한 반응이었습니다.
jcora
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.