2011년 11월 둘째주동안 대구에서 열리는 KGC 2011에 강연을 마치고 왔습니다.
http://kgconf.com/kor/html/conference_view.html?idx=962
제 주제는 일년 반동안 만든 Game4U Open API/Client Library와 Secret Box SNS 개발 이야기입니다.
원래 이 강연은 부산 ICON 2011을 대비해 1시간 30분 분량으로 준비를 했으나
아버지 생신과 비슷하게 대구에서 KGC가 겹치는 바람에 ICON 대신 대구를 다녀왔습니다.
1시간 30분 강연이 1시간으로 줄며 중간에 skip한 부분들이 적지 않습니다.
강연을 들으신 분들이나 못들이신 분들 모두 이 포스트로 대신 다이제스트를 정리하시면 되겠네요.
대부분의 대한민국 게임 서비스는 이 그림과 별반 다르지 않습니다.
2) 이 구조대로 스마트 디바이스로 옮겨봅시다.
클라이언트의 한계로 의해 모든 아키텍쳐를 서버로 옮겨야 합니다.
기왕 서버 지향으로 나가는 김에 Game Platform API를 Open API로 제작해보기로 합니다.
이점을 잘 극복해야 합니다. NHN에서도 여기에 대해 많은 발표가 있더군요.
PC 온라인 게임 개발자가 스마트 디바이스 환경으로 넘어가기 위해서는 준비를 해야할 것들이 분명 있습니다.
4) 그래서 아주 기본적으로 이런 아키텍쳐가 구성되었습니다.
실제 이것보다 아~~~~~주 복잡합니다. 경량화 한다고 한다고 했는데, 그래도 신입 들어오면 구조 익히는데 한달 넘게 걸립니다.
그러나 사실은 일반적인 MMORPG의 그것과 비슷하다고 보시면 됩니다.
그런데 Push 라는 개념을 비롯해 PC 온라인에 없는 서버가 몇대 추가됩니다.
이런 아키텍쳐는 어렵게 접근하지 말고 그동안 갈고 닦은 C++ 클래스 쪼개던 방법대로 정의하면 됩니다.
OOP란 현실을 반영하는 과정이므로 팀장급 정도 되었다면 어떤 것도 정의하고 나눌수 있겠죠.
6) 최신 기술 안썼습니다. 플랫폼은 최신기술보다 믿을 수 있는 기술이 더 중요합니다.
대신 철저하게 3-Tier구조와 I/O와 로직의 분리를 잘 시켰습니다.
아무리 바빠고 사람이 없어도 이것은 충실히 지켰고 지금도 마찬가지입니다.
개발 중에 소켓 서버들의 서버 엔진(?)을 boost::asio로 교체했는데 교체하는데 딱 3일 걸렸습니다.
I/O와 로직을 잘 분리시켰기 때문입니다.
7) JSON + UTF8 조합으로 내부 프로토콜과 외부 프로토콜을 일치시키고 내부 서버들을 IIS + ASP.NET을 써서 개발 시간을 단축시켰습니다.
온라인 게임이라도 웹은 적절히 이용하면 아주 좋은 것입니다. 아니, 그렇게 해야 합니다.
우리 팀 모든 서버 개발자들은 부스킬로 웹프로그래밍을 무조건 공부하게 했습니다.
심지어 클라이언트 개발자들도 HTML5 스터디 중입니다.
8) 단순 서버 팀장이 아니라 실장이기 때문에 첫 제작부터 Live서비스를 어떻게 할 것인지 연구 많이 했습니다.
이 과정은 반드시 처음부터 고려되어야 합니다.
까딱하다간 잘 만들어놓고 제대로 Live를 못해 망칠수가 있습니다. 경험이라는 요소가 아주 중요한 부분입니다.
추가 : 그래서 서버가 2주 먼저 QA받고 나가고 클라이언트가 나중에 나가는 프로세스를 만들었습니다.
따라서 QA는 서버기반의 로직 QA가 먼저 진행되고 클라이언트 작동성은 2주안에 마쳐야 합니다.
9) Open API 철학대로 제작하니 모두가 해피!!!
아이폰/안드로이드 클라이언트를 개발/배포도 했음에도 Po개발팀wer은 직접 Open API 호출해서 플랫폼 기능을 쓰더군요.
10) 이 바탕으로 새로운 SNS인 Secret Box라는 앱을 아주 손쉽게 제작!!
현재는 HTML5를 이용한 컨텐츠 보강 중입니다.
밝힐 수는 없지만 계속 개발 중입니다.
에픽하츠 아이폰 : http://itunes.apple.com/kr/app/id438870354?mt=8
시크릿박스 아이폰 : http://itunes.apple.com/kr/app/id453706647?mt=8
시크릿박스 안드로이드 : http://www.tstore.co.kr/userpoc/game/viewProduct.omp?insDpCatNo=DP03004&insProdId=0000252150&prodGrdCd=PD004401&t_top=DP000503
솔직히 플랫폼 개발은 대기업 아니면 하기 어렵습니다.
그래도 했습니다. -_-);;;; 완성도 시켰고 다른 SNS까지 만들었습니다.
이런 플랫폼 개발은 굳히 스마트 디바이스에서 끝나는 것이 아니라 인터넷이 되는 모든 기기에서 동시에 변경없이, 혹은 유연하게 대처할수 있는 그런 모습을 바랬고 만들었습니다. 그리고 그렇게 서비스되고 있습니다.
이번 KGC 2011의 키워드가 "초심"이었는데 그간 개발자 생활을 돌아보는 과정으로 "초심"에서 제작했었습니다.
좋은 기회를 주신 네시삼십삼분과 대표님께 감사드리고요, 게임을 만드셨다면 Open Feint 말고 Game4U를 한번 써보시는건 어떨까 합니다.
에픽하츠, 시크릿박스에 있는 사용자들을 그대로 가져다 쓸수 있잖아요? ^^
여담으로 어쩌면 이게 Game4U가 아닌 피망플러스가 될수도 있었겠다고 생각도 듭니다.
피망플러스도 관심이 가는 플랫폼임은 틀림없습니다. 저 역시 네오위즈 출신으로써 어쩌면 기술적 DNA가 겹칠수도 있겠습니다.
그러나 결정적으로 다른 모든 Game Platform과 다른 점이 100% Open API로 제작되었고 매뉴얼이 있다는 점입니다.
Open Feint처럼 라이브러리를 붙일 수도 있고 Open API만 불러다가 마음대로 쓸수도 있습니다.
어떤 플랫폼처럼 Plus+를 그대로 카피한 것도 아니고, 한 게임의 로비를 억지로 공용화 시킨 구조도 아닙니다.
PPT를 공개하니 관심있으신 분은 읽어보시길 바랍니다.
http://mail103.paran.com/write/download.php?bigfile=PWE9V0FRZDl3Y0JtbmhMbG5ZOVhHTmIwaWM5bVZsYnJ2WkpVbkJad2ZZRlhXSlpob2JKaTE1WGozYkEyejBYbXhhRUd6OVh0eFpFVEQwTXZ5UjhEVkVNd3hNQXlqOU15RExkMjBnU3Y5WlVTVzlieWhhNUcyVlpocGNKM21SSnkwYUJXSHRjbHVRQUhEQmVoemNBbVRGTXVzTGxtV05ZdnRiNVNDWk1vNGJNM0ROTjB1UFVXakpOcHpaWTJEMU1oeWFFV2p3TXV6Y0VHVEZQeXBZNVdXNGR1bVkwMjI5YnRqSjVuaUJidmhjSm5YUVk5d09CRFVBWm1yWWxtbWxjbjBjTkdYRlkwbGFoRG0wY3Z2Uk1EakVNdnZNSVREQU12dk1RalRBTXh4TUVU
(용량제한으로 일단 빅파로 풉니다. 조만간 KGC홈페이지에서도 볼수 있지 않을까요?)
간만에 기술관련 포스팅을 했으니 또다시 덕질 포스팅을 합니다, 그럼 ㅂㅂ~
