Machineboy空

인벤토리(inventory)시스템, SQLite4Unity3D 본문

Game/Unity

인벤토리(inventory)시스템, SQLite4Unity3D

안녕도라 2024. 10. 30. 13:11

인벤토리 시스템의 핵심인 데이터베이스로 시작하고 나서 플레이어가 인벤토리에 접근할 때 필요한 UI 요소를 만들 것이다.

 

인벤토리 시스템에 필요한 기능 목록이다.

  • 영구적(Persistent)
    • 모바일 게임은 시시때때로 종료되거나 방해받는 경우가 많다. 따라서 인벤토리는 게임을 하지 않는 사이에도 데이터베이스 또는 다른 저장 방식 간의 상태 정보를 유지해야 한다.
    • 상태 저장은 강력하고 신속하게 이뤄져야 한다. 저장을 위해 단순 파일(flat file)이나 데이터 베이스를 사용할 수 있다. 일반적인 경우 단순 파일은 사용이 간단하지만 데이터베이스는 좀 더 강력하고 쉽게 확장할 수 있다.
  • 크로스플랫폼(cross platform)
    • 배포하고자 하는 모든 플랫폼에서 작동해야 한다.
    • 때문에 단순 파일이 옳은 선택일 수 있따. 하지만 이후에 언급할 다른 좋은 크로스 플랫폼 옵션도 존재한다.
  • 관계형(relational)
    • 관계형이란 데이터베이스의 관점만이 아니라 오브젝트 간의 관계를 의미한다.
    • 예를 들어 몬스터에게 요리사의 칼이나 모자 같은 아이템을 주고 싶을 수 있기 때문이다.
    • 관계형 데이터베이스는 우리 게임에 잘 어울리겠지만 오브젝트 또는 그래프 데이터베이스와 같은 다른 옵션도 있다.
    • 물론 xml을 사용하는 단순 파일도 가능하지만 데이터 베이스 솔루션이 좀 더 매력적으로 보인다.
  • 확장성(extensible)
    • 한 개의 아이템 타입, 다시 말해 몬스터로 구성될 것이다.
    • 추후에는 다른 아이템도 손쉽게 지원할 수 있어야 한다.
  • 접근성
    • 게임 안에서 여러 신들과 여러 가지 요소들에 의해 사용될 수 있어야 한다.
    • 따라서 인벤토리 서비스는 또는 싱글톤 타입이어야 한다. 인벤토리 시스템을 서비스에 배치할 수 있지만 싱글톤으로 만드는 것도 좋다.

https://github.com/robertohuertasm/SQLite4Unity3d

 

GitHub - robertohuertasm/SQLite4Unity3d: SQLite made easy for Unity3d

SQLite made easy for Unity3d. Contribute to robertohuertasm/SQLite4Unity3d development by creating an account on GitHub.

github.com