SlideShare a Scribd company logo
1 of 38
Download to read offline
XDK없이 XBOX게임
개발하기(UWP on XBOX)
유영천
https://megayuchi.com
Tw: @dgtman
XBOX 세팅.
https://docs.microsoft.com/ko-kr/windows/uwp/xbox-apps/devkit-activation
XBOX Dev Mode Activation
XBOX Dev Mode Activation
에러 발생시
LB -> RB -> LT -> RT 차례로 누름
XBOX Dev Mode Activation
XBOX Dev home
XBOX portal – https://xboxone:11443/
XBOX portal – game mode로 세팅
UWP API소개
UWP(Universal Windows Platform)
• Windows Platform의 새로운 API
• 모바일과 터치,웹 억세스에 특화
• 모든 Windows Device API의 대통합
• X86/x64/ARM/ARM64 지원
• 초기엔 Windows Store에 올리기 위해서는 반드시 UWP API로 앱을
개발해야 했다.
UWP(Universal Windows Platform) - 2015년
아름다운 UWP 생태계
UWP(Universal Windows Platform) – 2020년
어디서 약을 팔아...
UWP App(Store App)의 최근 추세
• 현재는 Windows Store에 올릴 수 있는 형태로 패키징된 앱을 모두 UWP
App으로 지칭.
• 5년 사이에 Desktop Bridge기술이 정착됨.
• 고전적인 win32 Desktop App도 UWP App으로 패키징 가능.
• Sandbox로 작동.
• 일부 UWP API 사용 가능.
• 스토어에도 업로드 가능.
• 유명한 win32 App들 상당수가 스토어에 Desktop Bridge로 패키징되어 올라와있다.
• Desktop API로 UWP API가 흡수되는 모양새.
• UWP의 실패를 인정하고 싶지 않은 MS는 양쪽 모두 살려서 통합한다고 주장
• WinUI 3
• 뒷통수 잘 치는 MS가 언제 WinUI를 땅에다 파묻을지 모르지만 일단
계획대로라면 Dekstop App에서 현대적인 XAML UI를 사용할 수 있게 됨.
• 즉 Windows Store에 앱을 올리기 위해서라면 UWP API를 학습할 이유가 없다.
아직 UWP API를 사용해야만 하는 영역
• XBOX Game/App 개발
• XDK없이 개발 - UWP on XBOX
• XDK도 UWP API사용
• GDI를 전혀 사용하지 않으므로 계속 이대로 갈걸로 추측함.
• Hololens
• 하드웨어가 조약하고 GDI는 아예 쓸 일이 없는지라 결코 완전한 형태의
win32 API가 포팅될 일은 없을것임.
UWP API로 UWP App개발
App Lifecycle
App Lifecycle – 이것만 알아둡시다.
• void App::OnLaunched()
• App이 실행됨. 최초 실행되었거나, 죽었다가 실행되었거나…
• Suspend-> Killed -> Resume -> OnLanunched
• 최초 설치됨 -> OnLaunched
• Void App::OnSuspending()
• 더 이상 스케쥴링되지 않음.
• Phone이나 태블릿모드에서 back버튼, Windows버튼 눌렀을때.
• 전화왔을때.
• Desktop에서 창을 최소화시켰을때.
• void App::OnResuming()
• Susened상태에서 다행히(?) 죽지 않고 App으로 복귀한 경우.
• OS는 메모리가 부족할 때 suspend 상태의 앱부터 죽인다.
C++/CX
• UWP API(Windows Runtime API)를 호출하기 위한 MS의 C++확장
• UWP의 모든 API는 객체지향. C++/CX의 ref class로 구현되어있다.
• 레퍼런스 카운팅 기반 C++
• 컴파일러가 분석해서 알아서 AddRef()와 Release()를 호출하는게
아니고…ref class가 스마트 포인터를 내장하고 있다.
C++/CX
• C++에 C++/CLI 문법을 차용했다. -> C# 비슷한 느낌이 있다.
• ref class는 내부적으로 IInspectable COM 객체
• ref class의 핸들로 포인터 연산자 *대신 ^을 사용한다.
• Lambda 표현을 많이 사용함.
• ppl task를 많이 사용한다.
winrt/cpp
• 변덕쟁이(아유카와 마도카냐?) MS가 C++/CX도 걷어찼다.
• 컴파일러 확장 기능 없이 표준 Modern C++(C++ 14이상)로 WinRT
API의 소비계층을 구현.
• 현재는 C++/CX쓰지 말고 빨리 winrt/cpp로 갈아타라고 협박중.
• 어차피 게임에선 winrt기능 많이 안쓰므로 그냥 C++/CX로 해도
된다. 나중에 포팅하든가.
• https://docs.microsoft.com/ko-kr/windows/uwp/cpp-and-winrt-apis/move-
to-winrt-from-cx
• https://docs.microsoft.com/ko-kr/windows/uwp/cpp-and-winrt-apis/interop-
winrt-cx
제약사항
• https://docs.microsoft.com/ko-kr/windows/uwp/xbox-apps/system-
resource-allocation
• CPU
• 앱: 2-4개의 공유 코어.
• 게임: 4개의 전용 코어 + 2개의 공유 CPU 코어
• GPU
• 앱: GPU자원의 최대 45%
• 게임: GPU자원의 최대 100%.
• DirectX 지원
• 앱: DirectX 11 Feature Level 10.
• 게임: DirectX 12 or DirectX 11 Feature Level 10
• x64만 지원
엄청 발목 잡는다!
결국 DX12렌더러를
만들어야 한다!
개발 수순
1. Win32 Desktop App으로 먼저 개발
2. DX11로 먼저 개발.
3. UWP on XBOX제약 사항에 따라 필요하면 DX12 지원.
1. Compute Shader를 사용하는가?
4. UWP API로 포팅
5. XBOX에 배포 및 테스트
Desktop Application -> Windows 10 UWP App
• Desktop Application(이하 win32 App)과 Windows Store App(이하 UWP App)은
상당히 많이 다름.
• UWP앱에서 일부 win32 API를 사용할 수 있지만 UI 프로그래밍에서의
공통점은 아예 없다고 봐야…
• win32 app의 UI 코드 비중이 높다면 UWP
app으로의 포팅이 어려움.
win32 Game -> UWP Game
• 게임의 코드는 대부분 C/C++.
• 대부분의 게임이 Graphics API로 DirectX 를 사용.
• DirectX API는 99%이상 동일.
• 게임에선 win32 API를 많이 사용하지만 GDI는
거의 사용하지 않음.
• Windows 8/8.1에 비해 Windows 10은 훨씬 많은
win32 API를 사용 가능.게임에서 필요한 win32
API는 대부분 사용 가능.
win32 Game -> UWP Game
• 게임의 코드는 대부분 C/C++.
• 대부분의 게임이 Graphics API로 DirectX 를 사용.
• DirectX API는 99%이상 동일.
• 게임에선 win32 API를 많이 사용하지만 GDI는
거의 사용하지 않음.
• Windows 8/8.1에 비해 Windows 10은 훨씬 많은
win32 API를 사용 가능.게임에서 필요한 win32
API는 대부분 사용 가능.
Win32 Game -> UWP Game
Win32
• Language : C/C++
• Network : winsock
• Graphics API : Direct X 11/12
• Multi Threading :
• _beginthread(),_endthread()
• OS UI Framework : GDI
UWP
• Language : C/C++ , C++/CX or winrt/cpp
• Network : winsock
• Graphics API : DirectX 11/12
• Multi Threading :
• _beginthread(),_endthread()
• OS UI Framework : Direct2D/Direct Write
MMORPG Client를 만든다고 하면…
포팅시 대응관계
• 렌더링할 윈도우 :
• HWND -> Windows::UI::Core::CoreWindow^ window
• 입력 :
• Keyboard/Mouse -> Keyboard/Mouse
• Xinput -> Xinput , Windows::Gaming::Input
• 네트워크
• winsock -> winsock , StreamSocket
GDI Windows Handle - HWND Windows::UI::Core::CoreWindow
Desktop Application – win32 UWP App
앱 수명관리 핸들러 설정
윈도우 관련 핸들러 설정
입력 핸들러 설정
게임루프
UWP win32
샘플코드 분석
https://github.com/Microsoft/Wind
ows-universal-
samples/tree/master/Samples/Simpl
e3DGameDX
종료 처리
• 원래 UWP App(UWP API로 작성된)은 명시적 종료 처리가 없다.
• 미친 MS가 애플 잘되는거 보고 못된것만 배워가지고…
• 종료 시점에서 체크해야할 것들을 몽땅 놓치게 된다.
• 명시적 종료를 만들것.
• Heap corruption 체크
• Resource leak 체크
• 기타 버그체크등..
Tip
• Win32 + DirectX 11로 먼저 개발. 막바로 UWP로 개발하는거
자살행위.
• 종료처리 반드시 할 것. 종료처리시 heap corruptio이나 resource
leak을 확인한다.
• Win32빌드와 최~~~~대한 코드를 공유할것.
• UWP 환경에서 지원되지 않는 함수나 자료구조는 모양이라도
똑같이 맞출것.
• MessageBox(), HWND등..
• Win32 빌드와 UWP빌드의 코드를 한방에 비교할 수 있는 diff
스크립트를 짜둘것.
문제점
• Feature Level 10 제한 때문에 결국 DirectX 12를 사용해야한다.
XDK는 이 제약이 없다고 알고 있다.
• DX12코드 짜는게 엄청 빡시다.
• 정작 DX12로 짜도 구형 XBOX ONE/XBOX ONE S에선 DX12가
정상작동하지 않는다. 성능이 크게 떨어지고 화면이 깨지거나
반점이 생기는등 문제가 발생한다. XBOX ONE X, XBOX ONE Series
X/S에선 테스트해보지 않았음.
• 죽을 고생을 해서 개발해도, ID@XBOX를 통해서 출시하지 않는한
온라인(MO,MMO)게임으로는 출시할 수 없다. (Live
Creator프로그램 규정)
참고자료
• https://docs.microsoft.com/ko-kr/windows/uwp/xbox-apps/
• https://github.com/Microsoft/Windows-universal-
samples/tree/master/Samples/Simple3DGameDX
• https://walbourn.github.io/directx-and-uwp-on-xbox-one/
• https://www.slideshare.net/dgtman/f1-c-windows-10-uwp

