내정 시설창과 미션을 받고 보급을 준비하는 것은 어느정도 기획적인게 많이 구체화 되야 진행할수 있는 요소인듯 싶다. 따라서 일단은 노웨얼 프로핏을 배끼면 되는 노드맵을 구현하는데 중점을 두어야 할듯 싶다.

 일단 각각의 노드들을 식별을 할수가 있어야 한다. 이건 이넘으로 테그를 만들면 될듯 싶다. 각 노드에 스크립트를 붙이고 성질을 고르도록 하면 될듯 싶다. 어려운 요충지, 일반 전투 거점, 일반(랜덤 이벤트), 회복노천, 보급소 회복도시, 인력 수급 도시, 요세도시(아레나가 있고 약탈이 가능), 상업 도시, 목적지 등등이 있다. 일단 이건 기획이 좀 구체화 되야 되는 문제라서 후순위로 미루도록 하자.

 우선 일반 노드 둘을 만들고 둘을 있는거를 만들어야 겠다. 이어져 있으면 이동을 할수 있게 말이다. 그리고 노드를 3개를 만들고 이어지 있는곳에는 이동을 할수 있고 이어져 있지 않은 곳에는 이동을 할수 없는 시스템을 만들어야 한다. 

 그다음으로 만들것이 이미 왔다간 노드를 회색으로 만들거나 이미 왔다간 길을 검정색으로 만드는 거다. 그 다음으로 만들어야 할게 길을 이동할때 점차 검정색이 채워져 가는 거다. 일단은 노드간 이음매가 구부정 하지만 실재로는 선분으로 가정하고 그 둘사이에 UI바를 점점 채워가면 될듯 싶다. 문제는 구부정하게 만드는 건데 이걸 어떻게 구현을 해야 할지 감이 잘 안온다. 여러가지 시행착오를 하면서 해결 방안을 고려해 봐야 겠다. 무슨 수학 퍼즐을 푸는 듯한 기분이 든다.

  여튼 이거 만들어 내는게 당면 과제이다. 

 호의나 과학과 같은 자원의 경우에는 어느정도 기획이 자리가 잡으면 될듯 싶다. 민심과 같은 척도로 쓰면 될듯 싶다. 아 그리고 거점의 마을의 경우에는 마을에 학교나 도로 수도 같은 사회 간접 자본 같은걸 확충해 주는 걸 후반부 업그래이드로 추가 해야 할듯 싶다. 이게 남미의 유명한 마약왕의 경우에 마약을 팔아서 번돈으로 거점에 선행을 배풀어서 국가에서 마약왕을 잡으려고 하는데 현지 주민이 방해를 해서 검거에 애를 먹었다고 들었다. 다른 동네 사람들을 죽여서 번 피묻은 돈으로 거점을 부흥시키는 아이러니랄까 멀 이런것도 구현을 하면 흥미로울듯 싶다. 물론 이건 초반부에 하면 게임 오버를 유도하는 낭비요소로 작용하도록 하고, 시나리오상 거점에 대한 공격이 들어오는 기지방어 미션에 도움이 되도록 하면 좋을듯 싶다. 

 기획을 어떻게 해야 하나 막막하긴 한데 밤마다 딱히 작업을 안할때 샤워 할때 운동할때 같을때 틈틈히 생각해서 기록을 해두다 보면 어느 순간 모이고 모여서 완성을 시킬수 있을듯 싶다. 

 각각의 게임 메커니즘이나 재미요소는 일단 경험이 적기때문에 크게 바꾸지 않는 편이 좋을듯 싶다. 소소하게만 바꾼다. 

 아 그리고 차기 작은 은색의 용병을 리메이크 해서 만들어 볼 생각이다. 그 하베스트 문 을 현대화 시킨것처럼 말이다. 물론 이번 작과 마찬가지로 미션을 받고 노드를 이동하는 시스템은 그대로 갈 생각이다. 전투 시스템은 엑스컴에서 은색의 용병 시스템으로 바꿀 생각이다. 그래픽은 판타지 버전 갈 생각이다. 이쪽이 에셋을 구하기도 쉬워서 말이다. 이거 용병단만 두작품 만들듯 싶다. 그럴라면 이번 작에서 탄탄히 메커니즘을 익혀야할듯 싶다. 뭐든 처음이 어렵다. 이번에 만들때 확실하게 만들면 용병단 시리즈로 계속 만들면 되니 말이다. 

 이번 한번만 만들어 낼수 있으면 차기작에도 써먹는거다. 

 달갈 까먹다가 어떻게 구현을 해야 하는지 아이디어가 생각났다. 이걸 꺼구로 생각해야 하는 거더라. 구불한 길을 그리는게 아니라 길이 투명한 맵을 만들고 그 아래에 직선 길을 깐다음에 그직선을 채워나가면 된다. 그럼 위에 덧씨워진 맵때문에 사람들이 보기에는 구부정한 길이 채워지는 것처럼 보일꺼다.

 문제가 안풀릴때는 잠시 다른 일을 하는게 오히려 문제를 더 쉽게 풀수 있는 길인듯 싶다.

 여튼 이거 구현하면 조금 자신감이 붇을 꺼 같긴 하다. 그럼 일단 밤이 늦었으니 실제 코딩을 하는건 내일 하도록 하자. 

 일어나서 까페에 왔다. 너무 집에만 있었더니 실내 증후군 같은게 생긴듯 싶어서 말이다. 아 글고 일지는 나중에 두서없게 쓴걸 대폭 갈무리해서 취포생의 인디 게임 개발기라고 책을 낼 생각이다. 책 앞부분에 유데미나 유튜브 영어 강의를 들었는데 평소 도타 일본 서버에서 공용어로 영어를 읽고 쓰는 편이라 영어로 강의를 듣는데는 무리가 없었다고 허세 섞인 글을 좀 써야 겠다. 사실 게임에서 몇마디 나누는 걸로 일상 회화를 하기는 턱없이 모자라다. 그러나 강의를 들을 정도는 무리가 없다. 기술영어는 그 특성상 같은 표현이 반복되는 경향이 있기 때문이다. 아 그리고 영어강의만 듣는게 아니라 국내 강의로 레트로 강의를 들었는데 간결하면서도 꼭 필요한 실용적인것을 집어서 가르쳐 주는 강의라 꼭 듣고 넘어가야 하는 강의라고 추천을 해야 겠다. 

 꾸불꾸물이가 아니라 직선으로 만들면 만들기는 좀더 편할꺼 같긴 하다. 만들어 보고 어떤지 확인을 해보자. 

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

 

