스트리밍 게임 프로젝트 #4

버그를 잡고 코드를 개선하여 안정성과 반응성이 좋아졌다. 스타벅스의 퍼블릭 WiFI로 연결해봤다. 1192×788, 60fps 패킷량은 tcp헤더 빼고 초당 600KB-900KB정도. GRID장비 꽂아놓은 서버에 리모트 데스크탑으로 접속해서 그쪽으로 키보드 입력을 보내고 있기 때문에 실제 Latency는 두배. 그럼에도 불구하고 나쁘지 않다.

스트리밍 게임 프로젝트 #3

서버에서 게임 플레이 하고 h264 스트림으로 쏴서 원격에서 플레이하는데까진 일단 성공. NVIDIA GRID K2가 꽂혀있는 사무실 PC에 리모트로 들어가서 게임 플레이하고 서피스에서 사무실 pc에 접속하여 TCP로 게임 영상 받아서 플레이하는중. 코드 엄청 다듬어야하고 하고 아직 추가/개선할 부분 잔뜩 있다. 하여간 2950달러짜리 K2를 놀리진 않았다는걸로 뿌듯함을 느낀다.

스트리밍 게임 프로젝트 #2

서버머신에서 게임 영상을 캡쳐해서 h264스트림으로 만들어주도록은 했다. 이제 서버에서 날려주는 h264스트림을 디코딩 해야한다. Microsoft Media Foundation이나 Cuda도 고려했으나 역시 ffmpeg만한게 없다. 클라이언트에 Direct2D를 사용하기로 했다.영상 스트림만 디코딩해서 보여주면 되고 경우에 따라 비트맵을 출력하는 정도의 그래픽 기능만 있으면 된다. 3D API를 사용하면 너무 노가다가 극심해서 Direct2D를 선택했다. 또한 Windows Desktop, Windows Phone, Windows Store App을 거의 … More 스트리밍 게임 프로젝트 #2

스트리밍 게임 프로젝트 #1

이번 프로젝트에선 스트리밍 게임을 시범적으로나마 지원해보려고 한다. 2950달러짜리 NVIDIA GRID K2장비도 장착했으니 기계값은 뽑아야겠기에 꼭 스트리밍 기능을 넣고 싶다. 몇 일간 문서를 읽어보고 원리를 파악했다. 개발계획도 대충 세웠다. 간단한 연습 프로젝트를 만들어서 테스트해본 후 GRID SDK를 개발중인 게임 프로젝트에 적용시키는 중. GRID API의 NVIFR인터페이스를 사용하면 D3D의 렌더타겟을 캡쳐해서 H264 스트림으로 실시간 변환할 수 있다. 리모트 … More 스트리밍 게임 프로젝트 #1

NVIDIA GRID를 이용한 스트리밍 게임 개발 Pre-Review

NVIDIA GRID 개발 문서는 일단 대충 한번 다 훑었다. 샘플코드 흐름도 대충 파악했다. 궁금증은 대부분 풀렸고 예상에서 크게 벗어나지 않았다. 1.SDK가 제공하는건 프론트버퍼를 캡쳐해서 시스템메모리로 가져오거나 캡쳐한 영상을 h264로 인코딩해주는것 까지다. … 2.서버가 h264스트림을 클라이언트로 전송하는 방법을 제공하진 않는다. 프로그래머가 만들어야 한다. 3.클라이언트가 h264스트림을 수신하고나서 디코딩하는 방법도 각자 알아서. 안드로이드 + Tegra 조합인 경우 sdk에서 … More NVIDIA GRID를 이용한 스트리밍 게임 개발 Pre-Review

nvidia GRID 장착 후 테스트 (2) NvIFR_CreateEx 실패 error -17

NVIDIA GRID SDK 샘플 돌려보는데 NvIFR_CreateEx_fn이 계속 실패.에러값 설명도 없다. 한참 보다가 샘플코드에서 버그 발견. 선택된 어댑터를 가지고 D3D디바이스를 만들고 그 디바이스로 NVIFR을 바인드해야되는데 기껏 디바이스 찾아놓고 바인드할땐 디폴트 어댑터를 사용하고 있음. 이 경우 GPU없는 머신에 GRID카드만 꽂으면 문제 없겠지만 NVIDIA그래픽카드+GRID카드를 장착하면 안돌아감. 코드 고쳐서 테스트해보니 NVIFR API초기화 잘 됨. 허허. NVIDIA GRID밀고 있긴 한건가.… … More nvidia GRID 장착 후 테스트 (2) NvIFR_CreateEx 실패 error -17

간만에 프로그래밍 관련 생각.

어제 쓰려다 빼먹은 얘기. 킹왕짱 아름다운 알고리즘을 적용한 엄청나게 멋진 프로젝트를 진행하고 있고 완성이 코 앞이라 치자. 나는 그 프로젝트의 핵심 코드를 작성했다. 뿌듯하다. 자랑스럽다. 그런데 멀티스레드 버그가 있어서 1/1000확률로 오동작을 일으킨다. 크래시하는게 아니고 그야말로 오동작을 한다. 여기에 낮은 확률로 heap corruption까지 발생하고 있다면 그야말로 화장실에 휴지가 없는데 물까지 안내려가는 격이다. ….식은 땀이 난다. 경험있는 … More 간만에 프로그래밍 관련 생각.

nvidia GRID SDK구동에 필요한 하드웨어 환경

NVIDIA GRID기반 클라우드 게이밍 환경을 구축하려면 뭔 장비가 필요한지 좀 찾아봤다. 현재 릴리즈된 최신 GRID SDK에서 지원하는 하드웨어는 4종. K1, K2 , K340, K520 이렇게 4개제품에서 가능. K1 칩사양 : 768 core – (192 core SM x 1) x 4 가격 : $1,899.00 GK107인데 SM이 1개뿐인 절반스펙 GK107이다. 이름이 K1인걸로 봐서는 NVIDIA K1보드용으로 나온(모바일에 맞춘) … More nvidia GRID SDK구동에 필요한 하드웨어 환경

Softlayer VM성능 테스트 결과.

소프트레이어 카탈리스트 프로그램이 끝나는 시점을 대비하야…소프트레이어의 4코어 VM을 시간당 인스턴스로 일단 하나 만들어봤다. 일단 vCore지만 스펙만 놓고 봐서는 가성비가 제일 좋음. 프로비저닝에 한 10분 소요됐다. 이건 좀 개선해줬으면 좋겠네. Azure는 3분 안걸림. 어쨌든 설치를 완료하고 Softlayer VM의 성능 테스트 결과. Geek bench로 돌렸음.   [Soft Layer VM] 4Core (Intel) single-2203 , multi-8402 <- 오늘 테스트한 VM 베어메탈, Azure … More Softlayer VM성능 테스트 결과.

클라우드 VM CPU성능 벤치마크

게임 서버를 Cloud환경으로 돌리려고 했는데 아무래도 성능이 좀 의심스러워서 최근 벤치마크를 돌려봤다. Geekbench로 내 데스크탑, SoftLayer Bare Metal, Azure VM을 각각 비교해봤다. single-Core Score Multi-Core Score     가격/월 i7 2600k 4Core (real) 3168 11768 E3-1270 4Core RAM 8GB(Softlayer Bare Metal) 3261 12834 $274.00 Azure A6 4Core RAM28GB 1140 3934 $491.00 Azure A7 8Core RAM56GB … More 클라우드 VM CPU성능 벤치마크