More Related Content

What's hot

[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지강 민우
 
1인개발자가되기전알아야할것들
1인개발자가되기전알아야할것들1인개발자가되기전알아야할것들
1인개발자가되기전알아야할것들Jinsub Jung
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현YEONG-CHEON YOU
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPUYEONG-CHEON YOU
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술YEONG-CHEON YOU
 
Voxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseVoxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseYEONG-CHEON YOU
 
언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링TonyCms
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요Eunseok Yi
 
빌드 속도를 올려보자
빌드 속도를 올려보자빌드 속도를 올려보자
빌드 속도를 올려보자KyeongWon Koo
 
훌륭한 프로그래머 되는 법
훌륭한 프로그래머 되는 법훌륭한 프로그래머 되는 법
훌륭한 프로그래머 되는 법Kai [Kyung Seok] Song
 
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트YEONG-CHEON YOU
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들Jubok Kim
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018devCAT Studio, NEXON
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버iFunFactory Inc.
 
NDC 2017 키노트: 이은석 - 다가오는 4차 산업혁명 시대의 게임개발
NDC 2017 키노트: 이은석 - 다가오는 4차 산업혁명 시대의 게임개발NDC 2017 키노트: 이은석 - 다가오는 4차 산업혁명 시대의 게임개발
NDC 2017 키노트: 이은석 - 다가오는 4차 산업혁명 시대의 게임개발Eunseok Yi
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012devCAT Studio, NEXON
 

What's hot (20)

[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
 
【Unity道場】使って覚えるTileMap
【Unity道場】使って覚えるTileMap【Unity道場】使って覚えるTileMap
【Unity道場】使って覚えるTileMap
 
1인개발자가되기전알아야할것들
1인개발자가되기전알아야할것들1인개발자가되기전알아야할것들
1인개발자가되기전알아야할것들
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
Voxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseVoxel based game_optimazation_relelase
Voxel based game_optimazation_relelase
 
언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
 
빌드 속도를 올려보자
빌드 속도를 올려보자빌드 속도를 올려보자
빌드 속도를 올려보자
 
Fortniteを支える技術
Fortniteを支える技術Fortniteを支える技術
Fortniteを支える技術
 
훌륭한 프로그래머 되는 법
훌륭한 프로그래머 되는 법훌륭한 프로그래머 되는 법
훌륭한 프로그래머 되는 법
 
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
 
NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들NDC2011 - 절차적 지형과 트렌드의 추적자들
NDC2011 - 절차적 지형과 트렌드의 추적자들
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버
 
NDC 2017 키노트: 이은석 - 다가오는 4차 산업혁명 시대의 게임개발
NDC 2017 키노트: 이은석 - 다가오는 4차 산업혁명 시대의 게임개발NDC 2017 키노트: 이은석 - 다가오는 4차 산업혁명 시대의 게임개발
NDC 2017 키노트: 이은석 - 다가오는 4차 산업혁명 시대의 게임개발
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 

Similar to XDK없이 XBOX게임 개발하기(UWP on XBOX)

DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발YEONG-CHEON YOU
 
Porting direct x 11 desktop game to uwp app
Porting direct x 11 desktop game to uwp appPorting direct x 11 desktop game to uwp app
Porting direct x 11 desktop game to uwp appYEONG-CHEON YOU
 
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)Sang Don Kim
 
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~YEONG-CHEON YOU
 
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)Sang Don Kim
 
