모각코_회고록
포스트
취소

모각코_회고록

모각코 회고록

목표 :

시작 부터 8월 초반까지 스터디 형식으로, C#을 활용한 유니티 프로그램을 활용하여 기초적인 게임을 클론 코딩하면서 유니티의 전반적인 기능에 대해서 공부하고
그 이후에는 개인별로 만들보고싶은 간단한 게임을 선정하여 게임제작을 해본다.

7월 스터디

7.7 ~ 7.24 - 플랫포머 게임 클론 코딩

  • 유니티의 기초적인 기능 공부:
    • Main Camera, Sprite, Inspector 등 사용법 익히기
    • Box Collider와 RigidBody를 통해 Sprite의 아웃라인과 물리적인 요소 설정
    • Animator를 통해 Sprite의 움직임을 설정 - Sprite 다중 선택
  • C#를 통한 player의 움직임 설정:
    • alt code
  • Inspector를 통한 sprite의 좌우 설정
  • Animator 탭을 이용하여 상황에 맞는 Animation을 각각 설정해준다
    • 만약 걷는 모션을 설정하고 싶다고 하면 isWalk라는 parameter를 설정해준다
  • 플레이어 일단 점프 설정
    • RayCast - Ray가 평면과 교차 여부 사용
    • 특정 platform에 닿았을 시 상황에 맞는 Animation으로 복귀
  • 타일 맵을 이용하여 맵을 편하게 구축할 수 있다.
  • 적 AI 설정
    • 적도 RayCast를 이용하여 맵 끝에 가면 안떨어지도록 설정
  • Player 세부 설정
    • 방해물 (적과 Spike)에 피격 당했을 시 몇초간 무적 상태 설정법
    • alt OnDamaged
  • 다양한 맵 설정
    • Flag라는 아이템에 닿았을 시 다음 맵으로 넘어가는 방식
  • 게임 UI 구축
    • 좌상단에 player 목숨, 중앙 상단에 스테이지 번호, 우상단에 점수 표기
    • alt UI_ingame
  • 게임 소리 추가
    • Player-Inspector-Audio Source-상황에 맞는 파일 추가

3주간 진행한 플랫포머 게임 회고

처음 접해보는 UNITY 프로그램과 C# 언어를 배우면서 익숙해지는데 많은 시간이 필요했고 응용하기에는 더더욱 어려움을 느꼈다.
하지만 게임을 플레이 하기 위한 요소들을 배우고 직접 적용해고 직접 플레이 했을 때 예상했던 대로 플레이가 되는걸 보면서 성취감을 느낄 수 있었다.

7월 말 ~ 8월 개인 게임 개발

7.28 ~ 8.25 - 클론 코딩을 통한 슈팅 게임 만들어 보기

이번에도 클론 코딩을 하기로 맘먹은 이유:
플랫포머 게임을 클론 코딩 하면서 배운 내용들을 토대로 직접 게임 구상 및 제작을 진행하고 싶었으나, 아직 유니티로 스스로 게임을 기획, 제작하기엔 지식이 부족하다고 판단하였고 처음 사용해보는 언어인 C#을 자유롭게 다루지 못하기 때문에, 현존하는 게임인 갤러그의 장르 슈팅게임을 다양한 참고들과 함께 클론코딩을 한다.

  • 클론 코딩 출처: 골드메탈 2D 종스크롤 슈팅게임
  • 종스크롤(모바일) 화면 설정 - Game 탭에서 Aspect 설정
  • 캐릭터 움직임 - 키보드를 통한 상하좌우
    • 바운더리 설정 - 그 안에서만 움직일 수 있도록 (Box Collider)
  • player가 쏘는 총알 설정
    • Prefab 사용 - 각 씬에서 동일한 게임 오브젝트를 생성하기 때문
    • 캐릭터의 움직임을 제한하는 바운더리 처럼 바운더리를 설정하여 바운더리 밖으로 나가면 총알이 없어짐
    • Player의 power에 따라 나가는 총알 계수와 종류 변경
    • 총알 간 발사 간격 설정
  • 적 비행체 설정
    • 3가지 종류
    • 종류에 맞는 세부사항 설정 (health, speed…)
    • 적이 쏘는 총알도 player가 쏘는 총알과 같은 바운더리 사용 + 똑같이 Prefab으로 적용
    • 적의 스폰 장소 설정 - 랜덤한 시간에 랜덤한 종류의 비행체 생성
    • 적의 총알은 Vector를 통해 Player를 향하도록 설정
    • alt Gaming
  • 피격 이벤트 설정
    • 피격시 player를 없앴다 다시 만들어줌
    • Set.Active 사용
  • 아이템 설정
    • Coin - 점수 증가
    • Power - Max Power 전 까진 Player의 총알 계수 증진, Max Power 이후 부턴 점수 증가
    • Boom - 필살기 / UI 설정 - 우상단에 아이템을 먹을때 마다 생김
    • alt InGame
    • 아이템 드랍 설정 - 적 비행체를 처치하면 랜덤 확률로 랜덤 아이템 등장
    • 아이템도 Prefab으로 적용
  • 무한 원근감 배경 설정
    • 게임 화면 크기의 3배의 맵을 설정하고 스크롤링 기법을 사용하여 설정 - 무한함
    • Parallax 기법을 통해 3단으로 나뉜 배경의 각 속도를 다르게 설정하여 원근감을 준다
  • 오브젝트 풀링
    • 생성(Instantiate), 삭제(Destroy)하면서 조각난 메모리가 쌓임 -> 렉이 걸리는 현상 방지
    • 사용할 프리펩들을 일정량 생성 시키고, 게임 중에 활성화/비활성화 하는 방법
    • Destroy -> SetActive(false)로 변경
    • alt TargetPool
  • 텍스트 파일를 통한 적 비행체 커스텀 배치
    • 적 비행체를 생성하기 위해 필요한 요소를 텍스트 데이터에 입력
    • 메모장에 있는 내용을 리스트로 만든 뒤 Spwan Enemy 에서 하나하나 소환
    • 랜덤 사용X
  • 보조무기 설정
    • Power를 4개 이상 먹을 시 보조무기 생성 (최대 3개)
    • Delay Time을 이용하여 player를 일정 프레임 뒤에 따라오게 만든다

슈팅게임 클론코딩 회고

Unity의 기능들과 C#언어를 더 확실하게 익히고자 시작했던 클론 코딩인 만큼 이번에는 다양한 기법과 문법에 대해서 공부할 수 있어던것 같다.
특히 오브젝트 풀링이라는 것을 공부하면서 게임에 있어서 최적화가 얼마나 중요한지 다시금 깨닫게 되었고,
흔히 볼 수 있는 슈팅게임의 원근감있는 무한한 배경도 다양한 기법을 통해 구축해 보면서 단순 게임 개발에 국한되지 않고 다른 프로젝트를 진행 할 때도 도움이 될법한 방법들에 대해 배울 수 있었다.
마지막으로 직접 게임을 플레이 해보면서 오류를 발견하고 난이도를 조절해 보면서 게임 개발자들이 게임 하나를 개발하는데 정말 많은 노력이 필요하다는것을 다시금 깨달을 수 있는 기회였다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.