1 / 12

따그닥 온라인

따그닥 온라인. 컴퓨터공학과 4 학년 이호영. 소 개. 멀티 플레이 온라인 레이싱 게임 서버에 다수의 클라이언트가 연결 다수의 게임이 진행 게임당 최대 8 명 플레이 경마를 모티브로하여 플레이어는 경주마를 컨트롤 함. 개발환경. Visual C++ 6.0 API Direct X – Sound, Graphic Winsock MySQL. 서버 / 클라이언트 구조. 서버. 방장 클라이언트. 방장 클라이언트. 클라이언트. 서버의 역할. 모든 클라이언트와의 접속 유지

varden
Download Presentation

따그닥 온라인

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 따그닥 온라인 컴퓨터공학과 4학년 이호영

  2. 소 개 • 멀티 플레이 온라인 레이싱 게임 • 서버에 다수의 클라이언트가 연결 • 다수의 게임이 진행 • 게임당 최대 8명 플레이 • 경마를 모티브로하여 플레이어는 경주마를 컨트롤 함

  3. 개발환경 • Visual C++ 6.0 API • Direct X – Sound, Graphic • Winsock • MySQL

  4. 서버/클라이언트 구조 서버 방장 클라이언트 방장 클라이언트 클라이언트

  5. 서버의 역할 • 모든 클라이언트와의 접속 유지 • 현재 개설된 방 정보 유지 및 갱신정보를 클라이언트에게 전달 • 게임이 개설되면 방장 클라이언트가 다시 서버가 되어 게임을 중개함

  6. 클라이언트 역할 • 클라이언트는 게임을 하기위해 방을 개설할 수 있음(서버에 요청) • 방을 개설한 클라이언트가 그 게임의 서버가 됨 • 다른 클라이언트들은 서버에서 보내준 방 리스트를 받아 개설자 클라이언트에 접속을 시도함

  7. 실시간 전송/동기화 • 게임이 시작되면 게임의 서버와 클라이언트들이 실시간으로 데이터를 주고받으며 게임을 진행함 • 각 클라이언트는 일정간격(200ms)으로 게임의 서버에 자신의 정보를 알려줌 • 게임서버는 각 플레이어의 정보를 종합하여 다시 각 플레이어에게 모든 데이터를 전송함(역시 같은 간격 200ms으로 전송)

  8. 동기화 게임서버 클라이언트 자신의 각종 현재 정보 전송 전체 플레이어 정보 종합 게임 계속 진행 수신된 다른 플레이어 정보를 갱신 ㅇ 자신의 경주마는 자연스럽게 움직이지만, 다른 사람의 경주마는 때때로 끈김이 느껴짐.

  9. 데드 레커닝 • 게임서버는 일정간격(200ms)으로 각 유저로부터 정보를 수집/통합하여 각 유저에게 다시 통보함 • 서버로부터 다른 플레이어의 움직임정보를 받기전까지는 클라이언트가 다음 움직임을 예상하여 다른 유저를 이동시켜야함 • 예상 이동위치와 서버로부터 받은 실제위치 사이의 오차를 줄이는 것을 데드레커닝이라 함

  10. IOCP 서버 모델 • 서버 프로그램이 시작되면 정해진 개수의 Completion Port 쓰레드가 생성 (CPU수*2 +2개) • Accept쓰레드에서는 새로운 접속자를 받아 기 생성된 Completion Port와 연결 서버 (IOCP 모델) 시작 다수의 Completion Port 쓰레드 생성 Accept 쓰레드 생성 (클라이언트 접속 허용) 새로 접속된 유저의 소켓과 Completion Port와 연결 Completion Port 쓰레드 완료된 입출력 처리

  11. IOCP 서버 모델 장점 • 기존의 1user/1thread 방식은 쓰레드를 생성하고 쓰레드간의 문맥교환(Context Switching)을 하는데에 오버헤드가 큼 • IOCP 방식은 쓰레드의 개수를 제한시키고, 한 개의 쓰레드에서 여러 클라이언트의 요청을 처리할수 있게 함.

  12. 프로그램 데모

More Related