비디오 게임 프로그래머

Video game programmer

게임 프로그래머는 주로 게임 개발 도구와 같은 관련 소프트웨어 또는 비디오 게임코드베이스를 개발하는 소프트웨어 엔지니어, 프로그래머 또는 컴퓨터 과학자다.게임 프로그래밍은 많은 전문 분야를 가지고 있는데, 모두 "게임 프로그래머"[1][2]라는 용어에 속한다.게임 프로그래머는 게임디자인을 하는 게임디자이너와 혼동해서는 안 된다.[3]

역사

애플 II 시리즈는 초기 가정용 컴퓨터 시대에 인기 있는 비디오 게임 플랫폼이었다.후기 시스템에 의해 압도당했음에도 불구하고, 1990년대 초반까지 인기를 유지했다.

비디오 게임 초기(1970년대 초반부터 1980년대 중반까지)에는 게임 프로그래머가 디자이너와 아티스트의 직업도 맡았다.이것은 일반적으로 초기 컴퓨터의 능력이 너무 제한적이어서 기능별로 전문인력을 보유하는 것이 불필요했기 때문이다.게임 개념은 일반적으로 가벼웠고 게임은 한 번에 몇 분씩만 플레이하도록 되어 있었지만, 더 중요한 것은 아트 콘텐츠와 게임 플레이의 변형은 컴퓨터의 제한된 힘에 의해 제약을 받았다.

후에, 전문화된 아케이드 하드웨어와 홈 시스템이 더 강력해짐에 따라, 게임 개발자들은 더 깊은 줄거리를 개발할 수 있었고 고해상도 및 풀 컬러 그래픽, 물리학, 첨단 인공지능, 디지털 사운드와 같은 기능들을 포함할 수 있었다.현대 게임은 전문 그래픽 아티스트가 개발한 자산을 활용한 3D 그래픽풀모션 비디오를 주로 자랑할 정도로 기술이 크게 발전했다.요즘, "프로그래머 아트"라는 경멸적인 용어는 초기 비디오 게임의 전형적인 밝은 색상과 블록적인 디자인을 암시하게 되었다.

게임에 더 깊이와 자산을 더하려는 욕구는 분업이 필요했다.처음에는 미술 제작이 전업 예술가로 밀려났다.다음 게임 프로그래밍게임 디자인과는 별개의 분야가 되었다.이제, 퍼즐 게임Bejewled와 같은 일부 게임들만이 단 한 명의 풀타임 프로그래머를 필요로 할 정도로 간단하다.그러나 이러한 분업에도 불구하고 대부분의 게임 개발자(예술가, 프로그래머, 심지어 제작자)는 현대 게임의 최종 디자인에 대해 어느 정도 발언권을 가지고 있다.

규율

현대의 비디오 게임은 고급 물리학, 인공지능, 3D 그래픽, 디지털 사운드, 오리지널 음악 점수, 복잡한 전략을 포함할 수 있으며, 여러 입력 장치(마우스, 키보드, 게임 패드 및 조이스틱 등)를 사용할 수 있으며 인터넷 또는 LAN을 통해 다른 사람과 게임을 할 수 있다.게임의 각 측면은 한 프로그래머의 모든 시간을 소비할 수 있고, 많은 경우 여러 프로그래머를 소비할 수 있다.일부 프로그래머들은 게임 프로그래밍의 한 분야를 전문으로 할 수도 있지만, 많은 프로그래머들은 여러 가지 측면에 익숙하다.각 기능에 필요한 프로그래머의 수는 프로그래머의 기술에 다소 의존하지만, 대부분 개발 중인 게임의 유형에 따라 결정된다.

게임 엔진 프로그래머

게임 엔진 프로그래머들은 시뮬레이션 물리학과 그래픽 분야를 포함하여 게임의 기본 엔진을 만든다.[4]점점 더 많은 비디오 게임들이 상업적, 오픈 소스 또는 무료의 기존 게임 엔진을 사용한다.그들은 종종 특정 게임에 맞게 맞춤화되며, 이러한 프로그래머들은 이러한 수정을 처리한다.

물리 엔진 프로그래머

게임의 물리학 프로그래머는 게임이 채택할 물리학을 개발하는 데 전념한다.[5]일반적으로 게임은 실제 물리학의 몇 가지 측면만을 시뮬레이션할 것이다.예를 들어, 우주 게임은 시뮬레이션된 중력을 필요로 할 수 있지만 물의 점도를 시뮬레이션할 필요는 없다.

