SMARTSTUDY 에서 몬스터 슈퍼 리그를 개발하면서 빠른 개발 진행을 위해 선택했던 Python 게임 서버, '잘 되면 다시 만들지 뭐'라는 생각에서 시작했지만 다시 만들 일은 영원히 오지 않았습니다... Python으로 게임 서버를 만들었을 때 사용한 것은 무엇인지 또 실제 오픈 했을 때 서버는 안녕했는지 알아봅니다.
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
NDC14에서 발표한 "[야생의 땅: 듀랑고] 서버 아키텍처" 세션의 슬라이드입니다.
슬라이드에 설명이 많지 않은데, 디스이즈게임에서 발표 내용을 잘 정리해주었습니다. 기사도 함께 보시면 좋을 것 같습니다.
http://www.thisisgame.com/webzine/news/nboard/4/?n=54955
SMARTSTUDY 에서 몬스터 슈퍼 리그를 개발하면서 빠른 개발 진행을 위해 선택했던 Python 게임 서버, '잘 되면 다시 만들지 뭐'라는 생각에서 시작했지만 다시 만들 일은 영원히 오지 않았습니다... Python으로 게임 서버를 만들었을 때 사용한 것은 무엇인지 또 실제 오픈 했을 때 서버는 안녕했는지 알아봅니다.
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
NDC14에서 발표한 "[야생의 땅: 듀랑고] 서버 아키텍처" 세션의 슬라이드입니다.
슬라이드에 설명이 많지 않은데, 디스이즈게임에서 발표 내용을 잘 정리해주었습니다. 기사도 함께 보시면 좋을 것 같습니다.
http://www.thisisgame.com/webzine/news/nboard/4/?n=54955
넥슨코리아 사내 발표자료로 왓 스튜디오에서 파이썬으로 《야생의 땅: 듀랑고》 서버를 비롯한 여러가지 도구를 만든 경험을 공유합니다.
- 게임서버와 각종 툴, 테스트/빌드/배포 시스템을 만들 때 사용한 재료
- 파이썬 코드 품질 개선, 디버깅, 프로파일링, 최적화
- 파이썬 오픈소스 생태계와 왓 스튜디오가 하는 오픈소스 활동
(GameTech2015) Live Operation by Adbrix의 Node.js와 MongoDB를 이용한 멀티테넌트 인프라 구축사례Jeongsang Baek
대부분의 중소 모바일 게임 업체는 앱을 잘 만들기에도 시간이 모자라 출시일을 잘 맞추기 급급한 상황이다. 그러다 보니 운영을 위한 툴은 소홀히 개발하는 경우가 대부분이고 운영 캠페인은 날림으로 개발하거나 그때 그때 개발자가 필요한 부분만 개발하기 일쑤다. 그러다보니 마케터는 결국 늘 개발자 눈치만 살피게 된다. 필자는 블루윈드에서 이러한 문제를 절감했고 '모바일 게임 개발사가 앱 개발에만 집중할 수 있게 해주고 싶다'는 IGAworks의 철학에 공감하여 라이브 오퍼레이션 프로젝트를 시작하게 되었다.
라이브 오퍼레이션의 개발 중점과제는 5가지였다. 첫번째, 다수의 개발사가 하나의 큰 클라우드 시스템을 사용하도록 multi-tenant 인프라를 구축해야 한다. 두번째, TCO(Total cost of ownership)를 최소화해야 한다. 세번째, 앱의 핵심유저를 실시간으로 그룹화하여 타게팅 캠페인을 할 수 있어야 한다. 네번째, 캠페인의 성과를 마케터에게 실시간으로 피드백해야 한다. 다섯째, 3개월 안에 정식 서비스가 되어야 한다는 점이었다. (왜 우리에게 주어지는 시간은 늘 3개월인가) 그리고 당연하지만 이 서비스를 혼자 개발해야 했다.
이 다섯가지 이슈를 해결하기 위하여 AWS 클라우드 상에 생산성과 성능이 검증된 node.js 와 mongodb를 이용하여 서비스 백엔드를 구성하였고, multi-tenant를 구성하기 위한 여러가지 고민과 그 해결책을 직접 구현하였다. 필자는 node.js와 mongodb를 사용해 본 경험이 충분하다 생각했지만 대규모 정식 서비스를 진행하며 많은 함정에 빠졌고 결국 해결했다.
이 발표를 통해 청강자는 node.js와 mongodb를 이용하여 multi-tenant 인프라를 구축해야 할 때 고려해야 할 설계 방식과 기술적인 고민, 그것에 대한 현실적인 해법을 얻을 수 있다.
[NDC16] (애드브릭스) 라이브마이그레이션 분투기 - 달리는 분석 툴의 바퀴를 갈아 끼워보자!Jeongsang Baek
애드브릭스는 모바일 앱 분석 솔루션으로, 많은 개발사들이 애드브릭스를 통해 앱의 성과를 지표화하여 분석하고 있습니다. 시간이 지나면서 사용자의 요구는 다양해졌고 분석해야 하는 앱의 개수는 폭발적으로 증가하였습니다. 그 결과 애드브릭스는 사용자에게 다양한 지표를 손쉽고 빠르게 고객에게 제공하기 위해 지속적인 서비스 아키텍쳐 재설계 및 데이터의 라이브 마이그레이션을 진행하였습니다.
이 세션은 폭발적으로 성장한 분석툴이 사용자의 다양한 요구사항을 만족시키기 위해 재설계한 아키텍쳐와 그 구현에 대해 설명하고 라이브 마이그레이션을 진행하며 얻은 경험과 인사이트를 공유합니다.
IBM의 퍼블릭 IaaS 클라우드 서비스, SoftLayer 사용 팁 & 가이드
SoftLayer에 대해 더 알고 싶으세요? 아래 웹사이트를 방문해 주세요!
한글 - http://ibm.co/1w43NvN
영문 - http://www.softlayer.com/
한국 IBM SoftLayer의 페이스북 페이지를 통해서 SoftLayer의 뉴스들을 전달받으세요!
https://www.facebook.com/IBMSoftlayerkorea
SoftLayer에 대해 더 배우고 싶으세요? 아래 튜토리얼 링크를 방문해 주세요!
http://www.youtube.com/channel/UCdpXbWYiWtS6iGp1lGx1RAA
2019.05.07 판도라큐브 세미나
제작자: 프로그래밍 파트 강민석
코멘트: 주제를 너무 늦게 결정하여 자료조사가 미흡하고 ppt도 많이 엉성하게 만들어졌습니다. 만족스러운 ppt를 학기 중에 한번이라도 만들어보고 싶었는데 이번에도 아쉬운 점만 많이 남네요...ㅠㅠ
비고: 없음
판도라큐브는 세종대학교 소프트웨어융합대학 소속의 게임 제작 동아리입니다.
매주 회의마다 게임 제작과 관련된 주제로 세미나를 개최합니다.
모든 자료는 세미나 자료 제작자의 동의 하에 업로드됩니다.
세미나의 소유 및 책임은 제작자가 지닙니다.
대표적인 인터넷 서비스인 온라인게임에 존재하는 대표적인 fraud 인 게임봇/작업장에 대해 소개하고 이를 탐지하기 위한 알고리즘을 사례와 함께 설명한다.
더불어 간편결제 서비스에 지속적인 공격이 발생하고 있는데, 이를 조기 탐지하기 위한 방법에는 어떠한 것이 있을지 소개하도록 한다.
게임 개발에 적용해보자. 머신 러닝과 인공 지능! – 김일호 AWS 이머징 테크 리드 솔루션즈 아키텍트:: AWS Cloud Week - ...Amazon Web Services Korea
게임 개발에서 인공지능을 사용할 수 있는 부분은 생각보다 다양합니다. 게임 기능, 게임 개발, 게임 사용자 영역에서 관련된 다양한 사례들을 알아봅니다. 실제 게임 회사 내에서 궁금증을 가질만한 스토리를 가정하여 AWS의 다양한 인공지능 서비스를 활용할 수 있는 가이드를 드립니다. 또한 한국 게임 사의 Abnormal detection 적용 사례를 간략히 설명해 드립니다. 평소 인공 지능을 게임에 적용하길 원하시는 분들에게 손쉬운 시작점을 제공해 드립니다.
10. 온라인 게임의 원리
컴퓨터 프로그램은 변수와 함수로 이루어져 있다.
main()
{
i = 10;
j = 20;
결과 = 더하기함수( i, j );
}
더하기함수(int a, int b)
{
c = a + b;
return c;
}
11. 온라인 게임의 원리
더하기 함수를 다른 컴퓨터에 두면 어떻까?
모든 컴퓨터는 더하기 함수가 있는 컴퓨터에 연결해서
더하기라는 기능을 쓸 수 있잖아?
근데 뭘로 연결하지?
12. 온라인 게임의 원리
인터넷
TCP/IP 프로토콜을 이용핚 데이터 젂송 기법
TCP(Transmission Control Protocol)
라우터 밖을 나가지 못해요.
IP(Internet Protocol)
255.200.154.18 대충 이런 것
포트도 잊지 말자
라우터를 통과핚 TCP에게 주소를 알려줘요
현재 IPv4 이지만 IP의 고갈로 IPv6가 차세대 IP 버젂
13. 온라인 게임의 원리
연결
서버
클라이언트
단 서버와 클라이언트는 동등핚 입장.
흔히 연결을 하는 쪽이 클라이언트,
대기하는 쪽을 서버라고 함.
14. 온라인 게임의 원리
덧셈 네트워크 시스템
클라가 보낸 숫자를
더해서 보내줘요.
서버
숫자 두개를 서버
로 물어요.
클라이언트
클라이언트
클라이언트
15. 온라인 게임의 원리
덧셈 온라인
클라가 보낸 숫자를
더해서 보내줘요.
근데 모두에게 누가 무엇을
물었는지를 알려줘요.
서버
숫자 두개를
서버로 물어요.
클라이언트
클라이언트
클라이언트
16. 온라인 게임의 원리
이런 걸로 게임을 만들 순 없을까?
내가 뭘하고 있는지를 다른 서버에게 알려주면 되겠어!
18. 온라인 게임의 원리
파일을 보내고 싶어 1
내가 받아서 전달할께
서버
C 에게 내 파일을
보내줄래
A 클라이언트
B 클라이언트
C 클라이언트
19. 온라인 게임의 원리
파일을 보내고 싶어 2
P2P
바빠서 힘들어;;;
A와 C 너희들끼리
알아서해
서버
C 에게 내 파일을
보내줄래
A 클라이언트
B 클라이언트
C 클라이언트
20. 온라인 게임의 원리
이런 걸로 게임을 만들 순 없을까?
서버는 방만 만들어주고 우리끼리 알아서 하면 되겠어!
21. 온라인 게임의 원리
핚정된 자원을 아끼는 것이 좋은 프로그램
수많은 방법과 트릭이 한꺼번에 사용된다.
22. 온라인 게임의 원리
정리
서버 시갂이 유지되는 게임은 온라인 게임 C/S
어뷰징, 해킹에 유리
단판 승부는 네트워크 세션 방식 P2P
판정은 서버가 아닊 각 개인PC가 함
젂적만 서버가 관리
실제로는 핚 프로젝트에 모든 기법 총동원
23. 온라인 게임의 원리
Dedicated server
서버들
세션서버
클라이언트
클라이언트
세션서버
세션서버
클라이언트
클라이언트
세션서버
24. 온라인 게임의 원리
혼자 놀면 외로우니까 네트워크 구축은 인간의 본성이다.
갂혹 새로운 기술이 인성을 망가뜨릴까 걱정하는 사람이 있다.
그리고 인터넷 공갂에 지나친 의미를 부여하는 사람이 있다.
추천!!
아무튼 둘 다 바보다.
31. 서버보안
스마트 디바이스
스마트폰은 작은 컴퓨터
TCP/IP, 블루투스, NFC 등 PC와 동일핚 프로토콜 장비 사용
안드로이드의 경우 iOS에 비해 다른 앱 접근이 용이
웹브라우저와 HTTP 통싞이 주력
로컬에 사용자 정보를 담고 있는 경우가 많음
33. 서버보안
결론
인터넷으로 우리는 다른 컴퓨터에 변수를 보낼 수 있습니다.
각자의 위치, 이동, 총알 등이 변수가 됩니다.
이게 모아지면 네트워크 게임이 됩니다.
네트워크 구조 및 누가 판정핛 것인지는 따라 온라인, 네트워크
게임이 구분됩니다.
편의성과 보안에는 트레이드 오프가 존재합니다.