2. Idea #1: 데이터의 전처리
• 레벨 데이터는 최대한으로 전처리 작업
레벨 에디터 같은 유틸리티 프로그램을 이용
게임 자체에 데이터 패킹 코드를 넣어 처리
• 저장될 데이터는 반드시 비 static 멤버 변수
• 포인터를 데이터 파일에 저장해서는 안됨
저장시에 포인터가 가리키는 것과 다시 로드한 후에 가리키
는 것이 전혀 다른 메모리이기 때문
3. Idea #2: 데이터의 저장
• 데이터가 적절한 구조체에 채워지고 나면 그것을 디스크(?)에
저장할 수 있게 됨
데이터 파일에 저장한다 라는 의미 인듯
• 예제 코드
6. Idea #3: 데이터의 로드
• 일부 게임기 하드웨어의 경우 데이터를 읽는 방식이 다르다.
Ex) 소니 플레이스테이션: CD-ROM으로부터 2048byte의 배수만큼
데이터를 읽음
남는 메모리 공간에는 의미없는 데이터가 덮임.
이러한 현상을 방지하기 위해 구조체의 크기가 경계에 맞도록 더
미 버퍼를 구조체에 추가해야 함
• 보통 데이터 로드에 필요한 충분한 공간을 미리 마련해 두는 것이 제
일 좋음
여러 데이터 로드에 재사용 가능
동적 메모리 할당이 일어나지 않는 시스템에서 사용 가능
7. Idea #3: 데이터의 로드
• 좀더 안전한 방법
: 특정 크기의 배수만큼 읽기 작업이 일어나는 시스템에서의 코드 예제
8. 마무레이션
• 데이터를 전처리 하면 게임이 사용할 수 있는 형태로 변환하는
데 필요한 CPU 시간을 줄일 수 있다.
• 로드해야 할 데이터의 크기도 줄일 수 있다.
• 속도와 용량을 모두 만족시킴
= 최적화 기법이 추구해야 할 목표