처리 주기는 항상 프리미엄이기 때문에, 물리학 프로그래머들은 계산적으로 저렴하지만, 문제의 게임에 대해 "충분히 좋은" 것을 보고 행동할 수 있다.다른 경우에 비현실적인 물리학은 더 쉬운 게임 플레이를 허용하거나 극적인 효과를 위해 사용된다.때때로 상황의 특정 부분집합이 지정되고 그러한 상황의 물리적 결과는 어떤 종류의 기록에 저장되며 런타임에 전혀 계산되지 않는다.

일부 물리 프로그래머들은 역동학 및 게임 캐릭터에 기인하는 다른 동작의 어려운 작업까지 파고들 수 있지만, 이러한 동작들은 복잡한 계산으로 CPU에 과부하를 주지 않기 위해 모션 캡처 라이브러리를 통해 점점 더 할당된다.

그래픽 엔진 프로그래머

역사적으로 이 제목은 보통 2D 그래픽에 대한 전문 블리터 알고리즘과 영리한 최적화를 개발한 프로그래머의 것이었다.그러나 오늘날에는 복잡한 3D 그래픽 렌더러를 개발하고 수정하는 것을 전문으로 하는 프로그래머들에게 거의 독점적으로 적용되고 있다.하지만, 일부 2D 그래픽 기술은 새로운 세대의 휴대폰휴대용 게임기를 위한 게임을 개발하는데 최근에 다시 유용해졌다.

3D 그래픽 프로그래머는 벡터 매트릭스 수학, 쿼터니언선형 대수 같은 고급 수학 개념을 확실히 파악해야 한다.

게임 개발의 이 분야에 전문화된 숙련된 프로그래머들은 높은 임금을 요구할 수 있고 대개는 부족한 상품이다.[citation needed]그들의 기술은 어떤 플랫폼에서든 비디오 게임에 사용될 수 있다.

인공지능 프로그래머

인공지능 프로그래머는 적과 상대에게 지능을 시뮬레이션하는 시간의 논리를 개발한다.[6]이 과제들이 다른 분야에 특화된 프로그래머들에 의해 시행되곤 했듯이, 최근에는 전문 분야로 발전하고 있다.AI 프로그래머는 경로 찾기, 전략 및 적 전술 시스템을 프로그래밍할 수 있다.이것은 게임 프로그래밍의 가장 도전적인 측면 중 하나이며 그것의 정교함은 빠르게 발전하고 있다.현대 게임은 프로그래밍 직원의 약 10~20%를 AI에 바친다.[7]

문명3 같은 전략 게임이나 더 엘더 스크롤 4: 오블리비언 같은 롤플레잉 비디오 게임과 같은 게임들은 AI를 많이 사용하고 퍼즐 게임과 같은 다른 게임들은 그것을 아껴 쓰거나 아예 사용하지 않는다.많은 게임 개발자들이 대본을 통해 자신의 AI를 게임에 프로그래밍하는 데 사용할 수 있는 전체 언어를 만들었다.이러한 언어는 일반적으로 게임을 구현하는 데 사용되는 언어보다 기술성이 떨어지며, 게임이나 레벨 디자이너가 게임의 세계를 구현하는 데 사용하는 경우가 많다.많은 스튜디오는 또한 플레이어가 게임 스크립팅을 사용할 수 있도록 하고 있으며, 타사 모델 개발자들에 의해 광범위하게 사용되고 있다.

게임 프로그래밍에 사용되는 AI기술은 학문적인 AI프로그래밍과 연구와 혼동해서는안 된다.두 영역 모두 서로 차입하지만, 예외는 있지만, 대개는 구별되는 학문으로 간주된다.예를 들어 라이온헤드 스튜디오 블랙&화이트의 2001년 게임은 게임 플레이 중 행동 모델링에 학습을 사용하는 사용자 제어 생물에 대한 독특한 AI 접근 방식이 특징이다.[8]최근 몇 년 동안, AI 연구와 게임 AI 프로그래밍의 유망한 분야에 개입하는 쪽으로 더 많은 노력이 기울여지고 있다.[9][10][11][12]

사운드 프로그래머

