Lucid Archer

이준영·2025년 9월 2일

주제 : "궁수의 전설"을 모티브로 한 뱀서라이크 장르 게임.
개발 기간 : 2025.05.07. ~ 2025.05.15.
개발 인원 : Unity(5명)
사용 기술 : Unity, Github, Figma
Github : https://github.com/leejy1685/LucidArcher

Lucid Archer

주제 선택 사유

  • 유니티 입문 주차에 배운 기술을 최대한 활용할 수 있다고 생각되는 뱀서라이크 장르를 선택.
  • 참고 게임 : "궁수의 전설"

기술 스택

Unity, Github, Figma

기술적 의사결정

Unity

  • 사용 이유 : 2D 뱀서라이크 게임은 수많은 적과 오브젝트를 화면에 동시에 등장시켜야 하므로, 퍼포먼스와 최적화가 가장 중요합니다. 유니티는 다음과 같은 이유로 뱀서라이크 장르에 최적의 선택지였습니다.

Github

  • 사용 이유 : 2D 뱀서라이크 게임은 캐릭터, 적, 아이템 등 다양한 에셋과 코드 파일이 유기적으로 연결되어 있어 버전 관리가 필수적입니다.
  1. 효율적인 팀 협업 및 충돌 방지
    • GitHub를 통해 여러 개발자가 동시에 각자의 기능을 개발하고 병합하는 것이 가능.
    • 브랜치(Branch)를 활용하여 각 기능별로 개발을 진행한 후, 코드를 검토하고 병합함으로써 코드 충돌(Merge Conflict)을 최소화했습니다.
  2. 안정적인 프로젝트 백업 및 복구
    • 게임 개발 과정에서 예기치 않은 오류가 발생하거나 프로젝트 파일이 손상되는 경우 발생.
    • GitHub는 프로젝트의 모든 변경 이력을 기록하고 있어, 문제가 발생하더라도 이전의 안정적인 버전으로 쉽게 되돌릴 수 있었습니다.
  3. 투명한 작업 이력 관리
    • 커밋 메시지를 통해 각 변경 사항의 의도와 내용을 명확하게 기록.
    • 프로젝트의 전체적인 개발 흐름을 투명하게 관리할 수 있었습니다. 이는 향후 유지보수 작업에도 큰 도움이 됩니다.

Figma

https://www.figma.com/design/hbOFI6Nzx0IqfyhcR7hPjq/Untitled?node-id=0-1&p=f&t=hQDzpfak55zq1RwF-0

UI
  • 사용 이유 : 2D 뱀서라이크 게임은 스킬 선택 창, 설정 메뉴 등 다양한 UI가 핵심적인 역할을 합니다. 게임의 직관적인 UI/UX를 설계하고 팀원과 효율적으로 소통하기 위해 Figma를 활용했습니다.
  1. UI/UX 디자인의 시각화 및 명확한 소통
    • 게임의 전체적인 UI 흐름과 개별 화면 디자인을 Figma에서 미리 시각화
  2. 실시간 협업 및 피드백 반영
    • Figma는 웹 기반의 협업 툴이므로, 여러 팀원이 동시에 하나의 파일에서 작업하고 실시간으로 피드백을 주고받을 수 있음.

배운 점

몬스터만 통과하는 대쉬 기능 만들기

몬스터만 통과하는 대쉬 기능

  1. 구현 이유
    • 우리 게임에는 몬스터와 충돌 시, 플레이어가 넉백을 받으며 대미지를 입는 기능이 있다.
    • 이에 대쉬는 몬스터를 통과하면서 무적이 될 필요성을 느꼈다.
  2. 구현 방법
    • 이전에는 일시적으로 Dynamic으로 되어있는 rigidbody를 kinematic으로 변경하는 코드를 사용.
    • 몬스터만이 아닌 벽을 통과하는 현상이 발생.
    • 이를 방지하기 위해서 설정된 layer 둘이 충돌이 무시되게 만드는 코드를 사용.

게임 키 설정 기능 만들기

게임 키 설정 기능(이미지 링크)
  1. 구현 이유
    • QA 중, 사람 마다 선호하는 키 셋팅이 다르다고 판단.
  2. 구현 방법
    • 입력 키를 enum으로 구별, 매칭된 KeyCode를 변경하는 방식으로 구현.
    • 변경하는 방법은 Unity의 OnGUI 기능을 활용해서 입력된 값을 표시.
    • 입력된 값을 KeyCode로 변경하여 저장.

대쉬 기능 코드 리펙토링

대쉬기능 코루틴으로 고치기

  1. 문제 발생
    • 프로젝트가 끝나고 코드 리뷰를 하던 중, 대쉬 기능 코드가 읽기 힘들다고 판단.
  2. 원인 분석
    • 대쉬 쿨타임, 대쉬 시간 체크를 대쉬 메서드가 아닌, 시간 체크 메서드를 따로 구현됨.
    • 이로 인해, 시간 체크 메서드를 확인하지 않으면 대쉬 기능에 대한 이해가 힘듦.
  3. 코드 리펙토링
    • 대쉬 메서드와 시간 체크 부분을 코루틴으로 구현하여, 시간 흐름에 따라 기능을 보이게 리펙토링.

구현 기능

  1. 플레이어
    • 자동 공격 : 가장 가까운 몬스터를 찾아서 자동으로 공격합니다.
    • 상하좌우 이동 : W/A/S/D 키로 캐릭터를 이동할 수 있습니다.
    • 특수 능력 : 공격에 적중 시, 루시드 게이지를 채울 수 있고 다 차면 일시적으로 특수 능력을 사용합니다.
  2. 넉백
  3. 사운드
    • BGM
    • SFX
  4. 키 설정

시연 영상

유니티 입문 주차 Unity 십구만 조 게임 루시드 아처

플레이 해보기

Lucid Archer

profile
게임 개발자가 되기 위해서 공부하는 중입니다.

0개의 댓글