#44 직렬화 실전적용

국기웅·2024년 6월 25일

직렬화를 저장에만 사용한다고 생각할 수도 있지만, 이번에 스테이지 관련 정보를 관리할때 일반적인 변수나 List가 아닌 CSV파일을 이용해 관리해 보았다.
단순히 데이터의 묶음들이 필요한 작업들이라 변수등록보단 역직렬화가 더욱 어울린다고 판단했다.

csv파일은 다음과 같이 준비했다.

엑셀로 정리한 부분을 csv파일(text포맷)로 읽어지는 부분이다.
csv는 ,와 엔터(\n)을 통해 값들을 정리한다.
해당 부분을 풀어주는 부분은 다음과 같다


string[]으로 선언된 data변수에 정보를 줄넘기로 나눠서 넣어준다.

그러면 각 배열들에는 엑셀 열 하나씩 들어가게 된다.


51번째 라인은 데이터를 쉼표로 구분해주는 코드이다.
data[]에서 필요로 하는 열의 데이터를 또 작은 string[]로 나누어준다.
elements[]에서 이제 값을 하나씩 빼서 사용하면 된다.
각각 행의 위치를 기억해서 elements[3] 와 같은 형태로 사용가능하다.

해당 부분에서 숫자를 사용하는것은 코드를 읽기 어렵게 만들기 때문에 enum을 사용하는 것이 좋을것 같다.

또한 csv파일로 데이터를 저장하는 경우, 치트프로그램이나 데이터 수정이 비교적 쉬울 것 같다. 이부분은 암호화가 있어야 할 것 같은데.. 조금 더 알아봐야 할 것 같다.

--> csv파일을 통해 데이터를 가져와 스테이지를 구성해주는데, 이건 csv파일을 직접 수정해주는 것으로 스테이지의 구성을 다시 바꾸어줄 수 있다.
이건 유저가 새로운 스테이지를 만드는 맵 에디터 기능도 제작 가능하다는 뜻이다. 생각보다 간단해서 시간을 별로 뺏기지 않고 가능할 것 같다.

profile
게임개발호소인

0개의 댓글