항상 별도의 규율이 있는 것은 아니지만, 퐁 시절부터 사운드 프로그래밍은 게임 프로그래밍의 주축이 되어왔다.대부분의 게임은 오디오를 사용하며, 많은 게임들은 완전한 음악적 점수를 가지고 있다.컴퓨터 오디오 게임은 그래픽을 완전히 피하고 소리를 주된 피드백 메커니즘으로 사용한다.[13]

많은 게임들이 3D 포지셔닝 사운드와 같은 첨단 기술을 사용하며 오디오 프로그래밍을 비교가 되지 않는 문제로 만들고 있다.이러한 게임으로, 한두 명의 프로그래머들은 게임의 사운드 엔진을 만들고 다듬는데 모든 시간을 할애할 수 있으며, 사운드 프로그래머들은 디지털 신호 처리에서 훈련을 받거나 공식적인 배경을 가질 수 있다.

스크립팅 도구는 종종 사운드 디자이너가 사용하기 위해 사운드 프로그래머에 의해 만들어지거나 유지된다.이러한 도구를 통해 설계자는 소리를 캐릭터, 액션, 사물 및 이벤트와 연관시킬 수 있으며 게임 환경(레벨 또는 영역)에 음악 또는 대기 소리를 할당하고 반향과 같은 환경 변수를 설정할 수 있다.

게임플레이 프로그래머

모든 프로그래머들이 게임이 제공하는 내용과 경험을 더하지만, 게임 플레이 프로그래머는 게임의 전략, 게임의 역학과 논리의 구현, 그리고 게임의 "감정"에 더 집중한다.이것은 보통 이 프로그래머가 하는 일이 게임마다 다르기 때문에 별도의 부문은 아니며, 그들은 필연적으로 그래픽이나 사운드와 같은 게임 개발의 보다 전문화된 분야와 관련될 것이다.

이 프로그래머는 전략표를 실행하거나, 입력 코드를 수정하거나, 게임을 변화시키는 다른 요소들을 조정할 수 있다.그러나 이러한 측면의 대부분은 이러한 영역을 전문으로 하는 프로그래머에 의해 변경될 수 있다(예를 들어, 전략표는 AI 프로그래머에 의해 구현될 수 있다).

스크립터

초기의 비디오 게임에서, 게임 플레이 프로그래머들은 게임 안의 모든 콘텐츠를 만들기 위해 코드를 쓰곤 했다. 플레이어가 특정한 적을 쏘도록 되어 있고, 화면에 있는 텍스트와 함께 빨간색 키가 나타나도록 되어 있다면, 이 기능성은 모두 게임 플레이 프로그래머에 의해 C어셈블리 언어로 핵심 프로그램의 일부로 작성되었다.

오늘날 더 자주 코어 게임 엔진은 대개 게임 플레이 프로그래밍과 분리된다.이것은 몇 가지 발전적 이점이 있다.게임 엔진은 그래픽 렌더링, 사운드, 물리학 등을 다루는 반면 스크립팅 언어는 영화적 이벤트, 적의 행동, 게임 목표 등을 다룬다.대형 게임 프로젝트에는 이러한 종류의 게임 콘텐츠를 구현하기 위한 스크립터 팀이 있을 수 있다.

스크립터들은 또한 대개 게임 디자이너들이다.종종 C++를 숙달한 자격 있는 게임 디자이너를 찾는 것보다 스크립트 언어를 배울 수 있는 자격을 갖춘 게임 디자이너를 찾는 것이 더 쉽다.

UI 프로그래머

이 프로그래머는 게임을 위한 사용자 인터페이스(UI) 프로그래밍을 전문으로 한다.[14]일부 게임에는 사용자 지정 사용자 인터페이스가 있지만, 이 프로그래머는 여러 프로젝트에 걸쳐 사용할 수 있는 라이브러리를 개발할 가능성이 더 높다.대부분의 UI는 2D로 보이지만, 현대의 UI는 일반적으로 나머지 게임과 동일한 3D 기술을 사용하기 때문에 3D 수학과 시스템에 대한 지식이 이 역할에 도움이 된다.고급 UI 시스템은 컨트롤에 대한 투명성, 애니메이션 또는 입자 효과와 같은 스크립팅 및 특수 효과를 허용할 수 있다.

입력 프로그래머

