2019년 2월 26일 화요일

[20190226] 잡설 - 정신줄

번아웃 증상이 나타났지만 작업을 중단하지 못했다.
그래서 정신줄을 완전히 놓고 그저 작업을 하고 있다.

정신줄을 놔버렸기 때문인가...
머리가 잘 돌아가서, 설계를 꼼꼼히 하게 되었고, Code의 질이 자연스럽게 올라갔다.
인디질 시작한 뒤로 질 좋은 Code 를 뽑는 것은 포기하고 있었는데 의외의 즐거움이다.

이렇게 한 주일 정도 지내보니 새삼스레 "Coding이란 어찌나 즐거운 행위인가." 하고 생각 하게 된다.

분량을 뽑아내야 한다는 압박에서 빠져나와 충분히 생각하고, 생각을 Code로 옮기고, 다듬고.
이 모든 것이 즐겁다.

지금은 Data 설계에 2시간 정도의 시간을 소모하고 Code 로 옮기는 중이다.
18번째 Table이 Game에 들어가는 과정이다.

이 작업은 보통 고통스럽고 보람이 없는 작업이다.
여기서 조차 즐거움을 느낀다.

확실히...
정상은 아냐.
( @_@)y-~

> 허전 하니까 접어둔 Dicer Project 를 위해 만들었던 System 설계 이미지 투척.
> 파일 명이 genethicSystem 인데... 뭔지 전혀 모르겠네.


> 위에 이미지가 뭔가 했더니... 이거 만들기 전에 가닥 잡는 이미지 였던듯.
> 20190227_0421 퇴고를 쌔게 했다.
> 거진 다른 글이 되어버렸네. 하 하 하. ㅇ_ㅇ

+========================================+

# facebook, twitter 에 썼던 작업을 중단 못하는 이유.

2주 정도 휴식을 가지고 싶다고 계속 생각하고 있다.

이걸 실천하지 못하는 이유가 딱 하나인데.
미세 먼지 수치가 너무나 높다는 것이다.


자전거를 타거나, 계획없이 무작정 길게 걷는 것이 일반적인 휴식 패턴인데 둘다 할 수가 없다.

그러면 게임, 영화, 책 중에 한가지를 하며 쉬어야 할텐데
손모가지랑 눈이 쉬어야 한단 말이지.

얼른 공기야 좋아져라.

( '_')y-~


+========================================+

2019년 2월 22일 금요일

[20190222] 잡설 - 개발과 의지

일지를 못쓰니까 블로그에 헛소리를 잔뜩 늘어놓는 일이 반복되고 있네요.

일지는 다음주쯤 작성될 것으로 보입니다.
( '_')y-~


--------------------------------------------------------


더 좋은 게임 개발을 위한 좋은 이야기들이 세상에 많다.
그 이야기들 대부분이 나에게 전혀 적용되지 못한다는 것은 많이 슬픈일이다.

인디개발... 그 중에서도 1인 개발을 하는 입장에서...
좋은 개발은 무엇인가?, 무엇이 좋은 게임인가?, 이것으로 성공할 수 있는가?
...같은 질문은 너무 멀다.

1순위는 정해져 있다.
"개발 의지가 꺾이지 않는것!"

개발 의지를 건전한 상태로 유지할 수만 있다면 도전적인 무언가를 하는 것은 그리 어렵지 않았다.

의지가 꺾일 일은 너무 많다.
나에겐 당장 통장 잔고와 먹어가는 나이가 가장 큰 걸림돌이다.
비슷한 느낌의 게임이 나와도 의지가 꺾인다.
내 게임이 보잘것 없어 보여도 의지가 꺾인다.
내 게임이 그럴싸 하다면 내가 이걸 완수 할 수 있을까? ...라고 의심이 든다.
일이 잘 안돼도 의지가 꺾인다.
일이 너무 잘돼도 의지가 꺾인다. 이걸 회사가서 했으면 돈 많이 받았을 테니까.
도트가 안찍히면 자괴감이 들고
도트가 잘 찍어지면 이걸로 간단한 asset 을 만들어 팔아먹고 싶다.
알고리즘이 거지 같으면 "난 xx 인가봐" 하면서 꺾이고
알고리즘이 잘 붙으면 역시 asset 으로 만들어 팔어먹고 싶다.

써놓고 보니 거진 정신병 수준이구나.
( '_')y-~

