모각코 회고록
목표 :
시작 부터 8월 초반까지 스터디 형식으로, C#을 활용한 유니티 프로그램을 활용하여 기초적인 게임을 클론 코딩하면서 유니티의 전반적인 기능에 대해서 공부하고
그 이후에는 개인별로 만들보고싶은 간단한 게임을 선정하여 게임제작을 해본다.
7월 스터디
7.7 ~ 7.24 - 플랫포머 게임 클론 코딩
- 유니티의 기초적인 기능 공부:
- Main Camera, Sprite, Inspector 등 사용법 익히기
- Box Collider와 RigidBody를 통해 Sprite의 아웃라인과 물리적인 요소 설정
- Animator를 통해 Sprite의 움직임을 설정 - Sprite 다중 선택
- C#를 통한 player의 움직임 설정:
- Inspector를 통한 sprite의 좌우 설정
- Animator 탭을 이용하여 상황에 맞는 Animation을 각각 설정해준다
- 만약 걷는 모션을 설정하고 싶다고 하면 isWalk라는 parameter를 설정해준다
- 플레이어 일단 점프 설정
- RayCast - Ray가 평면과 교차 여부 사용
- 특정 platform에 닿았을 시 상황에 맞는 Animation으로 복귀
- 타일 맵을 이용하여 맵을 편하게 구축할 수 있다.
- 적 AI 설정
- 적도 RayCast를 이용하여 맵 끝에 가면 안떨어지도록 설정
- Player 세부 설정
- 다양한 맵 설정
- Flag라는 아이템에 닿았을 시 다음 맵으로 넘어가는 방식
- 게임 UI 구축
- 게임 소리 추가
- Player-Inspector-Audio Source-상황에 맞는 파일 추가
3주간 진행한 플랫포머 게임 회고
처음 접해보는 UNITY 프로그램과 C# 언어를 배우면서 익숙해지는데 많은 시간이 필요했고 응용하기에는 더더욱 어려움을 느꼈다.
하지만 게임을 플레이 하기 위한 요소들을 배우고 직접 적용해고 직접 플레이 했을 때 예상했던 대로 플레이가 되는걸 보면서 성취감을 느낄 수 있었다.
7월 말 ~ 8월 개인 게임 개발
7.28 ~ 8.25 - 클론 코딩을 통한 슈팅 게임 만들어 보기
이번에도 클론 코딩을 하기로 맘먹은 이유:
플랫포머 게임을 클론 코딩 하면서 배운 내용들을 토대로 직접 게임 구상 및 제작을 진행하고 싶었으나, 아직 유니티로 스스로 게임을 기획, 제작하기엔 지식이 부족하다고 판단하였고 처음 사용해보는 언어인 C#을 자유롭게 다루지 못하기 때문에, 현존하는 게임인 갤러그의 장르 슈팅게임을 다양한 참고들과 함께 클론코딩을 한다.
- 클론 코딩 출처: 골드메탈 2D 종스크롤 슈팅게임
- 종스크롤(모바일) 화면 설정 - Game 탭에서 Aspect 설정
- 캐릭터 움직임 - 키보드를 통한 상하좌우
- 바운더리 설정 - 그 안에서만 움직일 수 있도록 (Box Collider)
- player가 쏘는 총알 설정
- Prefab 사용 - 각 씬에서 동일한 게임 오브젝트를 생성하기 때문
- 캐릭터의 움직임을 제한하는 바운더리 처럼 바운더리를 설정하여 바운더리 밖으로 나가면 총알이 없어짐
- Player의 power에 따라 나가는 총알 계수와 종류 변경
- 총알 간 발사 간격 설정
- 적 비행체 설정
- 피격 이벤트 설정
- 피격시 player를 없앴다 다시 만들어줌
- Set.Active 사용
- 아이템 설정
- 무한 원근감 배경 설정
- 게임 화면 크기의 3배의 맵을 설정하고 스크롤링 기법을 사용하여 설정 - 무한함
- Parallax 기법을 통해 3단으로 나뉜 배경의 각 속도를 다르게 설정하여 원근감을 준다
- 오브젝트 풀링
- 텍스트 파일를 통한 적 비행체 커스텀 배치
- 적 비행체를 생성하기 위해 필요한 요소를 텍스트 데이터에 입력
- 메모장에 있는 내용을 리스트로 만든 뒤 Spwan Enemy 에서 하나하나 소환
- 랜덤 사용X
- 보조무기 설정
- Power를 4개 이상 먹을 시 보조무기 생성 (최대 3개)
- Delay Time을 이용하여 player를 일정 프레임 뒤에 따라오게 만든다
슈팅게임 클론코딩 회고
Unity의 기능들과 C#언어를 더 확실하게 익히고자 시작했던 클론 코딩인 만큼 이번에는 다양한 기법과 문법에 대해서 공부할 수 있어던것 같다.
특히 오브젝트 풀링이라는 것을 공부하면서 게임에 있어서 최적화가 얼마나 중요한지 다시금 깨닫게 되었고,
흔히 볼 수 있는 슈팅게임의 원근감있는 무한한 배경도 다양한 기법을 통해 구축해 보면서 단순 게임 개발에 국한되지 않고 다른 프로젝트를 진행 할 때도 도움이 될법한 방법들에 대해 배울 수 있었다.
마지막으로 직접 게임을 플레이 해보면서 오류를 발견하고 난이도를 조절해 보면서 게임 개발자들이 게임 하나를 개발하는데 정말 많은 노력이 필요하다는것을 다시금 깨달을 수 있는 기회였다.

