게임 프로그램은 컴퓨터로 작동시킬 수 있는 여러가지 프로그램중 상당히 복잡한 구조와 기능을 가지고 있는 분야에 속한다고 할 수 있다. 숙련된 게임 프로그래머가 되는 것은 숙련된 업무용 프로그래머가 되는 것보다 어려운 일이라고 할 수 있다. 그 이유는 워낙 여러가지 분야가 접목된 분야이기 때문이다. 복잡한 프로그래밍은 다음과 같은 전문분야와 두루 연관된다

1. 수학
    선형대수학(변환과 사영), 기하학(곡선과 커브), 미분기하학(IK)

2. 물리학
    기본 역학(각종 물체의 움직임), 유체 역학(비행기 시뮬), 로보틱스(충돌체크와 그 반응), 셀룰러 오토마타, 광학 (라이트 모델링)

3. 기본 전산학    
    소프트웨어 디자인, 객체지향 설계, 각종 알고리즘과 데이타 구조, 임베디드 프로그래밍 (콘솔 개발시)

4. 인공지능
    유한 상태 기계 이론, 그래프 탐색, 패턴 인식, 퍼지 논리

5. 네트워크, 데이터베이스
    Client/Server 이론, Database system, 분산 시스템, 인터넷 프로그래밍

6. 기타
    음향학, 신호처리이론등

이 모든 분야를 한 사람이 모두 마스터한다는 것은 매우 어려운 목표이고, 대부분의 경우 자기가 관심이 있는 전공분야를 정해 집중을 하고, 나머지 부분은 개론적인 이해만 하는 것이 좋을 것이다 (용어의 이해가 중요하다)

현실적인 방법중의 하나는 분업을 하거나 외부에서 만든 라이브러리를 구매하는 것이다. 각각의 전문분야에 대해서 이미 잘 만들어진 라이브러리들이 판매되고 있는 경우가 많기 때문에, 만드는 방법은 몰라도 쓰는 방법만 잘 알면 훨씬 능률적이다. 또 무료로 공개된 라이브러리들도 많기 때문에 역시 알아두면 좋다. 공개 소프트웨어 개발자들이 모이는 곳이라면 역시 SourceForge 가 가장 유명하다 (www.sourceforge.net)

imcgames 의 김학규입니다