> 이 글을 쓰기 전에 3시간쯤 일을했다.
> 쉬기로 마음먹은 후에 바닥에 드러누웠다.
> 데탑에는 작업할때 항상 켜두는 twitch 의 speed gaming channel 영상이 나오고 있었다.
> metroid 1 과 zelda 1 을 활용한 randomizer 경기가 진행중이다.
> "그래 나도 그래픽 퀄리티를 nes 수준으로 맞췄어야 했어."
> ...라고 무심결에 생각했는데, 곧 이어 의문이 들었다.
> "너 정말로 nes 수준으로 맞추고 정말로 개발을 진행할 수 있어?"
> "....아니오"
> 난 눈에 보여지는 것에 굉장히 민감한 인간이고, nes 수준의 그래픽이 적용된 game 을 보면서 개발 의지를 유지하지 못했을 것이다.
> 어지간한 전문가가 내 개발하는 꼬락서니를 본다면 그래픽 작업량을 줄일 방법을 생각해보자고 할 것이다.
> 맞는 이야기지만 난 그 길로 갈 수 없다.
> 그렇더라.


> 멍청해서. 실력은 없는데 욕심은 많아. 옘병.


--------------------------------------------------------


너무 열심히 개발하지 마세요.
마음의 여유를 가지세요.
농땡이 피워도 괜찮아요. 자괴감을 가지지 않는 것이 중요합니다.
휴식은 창의력을 발휘하는데 도움을 줍니다.
....
...
..
.

이거 나도 안다..
이게 맞다는 것도 안다.

어떡하냐 저중에 하나를 하기도 어려운걸.

저런 것들을 확실히 수행하는 경우가 딱 2 경우 있다.
번아웃이 왔을때랑 저중에 하나를 하지 않으면 죽을 것 같을때.

( '_')y-~

2019년 2월 21일 목요일

[20190221] 잡설 - 조화

개발 시작한지 1년 하고 5개월...

근간을 이루는 Turn 관리 시스템과 Actor 들이 조화롭게 어울리기 시작했다.

감개무량하네.

( T_T)y-~


----------------------------------------


이 기능을 조정했으니 이 부분에서 이런 이유로 문제가 발생하겠지.
일단 문제 발생하는걸 확인해볼까?

...라며 Game 을 돌려봤더니 문제가 발생하지 않았다.

나놈이 기특하게도 관련 코드를 정리해뒀더라.

( '_')y-~

> 크~! 이런걸 미리 생각하다니. 역시 나님 짱짱맨~!
> ...같은걸 하고 싶었는데.


----------------------------------------


정확히 5시간으로 작업을 종료했다.

모든 압박을 무시해버리고 편안하게 작업했기 때문인가.
작업은 5시간동안 사소한 걸림조차 없이 흘러갔다.

매일 이러고 싶다.
( '_')y-~

2019년 2월 19일 화요일

[20190219] 잡설 - 시작은 좋았어

오늘 작업은 느낌이 좋았다.

시간을 충분히 들여 Code 의 완성도를 하나 하나 살피며 작업했고 충실감과 만족감이 나를 끌어 안았다.

작업은 2시간 반 동안 이어졌고, 이후 휴식을 가졌다.

1시간을 꽉 채워 휴식을 취하고 작업을 다시 시작했다.

오늘은 몇 일간 끌어온 작업에 진전을 보는 날이었기에 준비해온 기능들을 차곡 차곡 쌓아서 완성시켜 나갔고 기능상에 문제는 없어 보였다.

고통없이 원만하게 작업이 끝나는가 했지만... 그럴리가 있나.
세부적인 동작들을 다듬기 직전에 Json Parsing 과정에서 문제가 발생하기 시작했다.

Online Json Parser 를 돌려봐도 형식에 문제가 없고, Table 을 열어봐도 문제가 없었다.
오만 삽질을 1시간 가까이 한 이후에야 이 문제가 이전 프로젝트에서 겪은 적이 있는 서식 문제라는 것을 알게 되었다.

Table에서 Json 파일을 Export 하는 과정에서 Json에 서식이 포함되는데 - "\n" 이나 공백문자등 - 이 녀석들이 미묘한 차이로 - 공백이 몇개나 이어지는가등 - 문제를 일으키는 경우가 있는 것이다.

이번 경우에는 특정 구간에서 공백문자를 3개쯤 줄였더니 문제가 사라졌다.

동일한 Data 형식이 사용되는 곳을 모두 찾아서 공백을 줄여놓고, 홀가분 하게 다듬기 작업을 시작했지만 흩어진 집중력은 돌아오지 않았다.

평소 같으면 한 번에 끝낼 작업을 3 - 4번씩 손보면서 간신히 작업을 이어나갔고
예정된 작업시간을 1시간 넘겨서야 오늘치 작업을 끝냈다.

하아...

( '_')y-~


---------------------------------------------------------------


내 macbook 이 주인을 잘못만나서 고생을 시작한지 6년째.
슬슬 ssd를 교체해줘야 할 시기다.

돈이 들겠구나.

( '_')y-~

> 16만원쯤 깨질 것으로 예상.


---------------------------------------------------------------


20190220

가끔...

여유 있었을 때 고전 게임 제작 기법들이나 연구해둘걸

