실시간 전세계에서 몰리는 경기 순위
순위 오즈
1 네덜란드 1.25
2 이집트 1.44
3 웨일즈 1.02
4 세네갈 1.40
5 알제리 1.50
종목별 팀순위
1 첼씨 8 6 1 1 19
1 첼씨 8 6 1 1 19
1 첼씨 8 6 1 1 19
1 첼씨 8 6 1 1 19

겜 개발 근황

작성자 정보

  • 커뮤맨 작성
  • 작성일

컨텐츠 정보

본문

녹픽던 + 타르코프 같은 겜 만드는 중


원래 계획 대로면 당당하게 내 놓을 만한 데모 버전이 저번달에 나왔어야 했는데, UI 씨름하느라 벌써 계획이 엄청 밀림







영혼이 깎여나간다


고도로 전환한 시기가 10월, 지금 8개월 박았는데 암담하긴 함


마음의 여유가 없어서 플엑도 가려다 포기했는데, 좀 쉴 겸 올림




1. 기초적인 필요 툴 완성


요즘이야 괜찮은 플러그인들이 많이 생겨나고 있는데, 딱 내가 시작할 때 까지만 해도 뭐가 정말 없었다


그런 플러그인들이 좀만 빨리 나왔으면 시간 좀 아꼈을텐데






처음에 만든건 스프라이트 아틀라스 에디터


고도 시작한 초기에 만든 툴인데, 아마 내 글 봤던 사람도 있을거임.


만든 이유는 설명하면 좀 긴데 요약하자면 pivot 수정을 용이하게 하기 위해서, 또 관리하기 편하게 하려고 만들었음







동시에 만들었던 게 유니티식 imgui, 디버깅 툴도 쉽게 만들 겸 해서 구현함


그 당시에도 찐 IMGUI를 지원하는 플러그인이 있긴 있었는데, 에디터에서 문제가 발생 시 그냥 크래시가 나버리고 뭔가 문제가 많았음







그리고 타일 텍스쳐 생성기. isometric은 딱 원하는 생성기를 찾지 못해서, 그냥 찾을 시간에 만들자 해서 만들었음
생성에 오류가 있긴 한데 나중에 고치자 하고 걍 쓰는 중




그리고 예전에도 올린 적 있는데, 맵 에디터도 만들었다.


다만 타 툴은 에디터에서 바로 만질 수 있는데, 맵 에디터의 경우는 똑같이 하려면 좀 여러 귀찮은 점이 있더라
무조건 에디터에서 돌려야 한다, 이런 규칙이 있는 것도 아니라 게임 실행 후 돌리는 것으로 만듬


이 외에도 xml 에디터 등 몇 개 더 있다




생산성 면에서 안 만들 수 없던 것이라 만든 걸 후회는 안 하는데, 몇 개는 플러그인 괜찮은 거 나중에 나와서 속 좀 쓰림







2. 인게임 그래픽 렌더링



아마 이게 시간 제일 많이 잡아먹었을 거임

유니티에서 고도로 넘어간 겸, 요상하게 아이소메트릭 뷰에 꽂힘. 지금 생각해보면 굳이 고집할 필요가 있을 까 싶었지만, 그땐 그랬다.




근데 이게 쉽지 않더라.


먼저, 고도는 z축을 지원하지 않음. z index의 경우 가용 범위가 너무 좁음(-4096~4096)


그래서 그나마 무난한 방식이 Y정렬을 이용한 방법이었음.




요약하자면 해당 객체의 게임 내 위치에 따라, y 위치랑 오프셋을 요리조리 조절하는 형식이었음


그래서 긴 오브젝트는 저렇게 썰어서 표현함




그런데 이 방법을 택함에 따라, 타일맵에서 문제가 발생함


타일맵의 경우 Y정렬의 성능이 심각하게 떨어졌고(4.2 기준 해결됨)

c#에서 타일을 동적으로 수정하면 성능 상 문제가 발생했음




그래서 타일맵 타일셋 자체를 아예 새로 짰다.




예를 들어서 이렇게 렌더링을 했다 할 경우,



이렇게 y 위치가 같은 걸 묶어서 한 Canvasitem에서 그리게 함


기존 타일맵이라면, 100*100만 표시해도 10000개를 매 프레임마다 y정렬을 하는데,


저러면 100개만 정렬해도 되어서 y정렬 문제가 거의 없어짐



물론 C#에서 하나하나 renderingserver로 그릴 영역을 업데이트 해야 해서 성능 상의 문제가 예상되기는 하는데,
일단 프레임 드랍 하나 없이 큰 문제 없이 돌아가서 최적화는 나중에 하기로 함





사실 구현 자체는 하루도 안 걸렸는데, 여러 문제점을 해결 하느라 시간을 많이 잡아 먹었음. 앞으로도 계속 만져야 할 듯


그리고 이거 때문에 다음 작품은 덱빌딩 아닌 이상 3d로 하기로 맘 먹음








3. 로그라이크 턴제 시스템 구현



유니티로 만들다 유기한 전작의 경우, 지금 생각해보면 내 능력에서 벗어난 시스템이었음.


그 당시 계획이 어땠었냐면,


1. 심리스 오픈월드


2. 게임 쓰레드와 메인 쓰레드 분리. 전자는 내부 게임 로직을 막힘없이 돌리고, 후자는 게임 로직의 시그널을 받아서 ui나 게임 화면에 렌더링 할 것들을 순차적으로 해결




그래서 어떻게 되었느냐? 구현은 했지만 내 입장에서 유지 보수가 힘들 정도로 시스템이 복잡해짐


