태크놀로지

METAL SLUG 모작 - 2D 아케이드 슈팅게임 본문

포트폴리오

METAL SLUG 모작 - 2D 아케이드 슈팅게임

원택 2021. 12. 28. 10:31

개발환경

  • WIN API, C++

게임소개

  • 2D 아케이드 액션,슈팅게임 메탈슬러그 모작입니다.

개발기간

  • 일주일

https://youtu.be/fQmzH20Yb4g


씬 플로우

  • 타이틀
  • 캐릭터 선택
  • 스테이지 <-> 게임오버
  • 보스 <-> 게임오버
  • 게임엔딩

기술적요소

  • 직선의 방정식을 사용하여, 라인태우기를 통한 맵 이동
  • 상/하체 2D 스프라이트 애니메이션
  • 포물선운동, 점프 기능
  • 윈도우 좌표계에서의 렉트 충돌, 충돌처리
  • 스폰 시스템 구성 (설치해놓은 스폰바와 충돌시, 정해진 개수의 몬스터가 등장)

컨텐츠

  • 무기 : 일반권총 / 샷건 / 폭탄(3번 튕기며 힘감소)
  • NPC (노인) : 무기와 총알아이템을 랜덤으로 드랍
  • 몬스터 : 머미(공격패턴 : 폭탄드랍, 브레스), 박쥐(공중에서 폭탄 드랍)
  • 보스 : 4가지 패턴 (유도탄 / 대쉬 / 전기 구체 / 중앙 에너지발사)
  • 이벤트 오브젝트 : 머미 소환 오브젝트 (부셔야만 넘어갈수있다.) / 포탈 오브젝트 (공격하면, 문이 올라가는데, 문이 다 열려야만 보스방으로 이동가능)
  • 탈것 : 슬러그 (기관총 사용, 중앙에서 폭탄 발사)
  • 에디터 : 라인설치 / 오브젝트 배치 / 스폰 핀 설치

아쉬운점

  • 정말 짧은 기간동안 개발하여, 컨텐츠적으로 아쉬운 부분이 많습니다.

자세한 설명

 

1. 타이틀 / 캐릭터선택

맨처음 로고가 등장하며, 일정시간이 지나면 타이틀씬으로 전환됩니다.

Enter키를 눌러 캐릭터 선택씬으로 전환되며, 캐릭터를 선택후 스테이지로 들어가게 됩니다. 또한 자연스러운 씬전환을 위해 페이드아웃 효과를 구현하였습니다.

 

2. 스테이지

- 플레이어 소개

라인태우기를 통해 맵을 이동할 수 있으며, 플레이어는 상하좌우 움직임, 점프, 달려가는 애니메이션이 존재합니다. 상하체의 상태값이 따로 존재하기 때문에 더 자연스러운 움직임을 보여줍니다.

무기는 총 일반권총 / 샷건 / 폭탄이 존재하며, 폭탄은 세번 튕긴후 폭발하며, 튕길때마다 힘이 감소합니다.

 

- UI 소개

UI는 총알개수 / 폭탄개수 / HP가 존재하며, 죽거나 타이머가 다되면 일정 HP가 감소합니다.

플레이어는 죽으면 HP가 감소하고, 리스폰되며 일정시간동안 무적상태가 됩니다. 무적상태동안은 적들은 공격하지 않습니다. 모든 HP가 감소하면 게임오버씬으로 넘어가게 됩니다.

 

- 몬스터 소개

스폰핀을 설치하여, 충돌한 해당 스폰핀의 구역만 몬스터를 소환합니다.

몬스터는 총 미이라와 박쥐가 존재합니다. 미이라는 브레스를 뿜거나, 굴러가는 폭탄을 드랍합니다. 미이라는 플레이어가 멀어지면 일정거리까지 걸어와 공격합니다. 박쥐는 좌우로 움직이며, 폭탄을 떨어뜨리고, 재장전합니다.

 

- NPC 소개

NPC를 풀어주면, 샷건아이템 혹은 폭탄을 채워주는 아이템을 드랍합니다.

 

- 이벤트 오브젝트 소개

이벤트 오브젝트는 총 두가지가 존재합니다. 미이라를 생성하는 화장실과, 다음씬으로 넘어가는 문이 존재합니다. 문을 공격하면 문이 올라가고 다 올라가게 되면 보스맵으로 이동이 가능합니다.

 

3. 보스

- 탈것 소개

탈것을 타면 보스가 등장하고 360도로 발사하는 헤비머신건이 있으며, 폭탄을 발사할수 있습니다. 타고 내리기가 가능하며, 탈것을 타면 UI에서 탈것의 HP와 총알, 폭탄개수를 나타냅니다.

 

- 보스 소개

보스는 총 4가지 공격패턴이 존재합니다. 기본공격인 대쉬가 존재하며, 일정 피가 감소하면 1페이즈에서 구체를 랜덤각도로 발사합니다. 2페이즈에서는 유도탄을 발사합니다. 마지막 3페이즈에서는 기를 모은후 커다란 전기 에너지파를 발사합니다.

 

4. 게임엔딩

보스를 처치하면, 게임클리어 문구가 나오고, 게임엔딩 영상이 나오며 끝이 납니다. 엔터키를 눌러 스킵이 가능하며, 스킵시 타이틀씬으로 전환되어 게임을 처음부터 다시 진행할 수 있습니다.