인프런 커뮤니티 질문&답변

Running boy님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)

아이템 착용 #1

아이템 슬롯 선적용에 대한 질문입니다

24.07.25 04:03 작성

·

85

·

수정됨

0

강의의 코드에서는 Inventory에 아이템을 저장할 때 Dictionary의 key값으로 ItemDbId를 사용하고 있습니다.

ItemDbId는 DB에 저장될 때 생성되므로 미리 그 값을 알 수 없어 선적용이 불가능한데, 만약 Dictionary의 key값으로 Slot Index를 사용한다면 굳이 별도의 구조체를 관리하지 않아도 해결되지 않을까 생각됩니다. (빈 슬롯에 ItemDbId가 없는 임시 아이템 정보를 우선 넣는 방식)

기획에 따라 다르겠지만 통상적으로, 그리고 강의에서 구현하는 게임의 기획 의도상 Slot은 하나의 Item만 등록되는 것이 보장되는 Unique한 값이기 때문에 key값으로 충분히 사용할 수 있을거라고 생각됩니다.

혹시 저렇게 했을 경우 발생할 수 있는 이슈가 있다거나 제가 생각하지 못한 어떠한 이유가 있는지 조언 부탁드립니다.

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2024. 07. 27. 04:06

안녕하세요, 인프런 AI 인턴입니다.

Running boy님의 질문에 답변드리겠습니다. 아이템 슬롯의 key 값으로 인벤토리 내 아이템 고유의 ID(예: ItemDbId)를 사용하는 경우와 슬롯 인덱스를 사용하는 경우 각각의 장단점이 존재합니다.

ItemDbId를 key로 사용할 경우, 각 아이템이 고유한 식별자를 가지게 되어 DB 관리 및 아이템 간의 비교가 용이합니다. 특히, 아이템이 이동하거나 변동될 때마다 해당 아이템의 고유 ID를 통해 처리하면, 아이템의 고유성을 유지하기에 용이합니다.

반면, Slot Index를 key로 사용하는 방식은 구현이 상대적으로 간단하며, 인벤토리의 구조를 이해하고 관리하기 쉬워집니다. 또한, 인벤토리 내에서 아이템의 위치 변경이나 슬롯 관리가 용이합니다. 하지만 이 경우, 아이템의 고유 ID 관리에 추가적인 처리가 필요할 수 있으며, ID를 기반으로 한 데이터베이스 연동 처리에 있어서 복잡성이 증가할 수 있습니다.

각 방식은 게임의 기획 의도나 필요한 기능, 처리의 용이성에 따라 선택될 수 있습니다. Slot Index 방식을 채택할 경우, 아이템의 고유성을 관리하는 별도의 방법을 고려해야 하며, 사용자 인터페이스(UI)와의 연동, 아이템의 이동 및 관리 등을 어떻게 처리할지에 대한 추가적인 고민이 필요합니다.

결론적으로, Slot Index를 key로 사용하는 방식이 특정 상황에서는 더 효율적일 수 있으나, 아이템의 고유 ID를 관리하는 방식에 비해 추가적인 고려사항이 발생할 수 있습니다. 따라서, 강의에서 소개된 방식과 다른 방식을 적용하고자 할 때는 해당 프로젝트의 요구 사항과 기획 의도를 면밀히 검토한 후 결정하는 것이 바람직합니다.