본문 바로가기

Unity

(11)
[모바일 디펜스 게임] #1. 버전 0 제작 이번 학기 수업에서 한달이 조금 넘는 시간 동안 간단한 게임을 만들고 발표해보는 시간을 가졌다. 따라서 나는 내가 만들고자 하는 게임의 가장 축약된 버전, 이른바 버전 0을 제작하고 발표하였다. 이번 글에서는 이에 대해 자세히 설명해보고자 한다. 1. 시작 화면게임의 시작 화면은 다음과 같다. 제목을 아직 정하지 못해서 Unnamed Defense라 하였다. 제목과 함께 이전의 하이 스코어가 기록되게 하였고, 시작 버튼을 누르면 시작할 수 있다.  2. 웨이브 이전: 방어진형 설계 시작 버튼을 누르면 다음과 같은 화면이 나타난다. 저 황토색 땅에 아래 카테고리의 아이템들을 설치하여 방어진형을 설계할 수 있다. 아래 카테고리는 다음과 같이 구성되어 있다. 1) Towers순서대로 석궁, 대포, 박격포, 마..
[모바일 디펜스 게임] #0. 시작과 기획 0. 클린 코딩 개념의 이해 저번 학기(23-2)에 학교 수업의 프로젝트로 VR 탈출 게임을 개발했었다. 사실 게임을 개발했다고 하기엔 껄끄러운 것이 빌드에도 실패했었고, 학교에서 대여받은 VR 기기(Oculus Meta Quest2)를 반납해서 내가 다시 해볼 수도, 개발을 이어나갈 수도 없다. 그래도 나름 보여지기에 괜찮은 결과물을 뽑은 것 같은데, 사실 그 속은 엉망진창 꼬여있다. 당시 SOLID, 디자인 패턴과 같은 클린 코딩에 대한 개념도 없었고, 단지 강의 교수님이 준비한 자료의 예시를 보고 일반성, 재사용성 등 좋은 코드의 요소에 대한 어렴풋한 감은 느꼈으나, 이조차 마감 기한이 다가오자 신경쓰지 못하고 그저 나오는 결과물에만 집중해 코드를 마구잡이로 추가시켰다. 해당 학기가 끝나고 새 프로..
Unity C#) 디자인 패턴 가이드 #8. MVP(Model-View-Presenter) 본 글은 유니티에서 발간한 전자책 'Level up your programming with game programming patterns'을 정리한 글입니다. 원문은 다음 링크에서 확인하실 수 있습니다. https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns 해당 도서를 정리한 마지막 글입니다. 1. Model View Controller(MVC) Model View Controller (MVC)는 유저 인터페이스를 개발할 때 흔히 사용되는 디자인 패턴의 일종이다. MVC의 일반적인 아이디어는 소프트웨어의 로직을 데이터와 표시(presentation) 부분으로 분리하는 것이다. 이렇게 하면 불필요한 의존성이 줄어들고..
Unity C#) 디자인 패턴 가이드 #7. 옵저버 패턴(Observer pattern) 본 글은 유니티에서 발간한 전자책 'Level up your programming with game programming patterns'을 정리한 글입니다. 원문은 다음 링크에서 확인하실 수 있습니다. https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns 1. Observer pattern 게임에선 여러 가지 일이 발생할 수 있다. 적을 파괴할 때, 아이템을 수집할 때, 미션을 완료할 때 모두 다른 일이 발생한다.이를 위해 불필요한 의존성을 만들지 않고 어떤 객체가 다른 객체에게 통지할 수 있는 메커니즘이 필요할 것인데, 옵저버 패턴(observer pattern)은 이러한 문제를 해결하는 일반적인 방법이다. 이..
Unity C#) 디자인 패턴 가이드 #6. 스테이트 패턴(State pattern) 본 글은 유니티에서 발간한 전자책 'Level up your programming with game programming patterns'을 정리한 글입니다. 원문은 다음 링크에서 확인하실 수 있습니다. https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns 1. States and state machines 조작 가능한 캐릭터를 구축하는 것을 상상해보자. 평소에는 캐릭터가 땅에 붙어있다가 컨트롤러를 조작하면 걷거나 달릴 것이고, 점프 버튼을 누르면 캐릭터가 공중으로 뛰었다가 이후 착지하여 기본 상태로 돌아갈 것이다. 이처럼 게임은 상호작용적이며, 런타임동안 바뀌는 여러 시스템들을 추적하는 것이 필요하다. 위에서 언..
VR 게임 - 포닉스 구출하기 1. 프로젝트 소개 23년 2학기 '메타버스콘텐츠제작의이해'라는 학교 수업의 팀프로젝트로 한 학기 동안 VR 게임을 설계 및 제작하였다. 게임의 목표는 다양한 적들과 싸워가며 필요한 아이템들을 모아 최종적으로 보스(넙죽이)와 싸워 이기는 것이다. 게임 속 플레이어는 던전을 탐험하면서 자신의 체력과 스태미나, 무기의 내구도 등 다양한 상태를 고려하여 적과 싸울 것인지, 피해갈 것인지 등을 매순간 결정해야 한다. 게임은 오큘러스 퀘스트2 환경에서 제작 및 시연하였다. 오큘러스 기기의 양컨트롤러 상호작용을 적극 활용하여 아이템 집기, 무기 휘두르기, 방어하기, 포션 마시기 등의 인터랙티브한 요소들에 신경써 보다 생생하고 몰입감있는 환경을 제공하고자 하였다. 2. 시연 영상 https://www.youtube...
Unity C#) 디자인 패턴 가이드 #5. 커맨드 패턴(Command pattern) 본 글은 유니티에서 발간한 전자책 'Level up your programming with game programming patterns'을 정리한 글입니다. 원문은 다음 링크에서 확인하실 수 있습니다. https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns 1. Command pattern 커맨드 패턴은 특정 일련의 작업을 추적하고 싶을 때 유용한 패턴이다. undo/redo 기능을 사용하거나 입력 이력을 목록으로 유지하는 게임을 플레이한 적이 있다면 커맨드 패턴이 사용되었을 것이다. 커맨드 패턴을 도식으로 나타내면 다음과 같다. 커맨드 패턴은 메서드를 직접 호출하는 대신에, 하나 혹은 그 이상의 메서드 호출을 커..
Unity C#) 디자인 패턴 가이드 #4. 싱글톤 패턴(Singleton pattern) 본 글은 유니티에서 발간한 전자책 'Level up your programming with game programming patterns'을 정리한 글입니다. 원문은 다음 링크에서 확인하실 수 있습니다. https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns 1. Singleton pattern 싱글톤 패턴은 다음과 같은 기능을 한다. - 클래스가 객체를 하나만 가지도록 보장한다. - 그 단일 객체에 대한 쉬운 전역 액세스(global access)를 할 수 있도록 한다. 싱글톤 패턴은 모든 씬에서 작업을 조정해야 하는 오브젝트가 딱 한 개 필요한 경우에 유용하다. 가령 씬에서 메인 게임 루프를 지시하는 하나의 게임..