7fed8275da8260f638f1c6bb11f11a39ba402bf5f1318374






2022.04.12 게임월드 내 모든 오브젝트를 직렬화IO해서 세이브, 로드를 구현했어.


똑같은 세이브파일을 로드했을 때 매번 똑같은 상태로 게임월드 내 모든 오브젝트를 로드하지만

로드 후 1초만 관찰해봐도 오브젝트들은 매번 다른 운명을 개척해 살아가.


오브젝트는 행동을 결정할 때 난수생성기를 이용하는데 난수생성기 직렬화IO를 구현하기 이전이었기 때문에

모든 오브젝트는 비결정론의 세상을 살고 있다고 말할 수 있겠지.


당시에는 난수생성기 직렬화IO만 작업하면 게임월드의 비결정론&결정론 선택 옵션을 제공할 수 있다고 생각했었는데

지금 생각해보니 고려해야 할 후보군은 크게 6가지야.


1. 난수생성기 직렬화IO // 작업 완료

2. 병렬수행 작업영역 내에서의 난수생성기 호출 여부 // 작업 전

3. 동적할당된 주소를 키(정렬, 해시)값으로 사용하는 컨테이너의 결정론 방해 여부 // 작업 중

4. 코드파일(*.c/cpp) 내에 선언된 static 지역변수의 결정론 방해 여부 // 작업 전

5. 헤더파일(*.h/hpp) 내 부모클래스 인터페이스를 상속받은 자식클래스 전용 멤버변수의 결정론 방해 여부 // 작업 전

6. 아직 특정하지 못한 그 무언가


세계 최강이 되기까지 앞으로 8664년 하고도 08개월 16

나는 최강왕이 될 남자다


3