이 프로젝트는 GIGDC에 출품하기 위한 목적으로 만들어진 프로젝트입니다. 이 프로젝트의 특징이라면, 같은 학교 학생이 아닌, 타학교 학생들과 기획, 그래픽, 프로그래밍 분야로 나눠 개발을 진행 했다는 점입니다. 보통 온라인으로 진행했지만, 매 주 회의를 진행하여 개발을 진행했습니다.
안녕하세요!
2022년에 개발한 게임 프로젝트, 방과후 6시에 대해 설명하겠습니다.
방과후 6시는 세 분야(그래픽, 기획, 개발)로 나눠 사람을 구한 뒤 개발을 진행한 프로젝트 입니다.
대략 1월부터 7월까지 개발을 진행했고, 매 주 회의를 진행하는 방식, 개발하는 분들과는 스크럼방식을 이용해 하루에 한번 개발을 진행하도록 했습니다.
이 프로젝트 또한, 유니티를 처음 접해봤기에 많은 우역곡절을 겪었던 프로젝트입니다...
도중에 개발 팀원분께서 해외로 나가는 일이 있어서, 하던일을 이어 받아 개발을 했던 경험이 있네요 ㅎ..
이 프로젝트는 유니티 엔진을 이용해 2D로 구현했습니다.
- 45도 카메라 각도
- 쯔꾸르 방식의 타일맵 형식 게임
- 호러, 퀴즈 방식의 게임
3가지의 특징을 가지고 개발을 진행했습니다.
프로젝트 당시에 개발자 모두 유니티엔진에 대한 지식이 적었기 때문에, 씬을 같이 건드리는 경우도 많아 깃 충돌이 참 많이 발생했다.. 나에게 이 프로젝트는 프로그래밍 규칙을 만드는 습관을 만들 수 있도록 도와준 프로젝트인 것 같다!
게임 시작 후 게임의 목표를 깨기 전까지 적대 NPC와 또다른 방해물을 피해 모든 학생들을 풀어줘야한다.
몹 NPC 자동화 알고리즘
- Raycast2D를 이용하여 몹의 정면 부분을 검사한다.
- 벽이나 오브젝트를 부딪힐 경우에 상하좌우를 검사한다.
- 오브젝트나 벽이 없는 부분을 랜덤으로 결정하여 그 방향으로 몹이 이동한다.
- 플레이어를 일정 범위네 발견하면, 2,3번을 무시한채 플레이어를 따라간다.
- 위 방법을 반복한다.
** MonsterCollision.cs 스크립트를 열어보면 위 알고리즘을 쉽게 알 수 있다.
stage
- 마우스를 이용해 칠판을 선택할 때 UI 오브젝트를 등장하도록 구현
- 힌트에 해당하는 오브젝트의 경우 마우스 모양 변경
- Camera.main.SceneToWorldPoint 함수를 이용해 현재 입력되고 있는 마우스의 위치를 파라미터로 전달하여 변수값에 돋보기 오브젝트를 위치시킨다.
- 플레이어가 유령 NPC와 대화를 할 시, 충돌 범위 안에서 스페이스 바를 눌러 대화창이 뜨도록 구현한다.
- Json파일을 이용하여, 데이터를 저장한다.
- 플레이어가 정답을 입력할 경우, 공포 요소를 추가한다.
개발 이미지
URLs
동영상 : https://www.youtube.com/watch?v=I2tkKil4oQg
github : https://github.com/GIGDC/Game_development_project
회고
나를 제외한 모든 팀원이 3학년이었기에 학기가 바빴기도 했고, 조금씩 일정이 늦어졌던것 같다. 팀장으로 더 책임감을 갖으며 열심히 하려고 노력했던 프로젝트였다. 한명의 해외 일정으로 2달도 안남은 기간동안 잠도 잘 자지 못하고, 개발을 완성하려고 더더욱 노력했던 것 같고, 완성했을 때 이렇게 뿌듯했던 적이 없었다!
이 프로젝트로 팀장의 역할이 부족했음을 알고, 더 발전하는 계기가 되었다.