프로젝트/[인프런] 게임 프로그래머 입문 올인원

[게임 프로그래머 입문 올인원] 2D 포폴 준비 : 파일 입출력(109강)

순정법사 2024.09.05

A. 2D 포폴 준비

2. 파일 입출력

a. 데이터 시트와 데이터 베이스의 차이점

게임은 cpu와 ram이 서로 소통하면서 만들어진다

스택, 힙 등등은 ram으로 들어가는 애들

단점은 휘발성 메모리 

따라서 SSD / 하드디스크로 장기기억으로 바꿔준다

 

모든 리소스들이 데이터임 

데이터 시트 (레벨 디자인) // 데이터베이스 (몇 천명의 정보)

 

❔ 데이터베이스를 왜 사용해야할까?

 

게임 컴퓨터의 파일 입출력으로만 데이터를 관리하면

나중에 어떤 데이터를 빠르게 찾을 수 없음 -> 알고리즘의 영역  

 

C++에서는 Ram에 있는 내용을 SSD로 내려주고 올려주는걸 배우면 된다

 

b. 입출력 함수 작성하기

런타임에 만들어진 정보(포인터 주소 같은) 말고

🌟 핵심적인 데이터들을 기록해서 저장해야함

 

위에서 보면 GetTileAt처럼 특정 위치 데이터보단 mapSize, tileSize같은 내용을 저장해야 한다는 소리!

 

파일 포멧을 정해야하는데, 그건 알아서 정해야 됨

 

assert 함수 사용할거라 넣어주고

 

저장함수

 

로드함수를 작성해준다

 

C스타일과 C++스타일은 저장내용이 다름 (포멧에 따라)


c. 입출력 함수 활용하기

만든 함수를 사용할 리소스 매니저에서 함수 + 경로까지 합쳐주기

 

타일맵은 리소스매니저가 관리, 여기서 경로를 지정하며 최종적으로 함수를 실행해준다

 

d. 업데이트시 실행되게 하기

키를 누르면 되게 만들어주자

 




 

💥 오류 수정하기

 

처음에 로드를 누르면 크러쉬가 나길래 왜이러나 했더니

 

위 코드는 저장하라는 경로를 알려주는거지 Tilema의 폴더를 생성해주는건 아니라서

 

이렇게 폴더를 생성해줘야지

 

실제 데이터가 생성되어 로드시에도 크러쉬가 안나는것!

 


 

그래서 결국 이렇게 된다!! 저장도 잘되고 로드도 잘됨

 

데이터를 까서 해석하는 Hex 편집기를 사용하면 좋다

 

 

[C언어][Hex]헥스편집기 HxD editor 다운로드 방법

이전 글 어셈블 단계에서 오브젝트 코드를 보려면 hex편집기를 이용해서 봐야한다고 했었다. 내가 쓰는 Hxd editor 설치방법을 소개하도록 하겠다. Hxd editor 설치방법 https://mh-nexus.de/en/hxd/ HxD - Freewar

olivertree-cs.tistory.com

 

 

 


출처 : https://www.inflearn.com/course/%EA%B2%8C%EC%9E%84-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8-%EC%9E%85%EB%AC%B8-%EC%98%AC%EC%9D%B8%EC%9B%90-rookiss#curriculum

 

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버 -

어디부터 시작할지 막막한 게임 프로그래밍 입문자를 위한 All-In-One 커리큘럼입니다. C++, 자료구조/알고리즘, STL, 게임 수학, Windows API, 게임 서버 입문으로 이어지는 알찬 커리큘럼으로 게임 프

www.inflearn.com