Outdated/Game 4

[Summary] 게임 서버 프로그래밍 교과서 - Ch4

시작하기 전에본 글은 배현직 저자님의 게임 서버 프로그래밍 교과서를 읽고 썼습니다.본 글은 저자님의 요청으로 언제든지 지워질 수 있습니다. 목차게임 서버의 역사게임 서버가 하는 일논블로킹 소켓Overlapped I/O 혹은 비동기 I/OepollIOCP실습1. 게임 서버의 역사 게임 서버의 기원은 패키지 게임에서부터 살펴봐야 한다. 인터넷이 보급되기 전에는, 인터넷 연결이 안되는 컴퓨터가 많았고, 연결되더라도 속도가 매우 느렸으며, 요금이 비싸기 때문에 대부분의 패키지 게임은 네트워크를 사용하지 않았다. 설령, 사용하더라도 전화선을 통해 상대방 컴퓨터와 1:1로 플레이하는 방식이었다. 인터넷이 보급되기 시작하면서, 세 명 이상 인터넷을 통해 플레이하는 게임이 등장하였다. 이 때, 플레이어 한 명의 컴퓨터..

Outdated/Game 2019.08.28

[Summary] 게임 서버 프로그래밍 교과서 - Ch3

시작하기 전에본 글은 배현직 저자님의 게임 서버 프로그래밍 교과서를 읽고 썼습니다.본 글은 저자님의 요청으로 언제든지 지워질 수 있습니다. 목차게임 서버에서의 소켓 프로그래밍블로킹 소켓논블로킹 소켓Overlapped I/O 혹은 비동기 I/OepollIOCP실습1. 게임 서버에서의 소켓 프로그래밍 게임 서버는 다뤄야 하는 소켓 개수가 많다. TCP를 이용하는 경우 클라이언트 개수만큼 소켓이 있어야 한다. 그러면서도 파일 핸들을 하는 동안 스레드가 대기하는 일이 없어야 하기 때문에 보통 비동기 입출력 상태로 다루게 된다. 여기엔 논블로킹 소켓(non-blocking socket), Overlapped I/O, epoll, IOCP(I/O Completion Port)가 있다. 간단한 것부터 살펴본다.2. ..

Outdated/Game 2019.08.14

[Summary] 게임 서버 프로그래밍 교과서 - Ch2

시작하기 전에본 글은 배현직 저자님의 게임 서버 프로그래밍 교과서를 읽고 썼습니다.본 글은 저자님의 요청으로 언제든지 지워질 수 있습니다. 목차컴퓨터 네트워크 데이터컴퓨터 네트워크의 품질과 특성컴퓨터 네트워크에서의 데이터 송수신게임에서 주로 사용하는 메시지 형식1. 컴퓨터 네트워크 데이터 컴퓨터 네트워크에서 데이터의 형식은 스트림(stream)과 메시지(message) 형식으로 나뉜다. 각각에 대해서 알아보자. 스트림이라는 것은 두 단말기를 연결한 후 그 연결을 끊기 전까지 한쪽에서 다른 한쪽으로 연결된 데이터의 흐름을 일컫는다. 스트림은 유저가 언제든지 끊을 수 있기 때문에, 스트림 자체는 데이터를 구별할 수 없으며, 보낸 데이터 개수와 받는 데이터 개수, 그리고 보낸 데이터와 받는 데이터의 시작과 끝..

Outdated/Game 2019.07.31

[Summary] 게임 서버 프로그래밍 교과서 - Ch1

공지사항 본 글은 배현직 저자님의 게임 서버 프로그래밍 교과서를 읽고 썼습니다. 본 글은 저자님의 요청으로 언제든지 지워질 수 있습니다. 멀티스레드 프로그래밍 멀티스레드 프로그래밍이 필요한 때 멀티스레드 프로그래밍이 필요한 경우는 다음과 같다. 오래 걸리는 일 하나와 빨리 끝나는 일 여럿을 같이 해야 할 때 e.g. 게임 프로그램에서의 로딩 어떤 긴 처리를 진행하는 동안 다른 짧은 일을 처리해야 할 때 e.g. 디스크에 액세스할 때 기기에 있는 CPU를 모두 활용해야 할 때 멀티스레드 프로그램 작성 시 고려사항 단순히 스레드를 만든다고 하여 멀티스레드 프로그램이 되는 것은 아니다. 스레드를 다룰 때는 문맥 교환(context switch)과 경쟁 상태(data race), 교착 상태(dead lock)를..

Outdated/Game 2019.06.12