Portfolio
Unity Client Developer
프로젝트 개요
개발 인원 및 기간
담당 업무
Github 주소
Unity 2D Mobile 방치형 게임 ‘’화살키우기’’
- 누구나 쉽게 즐기는 모바일 방치형 게임
- 자동 전투, 화살제작, 자원획득으로 플레이어의 피로도 감소
- 기물뽑기, 강화, 제작화살 등 성장체감 시스템
- 퀘스트 시스템으로 게임 튜토리얼 및 진행안내
- 개발 인원 : 총 1명
- 2024.08 ~ 2024.09
- Abstract class와 FSM을 이용한 Enemy 관리
- IPointerHandler interface를 통한 드로그앤드롭, 캐릭터 정보창 구현
- AI 기반 자동 전투 ,자동 화살제작 및 합성, 자원획득 등 방치시스템 구현
- 제작, 강화, 특수, 뽑기 시스템으로 플레이어 성장 시스템 구현
- Json을 통한 스텟, 퀘스트 저장 및 불러오기 구현
- Batch 최적화
동영상 링크
Unity 2D Mobile 방치형 게임 ‘’화살 키우기’’
기능 구현
기능 | 구현 |
Enemy 관리 |
|
화살 Slot |
|
자동 전투 |
제작 기능 : 제작 가능한 화살이 있으면 Slot에 순차적으로 배치 합성 기능 : Slot에 배치된 화살을 탐색하여 자동으로 합성 |
디자인 패턴 |
|
메모리 관리 |
|
최적화 |
|
데이터 관리 |
|
Unity 2D Mobile 방치형 게임 ‘’화살 키우기’’
문제 해결
문제 상황 | 해결 |
- 드로그앤드롭이 정상적으로 발생하지 않음 | - Canvas의 Render Mode가 Screen Space - Camera 모드로 설정되어 있어 캔버스의 좌표계와 드래그 이벤트의 좌표계 간의 차이로 발생 - 코드를 통해 ScreenPointToLocalPointInRectangle을 사용하여 마우스의 스크린 좌표를 캔버스의 로컬 좌표로 변환하여 해결 |
- 화살 자동 합성 코드의 시간복잡가 O(n^2)가 되어 성능 저하가 문제가 될거라확인 | - 딕셔너리를 사용하여 시간 시간복잡도를 slot의 갯수 만큼인 O(n)으로 줄여 성능 향샹 |
- Render Pipline Asset의 dynamic batching을 체크했음에도 batching이 제대로 이루어지지 않음 | - 캐릭터들의 몸 파츠중 일부 material이 서로 달라서 문제가 발생한것을 확인 - 코드를 통해 자식객체의 모든 material을 동일하게 설정하여 전투중인 모든 캐릭터들이 1개의 Draw Dynamic을 batch하게됨 |
프로젝트 개요
개발 인원 및 기간
담당 업무
Github 주소
Unity 3D ARPG ‘’데릭의 모험’’
- 몬스터를 사냥하고 퀘스트를 클리어하며 캐릭터를 성장시키는 3D 액션 RPG
- 개발 인원 : 총 2명
- 2023.03 ~ 2023.06 (약 10주)
- 플레이어 조작, 스킬, 공격 이펙트 구현
- 등급별 총 13개 Enemy의 공격, 피격, 이동 구현
- 인벤토리, 상점, 스텟창, 스킬창, 미니맵 등 UGUI작업
- 조작법, 사운드 및 감도, 저장을 위한 설정 시스템 구현
동영상 링크
Unity 3D ARPG ‘’데릭의 모험’’
핵심 기능 구현 - Player
기능 | 구현 |
조작 |
|
공격 |
|
이펙트 |
|
애니메이션 |
|
Unity 3D ARPG ‘’데릭의 모험’’
핵심 기능 구현 - Enemy
기능 | 구현 |
이동 |
|
공격 |
|
피격 |
|
생성 |
|
Unity 3D ARPG ‘’데릭의 모험’’
핵심 기능 구현 - UGUI
기능 | 구현 |
미니맵 |
|
상점, 인벤토리, 스텟창 |
|
설정 |
|
Unity 3D ARPG ‘’데릭의 모험’’
문제 상황 | 해결 |
- 플레이어가 벽을 통과하는 물리버그 | - 플레이어의 이동속도가 일정수준 이상빨라지면 벽을 통과하는 것을 확인 - 플레이어 전방에 레이어를 발사하여 앞에 오브젝트가 감지되면 속도를 줄여 문제를 해결 |
문제 해결
Portfolio
Backend Developer
읽어주셔서 감사합니다.