내일배움캠프 52일차 TIL
오늘도 오전에 기술면집 질문들을 풀어보고, 이후 팀 프로젝트 개발을 진행했다.
가비지 컬렉터
객체 지향 프로그래밍 언어에서는 동적으로 메모리를 할당한다는 개념이 존재하고, 따라서 동적으로 할당된 메모리를 해제해아할 필요도 있다. C# 코드는 .NET 위에서 실행되며 CLR을 통해 자동으로 필요없는 동적 메모리를 해제하는 GC를 지원한다.
팀 프로젝트 개발 - 맵 랜덤 생성
몬스터를 포획하는 씬에서, 로그라이크 요소를 위해 맵을 랜덤으로 생성하는 기능이 필요하다. 이를 위해 처음에는 BSP(Binary Space Partitioning)알고리즘을 사용해서 구현해볼까 했지만, 이번 프로젝트 특성상 정교하게 오브젝트를 배치하고 설계할 필요가 있어서 BSP 알고리즘은 적합하지 않다고 판단했다. 그래서 "절차적 맵 생성"이라는 키워드로 유튜브와 블로그 등 다양한 곳에서 자료조사를 해본 결과, 이를 어떻게 구현해야 할지에 대한 아이디어를 얻을 수 있었다. 다음 자료가 큰 도움이 되었다.
https://ondrejnepozitek.github.io/Edgar-Unity/docs/introduction/
- 어떤 타입의 방인지, 문은 어디에 있는지 등의 정보를 포함해서 룸의 프리팹들을 만든다.
- 미리 만든 프리팹의 컬렉션에서, 시작 방과 마지막 방 사이를 연결 가능한 방들을 랜덤으로 생성하며 던전을 생성한다.
작동 여부는 직접 구현하면서 테스트해봐야겠다.