네트워크 게임에서 이동처리에 꼭 UDP를 사용해야하는가?

많은 분들이 UDP가 TCP보다 빠르다고 알고 있습니다. 그것은 사실이 아닙니다. Nagle알고리즘을 사용하지 않고 네트웍 상에 패킷로스가 발생하지 않는다면 tcp와 udp의 latency는 같습니다. 클라이언트가 주기적으로 자기 위치를 전송하는 방법은 별로 좋은 선택이 아닙니다. 보안문제나 패킷량 문제를 떠나서 게임플레이측면에서 별로 우아하지 않습니다. 당장 그런식으로 처리하는 wsad+마우스 컨트롤 게임에서 마우스를 좌우로 흔들면서 움직여보세요. 다른 클라이언트에서 볼때 완전히 부드럽게 … More 네트워크 게임에서 이동처리에 꼭 UDP를 사용해야하는가?

GPU를 이용한 PVS(Potentially Visible Set)생성. – 월드 매쉬를 박스모델로 변환

‘GPU를 이용한 PVS(Potentially Visible Set)생성’ 주제로 현재까지의 작업 내용이다 일단 KD트리 + GPU를 이용한 큐브맵 렌더링을 이용해서 3D모델링 데이터를 박스모델로 바꾸는 코드를 작성했다. 1. 매쉬 데이타를 KD-Tree로 빌드한다. 2. 삼각형을 하나도 포함하지 않거나 최소 사이즈에 도달할때까지 공간을 분할한다. 3. 삼각형을 하나도 포함하지 않는 leaf들로부터 AABB를 얻어서 월드를 360도로 렌더링 한다. 4. 이때 back face culling을 … More GPU를 이용한 PVS(Potentially Visible Set)생성. – 월드 매쉬를 박스모델로 변환

GPU를 이용한 PVS(Potentially Visible Set)생성. – 개요

전통적인 방법(퀘이크)의 BSP/PVS를 구현하는 것은 쉽지 않다. 일단 만들기가 어렵다. 코드는 복잡하다. 맵툴 없이는 오차 문제 때문에 제대로된 결과를 얻기 힘들다. 그래서 PVS를 좀 쉽게 만들 수 있는 방법을 생각해봤다. 맵을 구성하는 매쉬들이 박스들로만 이루어진다면 BSP트리를 빌드했을때 모든 leaf들은 정확하게 육면체가 된다. 육면체이기 때문에 카메라를 6개 만들수 있고 큐브맵을 렌더타겟으로 하여 360도 렌더링이 가능하다. 임의의 … More GPU를 이용한 PVS(Potentially Visible Set)생성. – 개요

BOME조형 톱을 노려라 타카야 노리코(タカヤノリコ)

보메 조형의 톱을 노려라! 타카야 노리코 1/6. 실질적으론 1/5사이즈 정도 되고 조형 잘 나왔음. ‘이것은 무조건 산다’라고 생각하고 비딩했는데 의외로 4100엔에 낙찰. 15000엔 정도는 예상했는데 요새 애들은 건버스터도 모르는구나 싶어서 약간 아쉬운 느낌.

Windows 10 UWP에서 D3D객체들이 완전히 해제되었는지 확인하기.

Windows 10 UWP((Windows 8.x Store App포함하여)에선 종료 개념이 없다. 따라서 메모리 leak체크가 약간 곤란하다. 그래도_CrtMemCheckpoint()와 _CrtMemDumpAllObjectsSince()를 사용하여 내가 작성한 코드에서 메모리가 새는지 여부는 체크할 수 있다. 그런데 Direct3D를  사용하는 경우는 D3D 오브젝트들을 정확히 해제하고 있는지 확신하는것이 어렵다. win32 데스크탑 어플리케이션에선에선 종료시점에 해제되지 않은 D3D객체들을 확인할 수 있다. 하지만 WinRT앱에선 종료시점이 없으므로 불가능하다. WinRT에선 HWND가 아닌 … More Windows 10 UWP에서 D3D객체들이 완전히 해제되었는지 확인하기.

ffmpeg 스트리밍 클라이언트 rgb -> yuv 변환 코드 shader를 이용하도록 수정.

win32 데스크탑용 ffmpeg 영상 플레이 코드를 왕창 고쳤다. 원래 클라우드 게이밍에서 스트리밍 클라이언트로 사용하려고 만든건데 파일도 디코딩할 수 있다. 이 코드를 기반으로 Windows 10 UWP 동영상 앱을 취미로 만들고(만들다 말다..생각나면 조금씩 고치고) 있다. 근데 윈폰에서 ffmpeg로 h264디코딩을 해보면 지랄같이 느리다. 안그래도 느린데 ffmpeg의 sws…()함수를 이용해서 yuv->rgb변환을 하면 더 느리다. 그래서 이 부분만이라도 성능을 개선해볼까 해서 쉐이더를 … More ffmpeg 스트리밍 클라이언트 rgb -> yuv 변환 코드 shader를 이용하도록 수정.

ffmpeg + Direct 3D를 이용한 영상 플레이어 작업.

간만에 집중력을 발휘하여 거의 연속으로 18시간 정도 작업해서 Windows 10 UWP버전까지 작업했다. Windows 10 Mobile 올린 루미아 635에서 동작시켜봤다. 샘플은 1280×720 30프레임짜리 h264영상.… 이전보다는 확실히 빨라졌는데 그래도 루미아 635정도의 보급기종에선 무리일듯. 작업 내용을 정리하면.. 1. 2D영상 출력을 위한 Direct3D 11프레임웍을 새로 만들었다. 2. yuv -> rgb변환 하는 코드는 C코드를 거쳐 최종적으로 hlsl 쉐이더 코드로 작성했다. … More ffmpeg + Direct 3D를 이용한 영상 플레이어 작업.