Monogame은 최신 렌더링 파이프 라인을 기반으로하는 XNA의 오픈 소스 복제본이며 SharpDX.Toolkit은 DX11에 대한 XNA-Like 인터페이스를 구현합니다 (Monogame은 실제로 DirectX 통합을 위해 SharpDX를 사용합니다). 이 프로젝트 중 하나의 소스 코드에있는 게임 루프는 MS XNA가 실제로 사용하는 것과 거의 동일하지 않을 가능성이 높습니다.
게임 루프는 구성 요소 기반 장면 그래프를 사용한 전체 게임에서 간단한 데모 응용 프로그램에 대해서는 실제로 많은 작업을 수행하지 않습니다 (단순한 장면을 업데이트/렌더링하기 위해 모든 방법을 쌓아 놓는 경향이 있음) 조금 복잡해 질 수 있습니다. 단일 스레드 엔진의 경우, 일반적으로 생각하는 것입니다
는
1. update the state of any inputs,
2. process any physics simulation if needed,
3. call update on all the updatable objects in
your scene graph (the engine I'm working on
uses interfaces to avoid making wasteful calls
on empty stub methods),
4. clear the working viewport/depth buffers,
5. call render on each renderable object to actually
get the GPU drawing on the back buffer.
6. swap the render buffers putting everything just
drawn to the back buffer up on screen, and making
the old viewport buffer the new back buffer to be
cleared and drawn on the next rendering pass.
7. start over at step 1 :)
거의 기초를 커버 그와해야 일반적으로 상관없이 작업하는 기본 어떤 API 또는 엔진이 적용되지 않습니다.
그래픽 드라이버에서 콜백됩니다. XNAs update()와 콜백 사이에 몇 개의 레이어가 있는지 잘 모르겠습니다. 이것은 C# 및 XNA 학습에 필요한 지식이 아닙니다. XNA의 요점은 모든 것들이 커버 아래 숨겨져 있다는 것입니다. – quin