Skip to content

TCP 멀티플레이어 게임 서버 만들기 -- [내일배움캠프] 스파르타) Chapter 5 게임서버 주특기 플러스 개인과제

Notifications You must be signed in to change notification settings

donkim1212/sparta-ch5-tcp-game-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TCP 멀티플레이어 게임 서버 만들기

[내일배움캠프] 스파르타) Chapter 5 게임서버 주특기 플러스 개인과제

스크린샷 2024-07-02 194641

  • 과제 Specification: 링크

  • 게임 클라이언트 repository: 링크 by 조호영 튜터님 (Ho-yeong)

    • 필수: 위 repository를 clone하고 Assets 디렉토리를 현재 repository의 client/Assets로 덮어 써주세요.
    • 추가: 위 사항이 적용된 클라이언트 repository를 추가했습니다.

1. 개요

Node.js의 기본 모듈인 net의 내장 socket을 이용하여 TCP 게임 서버를 미리 빌드된 게임 클라이언트 사양에 맞춰 구현하고, 여러 클라이언트 유저 간 위치 정보를 동기화 해보는 것이 목적입니다. 위치 정보 동기화에는 Latency 기반의 추측 항법 (Dead Reckoning)을 적용합니다.

주요 학습 내용

  • Node.js의 net 모듈을 이용한 TCP socket 서버 구현
  • Protobuf를 이용한 데이터 직렬화(serialization) 및 역직렬화(deserialization)와 버퍼 송수신 구현
  • RTT(Round Trip Time) 방식의 Latency 측정
  • 추측 항법 구현을 위한 삼각 함수와 단위원(Unit Circle) 개념 학습
  • Latency 기반의 추측 항법(Dead Reckoning)으로 클라이언트 유저 위치 예측 및 동기화

2. 과제 진행 과정

1일차 (D-7) 블로그 링크: 프로젝트 기초 세팅
2일차 (D-6) 블로그 링크: 필수 요구사항 구현 완료
3일차 (D-5) 블로그 링크: 도전 요구사항 시작, DB 연동 part 1
4일차 (D-4) 블로그 링크: DB 연동 part 2 - 클라이언트 수정
5일차 (D-3) 블로그 링크: Latency 기반 추측 항법 구현 part 1
6일차 (D-2) 블로그 링크: Latency 기반 추측 항법 구현 part 2
7일차 (D-1) 블로그 링크: 버그 수정 및 마무리


3. 디렉토리 구조

├─client
│  └─Assets
│      ├─Scenes
│      │  └─SampleScene
│      └─Src
│          └─Codes
├─protobuf
│  ├─client
│  └─server
└─src
    ├─config
    ├─constants
    │  └─queries
    ├─db
    │  ├─migrations
    │  └─sql
    ├─events
    ├─handlers
    ├─init
    ├─managers
    ├─models
    ├─protobuf
    │  ├─common
    │  ├─gameNotification
    │  └─response
    ├─session
    └─utils
        ├─db
        ├─errors
        │  └─classes
        └─packet

4. 패킷 구조

#17 참고

About

TCP 멀티플레이어 게임 서버 만들기 -- [내일배움캠프] 스파르타) Chapter 5 게임서버 주특기 플러스 개인과제

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published