생활
실시간 텍스트 기반 웹게임 DB 커밋
안녕하세요, 평소에 텍스트 기반 웹게임(Ogame 등)을 즐겨하는 유저로서 궁금한게 생겼습니다. 이러한 실시간 웹게임들의 특징은 플레이어의 자원이 로그아웃 상태에서도 시간에 따라 증가하게 되어있는데요, 두 가지 방법이 생각납니다:
DB를 매초마다 업데이트
Interaction (로그인, 다른 플레이어가 탐색, 전투 발생) 발생 시에 준비된 공식으로 그 전 interaction 부터 흐른 시간을 대입해 계산되어 업데이트 될까요?(예: 1초마다 자원 A가 10씩 증가한다면, 10초 후에 플레이어가 refresh를 했을 때 100이 증가한 상태가 업데이트)
직접 개발을 할 때 전자는 스케일이 커지면 서버 처리량이 너무 커질 것 같아 후자를 택하게 되었는데 변수가 증가함에 따라 공식이 복잡해져서 [예: A, B 자원이 있고, B가 0이 될 때 A가 감소하는 구조 - interaction간의 시간이 t이고 이 기간동안 B가 0이 되었다면 A의 감소량은 감소율 x (t-t(b=0)) 가 됨. 여기선 쉽지만, linear함수가 아니고 변수가 증가할수록 프로그래밍하기 까다로워짐] 어려움을 겪고 있습니다.
1번 방법이 가능한가요, 아니면 2번식으로 하면서 복잡도가 많이 증가하는게 맞을까요?
2개의 답변이 있어요!