win32 app에서 UWP API호출하기
win32 app에서 UWP API호출하기win32 app에서 UWP API호출하기
win32 app에서 UWP API호출하기YEONG-CHEON YOU
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍NDOORS
 
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)Sang Don Kim
 
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템Young Soo Kim
 
Visual studio 사용 설명서(기초 과정)
Visual studio 사용 설명서(기초 과정)Visual studio 사용 설명서(기초 과정)
Visual studio 사용 설명서(기초 과정)Lusain Kim
 
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016Amazon Web Services Korea
 
GDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteGDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteSeok-yong Kim
 
01 윈도우프로그램 들어가기
01 윈도우프로그램 들어가기01 윈도우프로그램 들어가기
01 윈도우프로그램 들어가기jaypi Ko
 
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)Sang Don Kim
 
Cocos2 d 모바일 게임 개발하기 & 게임 서비스 준비를 위한 tip
Cocos2 d 모바일 게임 개발하기 & 게임 서비스 준비를 위한 tipCocos2 d 모바일 게임 개발하기 & 게임 서비스 준비를 위한 tip
Cocos2 d 모바일 게임 개발하기 & 게임 서비스 준비를 위한 tipAlex Kang
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자Sewon Ann
 
Xamarin.Forms (MVP ComCamp 2015)
Xamarin.Forms (MVP ComCamp 2015)Xamarin.Forms (MVP ComCamp 2015)
Xamarin.Forms (MVP ComCamp 2015)Gilbok Lee
 
RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 Devgear
 

Similar to XDK없이 XBOX게임 개발하기(UWP on XBOX) (20)

DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
 
Porting direct x 11 desktop game to uwp app
Porting direct x 11 desktop game to uwp appPorting direct x 11 desktop game to uwp app
Porting direct x 11 desktop game to uwp app
 
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
 
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
 
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
 
win32 app에서 UWP API호출하기
win32 app에서 UWP API호출하기win32 app에서 UWP API호출하기
win32 app에서 UWP API호출하기
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
 
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
 
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템[NDC17] Protocol:hyperspace Diver 개발 포스트모템
[NDC17] Protocol:hyperspace Diver 개발 포스트모템
 
Visual studio 사용 설명서(기초 과정)
Visual studio 사용 설명서(기초 과정)Visual studio 사용 설명서(기초 과정)
Visual studio 사용 설명서(기초 과정)
 
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
아마존 게임엔진:Lumberyard :: Patel Pratik :: Gaming on AWS 2016
 
GDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteGDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's Note
 
01 윈도우프로그램 들어가기
01 윈도우프로그램 들어가기01 윈도우프로그램 들어가기
01 윈도우프로그램 들어가기
 
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
 
Cocos2 d 모바일 게임 개발하기 & 게임 서비스 준비를 위한 tip
Cocos2 d 모바일 게임 개발하기 & 게임 서비스 준비를 위한 tipCocos2 d 모바일 게임 개발하기 & 게임 서비스 준비를 위한 tip
Cocos2 d 모바일 게임 개발하기 & 게임 서비스 준비를 위한 tip
 