대표적으로 시야 시스템과, 몇몇 행동의 경우 여러 캐릭터들이 동시에 행동하게 보여야 한 다는 점, ui 동기화 등이 발목을 잡았음




그래서 고도로 넘어갈 때, 욕심을 그냥 다 버림.


1. 뭔 오픈월드냐, 걍 한정된 던전을 돌아다니는 식으로 하자.


2. 일단 걍 한 쓰레드에서 다 해결하자. 문제 생기면 그때 고민해보자.




동시에 행동해도 상관 없는 특정 행동,

예를 들어서 이동 같은 것이 거의 동시에 보여지는 것이 중요했음.


안 그러면 플레이어가 AI 행동들을 기다려야 하는 시간이 너무 길어지니까



그러면서 시야 시스템이 잘 작동하고, 시야 밖 요소들은 무시하거나 시간 잡아 먹지 않고, 여러 조건이 많았는데




거의 싹 다 해결함



욕심을 버리니 훨씬 쉬워지더라.


맵도 그냥 한정된 구역만 구현하면 되고, 플레이어에게 멀어진 ai 뭐 이런거 처리 고민 안 해도 무방함. 


뭐하러 첨부터 멀티쓰레드를 도입하려 했는지. 걍 순차적으로 돌려도 문제 없었음. 작업량도 크게 줄음




그 외 시간, 시야와 pahtfinding 시스템, 기초적인 AI 등 구현함


원래 빛과 소음 시스템도 계획에 있긴 한데 언제 넣을 진 모르겠다





4. UI 구현


진짜 너무 고통스러움. 다른 게 문제가 아니라 생각보다 개발이 너무 느리고 생각보다 완성품도 만족스럽지 못함


본디 목표는 작년에 푹 빠졌었던 발더스게이트 3의 반절 정도라도 구현 하자, 이런 방향성이었음


문제는 여러가지 신경 써야 할 부분이 너무 많다는 거임





그래도 진전이 보이긴 함



너무 진행이 안되고 있다 보니 성능 포기(문제 될 만한 부분은 더티플래그로 다 때우기)


테트리스 인벤토리 시스템 포기(아이콘 그리기 고역임)


쳐내고 쳐내고 하다 보니 큰 윤곽은 잡힘.






당연히 있는 하단 게임 바




아이템 드래그 드롭, 장착


이왕 테트리스 인벤토리 시스템 버린 김에 추가한 검색, 아이템 정렬, 아이템 필터 시스템





지금 돌려보니 어디 잘못 건드렸는지 오류 뿜으면서 작동 안되는 Perk 찍는 창



설정 메뉴, 대화 시스템, 툴팁 등




여전히 갈 길은 멀지만 끝은 보인다, 이 정도 같음 지금





근데 하 진짜 뭔가 나랑 안 맞는 작업인지 돌아버리겠음 진척이 뭐 이렇게 느린지 모르겠다


턴제 시스템과 동화되어야 하는 부분에서 문제가 자꾸 생기고


그 부분에 별 문제 없어도 그냥 디자인 하는 것 자체가 고역임





5. 그 외 푸념



하면 할 수록 1인 개발로 겜을 완성한 사람이 대단해보임



내 작업 상태가 이 꼬라지임.


기어가는 UI, 도트 그리기

그나마 진행되는 시스템, 툴 구현

무난하게 채워지는 게임 컨텐츠(아이템, 스킬, 맵)





혼자서 모든 것을 해야 하는데, 각 작업마다 효율 차이가 크더라.


근데 하나에 완전 집중해서 해결하려고 하면, 정신력이 나가다 보니 병행하게 됨




그러니 문제가 게임 테스트가 잘 안됨



지금 시스템 상에는 퀘스트 시스템, 물물교환 시스템 등 막 여러가지 구현되어 있고


던전 절차적 생성 코드들 여러가지 쌓여 있는데



UI가 구현 안되었거나, 도트를 아직 덜 그렸거나, 작업들이 동기화가 안되어 있으니 속이 그냥 답답 하고 터질거 같음


게임 화면을 재깍 재깍 보고 테스트하고 싶은데 그게 너무 더뎌지는 느낌





그래도 필요한 시스템 하나 둘 채워지니 저 끝에 빛은 보인다


아직 해야 할 작업이 너무나도 많지만 ㅋㅋ








여기까지 혹시나 읽어줬다면 고맙다


다 같이 고도로 겜 완성하고 출시하고 성공하자





관련자료

댓글 0
등록된 댓글이 없습니다.
전체 40,746 / 1611 페이지
번호
제목
이름
    • 1
      다아라
      268,292 P
    • 2
      GodGhs
      213,524 P
    • 3
      돈뱅석
      186,762 P
    • 4
      사탕
      164,700 P
    • 5
      jym0405
      146,387 P
    • 6
      곽두철이다
      143,223 P
    • 7
      오늘만사는사람
      120,893 P
    • 8
      이재림
      116,153 P
    • 9
      소이
      114,500 P
    • 10
      엄지
      113,100 P
    • 1
      이재림
      LV. 44
    • 2
      GodGhs
      LV. 41
    • 3
      돈뱅석
      LV. 41
    • 4
      다아라
      LV. 32
    • 5
      역삼동
      LV. 32
    • 6
      robin
      LV. 32
    • 7
      럭키비키데이
      LV. 32
    • 8
      minmin
      LV. 31
    • 9
      눈보라
      LV. 31
    • 10
      소년소녀백성
      LV. 31
알림 0