[쉐잎오브드림] 로그라이크 멀티겜 #1 - 첫 개발일지



연휴 잘 보내셧나요 ㅎㅎ




a65130ab142e782a83675d51d25dd9e123d82c276d81bedd790c6f0eb984e270d89fac39d698808a547d7f

대학생이 삘받아서 휴학하고 만드는 로그라이크 멀티겜 Shape of Dream




만든 것


최근에 들어 몬스터를 공격하거나 처치했을 때 타격감이 부족하다고 생각하고 있던 찰나,


게임에 액션이 부족하다는 피드백이 들어와 본격적으로 액션 부분을 보강해보기로 결심했습니다.




그래서 개인적으로 타격감이 좋다고 생각했던 Dead Cells, GTA V, 대난투 같은


게임들의 영상을 돌려보며 케이스 스터디를 해보았습니다.



2ebcc323b59c3faf689fe8b115ef046933f80ebcda36


2ebcc323b49c3faf689fe8b115ef046ec107034aa5ab



그리고 이런 게임들은 공통적으로 아래와 같은 특징들이 있었습니다.



1. 소리가 시원해야한다.

2. 타격할 때 게임이 잠시 멈추거나 느려져셔 타격 자체를 강조한다.

3. 화면 전체가 잠시 밝아지거나 흔들린다. (GTA V, Dead Cells 등)

4. 적이 잠시 멈추고 격하게 흔들린다. (특히 격투 게임들이 많이 차용하는듯)

5. 치명적인 타격이 들어가면 이 정도가 훨씬 심하다.



그래서 slow motion, hit slow 이런 식으로 검색을 해보니


Screen Kill Effects, Hit Stop 이라고들 많이 부르는 요소라는 것을 알게되었습니다





마침 커비와 대난투 게임 디자이너인 마사히로 사쿠라이 아조씨가 운영하는 유투브 채널에


관련 기술을 분석해둔 영상이 있길래 그걸로 공부를 조금 해보았습니다.


비슷한 고민에 빠져계신 분들이라면 꼭 시청해보시는걸 추천드립니다.


https://www.youtube.com/watch?v=OdVkEOzdCPw

Stop for Big Moments! [Design Specifics]

Have you ever heard of something called "hit stop"? The thinking behind it can be applied to more than just hits—in fact, it'd be a waste to only use it ther...

www.youtube.com


https://www.youtube.com/watch?v=tycbMSjDDLg

Eight Hit Stop Techniques [Design Specifics]

I've talked about hit stop before, but this time I'll be sharing specific details of the hit stop techniques used in Smash Bros. Ultimate. I hope you enjoy y...

www.youtube.com



이렇게 공부를 마치고... 제 게임에 추가하게된 요소는 세가지입니다.



1. 피격 시 적 흔들림


25b4c476abd531a04e81d2b628f1766fc4c4f0e6d8

타격이 들어가면 해당 적이 데미지의 방향 기준 앞뒤로 흔들립니다. (도트뎀 제외)



2cbfd368f5dc3f8650bbd58b3680726518e1


피격 데미지를 적의 최대체력으로 나누어서 그 비율에 따라 해당 적이 흔들리게 만들었습니다.


(Shake의 강도와 지속시간 지정을 위해 AnimationCurve 사용)




그래서 보스에게 평타를 치면 조금만 흔들리고


잡몹에게 번개를 떨어트리면 엄청 흔들리는 식이죠





2. 스크린 킬 효과


25b4c474abd531a04e81d2b628f17769e1c5a24f54


적이 죽으면 화면이 살짝 흔들리고 잠시 동안 모션블러 + 채도 + 명도를 올리게 만들었습니다.


정말 미묘하지만... 너무 심하면 매번 킬마다 화면이 반짝이니 너무 눈이 아프고


덜하면 아예 티가 안납니다... 파라메터 조절을 계속 해봐야 완벽해질 것 같네요.





3. 슬로우 모션



2ab8dd24e0d437b46bf1d1bc10f11a39e0f4bfff18c0df0da662


25b4c474b69c3faf689fe8b115ef04684bd35fa7bc1f



아주 강한 데미지가 들어가거나 보스를 처치하면 영화같은 (눈아픈...) 후처리를 먹이면서 시간이 느려져서

그 데미지를 강조합니다


이렇게 되니 게임 후반부에 빌드가 너무 잘떠서 애들이 다 한방에 죽으면


게임이 다소 심심해지는 부분을 보강해주는 효과도 있더라구요 ㅎㅎ

(이정도 데미지면 슬로우 모션 뜨겠지? 하고 기대하게됨)


단 슬로우모션같은 경우 호불호가 조금 갈렸습니다.


게임이 느려지는걸 잔렉으로 착각하는 친구도 있었고,


일부 캐릭터의 경우 (미스트는 타이밍을 맞춰야 하는 패링 스킬이 있습니다) 방해가 된다는 의견이 있었거든요.




특히 멀티플레이같은 경우에는 모두의 화면에 발동 대상 몬스터가 보여야 한다는 조건을 달아두긴 했지만


모두의 취향이 같을 수는 없으니 설정에 토글을 만들던가 하는 방향으로 생각해봐야할 것 같습니다.


아직도 다듬을게 많네요.






멀티플레이 개발 환경


여담으로 멀티플레이 개발을 하다보니 갖춰본 셋업이 좀 편해서 공유드립니다.



2cbcd127e49c28a8699fe8b115ef046c1bb1dc5dbdce

이렇게 데스크탑과 노트북을 붙여놓고,


SyncthingTray로 노트북에 현재 프로젝트의 클론을 만들고


Synergy (유료, Barrier같은 오픈소스 대체제도 있습니다)를 이용해 마우스와 키보드를 공유하게 만들면...



2ebed368e2db3e8650bbd58b3682756b276c887d

데스크탑에서 수정한 코드가 커밋같은 과정 없이도 5초만 기다리면 노트북과 동기화가 되고,


한 키보드 마우스로 두 기기를 모두 제어할 수 있습니다.


(현업 멀티 개발쪽에 계신 분들은 이미 이렇게 하고 있는 분들이 많은 것으로 알고 있습니다)





혹시 멀티플레이 테스트를 위해 매번 게임을 빌드하고 게임을 두개 켜고 계신 분들이 있으시다면


노트북을 이렇게 붙여서 개발 환경을 구축하거나, 컴퓨터 하나로도 symlink를 이용해


같은 프로젝트를 두번 켜서 개발하는 등 좋은 방법이 많으니 참고하셨으면 좋겠습니다.


https://github.com/VeriorPies/ParrelSync (빌드 없이 멀티 테스트하기)



읽어주셔서 감사합니다.


그럼 다음 일지로 찾아뵙겠습니다!!






https://lizardsmoothie.itch.io/shape-of-dream

itch.io

Travel the Dream World in solo/multiplayer rogue-like with unique gameplay mechanics

lizardsmoothie.itch.io

직접 플레이해보실수잇어요 와!!


https://indie.onstove.com/ko/games/2258

STOVE

STOVE

indie.onstove.com


공식 트위터계정 (파리날리는중. 자체홍보하시는분들 백번 존경합니다)

https://twitter.com/LzrdSmoothieKR (한국어계정으로 수정)