2019년 6월 4일 화요일

[20190604] 잡설 - ...

접촉할 수 있는 거진 모든 것들을 무시하거나 방치 하면서 작업 중이다.
걱정되는 부분이 몇 곳에 있지만 진작 이랬어야 하나 하는 생각이 들기도 하고... 복잡하다.

Social Media 쪽은 완전히 놓아버렸다.
Facebook은 완전 방치 상태고, Twitter는 Pixelart 자료 수집용으로만 쓰고 있다.

지난 달의 난장 이후로 내 안에서 무언가 변한 것 으로 보이는데 지금으로서는 이게 좋은지 나쁜지 모르겠다.
차갑게 식었다고 해야 하나.
변한건 변한거니까 일단 받아들이는 수 밖에...


"작업에만 집중한다." ...가 이달의 목표다.
환경은 만들었고 재미 요소가 필요하다. 이 달안에 어느정도 모양을 뽑아보고 싶다.
( '_')y-~

2019년 6월 1일 토요일

[20190601] Throw #1

더운 계절이 왔습니다.
아직 불편한 정도는 아니지만 조만간 어딘가로 피신해야 할런지도 모르겠습니다.
작업이 가능한 커피숍을 찾아놔야겠네요.

몸은 어느정도 회복이 되어서, 어제는 "이제 좀 살만하네" 라고 생각했습니다.
하지만... 낮/밤이 완전히 바뀌어서 그닥 살만하지는 않네요.
( o_o)y-~



작업 이야기로 들어갑니다.

10일 만의 일지 입니다. 일지 간격이 좀 기네요.
잡설의 작성이 뜸해져서 더 긴 것으로 느껴지는군요.

이 일지는 5월 22일의 일부, 23일, 25일 ~ 29일, 31일 그리고 6월 1일 작업을 대상으로 합니다.

작업 내역은...
  • Item Throw를 위한 모든 것
...입니다.


몸이 엉망인 덕분에 작업 시간은 50시간 정도로 짧았지만 일은 많이( ? ) 진행되었습니다.
오늘 일지는 이 작업에서 중요했던 순간들을 몇 개 짚는 것으로 작성해보려 합니다.




1. 위치를 특정한다.

무언가를 던지려면 던질 위치를 특정할 필요가 있습니다.
그것에 최적화된 도구는 Mouse 입니다.

Mouse 위치를 활용할 수 있게 관련 기능을 손 봤습니다.


이렇게 Test Scene에서 확인이 가능하지요.



2. 선을 Grid로 변환 한다.

공간이 특정 크기로 규격화 되어 있는 게임이다보니 Ray 를 활용한 간편한 충돌대상감지는 Game에 맞지 않습니다.

그리하여 시작점과 끝점을 지정하면 그것을 Grid 공간의 경로로 변환하는 기능을 만들었습니다.


Twitter에 이 영상을 올렸더니 어느 외국인 친구가 뭐하는 게임인지 전혀 모르겠다고 하더군요. @_@



3. 유의미한 경로로 제한 한다.

Grid Data의 정보를 참고하여 경로가 벽을 뚫고 가지 못하도록 제한 하였습니다.


이정도면 발사체의 이동 경로로는 충분해 보입니다.



4. Inventory 와 연계하여 경로를 보여준다.

Test Scene에서 만든 기능을 Game에 얹었습니다.


경로용 Tile이 이상하죠?



5. Tile 을 넣어본다.

급하게 Tileset을 만들어서 적용 했습니다.


자리잡기 용도라서 특별한 것은 없습니다.
이거 작업하다가 Tile Build 관련 Bug를 하나 잡았습니다. ( ^_^)y-~



6. 발사체를 이동한다.

발사체 노드를 경로에 맞춰서 이동 시켜봤습니다.


여러 시행착오 끝에 마음에 드는 이동 속도를 찾았습니다.



7. 때린다.

무수한 Item 관련 Refactoring과 Data 재설계 끝에 지정한 장소에서 공격 판정을 만들어 냈습니다.
( '_')y-~


여기 까지 진행하면서 이전 일지에서 언급했던...

  • Item, 행동, 대상의 3가지 조합으로 Item활용을  처리 하는 것

...이 완전히 확립되었습니다.

Damage 가 정상표시 되지 않는 것은 Item과 Actor간의 공방 처리가 정규처리를 따르지 않고 별도의 처리 로직을 가지고 있기 때문입니다.

