본문 바로가기
내일배움 과제/CH4-1

CH4 발제

by GREEN나무 2024. 12. 10.
728x90

이번 과제와 학습 정리

1. 학습 개요

  • 주요 주제: 웹소켓을 활용한 실시간 데이터 통신 학습 및 싱글플레이 게임 제작.
  • 목표:
    • 게임 개발 과정 이해.
    • 프로토콜(HTTP, TCP, WebSocket) 구분.
    • 데이터 패킷 설계 능력.
    • Node.js 기반 게임 서버 구축.
    • 핸들러 구조로 데이터 처리.
  • 활용 방안: 클라이언트-서버 패킷 설계와 Node.js 기반 실시간 게임 서버 제작 가능.

2. 과제 내용

싱글플레이 게임 과제

  • 기획:
    • 시간 및 스테이지별 점수 획득 구분.
    • 아이템 생성 및 획득 점수 차별화.
  • 기본 구조:
    1. 패킷 설계:
      • handlerID: 요청 처리 핸들러 ID.
      • userId: 유저 ID.
      • clientVersion: 클라이언트 버전 정보.
      • payload: JSON 형식의 요청 내용.
    2. 데이터 테이블 설계:
      • 스테이지 정보 (ID, 점수, 초당 점수).
      • 아이템 정보 및 스테이지별 아이템 분배.
    3. 서버 로직:
      • 스테이지별 아이템 생성 및 점수 계산.
      • 아이템 획득 검증 로직(어뷰징 방지).
    4. 배포:
      • 클라우드 환경에서 서버 실행.

3. 필수 기능

  1. 스테이지 관리:
    • 시간/점수를 기준으로 스테이지 구분.
    • 스테이지별 점수 차별화.
  2. 아이템 생성 및 점수 관리:
    • 스테이지별 아이템 종류 분배.
    • 아이템별 획득 점수 차등.
    • 아이템 생성 빈도와 검증.
  3. 게임 종료 점수 검증:
    • 서버에서 시간 및 아이템 획득 점수 검증.

4. 도전 기능

  1. Broadcast 기능:
    • 특정 이벤트를 모든 유저에게 전달.
  2. 하이스코어 관리:
    • 서버에서 최고 점수 저장.
    • 최고 점수 갱신 시 유저들에게 알림.
  3. 유저 정보 연결:
    • UUID 발급 및 유저 게임 기록 연동.
  4. Redis 연동:
    • 유저 세션과 게임 정보 저장.

5. 진행 단계

  1. 기획 정리:
    • 스테이지 및 아이템 생성 로직.
    • 데이터 테이블 초기 설계.
  2. 서버 로직 작성:
    • Node.js 기반 서버 구축.
    • 핸들러 구조를 통한 데이터 처리.
  3. 테스트 및 디버깅:
    • 점수, 아이템 생성, 검증 기능 확인.
  4. 배포:
    • AWS, Heroku 등 클라우드 플랫폼에 배포.

6. 평가 기준

  • 코드 완성도:
    • 필수 기능 완성 여부.
  • 데이터 관리:
    • 데이터 테이블 활용.
    • 서버-클라이언트 데이터 일치.
  • 도전 기능:
    • Broadcast, Redis 등 고급 기능 구현.

추천 추가 학습/작업

  1. 패킷 설계 연습:
    • 다양한 요청/응답 시나리오 정의.
  2. Redis 활용 능력 강화:
    • 데이터 캐싱 및 실시간 게임 데이터를 저장하는 구조 연습.
  3. 성능 최적화:
    • 다수의 연결을 처리하는 서버 구조 학습.

 

'내일배움 과제 > CH4-1' 카테고리의 다른 글

아이템  (0) 2024.12.18
크롬 공룡 만들기  (1) 2024.12.16