한달 감상평 : 저번달과 이번달을 아울러 매우 게을러진 시기였다. 이러한 게으름을 타파하기 위해 정말 약간의 목표를 설정을 했는데, 지금의 나태함을 이겨낼 수 있도록 힘내야 겠다. 이번달은 정말 한 것이 없어서, 뭐라 적을 말이 없다..
Work
새로운 랭킹 형식
해금 시스템
-새로운 랭킹 형식
기존에 만들어둔 랭킹 시스템에 현재 랭킹의 종류에 따라, 랭킹 정렬 방식이 오름차순인지 내림차순인지 정해줘야 하는 코드를 추가 하다가, 개선점이 여러군데 보였다. 일단 설계단계 에서의 오류라고 볼 수 있는 데, api 통신을 위한 코드와 랭킹의 순서를 결정하는 로직의 분리가 안되어 있다는 점, 그리고 데이터를 불러왔을 때, 캐싱을 안해주고 있다는 점에서, 개선점이 많이 보이게 되었다. 일단, 필요할때마다 매번 요청을 보낸다라는 기존의 기획이 있었기에, 캐싱을 굳이 만들지 않았지만, 로직의 구분을 잘 해놨더라면, 캐싱을 집어 넣는데 문제는 없었을 것이라 생각이 된다. 코드를 보면 시간에 쫒겨서 급하게 만든 티가 역력하게 나고 있다. 지난 회고에서 언급 했듯이, 설계를 할 때, 조금 단순하게 그리고, 작은 면적을 먼저 그려 본다면, 이런 설계적 오류를 범하지 않을 것이라 생각된다.
-해금 시스템
유니티의 Guid를 사용하여 현재 내가 소유하고 있는 아이템을 비교하는 시스템인데, 기존에 만들어져 있던 아이템 시스템에 붙여서 개발을 하게 되었다. 이 위에 개발을 하면서, 드는 생각은 처음 설계를 했을 때, 정말 low level에서부터 생각을 하고 만드셨구나 였다. low level이 소프트웨어의 low level이 아니라 설계 단계에서 정말, 낮은 단계에서부터 타고 들어가서 개발을 할수가 있도록 구조가 잡혀 있었다는 것이다. 요리로 비교를 하자면, 요리의 재료가 정밀한 구조로 짜여 있어서, 기존의 재료를 가져다 쓰기 쉽게 되어있음과 동시에, 원하는 재료를 만들기가 쉽다는 장점이 있었다. 물론, 개선점이 없는 것은 아니지만, 이는 최근 유니티의 기술의 발전과 동반한 개선 사항이므로 설계에서의 오류가 아닌 개선방식이다. 이런 짜임새를 받아 들여서 다음 업무에 적용 해봐야겠다고 생각이든다.
Personal
사이드 프로젝트
재화 시스템
ui 구조
로컬 세이브 시스템(진행중)
-재화시스템
재화 시스템을 만드는 업무를 맡았다. 단순히 코인의 문제가 아니라 게임중에 획득할 수 있는 소비재에 대한 전반적인 시스템 개발에 들어가야 하는 것이다. 개발을 하면서 scriptable object로 재화의 정보를 담을 수 있는 container를 만들었다. 다만, 계속 개발을 진행하면서 이게 과연 필요한 것인가 라는 의문이 들기도 한다. 단순히 local save 매니저에서 재화에 관한 구조체를 만들어서 사용해도 됐을 것이다... 일단 재화 시스템과 로컬 세이브 관련 로직도 제대로 나오지 않았기 때문에, 추후에 리팩토링을 거쳐야 겠다
-ui 구조
UniRx와 VContainer 라이브러리를 사용하고, MVP구조를 도입해서 UI 구조를 잡아봤다. 오픈 소스 프로젝트에 이런 구조가 잘 잡혀 있는 기에 가져와서 현재 프로젝트에 입혀봤는데, 게임의 로직과 ui 로직이 완전하게 구분될수 있다는 점이 매우 만족 스러웠다. 다만 몇가지 단점이 있다.
1. 학습 코스트가 매우 높다. unirx에서 지원하는 몇몇가지 extension기능을 알아야함과 동시에, VContainer에서의 객체의 생존 주기 등등, 기존의 유니티 개발 패러다임과 조금 다른 부분이 있기에, 잘알아보고 사용하지 않으면 괜히 개발 비용이 더들어가는 결과를 초래 할수도 있다.
2. 오픈 소스의 ui 시스템이 오픈소스로 되어있는 게임에 친화적으로 구성이 되어있다. 이를 고쳐서 사용을 해야 하기 때문에, 개발 리소스가 더 들어갈 것처럼 보인다.
위와 같은 단점에도 불구하고, ui와 게임의 로직의 완전한 분리와 여러가지 UniRx와 VContainer가 제공하는 편의 기능은 연구해볼 가치가 충분히 있다고 생각한다.
ui 구조 관련 문서 정리 : https://wonseop.atlassian.net/wiki/spaces/ProjectDR/pages/12812299/UI
-로컬 세이브
아직 로컬 세이브에 관한 기능이 없어서 만들어야 한다. 라이브러리를 도입 할지 아니면, 직접 만들지 고민 중에 있다.
주말학사
동국대 전산원에서 9월부터 컴퓨터 공학을 다닐 예정
기억에 남았던 문구
"물리는 확실성에 대한 것이 아니라 불확실성에 대한 개방성이다"
-Youtube (안될과학), 갑진년 새해 특집 김갑진 교수의 물리학 특강
읽은 책
아비투스
사피엔스 (진행중)
읽을 책
마흔에 읽는 니체
인간 관계론