게임 서버 프로그래밍 입문 최종 소스 

Visual Studio 2017 Commuity 로 컨버팅 하였습니다.


*github 계정을 만들어서 레파토리 생성하였고,

https://github.com/galaxywiz/RoseServer.git 에서 다운 받을 수 있습니다.




회사일 끝나고 집에서 조금씩 만들던 게임 서버 소스 입니다

이를 정리한 책도 직접 만들어 보았는데, 책만드는게 만만한 작업이 아니네요. ㅠㅠ


이 책은 교보문고의 개인출판 서비스를 이용해 판매 하고 있습니다.

이 업계에 들어오시려는 분들께서 어느 방향으로 공부하면 좋을지 방향을 알려주는 길잡이가 되는 책이 되었으면 합니다.


ebook판 구입 사이트는 아래와 같습니다.

http://digital.kyobobook.co.kr/digital/ebook/ebookDetail.ink?barcode=480150000750P



종이책인 POD판 구입은 종이 인쇄라 원가가 있습니다. (총 350페이지 입니다)

http://pod.kyobobook.co.kr/newPODBookList/newPODBookDetailView.ink?barcode=1400000247396&orderClick=KBC




개인 출판으로 혼자 이것 저것(편집, 디자인, 구성, 작성, 맞춤법등...)을 하다 보니 조금 미숙한 점이 있을것 같습니다만.

양해 부탁 드립니다.

 

 

위 사진은 출판전에 검토용으로 뽑은 가제본 입니다.

(판형은 A4... 실제 POD는 4x6 이라 좀 더 작을거 같아요) + 회사에서의 제 작업 환경...

 

가제본을 동네 제본소에서 뽑아보니 1권에 19700원이 나왔습니다.

인터넷 제본소를 통해 2권 주문하니 2.7만원 정도 나오고요...

 

POD가 E-Book에 비해 너무 비싼게 아니고, 종이 단가가 그렇게 나온것뿐 입니다...

그리고 POD 가격은 제가 정하지 못 합니다.  orz

블로그 이미지

프로그래머 지향자 RosaGigantea

바쁜 일상 생활중의 기억 장소

최근 연말이라고 다들 쉴때,

크리스마스 연휴와 신정 연휴를 사용해서 못했던 서버 작성을 몰아서 했습니다 (리비젼이 30대에서 70대까지 올라갔으니...)

 

나름 서버간 통신도 하고 패킷 메이커도 제대로 동작하며, 클라를 c#으로 짜서 제대로 동작하니까

처음 목표는 달성한거 같은데... 아직 갈길이 먼거 같습니다.

 

 

 

이제 남은 작업은 문서화?

DB 관련 프로그램 만들고

로그도 좀 분석할 수 있도록 모아놔야 겠고

관리 툴 / 서버도 만들어야 겠고..

아직 갈길이 멀고 멉니다.

블로그 이미지

프로그래머 지향자 RosaGigantea

바쁜 일상 생활중의 기억 장소

최근 저는 나름 괜찮은 회사에서 괜찮은 프로젝트를 하고 있습니다.


그런데, 이 프로젝트가 꽤 옛날 부터 내려온 프로젝트이고 (거의 11년쯤...)

내부적으로 이쪽 업계에서 유명한 그분 께서 만드신 Objective-C 1.0 (아이폰에서 쓰는 2.0 이 아닌.... 초창기) 코드라서

입사 이후 변화 하는 기술 적응 (C++11 같은..) 을 놓지고 있다는 생각이 들더군요.


팀원분들은 슬램덩크 만화처럼, 우리의 옛날 코드... 리눅스 / 솔라리스 기반의 언어가 기초 뿌리이기 때문에

지금 코드로 기본기만 확실히 다져 놓으면,

모던 C++ 정도는 보면 금방 따라 잡으니 걱정하지 말라고 하십니다.


물론 그 의견에는 동의 하지만, 몇몇 인터넷으로 모던 C++ 에 새로 추가 된 기능들이 꽤 재미있게 봤고

