3abcc423f79c3faf689fe8b115ef046c8e7579ce4eb6bc


별건 아니고 간단한 셀룰러 오토마타 비스무리하게 작동하는 걸 헥사 타일 버전으로 구현햇슴. 유체역학 같은거 쌩까고 매프레임마다 각 타일이 인접타일에 1/6만큼 값을 더해주는 식으로 구현한거라서 제대로된 파도 시뮬레이션이라던가 그런건 업슴.


느낀 점


1. 헥사타일 처음 구현해보는데, 특정 좌표(마우스 위치)에서 가장 가까운 타일을 O(1)로 구하는게 생각보다 귀찮앗슴... 사각 타일이엇으면 걍 타일 크기로 좌표를 나눠버리면 되엇을 건데 헥사타일은 타일 끼리 어긋난 부분 때문에 어떻게 처리해야 가장 합리적일까 고민하는데 시간 많이 썻슴...


2. 사각 타일은 상하좌우 인접타일 4개랑 대각선 방향 인접타일 4개가 인접한 면적이 다르니까 항상 처리하기 애매하다고 생각했는데, 헥사타일은 모든 인접타일이 같은 형식으로 인접하고 있으니 찝찝하지 않고 편안-함


3. 근데 이걸 실제로 게임에 적용할 지는 몰르겟슴... 각 셀 별로 기온이나 기압이나 액체의 양 등을 시뮬레이션해서 기온 높은데 있으면 뒤지고 액체에 잠기면 뒤지고 이런거 구현하려고 시도해보는건데 시간과 능력이 되나 싶음... 현재 대충 구현한 것 기준으로 60fps 유지하려면 50x50정도밖에 못까는데 멀티스레딩이나 컴퓨트 쉐이더 같은거 적용하면 훨씬 더 깔 수는 있겠지만 그러면서 코드 유지보수랑 각 요소들 사이의 상호작용을 제대로 관리할 수 잇슬가