전체 글 81

스파르타 최종 프로젝트 3조 회의 - 1

클라팀 : 권용수, 김현진, 문주원서버팀 : 박용현, 이정수, 문민철 회의 내용저번 회의 마지막내용: 장르 정함 ( 액션 어드벤처 로그라이크 전략 RPG)클라팀에서 했던 최종 프로젝트 용수님이 만든걸 토대로 진행하려고 했음. 이정수 : 어떻게 어떻게 재미없다라기 보다는 결론은 이 최종클라 프로젝트를 베이스로 하는건 너무 별로다.서버에서는 서버에서 여러 연산이 필요한 게임을 찾자. 김현진: 클라팀끼리 회의를했는데 베이스를 가지고 하는것일 뿐 게임 기반으로 삼지못하는 이유, 에셋이 팀 프로젝트에서 용수님이 하나도 소유하지 않고 있음, 용수님 팀 프로젝트 했을때 게임을 그대로 사용하려면 용수님의 팀의 동의가 필요하다.  박용현: 도의적인 이야기이기 때문에 굳이 허락을 맡아야하나? 이정수: 기획에 관한 저작권도..

회고록 2024.11.11

TowerDefenseOnline 프로젝트: 인메모리에서 Redis의 데이터 저장 전환

레디스 용도TowerDefenseOnline 프로젝트에서 Redis는 게임 데이터를 효율적이고 안정적으로 관리하기 위해 사용특히, 빠른 데이터 접근 속도와 지속성 있는 DB 역할을 수행인메모리 데이터 관리 방식에서 발생할 수 있는 데이터 유실 문제를 해결하기 위한 솔루션우리 프로젝트의 특징인 TCP통신이기 때문에 실시간 게임 플레이 중에도 데이터 일관성을 유지하면서 높은 성능을 제공레디스가 쓰이는 곳기능로그인매칭상태 동기화타워 구매몬스터 생성타워 공격몬스터 공격넥서스 HP업데이트몬스터 처치게임 오버게임 종료로그인 ( redisClient.hmset(`user:${user.userId}`, userData); )클라이언트에서 request로 payloadData가 들어오면 const { id, passwo..

기타 2024.11.11

데이터 중심 동기화 (Data-oriented Synchronization)에 대하여 (Node.js 중심)

데이터 중심 동기화(Data-oriented Synchronization)는 네트워크 환경에서 데이터의 일관성을 유지하기 위해, 클라이언트와 서버 간의 데이터 동기화 방식을 최적화하는 기법입니다. 특히 실시간 멀티 플레이 게임이나 분산 시스템에서 데이터의 상태를 효율적으로 동기화하는 데 사용됩니다. 이 방법은 주로 상태의 변화를 기준으로 동기화하거나, 데이터의 중요한 부분만 전송하여 네트워크 자원의 효율성을 높입니다. 개념 설명상태 기반(State-based): 클라이언트는 주기적으로 전체 상태를 전송하거나 동기화하고, 서버는 이를 바탕으로 상태를 업데이트합니다. 주기적인 스냅샷이 필요하므로, 자주 변경되는 상태에는 다소 비효율적일 수 있습니다.변화 기반(Changed-based): 상태가 변화할 때만 ..

TIL 2024.11.09