Skip to content

tkddls3319/Unity-MMORPG-Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IOCP MMO Server

프로젝트 개요

  • 저장소 분리: 해당 저장소는 Unity-MMO-RPG-Total 저장소에서 Server 부분만 분리하여 관리.
  • 기능: 클라이언트-서버 간 네트워크 통신 및 멀티플레이어 게임 로직 처리.
  • 목표: 안정적인 작업 처리 구조와 효율적인 네트워크 통신 구현.

주요 네트워크 구성 요소

  • Connector.cs:
    • 클라이언트와 서버 간 연결 설정.
    • 연결 성공 시 Session 객체 초기화 및 시작.
  • Listener.cs:
    • 서버에서 클라이언트 연결 요청 수락.
    • 새로운 세션 생성 및 연결 관리.
  • Session.csPacketSession.cs:
    • 클라이언트와 서버 간 데이터 송수신 관리.
    • 패킷 기반 데이터 처리 및 연결 관리.
  • SessionManager.cs:
    • 여러 클라이언트 세션 관리.
    • 세션 생성, 검색, 삭제 기능 포함.
  • RecvBuffer.cs:
    • 데이터를 수신 및 관리하는 버퍼 구현.
    • 효율적인 읽기/쓰기 포지션 관리.

주요 로직 구성 요소

  • GameRoom.cs:
    • 게임 룸(방)을 관리.
    • 플레이어 입장, 퇴장, 채팅, 이동, 스킬 사용 등 주요 이벤트 처리.
  • Map.cs:
    • 맵 데이터 관리 및 플레이어 이동 처리.
    • 충돌 검사를 통해 이동 가능 여부 판단.
  • RoomManager.cs:
    • 여러 게임 방 관리.
    • 방 생성, 검색, 삭제 및 업데이트 기능 포함.
  • ObjectManager.csGameObject.cs:
    • 게임 내 객체(플레이어, 몬스터 등) 관리.
    • 객체 생성, 삭제 및 상태 업데이트.
  • Player.cs:
    • 플레이어 객체의 상세 구현.
    • 데미지 처리, 사망 처리 등의 로직 포함.
  • ConfigManager.cs:
    • 서버 설정 정보 관리.
    • JSON 기반 설정 파일 로드 가능.
  • DataManager.csData.Contents.cs:
    • 게임 내 스탯 및 스킬 데이터 관리.
    • JSON 데이터를 로드하여 딕셔너리로 구성.

작업 처리 및 스케줄링

  • Job.cs, JobSerializer.cs, JobTimer.cs:
    • 작업(Job) 정의 및 실행 관리.
    • 작업 스케줄링과 우선순위 큐를 사용한 타이머 구현.

네트워크 프로토콜 및 패킷 처리

  • Protocol.cs:
    • Google Protobuf 기반 패킷 정의.
    • 로그인, 채팅, 이동, 스킬 사용 등 다양한 패킷 구현.
  • PacketHandler.cs:
    • 패킷 처리 핸들러 정의.
    • 각 패킷에 대한 처리 로직 구현.
  • ServerPacketManager.cs:
    • 패킷 등록 및 처리 관리.
    • 패킷 수신 후 적절한 핸들러 호출.

추가적 특징

  • PriorityQueue.cs:
    • 작업 우선순위 큐 구현.
    • 작업 스케줄링에 사용.

About

mmoRPG 서버 최종본

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages