요즘 게임 개발에 어떤 기술이 사용됩니까? [닫은]


14

온라인 포럼에서 게임 개발에 대한 질문을 할 때마다 항상 선 그리기 알고리즘 학습, 비트 수준 이미지 조작 및 비디오 압축 해제 등과 같은 제안을받습니다.

그러나 God of War 3과 같은 게임을 보면 이러한 게임이 저수준 기술을 사용하여 개발 될 수 있다고 믿기가 어렵습니다.

그러한 게임의 굉장함은 이해하기 쉬운 프로그래밍 방법론을 무시합니다.

게임 하드웨어 외에도 오늘날에는 정말 괴물입니다. 따라서 개발자가 더 높은 수준의 추상화로 작업해야하는 이유가 있습니다.

게임 업계의 최신 개발 방법론은 무엇입니까? 30-35 명의 개발자로 구성된 팀 (대부분의 관리 및 마케팅 플러 프 인 팀)은 그러한 마음을 흔들리는 게임을 어떻게 만들 수 있습니까?

질문이 너무 일반적인 것처럼 보이면 God of War 3의 아키텍처를 설명 할 수 있습니까? 아니면 어떻게 클론을 생산할 것인가? 객관적으로 대답 할 수 있어야한다고 생각합니다.


2
누군가가 공감대를 설명 할까?
Monika Michael

2
다운 보트는 질문이 "건설적"이 아니기 때문입니다. 인용, "이 질문은 우리의 Q & A 형식의 좋은 적합하지 않다. 우리는 답변은 사실, 참조, 또는 특정 전문 지식에 의해 지원 될 것으로 예상하지만,이 질문 것입니다 가능성이 SOLICIT 논쟁, 인수, 폴링, 또는 연장 논의" . 즉, 질문은 정확하게 대답 할 수 없습니다. 나는 아직도 당신의 질문에 장점이 있다고 생각하지만 재구성해야합니다.
9000

2
@ 9000 그리고이 질문은 어떻게 건설적이지 않은 것으로 간주됩니까?

1
@delnan : 아마도 downvoters는 "게임 업계의 최신 개발 방법론은 무엇입니까?" 와 같은 문구에 만족하지 않았을 것입니다. . 나에게 "복제물 생산 방법" 이 훨씬 좋습니다.
9000

답변:


12

면책 조항 : 저는 비디오 게임 개발자가 아닙니다 . 그러나 나는 그것에 대해 "애호가"관심이 있습니다.


당신이 보는 대부분의 AAA 게임은 엔진을 사용하여 만들어졌습니다. 그들은 처음부터 작성되지 않았습니다. 엔진을 프레임 워크처럼 생각하십시오. .NET 프레임 워크, Java SDK, Cocoa 툴킷이 있습니다.

소프트웨어를보다 쉽게 ​​만들고 주방 싱크 코드를 추상화하는 작업에 필요한 모든 것. 필요하지만 매번 쓰는 것은 매우 비생산적입니다.

이러한 엔진을 사용하여 개발자는 게임을 빌드 할 수 있으며 기본 코드에 대해 걱정할 필요가 없습니다. ( 게임 개발은 가장 어려운 소프트웨어 공학 분야 중 하나입니다. )

예를 들어 Unreal Engine 4 에는 킬러 개발 키트와 스튜디오가 있습니다.

http://www.youtube.com/watch?v=MOvfn1p92_8

여기에 이미지 설명을 입력하십시오

많은 다른 엔진이 있습니다. 일부는 무료이며, 일부는 무료이며, 일부는 더 높은 추상화를 제공합니다.

예를 들면 다음과 같습니다.

  • 오 그레
  • 언리얼 엔진
  • 통일
  • 출처
  • 그리고 더 많은...

5

gbjbaanb의 의견과 관련하여, 게임 프로그래밍을 재미있게 만드는 것은 코드베이스의 수명이 제한되어 있고 정밀도가 부족하다는 것입니다. 예를 들어, FPS 게임을 디자인 할 때 움직임 알고리즘으로 인해 게임 캐릭터가 몇 픽셀 떨어져있는 경우, 큰 문제가 아니며 아무도 눈치 채지 못할 가능성이 있습니다. 비즈니스 소프트웨어를 설계하고 때로는 합계 기능으로 인해 몇 달러가 절약되는 경우 훨씬 심각한 버그입니다. 따라서 게임을 디자인 할 때 일부 측면의 정확성이 떨어질 수 있습니다 (답이 정확한지 확인하는 자동화 된 테스트 스위트가 아니라 사람의 테스트 만 통과하면 됨).

내 경험은 게임 프로그래밍, 특히 실시간 게임의 경우 GUI 작업을 제외하고 내가 한 다른 소프트웨어 개발과는 전혀 다른 경험이었습니다. 당신이 시도해야 할 일입니다!


4

답은 "엔진"입니다. 많은 fo 게임은 기본적으로 큰 라이브러리 또는 프레임 워크 인 다양한 그래픽 및 게임 플레이 엔진 위에 구축됩니다.

OSS 세계에서 소스 와 같은 상업용 게임의 경우 예를 들어 오우거 를 살펴보십시오 .

많은 코드가 일회용이며 비즈니스 환경에서 소집을 통과하지 못하는 것과 같은 다른 요소가 있습니다.하지만 게임의 수명이 제한되고 개발 시간이 단축되어 코드가 (거의) 설계되었음을 의미합니다. 유지 보수되지 않고 작동합니다.