Hello std.io 유명환_20140125
Hello std.io 유명환_20140125Hello std.io 유명환_20140125
Hello std.io 유명환_20140125
 
Unity소개
Unity소개Unity소개
Unity소개
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자
 
Xamarin.Forms (MVP ComCamp 2015)
Xamarin.Forms (MVP ComCamp 2015)Xamarin.Forms (MVP ComCamp 2015)
Xamarin.Forms (MVP ComCamp 2015)
 
RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기
 

More from YEONG-CHEON YOU

DirectStroage프로그래밍소개
DirectStroage프로그래밍소개DirectStroage프로그래밍소개
DirectStroage프로그래밍소개YEONG-CHEON YOU
 
Visual Studio를 이용한 어셈블리어 학습 part 2
Visual Studio를 이용한 어셈블리어 학습 part 2Visual Studio를 이용한 어셈블리어 학습 part 2
Visual Studio를 이용한 어셈블리어 학습 part 2YEONG-CHEON YOU
 
Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1YEONG-CHEON YOU
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5YEONG-CHEON YOU
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략YEONG-CHEON YOU
 
CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기YEONG-CHEON YOU
 
서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기YEONG-CHEON YOU
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법YEONG-CHEON YOU
 
Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기YEONG-CHEON YOU
 
Development AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic APIDevelopment AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic APIYEONG-CHEON YOU
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)YEONG-CHEON YOU
 
Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2YEONG-CHEON YOU
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayYEONG-CHEON YOU
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .YEONG-CHEON YOU
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingYEONG-CHEON YOU
 

More from YEONG-CHEON YOU (17)

DirectStroage프로그래밍소개
DirectStroage프로그래밍소개DirectStroage프로그래밍소개
DirectStroage프로그래밍소개
 
Visual Studio를 이용한 어셈블리어 학습 part 2
Visual Studio를 이용한 어셈블리어 학습 part 2Visual Studio를 이용한 어셈블리어 학습 part 2
Visual Studio를 이용한 어셈블리어 학습 part 2
 
Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
 
Voxelizaition with GPU
Voxelizaition with GPUVoxelizaition with GPU
Voxelizaition with GPU
 
CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기
 
서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
 
Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기
 
Development AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic APIDevelopment AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic API
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
 
Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture Array
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
 