이를 게임 서버로 만들면 여러 노가다 작업을 편리하게 처리 할 수 있지 않을까 란 생각이 들었습니다.

(물론 ... 언어가 달라서 이를 회사 코드로 넣으려면 라이브러리를 포팅해야 겠지만...)


그래서 오랫만에 Visual Studio 에서 코딩을 해볼까 하는 생각으로 조금씩 서버 프로그램을 만들어 보고 있습니다.


지금은 패킷을 주고 받아 채팅까지 만들어 본 상태입니다.


리눅스 같은 CUI 기반에 너무 익숙해서 그런지 저런 파워쉘에서 서버 로그 보는 편이 훨씬 좋은거 같군요.


그리고 클라이언트는 언어를 바꿔서 요즘 뜨는 C#으로 만들어 보았습니다.

뭐랄까, 역시 패킷 패킹하는 처리가 조금 머리를 써야 하긴 했지만, 제대로 동작하니 좋네요.


나중에 좀 정리 되면, 저도 다른분들처럼 연재 시리즈를 넣어 볼까 합니다.


블로그 이미지

프로그래머 지향자 RosaGigantea

바쁜 일상 생활중의 기억 장소

Visual Studio 에서 C++ 프로그램 작성시 자동 생성을 하면 딸려오는 소스중에 stdafx..h cpp 가 있습니다.

stdafx 는 찾아보니 Standard Application Freamworks 약자로 MS에서 제공하는 자잘한 라이브러리 체계라고 하는군요.

 

그럼 이게 왜 중요하냐면, 매회 부분 수정으로 전체 소스를 컴파일 하는것은 엄청난 시간 낭비 입니다.

곰곰히 생각해 보면, 반에서 한명이 전학 갔다고 전교생 목록 리스트를 재 작성하는것은 바보 같은 짓이죠.

 

그래서 VC는 미리 작성한 컴파일 오브젝트를  pch (PreCompiled Header)로 저장하고 이를 활용합니다.

 

그런데, 보통 작업중 소스 파일을 부분적으로 폴더에 나눠 넣기도 하는데,

이러면 stdafx.h 파일에 대해 아래와 같은 에러 메시지가 나옵니다.

 

"Did you forget to add '#include "stdafx.h"' to your source?"

 

곤란 하게 되었습니다.

Util/Clock.h 파일을 만들었는데 stdafx 는 상위 폴더에 있으니

#include "../stdafx.h" 로 하지 않으면 컴파일이 안됩니다.

 

 

 

그러면 미리 컴파일된 헤더를 끄면 어떻까요?

 

 

 

 

 하지만 폴더를 나눌정도로 소스 파일이 방대해진다면, 미리 컴파일된 헤더를 안쓴다고 할때,

처음 말씀드린것 처럼, 전학생 1명이 왔다고 전교생 학생부를 고쳐야 하는 (부분 수정으로 전체 컴파일 하는) 바보 같은 짓을

컴퓨터가 하겠죠..

ssd니 옥타 코어니 해도 시간이 걸리기 마련입니다.

 

그러면 어떻게 하면 좋을까요?

 

우선 컴파일러가 하라는데로 해줍니다. 아래와 같이요.

 

 

그리고 VC++ 디렉터리 중 포함 디렉터리에 $(SolutionDir) 또는 $(ProjectDir)를 추가해 줍시다.

 

 

 

 

 

이렇게 하면, 컴파일 에러도 없고, 미리 컴파일된 헤더를 사용하면서

폴더별로 소스를 나눠 관리 할 수 있습니다.

 

 

 

블로그 이미지

프로그래머 지향자 RosaGigantea

바쁜 일상 생활중의 기억 장소

이 이전에 소개한 vim 컬러 생성 사이트가 있다면, visual studio 역시 같은게 있더군요.


http://frickinsweet.com/tools/Theme.mvc.aspx



블로그 이미지

프로그래머 지향자 RosaGigantea

바쁜 일상 생활중의 기억 장소