지난번에 관련 기능을 만들면서 Item 관련 기능은 손보지 않았는데요. 지금 저 녀석을 제대로된 처리 흐름안에 포함하기 위해 여러 부분을 갈아 엎는 중입니다.

일지는 여기 까지 입니다.




어제는 이 달 들어 처음으로 산책을 했습니다. 1.5km의 짧은 거리였지만 산을 오르내리는 거라서 나름 운동이 되었네요.

일지를 5월 31일에 작성하고 싶었는데 낮/밤이 뒤집히다보니 6월 1일에 와서야 작성했습니다.
지난 일지에서... "일지 간격이 10일 씩 되는 것은 좀 아니다 싶었습니다." ...라고 적었는데... 뭔가 스스로에게 면목이 없군요. @_@

다음 일지는 이른 시기에 작성해보겠습니다.

일교차가 좀 있는데 다들 감기 조심하시고 좋은 하루 되세요.
전 잠깐 쉬고 다시 일하러 갑니다.
( '_')y-~

2019년 5월 22일 수요일

[20190522] 회복중

회복중입니다.

뭘 먹어도 이상하게 느끼던 혀가 점차 정상작동 함에 따라 식사량이 약간 회복되었습니다.
수면패턴은 완전히 망가져서 비몽사몽 하고 있네요.
산책은 5월들어 전혀 하지 못했는데 조만간 시작하려고 합니다.



작업 이야기를 해볼까요.
일지를 며칠 후에나 쓸 수 있을거라 생각했지만 그냥 쓰기로 했습니다.
일지 간격이 10일 씩 되는 것은 좀 아니다 싶었습니다.

이 일지는 5월 15일 ~ 17일, 20일 ~ 21일 그리고 22일의 작업 일부를 포함합니다.

작업 내역은...
  1. Neutral Actor 2종 추가
  2. 다양한 Item 사용 방식 제공을 위한 Item Data Update 및 관련 기능 Refactoring
  3. Item 던지기 기능( 작업중 )
...입니다.



1. Neutral Actor 2종 추가

지난 일지에 남긴 Neutral Actor 2종 추가 작업의 여세를 몰아 2종을 더 작업했습니다.

< Cactus 03 >

< Weed 02 >

Weed_02 는 딱히 컨셉을 만들거나 한 것은 아니었지만 선인장을 3종이나 추가했는데 저 녀석이 1종만 있는 것은 뭔가 형평성에 문제가 있다는 생각이 들어서 작업해봤습니다.

지난 작업의 2종과 이번에 추가된 2종이 어우러져 현재 게임은...


...이런 모습입니다.

적절히 난잡해서 만족스럽습니다.
( ^_^)y-~



2. 다양한 Item 사용 방식 제공을 위한 Item Data Update 및 관련 기능 Refactoring

기존에 장비는 착용하고, 음식은 먹고, 주문서는 읽는 식으로 한 가지 아이템에 한가지 행동을 지원했습니다.

여기에 약간의 변화를 줘서 아이템을 활용한 여러가지 행동이 가능하도록 Item Data를 확장 했습니다.

암묵적으로 정해져 있던 아이템을 활용한 행동들이 이제는...

  • 아이템
  • 행동
  • 대상

...의 3가지를 조합해서 활용될 수 있습니다.

관련된 U.I 도 조정해서 Table에서 행동을 지정하면 Inventory에서 관련 행동을 위한 버튼이 활성화 됩니다.

이 작업은 3번 작업과 연관되어 있으니까 여기까지 적고 넘어갑니다.



3. Item 던지기 기능( 작업중 )

Player에게 전략적인 선택지를 제공하기 위해 범용적인 원거리 공격이 필요하다는 생각을 해왔습니다.

그리하여 Player에게 Item 던지기 기능을 주기로 했습니다.

느릿느릿 진행된 작업은...

  • U.I 에서 "던지기" 행동의 선택이 가능하고
  • Actor가 던지는 Animation을 수행하는

...것 까지 작업 되었습니다.


던질 위치를 선택할 때 경로를 미리 보여주는 기능과 Interaction을 처리할 발사체 Object 까지 추가하면 작업이 마무리 될 것으로 보이네요.

일지는 여기 까지 입니다.



여러 날 일을 했는데 작업시간이 그리 길지 않아서 나온게 없습니다.

목표로 잡은 이 달의 작업시간은 150 시간입니다.
첫 2주를 날려먹고 지난 주는 32시간을 일해서 목표치 근처에도 가지 못할 듯 싶네요.