조이스틱은 1980년대 게임의 주된 입력 장치였다.이제 게임 프로그래머들은 넓은 범위의 입력 장치를 설명해야 하지만, 오늘날 조이스틱은 비행 시뮬레이터에서는 여전히 우세하지만 비교적 적은 수의 게임에서 지원된다.

입력 프로그래밍은 보통 직책이나 특정 게임 프로젝트에서 정규직은 아니지만 여전히 중요한 작업이다.이 프로그래머는 키보드, 마우스 또는 조이스틱과 같은 입력 장치가 게임에 어떤 영향을 미치는지 명시하는 코드를 쓴다.이러한 루틴은 일반적으로 생산 초기에 개발되며 개발 중에 지속적으로 수정된다.일반적으로, 한 프로그래머가 이러한 시스템 개발에 그의 전 시간을 할애할 필요는 없다.Wii RemoteKinect와 같은 장치를 활용한 실시간 모션 제어 게임은 매우 복잡하고 짧은 대기 시간 입력 시스템이 필요할 수 있는 반면, Heroes of Mayor와 Magic과 같은 마우스 기반 턴 기반 전략 게임의 HID 요건은 구현하기가 상당히 간단하다.

네트워크 프로그래머

이 프로그래머는 플레이어가 경쟁하거나 협력할 수 있는 코드를 작성하고, LAN이나 인터넷을 통해 연결된다(또는 드문 경우, 모뎀을 통해 직접 연결).[15]이러한 게임 기능을 구현하는 프로그래머들은 종종 가장 기술적으로 어려운 역할 중 하나로 여겨지는 이 한 역할에 모든 시간을 할애할 수 있다.네트워크 지연 시간, 패킷 압축 및 연결 끊김 또는 중단은 고려해야 할 몇 가지 우려 사항일 뿐이다.멀티플레이어 기능이 전체 생산 시간대를 소비할 수 있고 다른 엔진 시스템도 네트워킹을 염두에 두고 설계해야 하지만, 네트워크 시스템은 종종 개발의 마지막 몇 달까지 연기되어 이 역할에 추가적인 어려움을 더한다.일부 타이틀은 관리 부족, 디자인 사전 고려 또는 확장성 부족 등의 우려로 온라인 기능(종종 핵심 게임 플레이보다 우선순위가 낮은 것으로 간주됨)이 출시 수개월을 단축했다.PS3용 Virtua Fighter 5는 이러한 경향의 주목할 만한 예다.[16]

게임 도구 프로그래머

도구 프로그래머는[17] 게임을 위한 맞춤형 도구를 작성함으로써 게임 개발을 도울 수 있다.게임 개발 도구에는 대본 컴파일, 아트 자산의 가져오기 또는 변환, 레벨 편집 등의 기능이 포함되어 있는 경우가 많다.사용된 은 IDE나 그래픽 편집기와 같은 COTS 제품일 수 있지만, 도구 프로그래머들은 상업용 제품에서는 사용할 수 없는 특정 게임에 맞춘 특정한 기능을 가진 도구를 만든다.예를 들어, 어드벤처 게임 개발자는 이야기 대화를 나누기 위한 편집자가 필요할 수 있고, 스포츠 게임 개발자는 선수와 팀 통계를 관리하기 위해 독점적인 편집자를 사용할 수 있다.이러한 도구들은 보통 게임을 구매하는 소비자들에게는 제공되지 않는다.

포팅 프로그래머

플랫폼에서 다른 플랫폼으로 게임을 포팅하는 것은 항상 게임 개발자들에게 중요한 활동이었다.일부 프로그래머들은 이 활동을 전문으로 하며, 하나의 운영체제에서 다른 운영체제로 코드를 변환한다.때때로 프로그래머는 하나의 운영체제만이 아니라 휴대폰과 같은 다양한 장치에서 응용프로그램을 작동시킬 책임이 있다.그러나 종종 "포팅"은 독점적인 언어, 도구 또는 하드웨어가 소스 코드 변환을 성과 없는 노력으로 만들기 때문에 처음부터 전체 게임을 다시 쓰는 것을 포함할 수 있다.