enum PositionStyle

{

    NormalBattle,

}

 

public class Position : MonoBehaviour {

 

    PositionStyle thisPositionStyle = PositionStyle.Normal;

    bool isEndingStyle = false;

 

}

 일단 계획 했던대로 만들어나가자 노드 식별자를 만들어야 하는데 노드를 이미 다른데서 쓰고 있으니 포지션으로 한다. 포지션 스타일을 만들어 주는데 일단 기획이 확정이 된게 아니라 두종류만 만들어 둔다. 아 그리고 엔딩 노드인지 확인하는 것도 필요할듯 싶다. 아 글고보니 처음 노드를 설정해서 포기하고 돌아갈수도 있게 해야 할듯 싶다.

 항복 시스템도 있으면 좋을듯 싶은데 이경우 몸값을 지불하고 나온다랑 진형을 바꾼다 둘중에 하나를 선택할 수 있으면 좋을듯 싶다. 몸값을 지불하는 경우에는 너무 낮게 부르면 게임 오버 확률이 높아 지도록 해야 겠다. 진형을 바꾸면 얼마후 보복성 거점 공략 미션이 생기면 좋을듯 싶다. 여기서 지면 그대로 게임 오버가 된다. 진형은 반기를 든 세력, 어느정도 영향력이 있던 세력과, 기존 정부 세력, 그리고 외세중에서 선택할 수가 있으면 좋을듯 싶다. 외세를 선택해서 돈때문에 나라 팔아 먹는 진행도 선택가능한 막장게임이 되는 거다. 처음에 선택을 할수 있는데 의뢰는 그 세력이 주게 된다. 처음에 세력을 선택하는거에 따라 부과 효과나 추가로 선택할수 있는 기술 추가 병종같은 걸 선택할수 있도록 해야 겠다. 사람에 따라선 추기 기술이나 병종때문에 철새가 되는 플레이를 하는 경우도 있을듯 하다. DCL에다가 세력 같은걸 추가한 팩을 만들어서 팔수 있을듯 싶다. 조금씩 개성을 두어야 할듯 싶다. 아 그리고 처음 영역을 선택하면 이거이거 Bic을 통과할수 있을지 모르겠다. 

 구글 애드 샌스 핀번호가 나왔는데 주소를 안바꾸는 바람에 이전에 주소로 보내버렸다. 4주가 지나야 재발급이 된다니까. 이번달 말에 서울 올라갈때 한번 들려야 할듯 싶다. 핀번호 입력 안한다고 그 돈 어디로 가는거 아니니까 조급해 할 필요는 없을듯 싶다. 

 게임이 대박을 쳐서 수억대 벌 확률이 극히 낮으니까 캐시카우를 만들 필요가 있다. 유튜브와 블로그를 키워서 한달에 20~30만원 정도씩은 벌어두어야 고향집에서 살면서도 용돈벌이는 할듯 싶다. 지금은 돈이 없어서 아무데도 안나가고 집에만 쭉있었다. 알바해서 번돈도 장비나 에셋 사느라 다 써버렸다. 

 왜 오류가 뜨지? 오랬만에 하려니까 머가 먼지 모르겠다. 