...이라고 후회한다.

( '_')y-~

> 매일 매일 고전게임 Speed Run 영상 보면서
> 저 기능은 어떻게 만든거지?
> 저 Animation은 몇 frame 이지?
> ...같은 걸 고민해서 그런건 아냐. @_@

> 더 늦기 전에 하고 있는건 다행인가...


---------------------------------------------------------------


20190221

엉겁결에 이동불가 기능 구현을 위한 준비가 되어버렸네.
개이득.
( '_')y-~


---------------------------------------------------------------


20190221

Code를 개선하지마.
방치해.
상하기 직전까지 묵혀.
( '_')y-~


---------------------------------------------------------------


20190222

혹여 cocos 에서 오래전에 제공했던 cocos studio를 사용하는 사람중에 비정상적인 json export 문제로 때문에 고생하고 있을 사람들을 위해 Tip 을 남겨 놓는다.

방금 이 문제를 겪었던 기억이 분명하게 떠올랐다.

절박한 사람이라면 여기에 도착할 지도 모르니까.
( 내가 마지막으로 절박했을때는 문제 해결에 반년이 넘게 걸렸었어... 그때 문제는 android 한정으로 bluetooth controller가 mobile device에 접속하면 java 의 view가 재할당 되고 덤으로 shader 가 와장창 깨지는 문제였어... 어이 cocos.. 그거 지금은 고쳐놨나??? )

cocos studio 에는 여러 툴이 들어 있고 그중에 data manager 라는 것이있다.
이 녀석은 excel 파일을 json 으로 export 하는 녀석이다.
이 녀석은 종종 json export 과정에서 문제를 발생시키는데 데이터가 잘려서 나오는 것이다.

가장 쉬운 해결책은...
첫 Row를 충분히 크게 만들어 놓는 것이다.

너무 너무 귀찮기 때문에 Code 를 열어 보지는 않았지만 이것은 분명한 해결책이다.
해결되지 않았다면 내가 아직도 쓰고 있을리가 없으니까 믿어도 좋다.

이 문제가 발생했을때 Json 파일을 열어보면 문자열이 원본 Data 에 있는것과는 다르게 잘려 있다는 것이 확인된다.

그래서 가설을 세워봤다.

1. 특정 Row의 Data량이 크게 늘어나면 원본 Json 문자열이 잘려 있다.
2. exporter 내부에 char buffer 가 있을 것이다.
3. 어떤 Data는 크기가 충분히 큼에도 잘리지 않는다.
4. buffer의 크기가 동적 할당된 이후에 변경되지 않는 것이 아닐까?

그래서 첫 Row의 크기를 Dummy Data를 가득 넣어서 아주 크게 만들어봤고.
문제는 발생하지 않았다.

그랬었어..

한 3년전에 말이야.

( '_')y-~

[20190219] 공지 - GooglePlus 서비스 종료 관련

Google Plus 가 서비스를 종료 합니다.
그리고 덤으로 Blogger에 붙어 있는 Google Plus 관련 서비스가 먼저 중단 됩니다.

중단 하거나 말거나 저는 크게 문제 될 것이 없습니다.

단 한 가지 짜증나는 것은...
다녀가신 분들이 Google Plus 계정을 사용해서 남겨주신 댓글들이 사라진다는 겁니다.

Google 측에서 양심은 있는지 관련 데이터의 백업 기능을 제공하기에 받아놨습니다.

받아봐야 블로그에 복구할 방법은 없기 때문에 무슨 소용인가 싶기는 하지만...
남겨주신 분들의 정성이 있으니까요.

잘 간직 하겠습니다.

끝 입니다..
( '_')y-~

> 댓글은 이전과 마찬가지로 제한없이 작성 가능합니다.
> 이 글이 올라간 시점부터 Google Plus에 게시물의 작성을 중단합니다.
> 안녕... Google Plus

2019년 2월 18일 월요일

[20190218] 잡설 - 파업

오늘 부터 심신을 일정 수준으로 회복할 때까지 작업시간을 단축한다.

내가 나를 대상으로 하는 일종의 "파업" 이라고 보면 될 것 같기도 아닐 것 같기도...
@_@

지난주 책상에 앉아 있었던 시간은 평균 7시간이다.
이걸 4 - 5시간으로 줄인다.
머릿속에서 프로젝트 생각을 떼어놓지 못하는데 작업 시간이 무슨의미인가 싶기도 하지만...

그래도 이걸 줄이면 몸이 회복되기는 하니까.
그런 의미루다가 해야겠다.
( '_')y-~

> 활용도가 높을 유형의 A.I 를 위한 기반작업 다 끝내놨는데
> 여기서 작업시간 줄이면 감질나서 도대체 어쩌란 말이냐~!~!
> ...라고 또 다른 내가 경기인지 경련인지 모를 춤( ? )을 추며 다가오는 모습이 순간 머릿속에 상상 됐지만...
> 아~! 몰라!!! 어쩌라고~!