이 프로그래머는 원본 및 대상 운영 체제와 언어 모두에 익숙해야 한다(예를 들어, 원래 C++로 작성된 게임을 자바로 변환), 아트워크와 사운드와 같은 자산을 변환하거나 낮은 메모리 전화기의 코드를 다시 작성해야 한다.이 프로그래머는 또한 약간의 문서, 리팩터 코드를 가지고 있는 일부의 부업 언어 구현, 코드의 여러 분기를 감독하고, 다양한 화면 크기에 맞게 코드를 다시 작성하며, 특별한 운영자 지침을 구현해야 할 수 있다.그들은 또한 게임의 원래 출시에서 발견되지 않은 버그를 고쳐야 할지도 모른다.

기술 프로그래머

기술 프로그래머는 R&D만을 전담하는 특정 부서가 있는 대형 개발 스튜디오에서 발견될 가능성이 더 높다.프로그래밍 팀의 다른 팀원들과는 달리, 기술 프로그래머는 대개 특정 프로젝트나 개발 유형에 장기간 얽매이지 않으며, 그들은 일반적으로 게임 제작자가 아닌 CTO나 부서장에게 직접 보고할 것이다.직책이 암시하듯이, 이 직책은 기술적 관점에서 매우 까다로우며, 대상 플랫폼 하드웨어에 대한 친밀한 지식이 필요하다.과제에는 연구논문에 기술된 알고리즘의 실제적 구현, 매우 낮은 수준의 조립 최적화, 프로젝트의 후반 단계에서 메모리 요건 및 캐싱 문제와 관련된 도전적인 문제를 해결할 수 있는 능력 등 광범위한 주제가 포함된다.이 직책과 일부 다른 직책, 특히 그래픽 프로그래머 사이에는 상당한 양의 교차점이 있다.

제너럴리스트

소규모 팀에서는 한 명 이상의 프로그래머를 필요에 따라 다양한 다른 역할을 맡는 '일반인'으로 묘사하는 경우가 많다.일반론자들은 버그를 추적하고 버그를 고치기 위해 어떤 서브시스템 전문지식이 필요한지 결정하는 작업에 종사하는 경우가 많다.

리드 게임 프로그래머

리드 프로그래머는 궁극적으로 게임의 모든 프로그래밍을 담당한다.게임의 다양한 하위 항목이 제대로 구현되고 있는지 확인하고 프로그래밍 관점에서 발전을 추적하는 것이 그들의 일이다.이 역할의 사람은 대개 게임 프로그래밍의 다른 측면으로부터 몇 년의 경험 후에 이 역할로 전환된다.제목에도 불구하고, 이 사람은 보통 프로젝트 상의 다른 프로그래머들보다 코드를 쓸 시간이 적다. 왜냐하면 그들은 고객이나 게임의 다른 리드들과의 미팅과 접속에 참석해야 하기 때문이다.그러나, 리드 프로그래머는 여전히 최소한 어느 정도의 시간을 프로그램할 것으로 예상되며, 또한 게임의 대부분의 기술적 분야에 정통할 것으로 예상된다.기술 책임자와 수석 프로그래머의 역할에는 종종 상당한 공통점이 있다. 그래서 그 직업은 종종 한 사람이 담당한다.

플랫폼

게임 프로그래머들은 Wii U윈도우와 같은 플랫폼이나 다른 플랫폼에 전문화 될 수 있다.그래서, 프로그래머는 하나의 게임 프로그래밍 분야를 전문으로 하는 것 외에도, 특정 플랫폼에서 개발을 전문으로 할 수도 있다.따라서, 한 게임 프로그래머의 제목은 "PlayStation 3 3D Graphics Programmer"일 수 있다.AI와 같은 몇몇 분야들은 다양한 플랫폼으로 옮겨질 수 있고, 한 시스템이나 다른 시스템에 맞출 필요가 없다.또한, 3D 그래픽 프로그래밍 개념, 사운드 엔지니어링, 사용자 인터페이스 설계와 같은 일반적인 게임 개발 원리를 플랫폼 간에 전송할 수 있다.

교육

특히 취미로 시작해 스스로 많은 프로그래밍을 재미 삼아 시작해 결국 자신의 적성과 자생적 경험으로 성공하는 등 이 과목의 정규교육이 없는 게임 프로그래머들이 많다.그러나 대부분의 게임 프로그래머들의 취업 청탁은 학사학위(수학, 물리학, 컴퓨터 과학, "또는 동등한 경험")를 명시한다.