public enum PositionStyle

{

    NormalBattle,

}

 아 Public을 붙어야 한다. 이게 같은 스크립트안에서도 클레스 바깥에 있으면 Public이 있어야 접근을 할수 있는듯 싶다. 기본적인건데도 놓친듯 싶다. 

    public bool isEscape = false;

 탈출 같은 경우에은 초기노드면 대부분 포기하고 나가는게 가능하고 노드중에서는 엔딩이 아니더라도 가능한 지점들이 있어서 혹시라도 보급이 떨아지면 항복하지 않고 무사귀환할수 있도록 해야 겠다. 미션에 따라서 치고 빠지는 경우도 있을테고 말이다. 

 문득 3D로 맵을 만들고 캐릭터를 노드를 만드는 방식도 있을수 있겠다는 생각도 든다. 일단 그건 부담이 되니까 첫작품은 최대한 단순하게 만들도록 하자. 혹시 모르겠다 차기작은 넒은 판타지 세계를 3D로 만들고 노드와 노드 사이를 이동하는 은색의 용병이 될지도 말이다. 

  노드마다 일일히 이동가능한 노드 이름을 입력하는건 무리다. 주변을 콜나이더 영역으로 탐색해서 길이 나있는 경우에는 그걸 길 리스트에 담는 편이 좋겠다. 이렇게 하면 비주얼 UI로 툴로 작업 하면서도 작업을 수월하게 할수 있다. 일단 그런 기능을 쓰려면 캔버스로 만들면 안되겠다. 실제 존재한 물리적인 물체로 콜라이더 기능이 필요하니 말이다. 

 그러면 구지 2D를 고집할 필요는 없을듯 싶다. 일단은 단순하게 해야 하니까 이런식으로 하도록 해야 겠다. 맵 오브젝트를 로우 폴리로 단순하게 만들어서 배치를 하면될듯 싶다. 

 길이 두개가 있지만 하나는 목적지에 노드가 있고 하나는 노드가 없다. 버그 발생을 막으려면 길의 끝에 노드가 있는지 없는지를 묻고 노드가 있을 경우에만 이동등을 할수 있도록 만들어야 한다. 나중에 겉보이게 꾸불꾸불로 만들어도 기본적으로는 직선의 구성을 뛸 생각이기 때문에 레이케스트를 써서 가장 첫번째로 부딧치는 오브젝트를 검출하게 할 필요가 있다. 일단 Y 값이 먼지 검출해 내고 그 방향으로 레이케스트를 쏴서 알아내는 방법이 있다. 아니면 로드로 접속해서 로드랑 겹치는 노드 오브젝트 중에서 본인은 빼고 다른 하나를 연결된 노드를 연결된 노드로 감지해 내는 방식이 있을수 있다. 레이케스트는 자칫하면 버그를 만들어 낼 가능성이 있기 때문에 로드랑 겹치는 부분을 써야 할듯 싶다. 

  이게 자동완성이 병신이 됬는가 GetComponent도 자동완성이 안된다. 내가 외우지 않고 거의 대부분은 툴에 의존을 하기 때문에 이건 치명적인 문제다. 

 저번에 사려다가 포기했던 젯브레인 라이버를 한번 켜본다. 이걸 포기한게 유니티에 익스터널 툴을 등록하는 법을 몰라서 이기도 했는데 어느센가 보니까 유니티에 젯브레인이 외부 툴로 알아서 등록이 되어 있더라. 먼가 자동화된 기제가 작동한거 같다. 

 젯브레인으로 넘어가야 할듯 싶다. 신기한게 오타로 콘바스라고 썼는데 캔버스로 바꾸라고 한다. 

 존나 고치라는 거 많다. 너무 많아서 왜 고쳐야 하는지도 확인안하고 기계적으로 고치고 있는 중이다. 

 덕분에 예전에 어떤 코드들을 작성했었는지 리뷰를 하는 기회가 된듯 싶다. 이 툴에 어떤 기능들이 있는지는 차차 알아가야 될듯 싶다. 

 이런식으로 만드는게 아니라 좀더 스마트하게 만들어야 겠다. 일단 커스텀 툴의 기능을 만들어서 랜덤으로 큐브를 흩뿌린다. 어느정도 틀을 잡아주면 그 안에서 물리적으로 뿌려 지게 한다. 그리고 그 만들어진 큐브를 일정 간격으로 수동으로 재조정 해준다. 재 조정한거에서 커스텀 툴을 작동하면 1개 부터 5개까지 범위 안에서 랜덤으로 서로를 잇는다. 그걸 보고 게임의 목적에 맞춰서 재조정 해준다. 완전히 절차적으로 만들면 약간 특수한 게임적 목표라는지 시나리오적 성격 모두를 반영하기 어려우니까 그건 내가 융통적으로 작업한다. 가령 노드가 많이 갈라지는 곳은 군사적 거점으로 만들 수도 있지만 군사 거점을 2개로 만들어서 그냥 이어지는 건데도 틀어막는 방법도 있고 그러니 말이다. 모든 상황에 맞춰서 절차적으로 만들려면 너무 코딩 분량이 늘어난다. 그렇게 설정을 하면 자동으로 큐브를 설정한거에 알맞는 프리펩으로 바꿔주는 기능을 추가해야 할듯 싶다. 그렇게 맵을 한 수십개를 만들어야 할듯 싶다. 사무 자동화와 인간의 개입이 어느정도 절충되게 말이다. 

 젯브레인을 구매하는 거는 거의 확정인듯 싶다. 문제는 유니티 인데 유니티를 6개월 뒤에 사는 거냐 아니면 이왕 사는김에 지금 1년 구독을 해서 25G기가 클라우는 기능을 이용하느냐 문제이다. 지금 1기가가 거의 다 차오는게 문제다. 35만원이 작은 돈이 아니기 때문이다. 게임을 만들어서 1년에 35장 이상 팔지 못하면 적자다. 영구 구매가 아니니 이건 가변 비용이 되고 고정 비용은 장기에 그만 둘지 결정하는 요소지만 가변비용은 단기에도 그만큼을 벌지 못하면 그냥 당장 조업을 중단해야 하는 요소이다. 1년에 최소 35장을 팔수 있다는 확신이 들어야 유료버전을 사는거니 말이다. 

   어제 젯브레인으로 밤세 코드를 고쳤더니 기상시간이 2시간 정도 뒤로 미뤄졌다. 출근할게 아니라서 딱히 스트래스는 안받는다. 예전에 군대랑 학교 다닐때 가장 고역이 정해진시간에 꼭 기상 해야 됬다는 거다. 사워나 느긋하게 하고 까페에 가서 작업해야 겠다.

 이걸 보고 만들면 되나. 여튼 일단은 일일히 수동으로 해당 맵을 만들어 보고 두번째 부터 자동화된 시스템을 만들어 보도록 하자. 

 젯브레인도 구독 형태인듯 싶다. 일단 30일 체험판을 쓰는 것도 있고 유니티도 가격 인상은 이번달 말에 한다고 하니가 천천히 시간날때 구매하면될듯 싶다. 

 비주얼 스튜디오 코드 자동완성은 갑자기 왜 안되는지 모르겠다. 

  비주얼 스튜디오 코드의 자동완성이 안되는 것도 일시적인 현상이였나 보다. 글고보니 예전과 달리 먼가 엄청 많이 바뀐듯 싶다. 다시 자동완성을 제대로 지원을 한다. 젯브레인을 살까 말까 다시 고민을 하게 되는 순간이다. 

 일단은 비주얼 스튜디오 코드로 랜덤으로 큐브를 흩뿌리는 걸 재생 버튼을 눌르지 않아도 생성이 되도록 해야 겠다. 

 모노비헤이비어가 없다고 등록이 안된다. 영상과 머가 달라서 안되는지 모르겠다. 

using UnityEngine;



public class Cube : MonoBehaviour {

 

    public GameObject cube;

 

    [ContextMenu("Make Cubes")]

    public void MakeCubes() {

        

        Instantiate (cube, Vector3.zero, Quaternion.identity);

    }

}

 그냥 ContextMenu로 만드는 게 더 현명한듯 싶다. 

'턴제제작' 카테고리의 다른 글

할당 시스템  (0) 2019.11.16
업무 자동화  (0) 2019.11.09
메뉴 만들기  (0) 2019.11.07
게임 세계관 고민  (2) 2019.10.26
이펙트  (0) 2019.10.14

WRITTEN BY
아이고이아

,