물론이 엔진은 저수준 API (예 : DX 또는 그래픽의 OpenGL) 위에 추상화 된 (일반적으로 고도로 최적화 된) C / C ++ 코드 작성 추상화입니다.

그러나 C 또는 C ++를 사용하여 매우 간단한 게임을 제작 한 경험이 있으면서 개발자에게 게임 개발 방법을 알 수있게하는 것이 좋습니다.
KyelJmD

4

Unity3D 는 정말 좋습니다. 여기 내가 좋아하는 점이 있습니다.

  • 이를 통해 플랫폼에 구애받지 않는 방식으로 게임을 구축 한 다음 Windows, Mac OS X, Android, IOS 용 배포 가능 파일을 자동으로 생성 할 수 있습니다. 이것은 현재 버전 (3.x)에 해당됩니다. 분명히 버전 4를 사용하면 Linux에서도 배포 할 수 있습니다.

http://en.wikipedia.org/wiki/Unity_(game_engine)#Major_features

  • 실제로 (상업적으로) 라이센스를 사용하려면 유료 라이센스가 필요하지만 대부분의 기능을 사용할 수있는 무료 버전을 다운로드 할 수 있습니다 (예 : 모바일 플랫폼 용 배포 가능 제품을 만들 수 없음). 구매 여부를 결정하기 전에 미리 볼 수있는 좋은 방법입니다.

http://unity3d.com/unity/licenses

  • 대부분의 3D 모델링 소프트웨어와 함께 작동합니다 (3d Studio Max를 선호하지만 다른 것도 지원합니다).

http://unity3d.com/unity/editor/importing (좀 아래로 스크롤)

  • 좋은 API 인 C #으로 코딩 (스크립트 작성)을 수행 할 수 있으며 API와 컴파일 시간을 확인합니다. 우수한 개발 환경 (IDE 및 모든 것)이 제공됩니다. 다른 것을 원하면 Javascript도 지원합니다.

  • 매우 우수한 물리 지원 (충돌, 중력, 힘 등)이 있습니다.

http://docs.unity3d.com/Documentation/Manual/Physics.html

  • 다양한 모델, 스크립트, 애니메이션 등을 구매할 수있는 에셋 스토어가 있으며, 스킬 (및 월렛)에 따라 게임에 알맞은 리소스를 빠르게 얻을 수 있도록 스킬을 가져 오거나 수정할 수 있습니다.

  • 마지막으로, 엄청나게 빠릅니다. 모바일 데모를 확인하십시오 .IMHO 그들은 꽤 잘 움직이고 매우 괜찮은 그래픽을 가지고 있습니다.

http://unity3d.com/gallery/made-with-unity/game-list

현재 기다리고있는 멋진 Unity 프로젝트가 있습니다.

브라이언 파고의 황무지 2

그들은 좋은 블로그에 대한 항목이 그들이 유니티를 선택한 이유 뿐만 아니라 다른이 함께가는 작업 방법 논의를 .


3

ID 소프트웨어는 일반적으로 최신 게임을 게시하는 공급 업체 중 하나입니다. 몇 년 후 그들은 종종 공개 소스로 배포합니다. 에 http://fabiensanglard.net/quake3/index.php 당신은 Quake 3 프레임 테스트 소스 코드의 분석을 찾을 수 있습니다. 이것은 매우 장황한 설명이며 Quake3는 꽤 오래되었지만 개념은 현대 게임과 관련이 있어야합니다.

그렇습니다. 최첨단의 빠르고 경쟁이 치열한 게임 엔진을 구축하려면 저수준의 모든 요소를 ​​알아야합니다. 당신이 그것들에 관심이 없다면 : 다른 엔진 (quake3 엔진 또는 다른 답변의 엔진)이 있지만 글쎄, 당신은 새로운 혁신적인 게임을 만들지 않습니다. ;-)


이러한 분석의 관점에서, Quake 3는 오늘날 게임 개발에있어 몇 가지 중요한 "낮은 수준의"기술을 선행합니다. 우선 (OpenGL 제공) 셰이더.

퀘이크 3은 1999 년에 출시되었습니다. 그렇습니다. 그러나 그것은 사람들이 가능한 일의 한계에 가려고 노력하는 방법을 보여줍니다. 사용 가능한 다른 대부분의 엔진은 최대 성능 대신 재사용 성, "깨끗한"코드 등을 선호합니다. (이것은 다른 엔진이 나쁘고 느리다는 것을 의미하지는 않지만 3D 게임 엔진 아키텍처 및 구현에 대해 배우려면 여전히 그것을 볼 가치가 있다고 생각합니다)
johannes

Quake를 예로 사용하여 3D 게임에서 이진 저수준 수학에 관한 또 다른 관련 기사 : blog.quenta.org/2012/09/0x5f3759df.html
johannes

1

많은 답변에서 언급했듯이 게임 엔진과 라이브러리는 큰 역할을합니다. 그러나 이는 소규모 "인디"게임보다 중대형 상용 게임에 적용됩니다.

예를 들어, 모바일 플랫폼에서 대부분의 게임은 프레임 워크 인 본격적인 게임 엔진에 의존하기보다는 비교적 원시적 인 라이브러리 세트만을 사용하여 작성됩니다. 그것들은 존재하지만 대부분 이전 프로젝트의 코드를 재사용하는 것입니다.

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