Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

246 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChaoticSharpRunner

목차

  1. 프로젝트 소개
  2. 팀소개
  3. 기능소개
  4. 개발기간
  5. 와이어프레임
  6. Trouble Shooting
  7. 프로젝트를 마치며

프로젝트 소개

ChaoticSharpRunner는 장애물을 피하며 생존하는 3D 런닝 게임입니다.

제한된 체력을 갖고 시작하며 장애물을 피해 코인을 먹고 점수를 올리는 것이 목표입니다.

게임 도중 아이템을 먹으면 플레이어에게 이로운 기능을 얻고 게임 플레이에 도움을 줍니다.

맵의 속도가 점점 올라가기 때문에 장애물을 피하는 난이도가 상승하며 플레이어의 반응속도가 중요한 요소로 작용합니다.

팀 소개

저희 21조는 무시무시한 개조는 적당히 하조라는 팀명처럼 마개조보단 3D 기능에 대한 이해와 구현에 초점을 맞춘 팀입니다.

주요 기능

  • 시간이 지날수록 속도가 빨라집니다.

    랜덤으로 생성되는 무한맵

  • 아이템

    게임 도중 생성되며 플레이어에게 이로운 효과를 줍니다.

    • 회복 : 플레이어 체력 회복

    • 코인 : 점수 추가

    • 자석 : 아이템 끌어당김

    • 장애물 제거 : 장애물을 제거

  • 장애물

    플레이어의 이동을 막는 장애물

    플레이어의 체력을 감소 시킵니다

  • 커스텀

    플레이어의 색을 커스텀 가능하며 날개 착용이 가능합니다.

  • UI

    점수

    • 현재 체력과 최대 체력을 알려줍니다.

    • 최대 체력은 저장되어 게임을 다시 켜도 유지됩니다.

    생명력

    • 현재 체력을 알려줍니다.

    게임 소개

    • 게임의 필요한 기능을 시작전 알려줍니다.
  • 플레이어

    좌우키(이동)와 스페이스바(점프)로 플레이어의 위치 변경합니다.

    장애물에 닿으면 체력이 깍이고 남은 체력이 없다면 게임 종료합니다.

개발 기간

  • 2024년 10월 31일 ~ 2024년 11월 7일

와이어 프레임

image image

Trouble Shooting

맵 간격 벌어짐 현상

  • 오브젝트의 생성 위치 계산을 줄이고 생성은 Update에서 이동은 FixedUpdate에서 실행.

씬에서 InGameDescriptionPanel이 표시되지 않던 현상

  • SceneManager.sceneLoaded 이벤트를 이용해 패널을 가장 먼저 표시되도록 설정.

GameOver 시 TogglePause가 중복으로 호출되어 일시정지 창이 겹쳐서 표시되는 현상

  • GameOver 호출 시 Time.timeScale을 직접 0으로 설정하여 일시정지 상태로 만들고, TogglePause를 별도로 호출하지 않도록 조정.

  • isPaused 상태를 관리하여 게임 오버 상황에서 ESC 키를 눌러도 일시정지 창이 뜨지 않게 예외처리 추가.

게임 씬 전환 시 UI 인스턴스가 중복 생성되는 현상

  • OnDestroy를 활용하여 씬 로드가 완료되기 전에 이벤트를 안전하게 구독 해제하고 UI를 초기화.

PlayerController의 이동 및 점프 기능이 일시정지 상태에서도 작동하는 현상

  • GameManager.Instance.IsPaused를 통해 현재 게임의 일시정지 상태를 확인한 후,

  • PlayerController의 입력 처리 메서드에서 일시정지 상태일 경우 동작을 차단하는 로직 추가.

교훈 및 개선점:

씬 로드 시 이벤트 구독 순서와 각 클래스의 초기화 순서가 게임 흐름에 중요한 영향을 미친다는 것을 확인.

중앙 관리 클래스(GameManager)를 통해 게임 상태와 UI 상태를 통합적으로 관리하되,

UI 관련 이벤트와 상태는 별도 UI 관리자(UIManager)에서 처리하여 코드의 명확성을 높이는 방식이 효과적임.

프로젝트를 마치며

팀장. 이태경 : 지금까지 중의 프로젝트 중에 제일 어려웠지만, 서로 맡은 바 최선을 다해서 좋은 결과물을 낼 수 있어서 뿌듯합니다.

팀원. 김지훈 : 이번 프로젝트때 부족한 면이 많이 있다고 느꼈으며, 특히 UI 같은 경우는 각자 개별 스크립트로 상세 구현한 뒤에 UI매니저는 열고닫는 큰 기능만 추가하는게 좋다고 배웠습니다. 좋은 팀원들 만나서 재밌게 한거 같습니다.

팀원. 이건호 : 실력이 많이 부족하다고 느꼈으며, 더 많은 공부가 필하다고 느끼게 해준 프로젝트 였습니다.

팀원. 김준식 : 좋은 팀원분들과 함께 프로젝트를 할 수 있어 즐거웠고, 개발하며 이해하지 못했던 부분을 알려주셔서 프로젝트 동안 정말 감사했습니다.

About

내배캠 무시무시한개조는적당히하조의 작품

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages