개발일지, 마흔다섯 번째 개발일지

음... 전체적으로 좀 산으로 간(?) 한 달이었습니다. 아무튼 근황 보고나 보시죠.

1.
타일에 쓸 이미지들을 좀 그렸습니다. 추후에 바리에이션을 늘려야합니다만 일단 스크린샷을 공개할만한 수준은 됐다고 봅니다. 물론 배경 타일 한정...

캐릭터 쪽은 아직 작업을 전혀 안했습니다. 하지만 캐릭터는 무시하고 배경이랑 이펙트, UI좀 손봐서 스크린샷을 공개할 거 같네요. 아마 2월 중? 늦어도 3월. 단순히 이미지가 들어간 것만으로는 게임이 정적으로 보이기 때문에 배경 타일에 나무나 풀이 적당히 흔들리는 애니메이션을 넣어주고 싶습니다만 시간관계상 생략하고 셀레스트처럼 이펙트로 때울 것 같습니다.

2.
한달만에 스크립트 또 갈아엎었습니다 ㄲㄲㄲㄲㄲㄲㄲㄲㄲ

툴을 어느 수준으로 만드냐 고민을 좀 했습니다... 이런 이야기 예전에도 했던 거 같은데.

게임 도중 타일을 구성하고 있는 텍스처를 바꾸는 기능을 예로 들어보겠습니다. 유용해 보이지만 막상 제 게임에선 별로 쓸 일이 없습니다. 이럴 때는 아예 그 '쓸 일' 자체를 없에버리는 선택을 할 수도 있고, 번거롭게 스크립트에서 지원하지 않고 하드코딩으로 때울 수도 있죠. 그런데 이런게 한두가지가 아니고, 효율성을 위해 이것 저것 빼버리면 굳이 하드코딩이 아니라 툴 -> 스크립트를 거쳐서 만들 이유가 있는가, 라고 생각했거든요. 사실 제작 초기에 고려했어야 했는데 이게 제가 다 모자란 탓입니다... 아니 이 이야기도 언제 한 번 했던 거 같은데 [...]

그래서 이번엔 개선 수준이 아니라 아예 C#으로 작성된 코드를 읽어서 동적으로 컴파일해서 쓰는 것도 가능하도록 바뀌었습니다. 툴에서 C# 코드를 완전히 그대로 쓸 수 있는 건 아닙니다만 직접 외부에서 라이브러리를 불러오는 것도 가능하기 때문에 큰 제약은 없을 겁니다. 당연히 속도도 이전보다 훨씬 빠릅니다.

이건 계속 작업중인데, 워낙 바뀐게 많다보니 몇몇 시스템은 호환을 위해서 아예 새로 만들어야 할 수준이거든요. 그래도 앞으로 1주일 쯤이면 마무리 될 거 같습니다. 전투 빼고.

이렇게 되면 사실상 툴에서 게임의 모든 부분을 건드릴 수 있게 됩니다만 어차피 게임 안에 툴도 포함시킬 거고, 게임을 만들면서 작성한 스크립트도 공개할 생각이었기 때문에 신경쓰지 않기로 했습니다.

개발일지, 마흔네 번째 개발일지

나중에 하려고 했던 일을 앞으로 당긴 1주일이었습니다.

1.
스크립트 처리기 리펙토링이 또! 있었습니다.

이벤트 연출은 물론 시간 처리, 각종 파라미터 처리가 스크립트에서 이뤄지는데 이게 주로 타일을 이동하는 순간 실행되거든요. 하지만 매번 스크립트를 처리할 때마다 스크립트 처리기를 새로 생성해야 했습니다. 파라미터의 값을 변경하는 단순한 명령에도 혹시 모를 이벤트 대사창 출력이나 별도의 오브젝트를 출력, 컨트롤을 위해 온갖 사전 준비를 다 하도록 되어 있었고 스크립트 처리기가 어떻게 작동하고 있나 메인 게임 로직에서도 항상 체크해야 하는 문제가 있었죠.

아무튼 이제 스크립트 처리기는 필요할 때만 별도의 출력 화면을 생성하고 그렇지 않으면 명령어만 실행합니다. 덤으로 타일 이동 애니메이션을 출력하는 동안 백그라운드에서 처리하도록 변경.

이것 역시 셀레스트의 잔재인데, 셀레스트 같은 경우 스크립트를 미션 시작시 딱 한번만 불러읽어오기 때문에 문제가 없었죠... 아무튼 이번 작업을 끝으로 스크립트는 초기의 그것과는 완전히 다른 물건이 되었습니다 [...]

2.
외부에서 추가된 텍스쳐에 알파블렌딩이 제대로 적용되지 않는 문제 해결

3.
일부 텍스쳐나 데이터 로딩을 백그라운드에서 처리하도록 변경

4.
본격적인 GUI 제작을 위해 구라샷(-_-)을 만들었습니다. 배경이나 캐릭터 리소스는 전부 임시로 때우고 있기에 별도로 공개는 안 합니다만... 타일 정도는 좀 먼저 그려둘까 싶기도 합니다. 그러면 스크린샷 같은 건 자주 공개할 수 있겠죠.

개발일지, 마흔세 번째 개발일지

오랜만입니다. 당분간 개발일지는 부정기로 작성합니다.

툴 개선 사항.

컨텍스트 메뉴를 통해 입력할 스크립트 명령어를 선택할 수 있게 되었고 스크립트 에디터에서 변수 자동 완성을 지원하게 됐습니다.

이전에는 명령어로 처리해야 했던 것들이 일부는 연산자를 활용할 수 있게 되었습니다. 예를 들면 이전까지 스크립트로 소지 아이템을 추가 하기 위해서 item firewood add 3 따위의 명령어를 쳐야 했으나 [items.firewood.count] += 3 같은 식으로 쓸 수 있게 된 것이죠. 물론 자동 완성도 됩니다.

게임 개발 상황.

예정보다 크게 일정이 밀린 이유인데 이벤트를 싹 뜯어 고치고 있습니다. 세계관과 시나리오가 마음에 들지 않는다는 단순변심...은 아니고요  […]

이 게임은 거의 한방향으로만 이동하기 때문에 어떤 곳에 들렀다가 한참 후에 다시 되돌아간다… 같은 장면은 없거든요. 그래서 뺑뺑이 배달 퀘스트 같은 걸 만들 수 없었다는 문제도 있고 캐릭터들도 플레이어와 동행하는 캐릭터가 아니면 대부분 일회용이 되는 문제도 있죠. 한마디로 퀘스트 짜는게 좀 골치아픕니다.

그리고 이전에 로그라이크 라이크 라이크 스타일이라는 말장난을 했었습니다만.... 생존 게임에 들어갈법한 요소가 몇 들어가긴 하는데, 플레이어 캐릭터의 배경 자체가 일단 한 번 세계를 구한 직후의 일이라서 퍼머데스 같은 건 아무래도 안 어울리죠. 세계를 구한 영웅인데! 하지만 게임 내 세계관은 제법 암울한 편이라 생존게임적인 요소도 필요하다고 생각하고(패널티를 주는 방향으로), 그렇다고 운이 없거나 플레이를 좀 잘못했다고 쌀을 구하지 못한 영웅은 굶어죽었습니다 따위의 결말이 나오는 것도 이상하기 때문에 머리를 좀 굴려서 낸 결론은... 이건 다음 기회에 [...]


1 2 3 4 5 6 7 8 9 10 다음