Unity 게임 개발 입문
팀프로젝트 : Arkanoid24
객체 지향 프로그래밍에서 Coupling
Coupling 이란 상호작용하는 시스템(객체)간의 의존성을 의미한다.
Tight Coupling : 두 객체가 높은 의존성을 가진다.
Loose Coupling : 두 객체가 낮은 의존성을 가진다. (객체 지향 프로그래밍의 지향점)
느슨한 결합을 사용해 최대한 객체를 독립적으로 유지할수록 코드의 자율성/변형가능성이 높아진다.
느슨한 결합을 사용하면 상호작용하는 객체 중 한 가지에 변경이 생겨도 다른 객체가 유연하게 대처할 수 있다.
Arkanoid24 구현 당시 어려웠던 점
기능구현 시 가장 어려웠던 부분은 Local에서 멀티플레이(2P)를 구현하는 것이다.
기존에 1P에서 사용하던 input system을 그대로 사용하는 것이 불가능했다.
또, 똑같은 오브젝트와 프리팹을 같은 씬에 2개씩 만드는 과정에서 오류가 많이 발생했다.
모듈화
모듈화란, 특정 개체가 최대한 외부와 상호작용하지 않도록 코드를 작성하는 것이다.
(해당 코드를 떼어서 이동해도 오류가 나지 않고, 다른 곳에 옮겨도 충분히 잘 작동할 수 있도록 하는 것)
(튜터님 said..)
지금 학습 수준으로는 처음부터 모듈화를 생각하고 코드 작성하는 것이 많이 어려울 것이다.
지금부터 고민하면서 작성하다보면 어떤 방식으로 코드를 펼쳐야 모듈화에 가까워지는지 자연스럽게 체득할 수 있다.
모듈화를 위해 필요한 공부 : 순환참조, 의존성역전, msa
포트폴리오를 위한 좋은 자료를 만들기 위해서 (튜터님 피드백)
프로그래밍적으로 봤을 때 어떤 코드적 혁신이 있었는지,
메모리 낭비를 줄이기 위해 어떤 기발한 아이디어가 있었는지 기록하면 좋다.
문제해결에 대한 설명을 직관적으로 작성하자. (프로그래밍을 모르는 사람도 이해하기 쉽게)
확장한다면 어떤식으로 하면 좋을지, 개선하지 못한 부분은 무엇인지 기록하는 것도 좋다.
오늘의 회고
다른 팀 발표를 통해 멋진 아이디어를 접할 수 있었고, 많은 영감을 얻었다.
전통문화와 판타지 요소를 잘 조합한 10조가 가장 인상깊었다.
스토리, 아이템, 맵 디자인 등 컨셉을 통일성있고 개성있게 구성해서 좋았다.
십장생, 지옥맵 등 독특하면서도 개연성 있는 구조가 플레이어 입장에서 몰입하기 좋은 요소라고 생각한다.
또한 4조가 AI를 이용해 배경을 생성했는데, 좋은 아이디어라서 나중에 꼭 활용하고 싶다.
좋은 팀원분들과 함께 이번에도 잘 마무리 할 수 있어서 감사하다.
두 번의 팀프로젝트를 진행하면서 '프로젝트 매니저'의 필요성을 많이 느꼈다.
이번 프로젝트의 경우 main branch를 제어하면서 팀원들이 어떤 일을 당장 처리해야할 지 알려주는 팀원이 있었기 때문에 짧은 시간 안에 기능 구현에 집중해서 좋은 결과물을 낼 수 있었다.
프로젝트 전반적인 기획과 게임 디자인을 위한 회의 때 의사결정을 빨리 내려서 시간을 절약할 수 있었다.
모든 팀원이 각자 맡은 기능을 책임감 있게 만들어주었고,
스크립트에서 충돌이 나면 최대한 빨리 해결하기 위해 노력하는 등 협업을 위해 최선을 다해주어 감사하다.
어느새 Unity 숙련 주차에 접어들었군요..
내일도 새로운 팀원들과 함께 재밌는 게임을 만들기 위해 힘내봅시다. 아자!!
'게임 개발 일지 > 내일배움캠프 TIL' 카테고리의 다른 글
문자열 반환 Substring(n) / fixedDeltatime (0) | 2023.12.11 |
---|---|
안 좋은 코드 시리즈 1탄 (1) | 2023.12.08 |
region 사용하기 / UI - RankPanel 만들기 (2) | 2023.12.06 |
Array.IndexOf(x,y) / 델리게이트와 이벤트의 차이 (1) | 2023.12.05 |
ogg 파일 사용 / UI - BestScore 만들기 (0) | 2023.12.04 |
댓글