점점 더 많은 대학들이 게임 프로그래밍 강좌와 학위를 제공하기 시작하고 있다.그러한 학위는 컴퓨터 공학소프트웨어 공학 학위와 상당히 중복된다.[citation needed]

급여

게임 프로그래머들의 급여는 회사마다, 그리고 나라마다 다르다.그러나 일반적으로 게임 프로그래밍에 대한 보수는 사업 부문의 비슷한 일자리에 대한 보수는 대체로 거의 같다.이것은 게임 프로그래밍이 어떤 유형이든 가장 어려운 부분이고 보통 주류 프로그래밍보다 더 긴 시간을 필요로 한다는 사실에도 불구하고 그렇다.

미국의 2010년 조사 결과에 따르면 게임 프로그래머의 평균 연봉은 연간 9만5,300달러인 것으로 나타났다.경력이 3년 미만인 가장 경험이 적은 프로그래머들은 평균 연봉이 7만2000달러가 넘는다.6년 이상의 경력을 가진 가장 경험이 많은 프로그래머들은 평균 연봉이 12만 4천 달러가 넘는다.[18]

일반적으로, 몇몇 3D 그래픽 프로그래머들은 그들의 봉급에 도전하거나 능가할 수 있지만, 리드 프로그래머들은 가장 많은 보상을 받는다.위와 같은 조사에 따르면, 평균적으로 수석 프로그래머들은 연간 12만7,900달러를 번다.[19]

직업안정

비디오 게임 판매는 영화와 같은 다른 형태의 오락과 경쟁하지만, 비디오 게임 산업은 극도로 불안정하다.게임 프로그래머들은 그들의 고용주들이 재정적인 어려움을 겪기 때문에 이러한 불안으로부터 격리되지 않는다.

비디오 게임 개발자의 가장 흔한 유형인 제3자 개발자들은 비디오 게임 출판사의 꾸준한 자금 유입에 의존한다.이정표나 기한을 맞추지 못하면(또는 게임 취소와 같은 다른 이유들로 인해) 기금이 부족해질 수 있고, 개발자가 직원을 감원시키거나 파산을 선언하고 폐업을 선언할 수 있다.대형 퍼블리셔에서 일하는 게임 프로그래머들은 이러한 상황에서 어느 정도 절연되어 있지만, 대형 게임 퍼블리셔들조차 폐업할 수 있다(Hasbro Interactive가 인포그램에 매각되어 여러 프로젝트가 취소되었을 때 또는 2003년에 3DO Company가 파산하여 모든 운영을 중단했을 때).일부 게임 프로그래머들의 이력서는 그들이 한 불운한 스튜디오에서 다른 불운한 스튜디오로 도약할 수밖에 없기 때문에 1년 이하의 짧은 기간 동안 지속되는 짧은 시간들로 구성되어 있다.[20]이것이 바로 일부 사람들이 상담을 선호하고 따라서 개별 스튜디오의 운명의 영향으로부터 다소 보호받고 있는 이유다.

언어 및 도구


대부분의 상업용 컴퓨터와 비디오 게임은 주로 C++, C, 그리고 일부 조립 언어로 쓰여진다.많은 게임들, 특히 복잡한 인터랙티브 게임 플레이 메카니즘을 가진 게임들은 하드웨어에 한도까지 세금을 부과한다.이와 같이 이들 게임이 허용 가능한 프레임률로 실행되려면 고도로 최적화된 코드가 필요하다.이 때문에 컴파일된 코드는 일반적으로 시각적 렌더링과 물리학 계산과 같은 성능에 중요한 구성요소에 사용된다.거의 모든 PC 게임도 DirectX, OpenGLAPI 또는 일부 래퍼 라이브러리를 사용하여 하드웨어 장치와 인터페이스한다.

루비, 루아, 파이톤과 같은 다양한 스크립트 언어도 게임 플레이, 특히 AI와 같은 콘텐츠 세대를 위해 사용된다.스크립트는 일반적으로 로드 시간(게임 또는 레벨이 메인 메모리에 로드되는 경우)에 구문 분석된 후 런타임에 실행된다(로직 분기 또는 기타 그러한 메커니즘을 통해).그들은 일반적으로 통역사에 의해 수행되지 않으며, 이것은 훨씬 더 느린 실행을 초래할 것이다.대본은 선택적으로, 종종 AI와 고도의 게임 로직을 위해 사용되는 경향이 있다.일부 게임은 스크립트에 대한 의존도가 높은 상태로 설계되고 일부 스크립트는 게임 실행 전에 이진 형식으로 컴파일된다.개발의 최적화 단계에서는 일부 스크립트 기능이 컴파일된 언어로 다시 작성되는 경우가 많다.

