리소스의 중요성
게임을 제작하는데에 있어 리소스는 매우 중요하다.
눈에 직접적으로 보이는 요소이기 때문에 게임의 분위기와 퀄리티를 좌지우지하며, 유저에게 게임의 첫인상을 결정짓는다.
나는 게임은 최소한 상호작용요소, 시각요소, 청각요소, 규칙의 4가지 요소로 구성된다고 생각한다.
상호작용과 규칙은 기획과 프로그래밍만으로도 어느 정도 구현이 가능하지만,
DOS로 게임하는것이 아닌 이상 시각요소와 청각 요소는 리소스 구현이 불가능하다.
그리고 이 요소들은 정말 제대로 만드려고 한다면 시간이 제법 들어가는 편이고, 돈도 꽤 많이 필요한 법이다.
개발 방향
이 프로젝트는 토이프로젝트 느낌으로, 유니티 엔진으로 핵심 기능들만 구현하고 마무리 지을 생각이다.
당장 그래픽과 사운드 리소스를 만들만한 시간과 돈이 많지 않으므로, 리소스들은 무료 리소스들을 사용할 예정이다.
무료 리소스들은 itch.io와 dova 신드롬에 업로드 되어 있는 저작권에 문제가 없는 무료 에셋들을 다운받아 사용할 예정이다.
기본적으로 전쟁시대 게임을 리소스만 교체한 버전으로 클론코딩을 할 예정이다.
기획
승리, 패패 조건
성채에는 각각 정해진 HP가 있고, HP가 0 이하가 되면 파괴된다.
유저는 적이 되는 AI팀의 성채를 파괴하면 승리한다. 반대로 AI팀이 유저팀의 성채를 파괴하면 패배한다.
용어정리
유닛 : 성채, 캐릭터등 HP를 가질 수 있는 요소들이다.
캐릭터 : 소환의 대상이 될 수 있는 유닛을 의미한다.
유저 : 게임을 플레이하는 주체가 되는 대상이다.
AI : 유저가 플레이 하지 않으며 자동으로 유저를 공격하는 가상의 플레이어이다.
재화(GOLD)
재화 획득방법은 다음과 같다.
- 시간이 지남에 따라 자동으로 재화를 획득한다,
성채를 업그레이드 하여 획득량과 획득까지 걸리는 대기시간을 줄일 수 있다. (예시: 10초당 10골드 → 5초당 15골드) - 상대방의 캐릭터를 쓰러뜨린다. 쓰러뜨린 캐릭터의 레벨이 높을수록 더 많은 재화를 제공받는다.
캐릭터 소환
두 팀 모두 캐릭터를 소환하고, 소환될 캐릭터를 업그레이드 할 수 있다.
업그레이드된 외형을 지원하는 리소스는 구하기 어려우므로, 재화를 사용하여 레벨을 올리는 방식으로 업그레이드 시스템을 구현한다.
레벨업 시스템은 유닛별로 존재하는 HP 레벨, 공격력 레벨, 방어력 레벨을 업그레이드 할 수 있다.
두 팀 모두 재화를 소모하여 캐릭터를 소환한다.
캐릭터는 한번에 하나씩 소환되며 연속적으로 캐릭터를 소환하고 싶을 경우 소환할 캐릭터를 대기열에 추가해야 한다.
대기열은 한번에 5명의 캐릭터를 대기시킬 수 있다.
AI팀은 자동으로 캐릭터들을 소환해야 함으로, 단순히 랜덤으로, 일정 시간마다 캐릭터를 소환하는 것보단
어느 정도 작동 원칙을 갖고 소환하는 것이 좋겠다고 판단하였다.
그 전략은 다음과 같고, 재화의 사용 우선 순위는 아래의 순서를 따른다.
- 랜덤으로 일정 시간마다 캐릭터 소환 - 소환모듈
- AI팀 성채 피격 시 방어를 위한 캐릭터 연속 소환 시도 - 소환모듈
N초동안 피격을 받지 않을 때 까지 소환대기열을 계속 채운다. - 유저의 캐릭터 소환을 따라하기 - 소환모듈
- 정해진 수의 캐릭터 사망(AI, 유저 모두 포함해서 카운트)마다 캐릭터 업그레이드 시도 - 업그레이드 모듈
- 재화가 일정량이 넘거나 일정 시간이 지나면 성채의 업그레이드 요소 중 하나를 랜덤으로 선택하여 자동 업그레이드
(일정량이 넘었을 때 시도는 재화를 소모하며, 일정 시간이 지난 경우의 시도는 재화를 소모하지 않는다)
- 업그레이드 모듈
AI는 재화가 필요한 활동을 할 때 재화가 부족하다면 각 상황마다 다르게 시도한다.
- 소환 시도가 취소되고 다음 소환까지 시간을 기다린다.
3초마다 캐릭터 소환의 전략을 구성했을 때 2번째 소환 시도에서 재화가 부족하다면
3번째 소환시도까지 걸리는 시간은 얼마고, 몇명의 캐릭터가 소환되었는가? 단 3번째 소환은 필요한 재화가 마련되었다.
답은 9초이며 2번째 소환은 무시되여 첫째 소환과 2명의 캐릭터가 소환된다. - 재화가 모두 소모되면 다음 재화 획득 이벤트까지 기다린다.
- 소환시도가 취소되고 무시된다.
- 카운트 수의 10%가 사망 시 재시도
화면
유저는 방향키를 이용하여 화면을 움직이고 게임 진행 상황을 파악 할 수 있다.
'개발 > 게임 개발' 카테고리의 다른 글
간단한 유니티 2D 타워 디펜스 게임 만들기 5편 - 캐릭터 이동 (0) | 2022.10.03 |
---|---|
간단한 유니티 2D 타워 디펜스 게임 만들기 4편 - 캐릭터 스폰 (0) | 2022.09.24 |
간단한 유니티 2D 타워 디펜스 게임 만들기 3편 - 캐릭터 유닛의 행동에 관한 고려 (0) | 2022.09.13 |
간단한 유니티 2D 타워 디펜스 게임 만들기 2편 - 기초 쌓기 (0) | 2022.09.09 |