> 사실 최근의 몬스터 도트 작업 이후 손목이 또 아파. ( ㅜ_ㅠ)y-~

-----------------------------------------------------------

윗 글 수정 4번째...
이걸 기록 해둬야겠다.

프로그래머가 되고부터 나날이 퇴화하는 글 실력을 감추기 위해 퇴고를 반복하게 된다.

어떤 일지는 20번도 넘게 수정했었다.

맞춤법, 문맥, 단어... 하나도 남김없이 엉망이야.
( o_o)y-~

> 다행인건 아직 그중 일부가 보이기는 한다는거.
> 이 짧은 글도 수정 4번.

-----------------------------------------------------------

Chain Renaming~!
_( +_+)-=~~~


Data의 변화에 맞춰서 싸그리 개명했다.
이 녀석들에게 더 이상의 개명은 없을 거야.

-----------------------------------------------------------

작업 종료.
이 악물고 6시간으로 끝냈다.

작업 시작 시간을 늦춘 것이 주요했네.
( '_')y-~

-----------------------------------------------------------

twitter에 인디개발의 일정 예측 관련하여 여러 글이 보인다.

"일정 예측"
물론 나도 그거 잘하고 싶다.
하지만 그게 맞아 들어간 적이 없고.
맞지 않는다 해도 "계획" 이라는 것은 항상 필요하기 때문에 "일정 예측" 을 그만둔적은 없으며
맞지 않는다고 스트레스 받지도 않는다.

"개발의 끝을 어떻게 정의 할 것인가?"
이 질문에 어떻게 답하느냐에 따라서 "일정 예측"은 스트레스가 될수도 안될수도 있는 것 같다.

나에게 개발의 끝은...
의도한 바를 Game 안에 충분히 담아냈다고 생각될 때이다.
물론 Chapter.2 "장사" 가 시작되겠지만...

-----------------------------------------------------------

twitter에서 옮겨옴.

1인 게임 개발하면서 괴로운점...

코딩하다 지치면 도트 찍고
도트 찍다가 지치면 기획하고
기획하다가 지치면 사운드 찾아 다니고
사운드 찾아 다니다가 지치면 다시 코딩해서

...괴로워요.

> BM 이랑 마케팅 전략이요?
> 뭐에요 그게?

-----------------------------------------------------------

facebook에서 옮겨옴.

으이그 한심한놈.

쉬려고 작업시간 줄였는데, 왜 C++ 17 공부하고 있냐고 멍청아.

2019년 2월 15일 금요일

[20190215] 잡설 - 들어왔다.

지난 몇 달 간의 지독했던 Refactoring 을 거쳐서...
이제 핵심 기능들은 조정할때마다 전체 흐름을 고려해야 하는 단계에 들어왔다.

많은 것들이 Export 된덕에 이녀석들 역시 함께 조정되어야 한다.


이쯤 부터는 지옥도인데...


무너지지 말고 우직하게 가자.
( '_')y-~

-------------------------------------------------------------

지난 프로젝트에 등장한 Monster의 숫자는 30.

현재 프로젝트에서 등장 가능한 Monster의 숫자는 "샌드백군" 과 "작업당할 Slime 2마리" 를 빼고 15.

열심히 찍자.
( '_')y-~

-------------------------------------------------------------

< preview - 20190215 >

이전 preview 와 차이는 거의 없다.
생명을 부여받았느냐 안받았느냐 정도의 차이.

-------------------------------------------------------------

Life Cycle 을 Table에서 정의 할 수 있는 Effect Class를 제법 오래전에 - 아마도 이 Project의 전신인 <Dicer> 를 작업할때 쯤 - 만들어놨었다.

만들면서도, 만들고 나서도 이런걸 만들어야 할 필요까지 있을까...
"쓰기 괜찮게 FSM 만들어놨는데 대충 그때 그때 작성하면 되잖아."
...라고 생각했는데, 지금에 와보니 Code 한 줄 손보지 않고 Effect를 보여주고 제거하고 한다는 것이 나를 너무나 "행.복" 하게 해줘버리는 것이다.
@_@

> revision history 뒤져보니 이리 넘어오고 나서 Effect 관련 코드는 한 줄도 수정되지 않았다.
> <Dicer> 때가 맞는 모양이다.

-------------------------------------------------------------

지금의 기반 코드와 Map Building System 이면 큰 투자 없이 <Dicer> Project를 마무리 할 수 있다.

"때려치고 그거나 할까?"
...라는 생각이 종종 나를 흔들어 놓는다.

