우리 모두는 아마도 게임이 무엇인지에 대해 꽤 직관적인 개념을 가지고 있을 것입니다. 게임의 총칭은 체스, 모노폴리 등의 보드게임, 포커, 블랙잭과 같은 카드게임, 룰렛, 슬롯머신과 같은 카지노 게임, 군사 전쟁 게임, 컴퓨터 게임, 각종 어린이 놀이 등을 포함한다. 학계에서 우리는 때때로 게임 이론에 대해 이야기하는데, 여기에서 여러 에이전트가 잘 정의된 게임 규칙 세트의 프레임워크 내에서 이익을 최대화하기 위해 전략과 전술을 선택합니다. 콘솔이나 컴퓨터 기반 엔터테인먼트의 맥락에서 사용될 때 “게임”이라는 단어는 일반적으로 플레이어가 제어하는 주인공으로 인간형, 동물 또는 차량을 특징으로 하는 3차원 가상 세계의 이미지를 연상시킵니다. (또는 우리 중 오래된 괴짜들에게는 아마도 Pong, Pac-Man 또는 Donkey Kong과 같은 2차원 고전의 이미지를 떠올리게 될 야마토게임 것입니다.) 그의 훌륭한 저서인 A Theory of Fun for Game Design에서 Raph Koster는 게임을 정의합니다. 플레이어가 배우고 궁극적으로 마스터하는 점점 더 도전적인 패턴 시퀀스를 제공하는 대화형 경험이 될 것입니다. Koster의 주장은 학습과 숙달의 활동이 우리가 “재미”라고 부르는 것의 핵심이라는 것입니다. 마치 농담이 패턴을 인식함으로써 “알게 되는” 순간에 재미있어지는 것과 마찬가지입니다.
소프트 실시간 시뮬레이션으로서의 비디오 게임
대부분의 2차원 및 3차원 비디오 게임은 컴퓨터 과학자들이 소프트 실시간 대화형 에이전트 기반 컴퓨터 시뮬레이션이라고 부르는 것의 예입니다. 의미를 더 잘 이해하기 위해 이 문구를 분해해 보겠습니다. 대부분의 비디오 게임에서 실제 세계 또는 가상 세계의 일부 하위 집합은 컴퓨터로 조작할 수 있도록 수학적으로 모델링됩니다. 이 모델은 원자나 쿼크 수준까지 모든 세부 사항을 포함하는 것이 명백히 비실용적이기 때문에 현실에 대한 근사치이자 단순화입니다(상상 현실일지라도). 따라서 수학적 모델은 실제 또는 상상의 게임 세계를 시뮬레이션한 것입니다. 근사화와 단순화는 게임 개발자의 가장 강력한 두 가지 도구입니다. 능숙하게 사용하면 크게 단순화된 모델도 때때로 현실과 거의 구별할 수 없을 정도로 재미있고 훨씬 더 재미있을 수 있습니다.
에이전트 기반 시뮬레이션은 “에이전트”로 알려진 여러 개체가 상호 작용하는 시뮬레이션입니다. 이것은 에이전트가 차량, 캐릭터, 불덩어리, 파워 도트 등인 대부분의 3차원 컴퓨터 게임에 대한 설명과 매우 잘 맞습니다. 대부분의 게임의 에이전트 기반 특성을 감안할 때 오늘날 대부분의 게임이 객체 지향 또는 최소한 느슨한 객체 기반 프로그래밍 언어로 구현된다는 것은 놀라운 일이 아닙니다.
모든 대화형 비디오 게임은 시간 시뮬레이션입니다. 즉, 가상 게임 세계 모델은 동적입니다. 게임 세계의 상태는 게임의 이벤트와 스토리가 전개됨에 따라 시간이 지남에 따라 변합니다. 비디오 게임은 또한 인간 플레이어(들)의 예측할 수 없는 입력에 응답해야 하므로 대화형 시간 시뮬레이션이 필요합니다. 마지막으로, 대부분의 비디오 게임은 실시간으로 스토리를 제시하고 플레이어 입력에 응답하여 대화식 실시간 시뮬레이션을 만듭니다.