유니티/실습

게임 개발일지 - 제목미정 - 1 - 시스템

파란색까마귀 2022. 4. 27. 22:20

 

#게임개발

 

큰 틀은 잡혔기때문에 본격적으로 기본적인 시스템 개발에 착수했다

 

낮에는 카페에서 아이디어와 컨셉을 짜고, 밤에는 코딩하는 행복한(?) 생활이다

 

탑뷰 액션 슈팅 장르로 방향을 잡았기때문에

 

먼저 기본적인 행동을 진행할 캐릭터를 만들고 조이스틱을 사용해서 조작할수 있도록 구현했다

 

조이스틱은 직접 만들기엔 손이 너무 많이가기도 하고 크게 특별할게 없다고 생각해서

 

직접 만들지 않고 외부 에셋을 사용했다

 

https://assetstore.unity.com/packages/tools/input-management/joystick-pack-107631

이미지 썸네일 삭제
Joystick Pack | Input Management | Unity Asset Store

Get the Joystick Pack package from Fenerax Studios and speed up your game development process. Find this & other Input Management options on the Unity Asset Store.

assetstore.unity.com

대표사진 삭제

사진 설명을 입력하세요.

 

그냥 캐릭터가 움직이기만 해도 재밌다..

 

예전에 만들었었던 클라이언트에서 투사체 오브젝트풀도 들고와서 그대로 활용했다

https://blog.naver.com/nagne2011/222638060370

이미지 썸네일 삭제
유니티 오브젝트풀링(object pooling)

#유니티 #오브젝트풀링 #오브젝트풀링 #슈팅게임 #서바이벌게임 오브젝트이 생성(Instantiate)과 삭제(De...

blog.naver.com

일단은 우측 조이스틱에 따라 네방향으로 투사체를 발사하도록 연결시켜주고 이동과 함께 진행하니

 

제법 게임스러운 모양새가 나왔다

 

이후 역시 미리 만들어두었던 맵 생성 알고리즘을 활용해서 필드와 필드간 이동까지 구현했다

https://blog.naver.com/nagne2011/222705513933

이미지 썸네일 삭제
바인딩오브아이작 만들기 - 그리드맵 생성 - 1

#그리드맵 #맵생성 #자동맵생성 #gridmapgenerator 간단하게 만들 생각이었는데 막상 알고리즘을 짜보려고 ...

blog.naver.com

00:10
단순이동단순이동
대표
 

동영상 설명을 입력하세요.

 

마지막으로 각 필드마다 몬스터들도 추가해줬다

 

몬스터도 많이 나올꺼같고 층마다 재활용할일도 많을꺼같아서 역시 오브젝트 풀을 사용해서 관리하기로 하고

 

투사체를 플레이어꺼와 몬스터꺼를 각각 분리해서 관리하기로 했다

 

같은 방식의 투사체지만 처음부터 합치는것보다 일단 나눠놓고 진행하는게 편할것같아서 그렇게 했다

 

대표사진 삭제

사진 설명을 입력하세요.

몬스터 생성 규칙은 단순히 각 맵마다 일정갯수의 몬스터를 생성해주고 맵에 종속시켰다

 

해당맵에 플레이어가 입장해야 맵이 '활성화'되고 활성화된 상태에서만 몬스터가 행동한다

 

대표사진 삭제

사진 설명을 입력하세요.

최종적으로 초기 클라이언트의 구조는 이정도로 마무리됐다

 

막상 만들고 보니 구조자체도 간단하기때문에 순차적인 진행에 대한 깔끔한 정리와 저장/불러오기와의 연계등을

유념하면서 개발을 진행했다

 

전체적인 플로우는 이런식으로 구상했다

 

  1. 새로시작, 불러오기로 게임 시작
  2. 자동생성, 저장된 맵에 맞춰 필드 구성
  3. 각 필드끼리의 연결 진행과 난이도에 맞춰 몬스터 스폰
  4. 필드 내 모든 몬스터를 잡으면 다음 필드로 이동가능
  5. 특수 방 중 보스 필드에 입장하고 보스를 물리치면 다음 층으로 이동
  6. 난이도를 변경한 뒤 2번부터 반복

 

기본 골격은 완성했으니 세부적인 내용과 끝없는 리펙토링과 정리만 있을뿐이다

 

우선은 스크립트간의 연결 없이 대부분의 함수를 sendmessage로 처리해뒀기때문에

 

스크립트와 오브젝트간의 순서에 맞춰 구조적으로 연결하고 각 변수나 함수등의 권한 수정과 게터세터 만들기 등등

 

할일은 끝없이 많아서 계속해서 수정과 정리를 반복하고있다

 

 

 

 

 

728x90