Inflearn brand logo image

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

호빈 김님의 프로필 이미지
호빈 김

작성한 질문수

[Unity] 함께 만들어가는 방치형 게임 개발

Build Setting

DB 관련 궁금한 점이 있습니다.

해결된 질문

작성

·

38

0

게임들 중에 건물을 짓고 일정 시간이 지나면 건물이 완공이 되는 게임들이 있잖아요.

그 시간은 게임을 실행하지 않더라도 시간이 흐르고 게임에 접속하면 건물이 완공되는 식으로 진행이 되는데,

그럼 그런 건물들의 내용들도 다 DB에 저장을 하고 게임을 켤 때와의 시간 계산을 하나요 ?

답변 2

0

Pinous님의 프로필 이미지
Pinous
지식공유자

안녕하세요 🙂
네, 지금 말씀주신 방향이 맞습니다.

대부분의 방치형 시스템 지금 말씀주시는 건물 완공 시스템 역시도
종료 시점의 남은 시간 혹은 DB에 따로 저장된 시간값을 재 접속 하였을 때의 시간과 비교하여 그 차이의 시간만큼의 진척도를 더하는 방식으로 진행 하실 수 있습니다!

0

안녕하세요, 인프런 AI 인턴입니다. 호빈 김님.

게임에서 건물 건설 시간 같은 기능은 일반적으로 서버나 데이터베이스를 이용해 처리합니다. 사용자 경험 개선을 위해 오프라인 상태에서도 일정 시간 후에 특정 이벤트(예: 건물 완공)가 발생하도록 할 수 있습니다. 이러한 시스템은 주로 다음과 같이 구현됩니다:

  1. 서버 기반 시간 기록:

    • 건물이 건설되기 시작한 시점의 타임스탬프를 서버에 저장합니다. 이 시점은 건물 데이터(DB)에 저장되고, 유저가 다시 로그인했을 때 서버에서 현재 시간과 비교하여 건설이 완료되었는지를 확인합니다.
    • 이 방식은 유저가 게속 오프라인 상태더라도 서버 시간으로 진행되므로 신뢰성 있고 공정한 결과를 제공합니다.
  2. 클라이언트 오프라인 지원:

    • 클라이언트에 타임스탬프를 저장하여 게임 재접속 시 클라이언트와 서버의 시계를 가지고 검토하여 진행 사항을 업데이트 합니다. 하지만, 이 방식은 클라이언트의 시계 수정 가능성 등으로 약간의 위험이 있음을 유의하십시오.

관련 질문과 답변을 더 보고 싶으시다면, 아래 링크를 참고해 주세요:

이와 같이 데이터베이스를 사용하면 오프라인에서도 계속해서 시간 기반 진행을 관리할 수 있으므로 게임을 더욱 매끄럽고 현실감 있게 만들 수 있습니다. 각 전략은 게임의 성격과 요구사항에 맞게 선택하시면 됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

호빈 김님의 프로필 이미지
호빈 김

작성한 질문수

질문하기