XDK없이 XBOX게임 개발하기(UWP on XBOX)

  • 1. XDK없이 XBOX게임 개발하기(UWP on XBOX) 유영천 https://megayuchi.com Tw: @dgtman
  • 3. XBOX Dev Mode Activation
  • 4. XBOX Dev Mode Activation 에러 발생시 LB -> RB -> LT -> RT 차례로 누름
  • 5. XBOX Dev Mode Activation
  • 7. XBOX portal – https://xboxone:11443/
  • 8. XBOX portal – game mode로 세팅
  • 10. UWP(Universal Windows Platform) • Windows Platform의 새로운 API • 모바일과 터치,웹 억세스에 특화 • 모든 Windows Device API의 대통합 • X86/x64/ARM/ARM64 지원 • 초기엔 Windows Store에 올리기 위해서는 반드시 UWP API로 앱을 개발해야 했다.
  • 11. UWP(Universal Windows Platform) - 2015년 아름다운 UWP 생태계
  • 12. UWP(Universal Windows Platform) – 2020년 어디서 약을 팔아...
  • 13. UWP App(Store App)의 최근 추세 • 현재는 Windows Store에 올릴 수 있는 형태로 패키징된 앱을 모두 UWP App으로 지칭. • 5년 사이에 Desktop Bridge기술이 정착됨. • 고전적인 win32 Desktop App도 UWP App으로 패키징 가능. • Sandbox로 작동. • 일부 UWP API 사용 가능. • 스토어에도 업로드 가능. • 유명한 win32 App들 상당수가 스토어에 Desktop Bridge로 패키징되어 올라와있다. • Desktop API로 UWP API가 흡수되는 모양새. • UWP의 실패를 인정하고 싶지 않은 MS는 양쪽 모두 살려서 통합한다고 주장 • WinUI 3 • 뒷통수 잘 치는 MS가 언제 WinUI를 땅에다 파묻을지 모르지만 일단 계획대로라면 Dekstop App에서 현대적인 XAML UI를 사용할 수 있게 됨. • 즉 Windows Store에 앱을 올리기 위해서라면 UWP API를 학습할 이유가 없다.
  • 14. 아직 UWP API를 사용해야만 하는 영역 • XBOX Game/App 개발 • XDK없이 개발 - UWP on XBOX • XDK도 UWP API사용 • GDI를 전혀 사용하지 않으므로 계속 이대로 갈걸로 추측함. • Hololens • 하드웨어가 조약하고 GDI는 아예 쓸 일이 없는지라 결코 완전한 형태의 win32 API가 포팅될 일은 없을것임.
  • 15. UWP API로 UWP App개발
  • 17. App Lifecycle – 이것만 알아둡시다. • void App::OnLaunched() • App이 실행됨. 최초 실행되었거나, 죽었다가 실행되었거나… • Suspend-> Killed -> Resume -> OnLanunched • 최초 설치됨 -> OnLaunched • Void App::OnSuspending() • 더 이상 스케쥴링되지 않음. • Phone이나 태블릿모드에서 back버튼, Windows버튼 눌렀을때. • 전화왔을때. • Desktop에서 창을 최소화시켰을때. • void App::OnResuming() • Susened상태에서 다행히(?) 죽지 않고 App으로 복귀한 경우. • OS는 메모리가 부족할 때 suspend 상태의 앱부터 죽인다.
  • 18. C++/CX • UWP API(Windows Runtime API)를 호출하기 위한 MS의 C++확장 • UWP의 모든 API는 객체지향. C++/CX의 ref class로 구현되어있다. • 레퍼런스 카운팅 기반 C++ • 컴파일러가 분석해서 알아서 AddRef()와 Release()를 호출하는게 아니고…ref class가 스마트 포인터를 내장하고 있다.
  • 19. C++/CX • C++에 C++/CLI 문법을 차용했다. -> C# 비슷한 느낌이 있다. • ref class는 내부적으로 IInspectable COM 객체 • ref class의 핸들로 포인터 연산자 *대신 ^을 사용한다. • Lambda 표현을 많이 사용함. • ppl task를 많이 사용한다.
  • 20. winrt/cpp • 변덕쟁이(아유카와 마도카냐?) MS가 C++/CX도 걷어찼다. • 컴파일러 확장 기능 없이 표준 Modern C++(C++ 14이상)로 WinRT API의 소비계층을 구현. • 현재는 C++/CX쓰지 말고 빨리 winrt/cpp로 갈아타라고 협박중. • 어차피 게임에선 winrt기능 많이 안쓰므로 그냥 C++/CX로 해도 된다. 나중에 포팅하든가. • https://docs.microsoft.com/ko-kr/windows/uwp/cpp-and-winrt-apis/move- to-winrt-from-cx • https://docs.microsoft.com/ko-kr/windows/uwp/cpp-and-winrt-apis/interop- winrt-cx
  • 21. 제약사항 • https://docs.microsoft.com/ko-kr/windows/uwp/xbox-apps/system- resource-allocation • CPU • 앱: 2-4개의 공유 코어. • 게임: 4개의 전용 코어 + 2개의 공유 CPU 코어 • GPU • 앱: GPU자원의 최대 45% • 게임: GPU자원의 최대 100%. • DirectX 지원 • 앱: DirectX 11 Feature Level 10. • 게임: DirectX 12 or DirectX 11 Feature Level 10 • x64만 지원 엄청 발목 잡는다! 결국 DX12렌더러를 만들어야 한다!
  • 22. 개발 수순 1. Win32 Desktop App으로 먼저 개발 2. DX11로 먼저 개발. 3. UWP on XBOX제약 사항에 따라 필요하면 DX12 지원. 1. Compute Shader를 사용하는가? 4. UWP API로 포팅 5. XBOX에 배포 및 테스트
  • 23. Desktop Application -> Windows 10 UWP App • Desktop Application(이하 win32 App)과 Windows Store App(이하 UWP App)은 상당히 많이 다름. • UWP앱에서 일부 win32 API를 사용할 수 있지만 UI 프로그래밍에서의 공통점은 아예 없다고 봐야… • win32 app의 UI 코드 비중이 높다면 UWP app으로의 포팅이 어려움.
  • 24. win32 Game -> UWP Game • 게임의 코드는 대부분 C/C++. • 대부분의 게임이 Graphics API로 DirectX 를 사용. • DirectX API는 99%이상 동일. • 게임에선 win32 API를 많이 사용하지만 GDI는 거의 사용하지 않음. • Windows 8/8.1에 비해 Windows 10은 훨씬 많은 win32 API를 사용 가능.게임에서 필요한 win32 API는 대부분 사용 가능.
  • 25. win32 Game -> UWP Game • 게임의 코드는 대부분 C/C++. • 대부분의 게임이 Graphics API로 DirectX 를 사용. • DirectX API는 99%이상 동일. • 게임에선 win32 API를 많이 사용하지만 GDI는 거의 사용하지 않음. • Windows 8/8.1에 비해 Windows 10은 훨씬 많은 win32 API를 사용 가능.게임에서 필요한 win32 API는 대부분 사용 가능.
  • 26. Win32 Game -> UWP Game
  • 27. Win32 • Language : C/C++ • Network : winsock • Graphics API : Direct X 11/12 • Multi Threading : • _beginthread(),_endthread() • OS UI Framework : GDI UWP • Language : C/C++ , C++/CX or winrt/cpp • Network : winsock • Graphics API : DirectX 11/12 • Multi Threading : • _beginthread(),_endthread() • OS UI Framework : Direct2D/Direct Write MMORPG Client를 만든다고 하면…
  • 28. 포팅시 대응관계 • 렌더링할 윈도우 : • HWND -> Windows::UI::Core::CoreWindow^ window • 입력 : • Keyboard/Mouse -> Keyboard/Mouse • Xinput -> Xinput , Windows::Gaming::Input • 네트워크 • winsock -> winsock , StreamSocket
  • 29. GDI Windows Handle - HWND Windows::UI::Core::CoreWindow Desktop Application – win32 UWP App
  • 35. 종료 처리 • 원래 UWP App(UWP API로 작성된)은 명시적 종료 처리가 없다. • 미친 MS가 애플 잘되는거 보고 못된것만 배워가지고… • 종료 시점에서 체크해야할 것들을 몽땅 놓치게 된다. • 명시적 종료를 만들것. • Heap corruption 체크 • Resource leak 체크 • 기타 버그체크등..
  • 36. Tip • Win32 + DirectX 11로 먼저 개발. 막바로 UWP로 개발하는거 자살행위. • 종료처리 반드시 할 것. 종료처리시 heap corruptio이나 resource leak을 확인한다. • Win32빌드와 최~~~~대한 코드를 공유할것. • UWP 환경에서 지원되지 않는 함수나 자료구조는 모양이라도 똑같이 맞출것. • MessageBox(), HWND등.. • Win32 빌드와 UWP빌드의 코드를 한방에 비교할 수 있는 diff 스크립트를 짜둘것.
  • 37. 문제점 • Feature Level 10 제한 때문에 결국 DirectX 12를 사용해야한다. XDK는 이 제약이 없다고 알고 있다. • DX12코드 짜는게 엄청 빡시다. • 정작 DX12로 짜도 구형 XBOX ONE/XBOX ONE S에선 DX12가 정상작동하지 않는다. 성능이 크게 떨어지고 화면이 깨지거나 반점이 생기는등 문제가 발생한다. XBOX ONE X, XBOX ONE Series X/S에선 테스트해보지 않았음. • 죽을 고생을 해서 개발해도, ID@XBOX를 통해서 출시하지 않는한 온라인(MO,MMO)게임으로는 출시할 수 없다. (Live Creator프로그램 규정)
  • 38. 참고자료 • https://docs.microsoft.com/ko-kr/windows/uwp/xbox-apps/ • https://github.com/Microsoft/Windows-universal- samples/tree/master/Samples/Simple3DGameDX • https://walbourn.github.io/directx-and-uwp-on-xbox-one/ • https://www.slideshare.net/dgtman/f1-c-windows-10-uwp