회복 하고 있지만 더 얼른 빨리 후딱 회복하고 싶습니다.

다들 건강 잘 챙기시고.
전 다시 작업하러 갑니다.
( '_')y-~

2019년 5월 14일 화요일

[20190514] 준비와 도루묵 사이

음...
아퍼하다 기절하기를 반복한 것 외에는 아무일도 없었기 때문인지 서론으로 쓸만한 것이 없네요.

경조사를 다녀왔고, 독감에 걸렸고, 고열로 많이 아팠고
처음 6일간 체중이 3kg 넘게 빠졌고
여전히 어지러움증이 있고
식사량은 이전의 30%가 되지 않는 그런 상태 입니다.
4월 30일부터 5월 10일까지 꼼짝도 못했네요.

덕분에 BIC 출품은 접을 것으로 보입니다.
아직 12일 정도가 남아 있지만 엉망이 된 몸으로 도무지 엄두가 나질 않네요.



일지를 쓸 것이 약간은 있으니 더 늘어지기 전에 작성해 봅니다.
이 일지는 4월 30일, 5월 4일, 7일, 11일 13일 14일의 작업을 대상으로 합니다.

작업 내역은...
  1. 시야 시스템 리펙토링 및 관련 기능 조정
  2. Input Manager에 Mouse 관련 기능 추가
  3. Monster Concept 1종 갱신, 1종 추가
  4. Neutral Actor Concept 9종 추가
  5. Neutral Actor 2종 추가
... 입니다.



1. 시야 시스템 리펙토링 및 관련 기능 조정

이 작업은 아프기 시작한 날에 시작해서, 너무 아퍼서 뭐라도 해야했던 날에 마무리 되었습니다.

public member를 남발하면서 적당 적당히 만들어 놓은 기능을 정리했고
전용 기능들을 정리, 분리해서 Player 전용 기능이 Monster의 시야 성능에 나쁜 영향을 끼치던 부분을 제거했습니다.

오랜만에 회사에서 작업하던 느낌을 좀 내봤는데... 고열에 시달리면서 작업을 했던덕에 기억이 나는게 별로 없네요.

시야와 관련이 있는 Item 사용 위치 지정등의 기능도 덤으로 조정되었습니다.


그런데 아름답게도 Bug가 보이는군요. @_@



2. Input Manager에 Mouse 관련 기능 추가

모바일 게임을 만드는게 아니라서 더이상 Touch 기반 UX를 만들 필요가 없습니다.
역사와 전통을 자랑하는 Keyboard, Mouse를 사용하도록 게임을 만들면 되는 것이죠.

그 첫 단계로 Mouse의 Key 정보를 수집해서 Push, Pressed 등의 판단에 도움을 줄 기능을 만들었습니다.

본래 이 작업은 상상속에서 조차 예정에 없었지만 몸을 추스르며 할 첫 작업이 뭐가 좋을가 생각하다가 머리는 덜 쓰고 약간의 주의만 기울이면 문제 없을 이 녀석을 처리하기로 했네요.

잘 마무리 되었고...


...이렇게 Test Scene도 추가 되었습니다.



3. Monster Concept 1종 갱신, 1종 추가

이전에 공룡 형태의 Concept 을 찍은적이 있습니다. No.30 이었죠.
그 녀석을 쓸만하게 고쳐봤습니다.

< Monster Concept No.30 >

그리고 새 형태의 Concept 을 하나 찍어봤습니다.

< Monster Concept No.31 >

모양은 나왔는데 공격 모션이 쉽지가 않아서 고민이 많이 필요합니다.



4. Neutral Actor Concept 9종 추가

Neutral Actor는 보통 풀이나 나무 같은 것들 입니다.
그런 녀석들의 Concept을 9종~! 쉽고 맘편히 찍어봤습니다.

< Neutral Actor Concept No.01 ~ 09 >



5. Neutral Actor 2종 추가

위에서 작업된 Neutral Actor Concept 중에 두 녀석은 Animation 작업을 마무리 해서 게임에 올렸습니다.

< Cactus 01 >

< Cactus 02 >

전 이녀석들이 아주 맘에 드는데... 어떠신가요?
( '_')y-~

일지는 여기 까지 입니다.



마음이 많이 좋지 않습니다.
3월의 휴식
4월의 준비
.
.
5월에는 달렸어야 했는데 독감 한 번에 계획이 다 어그러져 버렸네요.