Java는 크로스 플랫폼이고, 일반적으로 사용자에 의한 설치가 필요하지 않으며, 다운로드된 실행 프로그램에 비해 보안 위험이 적기 때문에 많은 웹 브라우저 기반 게임에 사용된다.자바 역시 휴대전화 기반 게임에서 인기 있는 언어다.ActionScript 언어를 사용하는 Adobe FlashJavaScript는 브라우저 기반 게임에 인기 있는 개발 툴이다.

게임 규모와 복잡성이 커지면서 미들웨어가 업계 내에서도 인기를 끌고 있다.미들웨어는 골격 애니메이션과 같은 DirectXOpenGL과 같은 표준 하위 레벨 API보다 더 크고 높은 수준의 기능과 큰 기능 세트를 제공한다.더 복잡한 기술을 제공하는 것 외에도, 일부 미들웨어는 플랫폼 독립성을 위해 합리적인 시도를 함으로써 예를 들어 마이크로소프트 윈도우에서 PS4로의 일반적인 변환을 훨씬 쉽게 만든다.본질적으로 미들웨어는 개발 주기에서 가능한 한 중복성을 배제하는 것(예를 들어 스튜디오가 생산하는 각 게임에 대해 새로운 애니메이션 시스템을 작성하는 것)을 목표로 하고 있어 프로그래머들이 새로운 콘텐츠에 집중할 수 있게 한다.

게임 개발자에게도 다른 도구가 필수적이다: 2D 및 3D 패키지(예: 블렌더, KIMP, 포토샵, 마야 또는 3D Studio Max)는 프로그래머가 아티스트 또는 기타 제작 인력에 의해 생성된 자산을 보고 수정할 수 있게 해준다.소스 제어 시스템은 소스 코드를 안전하게 유지하고, 보안을 유지하며, 합병을 최적화한다.디버거가 있는 IDE(Visual Studio 등)는 코드 작성과 버그 추적을 덜 고통스러운 경험으로 만든다.

참고 항목

메모들

  1. ^ 베이츠 2004, 페이지 165-192.168.11 cc1
  2. ^ 무어, 노박 2010 페이지 78-84
  3. ^ 무어, 노박 2010 페이지 74-75
  4. ^ 무어, 노박 2010 페이지 79
  5. ^ 무어, 노박 2010 페이지 80
  6. ^ 무어, 노박 2010 페이지 80-81
  7. ^ "Number of Dedicated AI Programmers on A Game Development Team". AIGameDev. February 26, 2008. Archived from the original on June 7, 2008.
  8. ^ Evans 2002, 11.2장: 다양한 학습, 페이지 5.567-578
  9. ^ "IEEE Symposium on Computational Intelligence and Games". Retrieved 26 March 2010.
  10. ^ "Artificial Intelligence and Games Research Network". Archived from the original on 26 September 2009. Retrieved 26 March 2010.
  11. ^ "The University of Alberta GAMES Group". Retrieved 26 March 2010.
  12. ^ Epstein, Susan L. "Games & Puzzles". AITopics. Archived from the original on 1 May 2010. Retrieved 26 March 2010.
  13. ^ 무어, 노박 2010 페이지 83
  14. ^ 무어, 노박 2010 페이지 81
  15. ^ 무어, 노박 2010 페이지 82
  16. ^ TVG: AM2: Virtua Fighter 5 PS3는 웨이백 머신에 2008년 1월 18일 보관된 온라인 뉴스용으로 업데이트될 수 있음
  17. ^ 무어, 노박 2010 페이지 78
  18. ^ 최고의 게임 스튜디오, 학교 & 급여, 빅 FIsh Games, 2013년 7일
  19. ^ Fleming, Jeffrey (April 2010). "9th Annual Salary Survey". Game Developer. United Business Media. 17 (4): 8.
  20. ^ "The STEM Crisis is a Myth". 30 August 2013.

참조

외부 링크