24b0d121e09270f527f1c6bb11f11a39028aded1efe9d41404



하이. 나이트 오버로디드라는 게임을 만든 사람임.

간단히 말해 백팩 시스템 + 뱀서류 게임성을 섞은 게임이고...


https://store.steampowered.com/app/2447310/_/

Knight Overloaded on Steam

Knight Overloaded is a roguelight survival game that reinforced strategic choices. Beat enemies falling from the sky endlessly, and expand your inventory!

store.steampowered.com

틈새 홍보) 이제 무료니까 심심한 사람들은 한번 해봐.

요즘 다른 일로 시간이 도저히 안 나서 무료로 전환하고

천천히 업데이트해 나가려고 준비중이야.


인겜갤 눈팅이나 하다가 백팩 게임 글 좀 보이길래

내가 이런 시스템 만들면서 삽질했던 경험이 생각나서

혹시 레퍼런스가 필요한 사람이 있을까 해서 글 씀.




https://github.com/YoungHyeonKim0618/Inventory-UI-Framework/blob/main/PlaceableCellUI.cs


게임 설계를 갈아엎으면서 다른 게임에서도 좀 활용 가능하게

(당시로써는) 나름 머리 굴려서 프레임워크처럼 만들어봤었거든

물론 만들고 나니 뭔가 공개하기는 부끄러워서 공개한 적은 없고.


그런데 어쨌거나 실제 나이트 오버로드디에서 이 프레임워크를 기반한 시스템을 이용하고 있으니

잘만 하면 게임에서 쓸 수는 있는 수준인 것 같으니까

아~ 얘는 이렇게 했구나 하고 참고하는 정도만 되어도 좋을 듯?





+) 추가 설명

2cbbd135e1d476b660b8f68b12d21a1df37df166


이동과 회전을 기본적으로 지원해야 하는데 어떤 방식으로 할까 고민하다가,

항상 PlaceableUI의 Sprite의 중앙으로 고정하기로 함. Sprite 크기도 실제 Cell 수랑 상관없이 고정이고.

참고로 나는 게임 만들 때 Cell당 16픽셀, 전체 크기 80x80픽셀로 만듦.



즉 새로운 아이템을 만드는 과정은 다음과 같아


1. 고정된 크기의 스프라이트를 만들기


2. IPlaceable의 스프라이트와 이름, 설명, 셀들의 정보를 지정해줌. (ScriptableObject 사용하는 걸 강력추천)


3. PlaceableUI의 InitPlaceable(IPlaceable, PlaceableCellPrefab)을 이용해 해당 IPlaceable에 맞는 UI를 생성해줌.


4. GridUI에 장착/해제할 수 있음, 이후에는 입맛대로 사용



다시 말하지만 이 방법은 이대로 따라하라는 의미로 공개한다기보단

전혀 감이 안 올 때 '얘는 이렇게 했구나~' 정도로 참고하면 좋을 것 같다는 의미로 공개한 거니까

각자 필요한 만큼만 가져가서 써!


궁금한 건 댓글로 달아주면 고맙겠어

게임 만드는 게 힘들 텐데 다들 화이팅~

31