<루비> 때와 마찬가지로 내가 성장하지 않으면 개발이 진행조차 되지 않으니까...
이 Project가 나에게 버겁기 때문일 거다.

수틀리면 진짜로 접고 <Dicer>로 돌아갈지 모르지만.
오늘은 아니야.

> 오래전에 본 영화인지 드라마인지에서 등장인물들이 삶과 죽음에 대해 이야기 하다가
> 다가오는 죽음에게 "not today" 라고 말하라는 장면을 봤는데
> 뭐였는지 기억이 안난다.

-------------------------------------------------------------

20190216

한계를 인정하고 반걸음 물러설 것인가.

성장을 기대하며 마지막까지 몸부림 쳐 볼것인가.

이 짓을 시작하고 부터 이 고민은 언제나 내 앞에 있더라.

옘병.
( '_')y-~

> 이번 주말은 이 유혹과의 싸움이 되겠군.

-------------------------------------------------------------

20190217

지난 Refactoing의 여파가 아직도 끝나지 않았다.

이 정도로 길게 가는 것을 보니 번아웃이 확실한데 문제는 개중에 가장 질 나쁜...
"우울함을 동반한 번아웃"
..으로 보인다는 것이다.

이럴때는 약간의 "행복감" 을 맛봐야 하는데 그럴 구석이 없어.

곤란하네.
( '_')y-~

> 일단 산책이나 갈까.
> 위에 언급했던 영화인지 드라마인지는... "Wang좌의 Ge임" 이었다.

2019년 2월 12일 화요일

[20190212] 잡설 - 감 잡는중

오랜만이라 감 잡는데 시간이 좀 걸리네.
( '_')y-~


오늘은 이녀석만 만든다.


-------------------------------------------------------------------


만들어 놓고 보니 첫게임의 이녀석이 생각났다.


Paint .net 으로 Animation 을 2년 가까이 찍은 멍청한 나놈이 대견하기도 하고. ㅇ_ㅇ
gif 뽑을적마다 개고생했던 추억도...

aseprite 쓰면 이렇게 쉬운데. ㅜ_ㅜ


-------------------------------------------------------------------


실력의 한계로 목표로한 적절한 표현에 도달하지 못한다.
정말 정말 정말 정말 레알루다가 빡친다.
( -_-)y-~



-------------------------------------------------------------------


20190213

Dot 작업은 한 색상을 3 - 4가지로 조절해 쓴다는 것 외에는 딱히 규칙이 없다.

이 작업부터는 사용된 색상의 수를 신경쓰기로 했는데 최종적으로 내 게임을 위한 Palette를 만들어 보기로 했기 때문이다.

신경쓰면서 작업하다보니...
이 녀석은 Concept 단계에서는 20색 가까이 쓰였던 것이( 정리를 안해서 비슷한 색상이 잔뜩 추가되었다. ) 아래와 같이 6색으로 정리 되었음을 확인했다. ㅇ_ㅇ



-------------------------------------------------------------------


20190213

내가 찍어서 표현해야 할 것은 명암이 아니다.
명암이라고 착각을 일으킬 만한 노이즈다.

잊지 말라고~!

( @_@)y-~

[20190212] 잡설 - 의도

커피 한잔 끓여놓고 어떤 작업을 할지 이리 뒤적 저리 뒤적 하다가 확신했다.
역시 지금은 Dot 를 찍어야 한다고.

만들어 놓고 작업하지 않은 여러 Monster Concept 들을 꺼내봤다.

"아 이거 잡으면 너무 힘들겠다."
"이건 정말 괜찮네."
"이녀석은 xx를 대신하게 하면 괜찮겠다."

...등등의 오만 잡생각에서 허우적 대다가 급하게 만들어 넣었던 Slime 3종 set에 생각이 다다랐다.

나름의 완성도를 보유한 가장 큰녀석을 빼고 나머지 두녀석들은...
"왜 매력이 1도 없을까?"
...를 고민했다.

길지도 않은 시간을 지나 내린 결론은 "아무것도 담아내지 않았기 때문이다." 였다.

주제넘게도 Resource를 찍을적마다 무언가를 담았고, 의도했는데
두 녀석은 그냥 넣었다.
아무 생각없이.
빈 성냥곽처럼 흔들어도 소음조차 나지 않을 정도로 아무것도 담겨 있지 않았다.

그리하여...
"의미있는 Contents 로서 작동하기 위해 최소한의 규격(?)은 갖춰야 하나보다."
...라는 생각을 했다.

두 녀석은...
조만간 작업 당할지도 모른다.
( '_')y-~

2019년 2월 11일 월요일

[20190211] 일이 안될때는 역시 잡일.

오랜만의 여유있는 주말이었습니다.
무려 게임도 진득하게 하고 영화도 보면서 보냈답니다.

Axiom Verge 재밌네요.
( '_')y-~


