본선 진출
참여한 공모전에서 본선에 진출하게 되었습니다!!
마침, 실력을 다듬을 기회가 필요하다고 생각했는데, 본선에 진출하게 돼서 너무 기쁩니다! ㅎㅎ
아래는 공모전에서 만든 기획 내용입니다.
여러 가지 활동을 하고 있었지만, 공모전에서 당선되어 다른 모든 것들을 접었습니다. 그 동안 개발 일지를 못 올린 이유도 이러한 이유 때문이었죠 ㅠㅠ..
하지만! 웅진씽크빅(주체사)에서 개발 일지를 작성하라 하더군요.. 정말 감사합니다. ㅎㅎ
개발일지에 대하여
추후 개발일지는 공모전을 위해 작성될 예정입니다. 이전과 크게 달라지진 않겠지만, 공모전 프로젝트에 대한 내용을 중심으로 작성할 예정입니다.
(백준 코딩, 도서 공부, 멘토링 등은 모두 추후에 다시 진행할 예정입니다.)
개발일지를 두서없이 작성하긴 좀 그래서 규칙을 정해서 작성하겠습니다.
•
주차별 개발 과정
◦
일주일 단위로 어느 정도 개발이 진행되었다는 것을 표시하겠습니다.
◦
한 달 간격의 마일스톤 단위로 진행할 예정입니다.
•
개발 주요 항목
◦
개발 중 중요하다 생각되는 부분과 공유를 하면 좋다고 생각하는 부분은 따로 공유하겠습니다.
•
기타 개발 항목
◦
개발 중 공유하지 않고 개발 일지에만 작성된다고 생각한 부분은 기타 개발 항목으로 분류하여 작성하도록 하겠습니다.
•
느낀점
◦
다른 분들의 개발일지를 보며, 소감도 들어가면 좋겠다는 생각이 들었습니다. (제 개발일지는 너무 딱딱하더군요..)
◦
마지막으로 느낀점을 적으며, 개발일지를 작성하도록 하겠습니다.
주차별 개발 과정
1차 마일 스톤 개발 주요 항목 (6.05 ~ 6.30)
•
GitHub연동 (완료)
•
코드 규칙 재정리 (완료)
•
어드레서블 적용(AWS) (완료)
•
UI매니저 ver 0.1 제작 (완료)
•
오디오 매니저 제작 (완료)
•
리소스 매니저 제작 (완료)
•
셰이더 적용 (완료)
•
기타 플러그인(오딘, ES3, GPM, SRDebugger 등등) (완료)
•
플레이어 제작 (완료)
•
미니 게임 -> 구축(미니 게임 시작) (제작 중)
•
미니 게임(레이싱 게임) (제작 중)
•
미니 게임(인형뽑기)
•
어드레서블 정리 (기본 리소스등)
•
메스 피드 연동
•
UI 아틀라스 적용
•
1차 사운드, 파티클
개발 주요 항목
기타 개발 항목
깃허브 연동
깃허브는 이전에 만들었던 프로젝트를 덮어 씌우는 방식으로 제작했습니다 ㅎㅎ..
사실 plastic scm을 사용하다 오류가 너무 많고 유니티 로딩이 너무 길어서 깃허브로 바꿨습니다. 그 시간 때문에 깃허브 연동이 오래걸렸네요 ㅠㅠ..
Git GUI는 깃 데스크톱을 선택했습니다.
SVN에 익숙한 저는 아직 사용하는게 불편하더군요. 강력한 기능도 많고 안정적이긴 하지만 아직까지 마우스 우 클릭으로 관리하는 SVN이 좀 더 편한 것 같습니다.
(SVN..너무 옛날 방식인가..?)
어드레서블 적용(AWS)
AWS 크레딧을 받아 어드레서블을 적극적으로 활용하였습니다! ㅎㅎ
700달러 어치나 주시다니, 너무 감사합니다. (현재는 무료로 사용 중인 것은 비밀입니다)
어드레서블을 그룹별로 나누어 빌드한 후 등록했습니다. 사실 이 그룹보다 훨씬 세분화하여 구분하는 것이 더 적절할 수 있지만, 에셋이 많지 않아 그냥 큰 틀로만 나누기로 결정했습니다.
셰이더 적용
셰이더는 주요 개발 항목으로 정리할까 하다가, 아직까지 확실하지 않아 우선 기타 개발에서 작성하겠습니다.
이번 프로젝트에 들어가는 모든 모델에는 하나의 셰이더만 적용하도록 결정했습니다.
여러가지 이유가 있었지만, 하나의 셰이더로 모든 모델을 컨트롤 할 경우 SRP 배처를 극한으로 쓸 수 있다고 생각했습니다.
우선 DC를 극한으로 줄였습니다.
다만, 이 셰이더의 베리언트가 얼마나 많은 메모리를 차지할지는 아직 가늠이 되지 않아 조심스럽습니다.
수 많은 오브젝트가 배치되어 있지만, RIM, Emission, Transparent를 제외한 다른 오브젝트에서는 DC가 발생하지 않습니다.
(다만, VertexMaterial이나 위에 언급한 사항들 모두 사용하기 위해 베리언트가 필요하기 때문에 메모리가 많이 소비될 것이라 예상됩니다.)
하나의 셰이더 사용에 대해 느낀점!
•
이 방식은 렌더링 도중에 셰이더의 교체를 최소화하여 GPU 성능을 개선할 수 있습니다.
•
셰이더 관리가 단순해지므로 코드 관리 측면에서 유용할 수 있습니다.
•
그러나, 하나의 셰이더로 모든 것을 처리하려면 셰이더가 복잡해지고, 많은 베리언트를 가지게 될 수 있습니다. 이는 메모리 사용량을 증가시키고, 셰이더 컴파일 시간을 늘릴 수 있습니다.
◦
참고로 셰이더 컴파일 시간이 꽤 길었습니다. 컴퓨터 사양에 따라 다르겠지만 어드레서블 패치할 때 셰이더에서만 40분 정도 소비된 것 같습니다.
◦
다음 빌드할 때는 유니티의 빌드 특성상 캐싱을 해놓기 때문에 2~3분 만에 빌드가 완료되었습니다.
기타 플러그인
대표적으로 적용한 플러그인들입니다.
이 플러그인들은 무조건! 추천합니다. 다른 분들도 에셋 할인할 때 아래 플러그인들 나오면 꼭 사두시길 추천드립니다. 아래의 플러그인들은 안 들어가는 프로젝트가 없습니다.
•
DoTween(이거 프로였나? 기억이 안나네요)
•
ES3
•
GPM(UI)
•
JSAM(오디오 매니저)
•
Sirenix (오딘 인스펙터)
•
StompyRobot (SRDebugger)
플레이어
저희 팀원은 개발자 두 명으로 구성되어있기에 그래픽 적인 부분을 거의 다 에셋으로 대처하고 있습니다. (몇 개는 다른 팀원 분이 손수 그리고 있습니다.. ㅠㅠ)
그래서 플레이어의 움직임을 프로그래머가 할 수 있는 최대한! 예쁘게! 개발했습니다!
느낀점
마지막으로, 이번 주 개발을 하면서 느낀 점입니다.
회사에서는 게임 시스템 개발밖에 안 하다가, 아기자기한 프로젝트를 하니까 재밌더군요.
여자친구랑 둘이 나가는 거라 마음도 편하게 개발하니 더욱 재밌다 느껴지는 것 같기도 하네요 ㅎㅎ
개발일지에 이런 느낀 점을 적는 게 처음이라 많이 어색하네요. 다음 개발일지에서는 느낀 점을 더 재밌게 써보도록 하겠습니다!