목록분류 전체보기 (90)
오르막길

🧭 프로젝트 소개《야간경비일지(가제)》는 Unity 기반 1인 개발 프로젝트로,"스테이지 기반 라이트 공포 게임"이라는 콘셉트를 가진 모바일 게임입니다.플레이어는 ‘야간 순찰’이라는 설정 아래 매일 새롭게 주어지는 나폴리탄 괴담 규칙을 알아가며,이를 지키거나 파훼해 30일동안 살아남아 일지를 남기는 것이 목표입니다.게임의 핵심 재미는 죽음을 통해 규칙을 발견하고, 이를 매뉴얼에 스토리를 알아가는 반복 구조에 있습니다.1일차 루프를 완성하는 MVP(Minimum Viable Product)를 목표로,가장 핵심이 되는 시스템 구조를 중심으로 개발을 진행하고 있습니다. 🧭 프로젝트 목표이 게임은 다음과 같은 학습/도전 목적으로 기획되었습니다디자인 패턴 실습 (전략, 상태, 옵저버 등)유지보수가 쉬운 구조 ..
✅ 기본 개념옵저버 패턴 (Observer Pattern)은 발행자와 구독자 간의 일대다 관계를 정의하여, 발행자의 상태가 변할 때 이를 구독자에게 자동으로 알리는 패턴이벤트 기반의 비동기 구조에서 자주 사용됨 🗂️ 주요 특징느슨한 결합: 발행자와 구독자가 서로 직접 참조하지 않음확장성: 구독자를 쉽게 추가하거나 제거 가능재사용성: 동일한 이벤트를 여러 구독자가 동시에 사용할 수 있음RuleTrigger는 옵저버 패턴으로 설계하는 게 좋음EventPublisher가 이미 간단한 옵저버 역할을 하고 있지만, 더 체계적으로 관리할 수 있음 📝 옵저버 패턴 적용 (RuleTrigger)EventPublisher - 이벤트 발송자RuleManager - 이벤트 수신자RuleData - 트리거 상태 관리 📂..
✅ 기본 개념상태 패턴 (State Pattern)은 객체의 상태에 따라 행동이 달라지도록 만드는 디자인 패턴.상태를 독립적인 클래스로 분리하여, 상태에 따른 행동을 각각의 클래스로 캡슐화.🗂️ 주요 특징유연성: 새로운 상태를 쉽게 추가 가능.코드 재사용성: 동일한 로직을 여러 객체에서 재사용 가능.응집도: 각 상태가 독립적인 로직을 가지므로 관리가 쉬움.느슨한 결합: 상태 전환 로직이 Context에 집중되어, 각 상태가 서로 직접 의존하지 않음.📝 상태 패턴 적용 (PlayerController)IdleState - 플레이어가 멈춰 있는 상태WalkingState - 플레이어가 이동 중인 상태InteractingState - 플레이어가 상호작용 중인 상태📂 구조1. 상태 인터페이스 (Player..

공부 배경가시화 모니터링 테스트 중, 규모에 비해 과한 성능이 요구되는 것을 발견하고 비코드적인 면으로 여러 최적화 시도를 하게 되었습니다.개발자 입장에서 코드 최적화도 중요하지만그 외 쉽게 놓칠 수 있는 최적화 방법을 정리해 두고자 글을 작성하게 되었습니다.앞으로도 놓쳤던 최적화 방법이 있다면 계속해서 추가할 예정입니다. 출처유니티 공식 문서를 바탕으로 유니티 21.3.16f1 버전에서 적용 가능하도록 작성되었습니다. 목차1. Occlusion Culling2. Resources 폴더3. Build Compression 설정 : WebGL 1. Occlusion Culling다른 오브젝트에 가려(오클루전된) 카메라에 보이지 않는 오브젝트의 렌더링을 비활성화하는 기능3D 컴퓨터 그래픽스에서는 대부분의..

공부 배경관제 시스템 가시화 업무 중, 건물 전체를 자연스럽게 보여주는 연출을 구현하기 위해 유니티 시네머신을 공부했습니다.시네머신은 기본적으로 정말 유용한 기능도 많고, 스크립트와 함께 활용하면 무궁무진한 연출이 가능합니다.필요한 상황에 따라 어떤 기능을 써야 할지 고민될 때 참고하기 위해 글을 작성하게 되었습니다. 출처https://www.youtube.com/watch?v=2oOIp22Y11U https://docs.unity3d.com/Packages/com.unity.cinemachine@2.8/manual/index.html About Cinemachine | Cinemachine | 2.8.9About Cinemachine Cinemachine is a suite of modules for ..

Unity 6 업데이트 기념 – 최신 게임 엔진 트렌드에 대한 개인적인 견해 및 Unity 6 챌린지 리뷰Unity (유니티)란?Unity 엔진은 게임 개발자가 20개 이상의 플랫폼과 수십억 대의 기기에서 비디오 게임을 제작할 수 있도록 지원하는 게임 및 앱 개발 소프트웨어이 소프트웨어는 다른 산업 분야에서도 활용되어 CAD 및 3D 데이터를 몰입형 앱과 경험으로 변환하여 언제 어디서나 모든 디바이스에서 사용 가능https://unity.com/ Unity 실시간 개발 플랫폼 | 3D, 2D, VR 및 AR 엔진엔터테인먼트, 영화, 자동차, 건축 등의 분야에서 활용할 수 있는 실시간 3D 게임, 앱, 경험을 만들고 성장시켜 보세요. 지금 바로 Unity를 시작해 보세요.unity.com 유니티(Uni..

지난 2024년 12월 7일, 넥슨의 대표적 게임 중 하나인 메이플 쇼케이스와 메이플콘에 참석했다.따라서 메이플콘 방문기와 그중에서 가장 인상 깊었던 메이플 월드에 대한 정보, 그리고 게임 개발에 관심이 많은 사람으로서의 개인적이고 짤막한 의견을 기술하고자 한다.참석하게 된 배경사실 난 진득한 메이플 유저는 아니고 여러 게임을 얕게 플레이하는 일명 찍먹 전문가이다.그러나 2023년도 아카데미 수료 즈음에 메이플 고인물 친구가 쇼케이스 티켓팅을 한다길래 나도 그냥 해봤다가 덜컥 성공했다. (친구는 떨어졌다..)쇼케이스에서 공개된 6차 스킬에 당시 현장분위기는 축제였고 나도 덩달아 응원봉을 흔들어 재끼며 즐겁게 환호했다. 뭔지도 잘 모르면서..당시 너무 좋았던 기억만 남은 메이플 쇼케이스! 이번 2024 쇼..
우연히 노마드코더 클린코드 챌린지를 접해 약 3주정도 챌린지에 참여하게 되었다.아직 완독한건 아니지만 미루던 클린코드를 읽을 수 있었다.내용이 어렵지 않은건 아녔다. 하지만 작가도 예시코드도 나에게 이해해주려고 노력한 부분이 많았다.대부분 자바를 메인으로 한 코드 같았다. 싸피 과정에서 자바를 접하긴 했어서 어느정도 이해하는데 도움이 됐다!하지만 그런 부분이 아쉽기도 했다. 좀 더 다양한 시각에서 바라보고 싶다는 욕심도 생겼다.그런 점에서는 클린코드 챌린지를 한 게 다행이었다. 다른 사람들의 소감이나 정리를 읽어보면서 이렇게 생각할 수 있고, 현업에서는 이렇게 응용하고, 등등 알게 됐다!덕분에 나도 진행중인 프로젝트 코드를 되돌아 보았다. 중복되는 코드를 줄이고 함수를 쪼개면서 리팩토링을 해봤다.확실히 ..
10장클래스 책에서 기억하고 싶은 내용클래스의 체계변수 순서: 정적 공개 상수 - 정적 비공개 변수 - 비공개 인스턴스 변수공개 변수가 필요한 경우는 거의 없다변수 이후 공개 함수 - 비공개 함수(자신 호출하는 공개함수 직후)의 추상화 단계가 순차적으로 내려간다테스트 코드가 함수 호출이나 변수 사용이 필요한 경우 protected로 선언하거나 패키지 전체로 공개한다.하지만 비공개 상태를 유지하는 것이 최우선클래스는 작아야 한다.클래스 설명은 if, and, or, but을 사용하지 않고 25단어 내외여야 한다SRP(단일 책임 원칙): 클래스나 모듈을 변경할 이유가 하나여야 한다.돌아가는 소프트웨어에 초점을 맞추다 보니 수많은 책임을 떠안은 클래스가 생긴다.작은 클래스는 각자 맡은 책임이 하나, 변경할 이..
9장단위 테스트 책에서 기억하고 싶은 내용TDD 법칙실패하는 단위테스트를 작성할 때까지 실제 코드를 작성하지 않는다.컴파일은 실패하지 않음녀서 실행이 실패하는 정도로만 단위테스트를 작성한다.현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.깨끗한 테스트 코드테스트 코드는 실제 코드 못지않게 중요하다유연성, 유지보수성, 재사용성을 제공하는 버팀목이 바로 단위테스트이다!테스트케이스가 있다면 별다른 우려 없이 변경할 수 있게 된다가독성이 제일 중요하다최소의 표현으로 많은 것을 나타내야 한다.테스트당 assert 하나테스트를 분리하면 중복되는 코드가 많아진다.Template method 패턴을 사용하면 중복을 제거할 수 있다.테스트당 개념 하나FIRST빠르게: 테스트는 빨리 돌아야 한다.독립적으로: ..