4월 한 달 106km를 걸었습니다.
체력도 면역력도 많이 보강해놨었는데... 쓰잘데기 없네요.
허 허 허 허

한 걸음 한 걸음 몸 만들기부터 다시 시작합니다.
이건 그리 나쁜 기분은 아니군요.

하늘이 아주 좋습니다.
더워지기 전에 이 하늘을 마음껏 즐기고 싶네요.
여러분도 많이 즐기시기 바랍니다.
( '_')y-~


덧
> 화가 치밀어 오르지만...
> 뭐 어쩌겠어.
> 아프고 말고를 내가 선택할 수는 없잖아.

2019년 5월 11일 토요일

[20190511] 잡설 - 다시

일어나야지.
다시 걸어야지.
작업을 마무리 지어야지.

2019년 4월 30일 화요일

[20190430] 잡설 - 아퍼

감기가 아주 제대로 걸렸다.

토요일 경조사에 다녀오고 부터 으슬으슬 하더니 오늘 발병한 모양이다.

어제 눈의 상태가 급격히 악화된 것이 아마도 전조였을텐데... 전혀 눈치 채지 못했다.
제법 오랜 시간 가벼운 초기 증상만 겪었던 덕에 그냥 몸이 안좋나 보다 했는데... 어리석었다.

약이라도 챙겨 먹었어야 했는데.
( @_@)y-~

일을 하고는 있는데 진도가 엄~~~청 안나가고, 아마도 잠들면 내일은 시체처럼 보낼 듯 싶다.

아.

할 일이 많은데.
너무 시기가 안좋다.
( '_')y-~

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

와~!

Refactoring + 감기 조합은 대단하다.

한 것 또하고.
할 것 안하고.
코드를 넣었다 날리고 넣었다 날리고 다시 날리고.

유후~!~!~!

( ^_^)y-~

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

넘나 아프지만 사라이씀...
~( @_@)~

2019년 4월 29일 월요일

[20190429] Sight Part.2

대기 상태가 오락가락 하는 요즘 입니다.
산책은 많이 하고 SNS는 덜하는 그런 하루 하루를 보내고 있습니다.

이번달 산책 목표치는 150km 였습니다.
초미세 먼지 수치는 좋지만 미세먼지 수치는 나쁨이던 어느날...
할당량에 압박을 느끼고 무리해서 산책을 나가봤는데 눈의 상태가 급격히 나빠지더군요.

대기질이 온전할 때만 나가기로 했습니다.
( ㅇ_ㅇ)y-~



작업 이야기를 해볼까요.
이 일지는 4월 18일, 19일, 22일 ~ 26일, 29일 까지의 작업을 대상으로 합니다.

작업 내역은...
  1. 시야 시스템 조정
  2. 시야 시스템에 맞추어 기존 기능 조정
...입니다.

이렇게 적어놓으니 무척 간단해 보이는군요.



1. 시야 시스템 조정

지난 작업에서는 시야 탐색 로직을 개선했습니다. 정확히는 Monster용 시야시스템을 개선하는 작업이었습니다.

이어서 Player의 시야 시스템을 개선하는 작업이 이어졌습니다.

사실 "Player의 시야" 라고 부르기에는 민망한 상태였는데요.
  • 시야 Stat이 없고
  • 시야의 형태가 현재 위치의 Tile 속성에 좌우되고
  • Player는 그저 시야의 기준이 될 위치를 제공하는 정도
...라서 "Player의 시야" 라기 보다는 "Game의 시야" 라는 표현이 더 어울리는 상황이었습니다.

그러다보니 관련 기능이 Player와의 특별한 접점 없이 흩어져 있었고 일을 많이 어렵게 만들었습니다.

일부 기능은 Zone AI에 가 있었고
다른 기능은 Map Shadow View에
어떤 기능은 Player AI 에
...작성 되어있더군요.

작업의 시작은 관련 기능을 모으는 작업이었습니다. 다 모았더니 시야 탐색을 담당하는 Watcher가 4개로 불어나 있었습니다.

흩어진 기능 1개당 Class 가 1개씩 늘어난거죠.

재사용성을 고려해서 중복기능을 분리해내고, 분리 자체에 의미가 있지만 재사용되지 않을 기능을 통합해서 Watcher 는 2개로 정리 되었습니다.

이 과정에서 많이 힘들었네요.
( '_')y-~

그러나 용을 썼다고 작업이 거기서 끝나줄리가 없지요.

