📖 'Tiny 2D RPG'는 1인 게임 개발 프로젝트로 학교 복학후에 인터넷 강의와 게임 서버 관련 서적을 통해 독학한 내용을 바탕으로 2D 횡스크롤 RPG 게임을 제작하는 프로젝트이다.
프로젝트 시작단계에서 설정한 구현순서는 아래와 같다.
학교를 다니는 도중에 시간이 날 때마다 진행하였지만 거의 한달반이라는 시간동안 생각보다 진행속도가 느리다는 느낌을 받았다.
현재까지 진행한 상황은 Scene의 Map 생성, 캐릭터 및 몬스터 소환, 몬스터 AI까지 완료하여 첫번째 단계인 기초 싱글 플레이 게임 제작의 마무리 단계이다.
두번째 단계인 서버작업을 위해 기존에 사용했기로한 언어인 JavaScript에 대한 조사와 공부를 진행하였고 앞서 언급했듯이 생각보다 시간이 오래 걸린다는 느낌을 받았다.
본격적인 서버 작업에 들어가기 전에 결정한 내용은 '서버의 언어를 C++로 바꾸자'이다. 아직 C++로 멀티쓰레드 프로그래밍을 해본적도 없었지만 오랫동안 해온 C++ 알고리즘 문제풀이 덕분에 C++문법에 대한 숙련도는 높은 편이라고 생각한다.
C++로 서버를 구현하기 위해서 선택지가 두가지가 있다.
인터넷강의 + 관련서적
가장 익숙한 방법이다. 나중에 들으려고 구매해둔 C++ 서버관련 강의도 있고 기존의 게임서버이론 책이 있기에 좋은 방법 중 하나라고 생각한다.
라이브러리 조사 + 적용
C++에서 서버를 만들 때 가장 많이 사용하는 라이브러리 중 하나는 Boost이다. 표준 라이브러리를 확장한 라이브러리로 asio, thread등 여러 기능을 제공한다.
내가 선택한 방법은 '인터넷강의 + 관련서적'이다. 이미 구비해둔 강의도 있고 직접 서버를 구현하면서 C++에 대한 공부도 동시에 할 수 있다고 생각했다.
내가 가지고 있는 C++ 관련 인터넷 강의는 총 2개이다.
홍정모의 따라하며 배우는 C++
놀랍게도 이 강의는 대학 신입때 C++을 배우는 전공수업이 있었는데 가르쳐주신 교수님이 이 강의의 주인인 홍정모 교수님이다. 최근에 잠깐 다시 봤었는데 '신입생때 이런 수준까지 가르쳐주셨다고?'라고 생각할 정도로 내용이 탄탄하다는 것을 느꼈다.
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
유니티와 C# 서버에 대한 강의도 들었었고 C++서버에 대한 강의가 올라왔다고 했을 때, 구매를 했었다. C#에 대한 내용을 블로그에 적으면서 공부했듯이 이 강의도 들으면서 정리해나가면 훨씬 도움일 될 것 같다.