TV 비디오 게임 (어린 시절에 우리가 사용했던 게임)이 어떻게 개발되었고 어떤 플랫폼에서 사용되는지 알고 싶습니다.
나는 모바일 장치, Windows PC 및 Mac 용 게임이 어떻게 개발되는지 알고 있지만 Contra, Duck Hunt 및 모든 게임이 어떻게 개발되었는지는 알지 못합니다. 그들은 높은 그래픽과 많은 단계를 가지고 있기 때문에. 그렇다면 소규모 환경에서 구성 플랫폼이 낮은 게임을 어떻게 개발할 수 있었습니까?
TV 비디오 게임 (어린 시절에 우리가 사용했던 게임)이 어떻게 개발되었고 어떤 플랫폼에서 사용되는지 알고 싶습니다.
나는 모바일 장치, Windows PC 및 Mac 용 게임이 어떻게 개발되는지 알고 있지만 Contra, Duck Hunt 및 모든 게임이 어떻게 개발되었는지는 알지 못합니다. 그들은 높은 그래픽과 많은 단계를 가지고 있기 때문에. 그렇다면 소규모 환경에서 구성 플랫폼이 낮은 게임을 어떻게 개발할 수 있었습니까?
답변:
NES, Game Boy, SNES 및 심지어 Atari 계열과 같은 구형 시스템을 위해 작성된 오래된 게임은 대개 어셈블리 언어로 작성되었습니다 . 이것은 당시의 C 컴파일러가 존재하지 않거나 충분히 효율적인 코드를 생성하는 작업에 의존하지 않았기 때문에 필요했습니다.
NES의 경우 256KB조차도 많은 데이터 (더 큰 게임이 있었지만)-타일 기반 및 저색 그래픽과 같은 영리한 트릭을 사용하여 많은 것을 가능하게했기 때문에 모든 것을 작은 카트리지로 압축 할 수있었습니다. 아주 적은 공간에 저장 될 데이터. 또한 비디오 및 오디오 용 특수 칩을 사용하면 소프트웨어의 모든 작업을 수행하지 않고도 이러한 작업을보다 효율적으로 처리 할 수 있습니다.
시간이 지남에 따라 C 컴파일러의 효율성이 향상되고 장치가 더욱 강력 해졌습니다. N64, GBA 및 이후 장치는 모두 기본적으로 C 또는 C ++를 사용했습니다. 60FPS를 지속적으로 충족하기 위해 추가 최적화가 필요한 작은 코드 조각에 대해 어셈블리가 예약되었습니다 대상 (또는 게임이 실행되는 프레임 속도).
80 년대 초에 Commodore 64 / Vic20을위한 간단한 게임을 작성했던 것을 기억합니다. 일부 BASIC (믿거 나 말거나-일부 게임은 완전히 BASIC으로 인코딩되었습니다-BASIC은 기계의 ROM에 있었으므로 공짜였습니다)-대부분은 어셈블러입니다. 어셈블러도 구성되지 않았습니다. 대부분의 기계에는 여러 개의 상용 어셈블러가 있습니다 (거의 그 당시와 마찬가지로) C64의 그래픽은 래스터 하드웨어 스프라이트 (Raster Hardware Sprites)로 한동안 고급화되었습니다 (한 번에 화면에 8 개만 허용됨). 그들은 16 색 (팔레트-스프라이트처럼 런타임에 변경 될 수 있음)이었습니다. 스프라이트는 물론 2D였습니다.
내가 가지고 놀았 던 최초의 "가정용 컴퓨터"(초기 과학 및 비즈니스 머신은 무시)는 ZX81이었다. K의 1/4 (256 바이트)로 게임을 작성한다고 상상해보십시오. 이제 그 기술입니다!
1970 년대 후반부터 비디오 게임 시스템 또는 1 세대 콘솔 (콘솔이라고 불림)은 여전히 모든 임베디드 컴퓨터 시스템 과 매우 유사하게 개발되었습니다 .
임베디드 컴퓨터는 개인용 컴퓨터, 또는 더 큰 다중 사용자 컴퓨터 시스템 (예를 들어, 시간 공유 시스템, 미니 컴퓨터, 메인 프레임)를 닮은하지 않는 전자 시스템의 컴퓨터 (즉, 마이크로 컨트롤러 또는 마이크로 프로세서)이다; 한 가지 큰 차이점은 일반적으로 비디오 터미널 및 키보드를 통한 표준 입력 / 출력이 부족하다는 것입니다.
개발은 다른 컴퓨터에서 이루어집니다. 요즘에는 대상 시스템에 대한 실행 파일을 생성하는 크로스 플랫폼 개발 환경을 사용하는 개발자 PC 또는 워크 스테이션 이 있습니다 (이 맥락에서 비디오 게임 시스템). 시스템 자체 (또는 호스트 ) CPU.
현재 비디오 게임 시스템의 두 가지 예는 Sony, Toshiba 및 IBM 의 셀 프로세서를 기반으로하는 Sony의 Playstation 3 과 ARM 기반 마이크로 프로세서 인 모바일 장치 (스마트 폰, 태블릿)입니다.
Michael Madsen
표시된 바와 같이 , 대부분의 프로그래밍은 C 또는 Pascal과 같은 고급 컴파일 언어가 아닌 어셈블리에서 수행되었습니다. 이것은 Atari 2600의 TIA와 같은 보조 프로세서에 액세스 할뿐만 아니라 매우 제한된 시스템 (매우 작은 RAM 및 제한된 카트리지 ROM 용량)의 범위 내에서 게임의 전체 컨텐츠를 맞추기 위해 필요했습니다.