Test Scene을 돌려놓고 생각해보니 시야가 유효한 공간만을 감지해서는 안된다는 생각에 도달했습니다.
길만 보여서는 답답하기 때문에 시야가 닿은 벽들도 찾아서 화면에 적용해줘야 한다는 것이죠.

그리하여...

< older >

< new >

이렇게 조정되었습니다.

작업 도중에...
시야의 갱신 시점 조절
같은 위치에서 재 갱신이 요청되는 경우의 효율적 처리
무리 없는 시야 갱신
자연스러운( ? ) Interface
...등을 위해 많은 시간이 들어갔습니다.

코드 한 무더기를 작성해놓고 날리기를 여러번 반복했는데 날리면서 아쉬움보다 홀가분함, 시원함이 느껴져서 다행이었네요.
( @_@)y-~



2. 시야 시스템에 맞추어 기존 기능 조정

작업 이야기 이전에 이 게임의 <환경> 이 어떻게 표현되는지에 대해서 약간의 설명을 해볼까 합니다.

<환경>은 지형, 안개, 시야로 표현됩니다.

각각의 요소는 다음과 같이...

< 지형 >

< 안개 - 일명 "전장의 안개" >

< 시야 >

개별적으로 Texture에 그려집니다.

이걸 가져다가
지형에 Gray Scale을 적용하고
Fog를 덮어 씌우고
시야의 색상을 뒤집어서 떠내면


...이런 결과물이 되는 것입니다.

작업은 시야 시스템을 적용하는 것으로 시작했습니다.
이전의 동그랗고 네모나던 시야를 TileMap 기반으로 바꿔야 했습니다.

<지형> 이나 <안개> 도 TileMap 기반이지만 <시야>에 적용하기에는 적절하지 않더군요.

<지형> 은 TileMap 이 가득 차있고 양적인 부분에서 변화가 없습니다.
<안개> 는 가득 채워져 있다가 게임이 진행됨에 따라 비워집니다.
<시야>는 비워져 있다가 시야에 해당하는 부분만 채워야 낭비 없는 작동이 가능합니다.

<지형> 이나 <안개> 에 쓰이던 기능을 그대로 사용해도 문제는 없지만 효율성을 고려해서 <시야> 를 위한 기능을 별도로 작성했습니다.

작업 도중에 기존의 Light Node를 대신할 Erase Node를 추가했습니다.
이 녀석은 시야 영역을 떠내는 역활을 잘 수행하고 있습니다.

두번째 작업은 안개를 지워내는 기능의 조정이었습니다.
이전에는 그저 네모나게 지워낼 뿐이던 것을  시야의 모양에 맞추어 지우도록 조정했습니다.

그 외에 Interface 조정이나 Test Scene 작업등 여러 재미없는 것들을 정리하며 작업이 마무리 되었습니다.

지금 Game의 모습은...


...이런 상황 입니다.

시야 표현용 Tileset 조정 작업을 진행해야 하지만 조금 지쳐서 미뤄 둡니다.
@_@

일지는 여기까지 입니다.



상당히 긴 기간을 이 작업에 몰빵했는데 작업 내역을 확인해보니 100개도 되지 않습니다.
전 도대체 얼마나 많은 코드를 저 멀리로 날려버린 걸까요. @_@

Game의 모양이 어느정도 잡힌 것 같아서 기쁘기도 하고, 홀가분 하기도 합니다.

이전의 시야 시스템이 전해주던 안정감( ? )이 사라진 것은 아쉽지만, 전략적 움직임의 유도와 긴장감의 전달이라는 목표는  달성한 것 같습니다.
늘 그렇듯이 얻는게 있으면 잃는게 있는거겠죠.

작업들이 많이 밀려 있지만 앞으로 한 달은 BIC용 Build를 준비하게 될 겁니다.
"완성된 Intro" 와 "던전 한 Set"가 목표인데 어찌 될런지...


다음 일지는 좀 더 이른 시기에 작성 하겠습니다.
환절기 건강 관리들 잘 하시고.
다음 일지에서 만나요.
( '_')y-~

> 3번 고침

2019년 4월 26일 금요일

[20190426] 잡설 - 평소의 나

하루의 작업을 마무리 하고 쉬던중

다음 작업의 진행 방향을 생각해내고 몸이 달아 있다가

자고 일어나서 일부 기능을 작성

외출 했다가 돌아와서 기반 기능을 다시 둘러본 다음

작업했던 것 몽땅 날리고 간단하게 구현
.
.
.

평소의 나로군.
( '_')y-~