작업 이야기를 해볼까요.

이 일지는 2019년 2월 8, 11일 에 있었던 작업을 대상으로 합니다.

하드한 작업 이후에 어김없이 찾아오는 현자타임이라서 쓸게 적지만 일이 너무나 하기 싫기 때문에 그냥 적어 봅니다.
  1. Silent Attack Bug Fix
  2. Vegetation 배치 Process 개선
  3. Monster Concept 추가
...정도의 가벼운 작업들 입니다.


1. Silent Attack Bug Fix

Reclamation 작업을 진행하기 전부터 미묘한 위화감에 시달리고 있었습니다.

분명히 Silent 하게 처리되어야 할 녀석들이 Turn 을 멈춰놓고 작업을 처리하는 것이 보였거든요.

일이 안되는 김에 버그나 잡자 하고 디벼보니, 전혀 용도에 맞지 않는 Data를 사용하도록 Code 를 작성했더군요. o_o;;;;

뜯어 고치고, 덤으로 몇몇 Code 의 명확성도 올려두었습니다.


2. Vegetation 배치 Process 개선

Code 안에 박혀 있던 Vegetation의 Map 점유 비율을 Export 하고
Map 전체 Grid 를 기준으로 한번만 산출하던 Vegetation Actor 의 갯수를 각 방별로 반복해서 산출하도록 조정했습니다.

각 방에 미세하게나마 차이점이 더해지리라 생각합니다.


Resource를 더 찍고, 방별로 Vegetation Actor 목록을 선택할 수 있는 기회를 준다면 더 좋을 거라는 생각이 일지를 작성하는 와중에 들어오네요.

어디 Resource 찍어줄사람 없나요?

물론 농.담.입.니.다! ( T_T)y-~


3. Monster Concept

일이 안될때는 뭐다??
바로 Monster Concept 이다.

어디선가 공룡이 나와야 갓겜 반열에 들어간다는 소문을 들었던 기억이 있습니다.
그래서 하나 찍어봤습니다.
Monster Concept No.30~!
그저 공룡일 뿐인 녀석입니다.


Paint .net 으로 작업 했습니다.
작업이 끝나고 Layer로 남겨진 중간 과정들이 참 가관이어서 gif 로 만들어 봤습니다.


이 녀석은 더 단순화 + 캐릭터화 하지 않으면 Game 에 넣기는 무리겠다 싶어서 색상 조정은 미뤄뒀습니다. ( 사실은 의욕이 바닥일뿐입니다. )



일이 너무 너무 너무 안되네요.
일이 너무 안돼서 무려 앞산에 산책도 다녀왔습니다.
일지도 다 썼으니 오랜만에 장도 보러 갈 생각입니다.

그럼 장보러 갑니다.
( '_')y-~


---------------------------------------------------


Monster 단순화 작업 진행중~!


해놓고 보니 그냥 등급별로 사용해도 되겠는걸.
( '_')y-~

2019년 2월 8일 금요일

[20190208] 잡설 - 별점

twitter 에서 옮겨옴.

------------------------------------------------------------

설을 맞아 루비를 할인 판매했는데...

구입해서 히든 엔딩제외 모든 엔딩을 보고 개발 일지까지 뒤져본 외국 유저가 별점 5개와 근사한 리뷰를 달아줬다.

이럴때면 눈시울을 붉히게 된다.

고마워. 열심히 할게.
( T_T)y-~

[20190208] 잡설 - 압박

지난 작업의 압박이 컸었던건가.
일지 쓰고, 씻고, 누웠더니 이명도 멈췄네.

오늘 밤에는 편히 잠들 수 있겠어.
( '_')y-~

-------------------------------------------------------

오예~!
switch 문에 break 안써서 터진다.
~( @_@)~

-------------------------------------------------------

오호라~!

Silent Attack 에도 멋지게 버그를 만들어 뒀네.
내가 내 코드를 오해하면 어쩌냐.
( T_T)y-~

[20190208] Reclamation

설이 지났습니다.
연휴가 아주 제대로 날이 잡혀서 백수인 것이 무척 아쉬웠답니다.

백수 신세 면하면 또 다른 생각이 들겠죠?
( '_')y-~



작업 이야기를 해볼까요.

이 일지는 2019년 1월 31일, 2월 2, 3, 4, 5, 6, 7 일에 있었던 작업을 대상으로 합니다.
무려 7일!

지난 일지에서 쉰다 어쩐다 했지만 결국 쉬지 않았습니다.
1월 30일에 "내일 쉬겠다" 고 이야기 했는데 쉰 날은 2월 1일 하루 입니다. o_o
주체할 수 없는 작업에 대한 조급함이 어리석은 선택으로 이어졌습니다.

작업 내역은...
  1. Map Theme 정보 분리
  2. Map Build Process 개선
  3. Map Reclamation 기능 추가
  4. Map Theme 적용 개선
