프로세서에 대한 내용은 SW개발자가 깊이있게 호기심을 가지지 않을 수도 있습니다. 하지만 하드웨어 세상인 이곳도 사실은 논리적 해법으로 무장한 알고리즘의 세계라는 것을 김민장님의 책을 통해 알게되었습니다. 그래서 관련 책을 읽어보고 같이 공부하는 사람들에게 공유하기 위해 ppt 형태로 정리해보았습니다.
CyberConnect2에서는 2013년부터 DirectX11세대용 멀티플랫폼엔진 개발을 시작하였으며, 제작 시 발생하였던 문제점을 DirectX9와의 차이점을 바탕으로 공유하고자 합니다.
이 세션은 DirectX11의 개발이 처음이거나 관심 있으신 분을 대상으로 합니다. Tessellation 이나 OIT와 같은 최신기술은 다루지 않으므로 주의하시기 바랍니다.
멀티플레이어 게임을 서비스하는 데 필요한 게임 장르별 백엔드 아키텍처에 대한 설명해 드립니다. 기본적인 게임의 상태 동기화 개념과 서버 구성에 관한 이야기, 게임 클라이언트 엔진(Unity, Lumberyard, Unreal Engine 등)에서 제공하는 복제 프레임워크를 통하여 손쉽게 게임 서버를 만드는 방법에 대한 내용을 다룹니다. 또한, 이렇게 만들어진 게임 서버를 Amazon GameLift라는 클라우드 서비스를 통해 DevOps형태의 비용 효율적으로 서비스하는 방법에 대해 소개합니다.
프로세서에 대한 내용은 SW개발자가 깊이있게 호기심을 가지지 않을 수도 있습니다. 하지만 하드웨어 세상인 이곳도 사실은 논리적 해법으로 무장한 알고리즘의 세계라는 것을 김민장님의 책을 통해 알게되었습니다. 그래서 관련 책을 읽어보고 같이 공부하는 사람들에게 공유하기 위해 ppt 형태로 정리해보았습니다.
CyberConnect2에서는 2013년부터 DirectX11세대용 멀티플랫폼엔진 개발을 시작하였으며, 제작 시 발생하였던 문제점을 DirectX9와의 차이점을 바탕으로 공유하고자 합니다.
이 세션은 DirectX11의 개발이 처음이거나 관심 있으신 분을 대상으로 합니다. Tessellation 이나 OIT와 같은 최신기술은 다루지 않으므로 주의하시기 바랍니다.
멀티플레이어 게임을 서비스하는 데 필요한 게임 장르별 백엔드 아키텍처에 대한 설명해 드립니다. 기본적인 게임의 상태 동기화 개념과 서버 구성에 관한 이야기, 게임 클라이언트 엔진(Unity, Lumberyard, Unreal Engine 등)에서 제공하는 복제 프레임워크를 통하여 손쉽게 게임 서버를 만드는 방법에 대한 내용을 다룹니다. 또한, 이렇게 만들어진 게임 서버를 Amazon GameLift라는 클라우드 서비스를 통해 DevOps형태의 비용 효율적으로 서비스하는 방법에 대해 소개합니다.
4. 1-1) front server setting
NAT
공지
게임서버
Text file
HTTP
IIS
PublicNotice
Help
Tcp/ip
C# 4.5
One process
Gameserver
chattingserver
국가컨텐츠
Imagefile
NationFlag
HTTP
IIS asp.net
CDN
Client side files
5. 1-2) private server setting
VPN
server
VPN
Servers…
Servers…
관리페이지
IIS asp.net c#
페이지권한대신 페이지암호@_@
7. 3) Numeric value security
Using double,float than long,int
• scan하기가 매우 어렵다
•소수값들은 항상 랜덤하게
바이트 분리
•Double로 정수부표현이 어려울때
•4바이트나 8바이트의 바이트들을 더큰 버퍼에 흩어놔라
•흩어진순서는 어디에 “비밀!!!”
•Must capsulation class
왜 필요하지?
•클라이언트측에서
•기밀성원칙
느릴텐데
•그렇게 안느립니다! 당신의 프로그래밍능력과 플랫폼을 믿으세요
•모바일인데!!!
8. 4) 통신 기본흐름
App
G server
connect
Key(…)
Author(ticket)
Request(…)
disconnect
9. 5) 골치아픈 DB녀석!!!!
CRUD Policy
•Read from memory
•CUD to DBMS
Caching for Read
•Create Object when First Read
•Never delete
Very long string
•Like GCM token
•100,000 read spend about 10 mins
13. 7-1) 아하 실패처리 가능한 구조!
Main threading
combatwar
Find idle enemy
Also check request’state
Exist
?
fail
“교전을 수행할 적군이 없습니다.”
Dedicated combat
threading
14. Main threading
Instance threading
Main threading
request
process
request
Set state
Make result
restore state
invoke
Mq.push
End process
양측의 전투문맥처리
Db처리
결과양측에 전송
공격자 = 대기중
대상 = 대기중
공격자 = 전투중
대상 = 전투중