...입니다.


모든게 코드 작업이라서 보여드릴것이 딱히 없는지라 오늘은 평소와는 다르게 작업 과정을 설명하려고 합니다.


위의 작업 내역들은 모두 하나의 목적을 위해서 진행되었습니다.
"덜 인위적이고 자연스러움이 묻어나는 던전의 표현"
30 x 30 정도의 공간에 2진 분할을 반복해서 던전을 구성하다 보면 어떤 "결" 같은게 생겨납니다.


위 그림에서 빨간색 1, 2, 3, 4 는 분할 순서를 나타냅니다.
노란색으로 1, 2 라고 적혀 있는 사각형들이 만들어지기 위한 분할 과정이죠.

사각형 1과 2는 유사합니다. 심지어 크기가 같을 정도로 유사하지요.


유사한 이유는 간단 합니다.
분할선 1, 2, 3 으로 위의 노란색 사각형이 만들어 지는데, 유효성을 보장하면서 균형잡히게 나누다 보면 모양이 거기서 거기인데 재수없게도 크기가 같게 나누어진거죠.

완성된 던전에서 저 두 곳이 "방" 으로 지정되고 유저가 두 방을 방문하는 경우 강한 "데쟈뷰" 를 느끼게 됩니다.

식사를 하고 커피숍에 왔는데 커피숍이 식당과 너무 똑같은 그런 상황인거죠.

그래서 몇가지 해결책을 생각해봤습니다.
  1. 공간 분할 과정에서 주변 여건을 고려해서 크기에 가중치를 부여한다.
  2. 두 사각형을 반드시 다른 넓이로 분할한다.
  3. 분할완료후 각 공간의 역활을 지정할때 방과 방이 이어지지 않도록 Algorithm을 구성한다.
  4. 식생을 추가해서 각 방에 차별점을 유도한다.
  5. 각 공간에 Theme 를 지정해서 차별점을 부여한다.
...등입니다.

이중에 3번, 4번, 5번은 이미 적용이 되어 있습니다.
하지만... 충분치 않았죠.

그럼 1번을 적용해야 할까?
...라고 생각해보니 경미한 증상 호전 이상을 기대할 수는 없다는 결론에 도달했습니다.
2번?
이미 해봤는데 그닥이었어요.

사실 1번과 방향은 다르지만 분할된 사각형을 이렇게 저렇게 변형할 상당히 다앙햔 방법들을 여러 방향으로 고민해봤습니다. 도달한 결론은 기본 뼈대를 생성하는 방식을 완전히 갈아 치우는 것이 품이 덜 든다는 것이었습니다. ㅇ_ㅇ


이런식으로 말이죠.

그럼 어떻게 해야 한단 말인가. 그래...
"인테리어를 기깔나게 하자."
...라고 생각하게 됩니다.


인테리어를 위해서 무엇을 해야 할까?
  1. 네모든 삼각형이든 원이든 어떻게든 기본형태가 있어야 합니다.
  2. 기본형태 내부에 이동이 가능하도록 최소한의 동선을 보장해야 합니다.
  3. 무언가를 채워넣어야 합니다.
작업은 3번은 식생으로 해결 가능하기 때문에 재끼고 2번, 1번의 순서로 이루어졌습니다.


2. 최소한의 동선 보장

동선 구성은 일지에 남기지는 않았지만 식생을 만들면서 작업이 되었었습니다.
이 것을 확장해서...


효율성은 낮추고 공간의 일정 부분을 차지 하도록 조정했습니다.


1. 기본 형태

이 작업을 위해 별생각을 다 했었지만 결국...
  • 외곽선 추출, Pivot 추출, Pivot 조정
...의 3단계로 진행되는 간단한 방법을 선택했습니다.



+ 결과

기본형태와 동선을 뼈대삼아서 방 내부를 조정했습니다.

< 왼쪽 상단 : 동선,     중앙 상단 : 기본형태,     오른쪽 상단 : 조정,
 중앙 하단 : 고립된 공간 제거 >

왼쪽 상단에 보이는 1번 방과 2번 방은 상당히 유사합니다.
하지만 중앙 하단의 조정 완료후 모습을 보면 유사성이 많이 옅어졌음을 알 수 있습니다.
게임 안에서는 식생도 배치되니까 더 다르게 보이겠죠. +_+



이렇게 기깔나는 인테리어 작업은 마무리가 되었습니다.
정말.... 길고.... 힘들었네요. @_@
좀더 사람냄새나는 작업내역은 앞서 올라온 잡설에서 확인 가능 합니다.



현재 던전은 위와 같이 어쩐지 무시무시한 모습입니다. 위 그림에서만...
  • 식생의 배치를 손보고
  • 전장의 안개를 방 형태에 맞출지 지금처럼 사각형을 유지할지도 정하고
  • 우물 근처에 보이는 Object 전용 Tile을 설정하고
...등의 작업이 보이네요.

일 복이 터졌습니다. @_@


오랜만의 일지라서 아주 열심히 작성했습니다.
시계를 보니 작성을 시작한지 2시간이 지나가고 있네요.
자주 짧고 밀도있게 쓰고 싶은데 잘 안됩니다.
차차 나아지겠죠?


이제 커피 물 올리고 잠깐 쉰다음 작업 시작해야겠습니다.
행복한 설 보내셨길 바라면서~!
이만~!
( '_')y-~

2019년 2월 7일 목요일

[20190207] 잡설 - 포기

코드를 작성하기 시작한 이래 제법 긴시간을...
"제대로"
...작동하는 프로그램만 만들어왔던 것 같다.


컨텐츠가 자동생성되어야 하는 게임을 개발하고부터 제대로 작동하는 것 만으로는 많은 경우 <요구사항> 을 충분히 만족할 수 없다는 것을 알게되었는데...

"의외성" 과 "자연스러움"

...이 그것이다.


생성된 컨텐츠에 두가지 요소를 유도하기 위해 여러 수단과 방법을 찾아다녔다.


손쉽게 Random 함수를 남발하거나
속성을 Range 로 만들어 가변성을 부여하거나
엉뚱한 것들을 매칭 시키거나
그럴싸한 Algorithm을 도입해보거나.
...
..
.


이런 저런 시행착오를 반복하던 와중에 흥미롭게도 엄밀함을 포기함으로써 가지는 의외성이 제법 쓸만하다는 것을 알게 되었다.

간단히 적자면 기능의 일부를 엉뚱하게 작성하는 것이고

자세히 적자면 코드의 기능이 무너지지않는 범위 안에서 오작동을 설계의 일부로써 포함하는 것이다.


예로는 "결핍" 이 있는데...
  • 갱신해야 할 것을 갱신하지 않거나
  • 데이터를 4개 가져야 하는데 3개만 제공하거나.
  • 파이프라인의 일부를 건너뛰거나
...하는 것이다.


이것을 알게 되었다 한들 숙성시켜 게임에 녹여내는 것은 어려울테지만
뭐... 언젠가는 활용할 날도 오지 않으려나.


누군가에게 힌트가 될지도 모르니 기록으로 남겨 놓는다.
( '_')y-~

2019년 2월 4일 월요일

[20190204] 잡설 - 뼈대

자연스럽게 공간을 구성하기 위해 이런 저런 고민을 길게 했다.

Build Process를 조정해서 만든 공간에 고민의 결과를 적용하려고 보니
배가 산을 오르는 기분이 강하게 들어왔다.

모든 것을 제대로 만들필요는 당연히 없고
적당히 개연성 있는 결과를 도출하도록 유도하면 되는데

"이렇게 까지 해야만 하는가?"

그래서 원대한 꿈  (임의의 다각형을 만들고 Rasterization 알고리즘을 적용한다던가) 은 갖다 버리고, 필수적인 기능에만 집중하기로 했다.

아래의 결과물은 현재 2단계로 구상된 작업중에 첫번째 뼈대를 만드는 과정이다..


다음 작업은 자연히 살을 붙이는 작업이 될거다.


( '_')y-~


----------------------------------------------------------------------


2019.02.05

모양이 좀 나온다.

( '_')y-~




----------------------------------------------------------------------


2019.02.06

모양이 나오기 시작하면 당연하게도...
본격적인 작업이 시작된다.

우선 Key 데이터를 선별하고 Export 한다.

( '_')y-~


----------------------------------------------------------------------


2019.02.06

Export한 Data가 가지는 가변성에 맞추어 Algorithm을 조정한다.

조정과 관찰을 반복하다 보면 빈틈이 드러난다.
빈틈의 발현을 가급적 줄이기 위해 Algorithm과 Data를 확장한다.

( '_')y-~

> 다음 작업은 고립된 녀석들을 아주 저세상으로 보내버리는 것이다.



----------------------------------------------------------------------


2019.02.06

지우긴 지웠는데 이건 좀 너무하는구만.

( o_o)y-~



----------------------------------------------------------------------


2019.02.06

일단 완료.
해볼만한 것들이 많지만...
언제까지 이것만 잡고 있을수는 없으니까.

( o_o)y-~

> 아래 스샷 잡으려고 10분넘도록 맵 하나 하나 확인했다는 것은 비밀


2019년 2월 3일 일요일

[20190203] 잡설 - Algorithm

Algorithm~!
( '_')y-~

> 그렇습니다. > 이제 코드만 짜면 되는 겁니다.
> .......
> .....는 개뿔 ㅇ_ㅇ