This sample demonstrates how to build a basic 3D game using DirectX. This game is a simple labyrinth game where the player is challenged to roll a marble through a maze of pitfalls using tilt controls.
Note This sample was created using one of the universal app templates available in Visual Studio. It shows how its solution is structured so it can run on both Windows 8.1 and Windows Phone 8.1. For more info about how to build apps that target Windows and Windows Phone with Visual Studio, see Build apps that target Windows and Windows Phone 8.1 by using Visual Studio.
Areas covered include:
- Incorporating the Windows Runtime into your DirectX game for full Windows Developer Preview support
- Using DirectX to render 3D graphics for display in a game
- Implementing simple vertex and pixel shaders with HLSL
- Developing simple physics and collision behaviors in a DirectX game
- Handling input from accelerometer, touch, and mouse, and game controller with the Windows Runtime and XInput
- Playing and mixing sound effects and background music with XAudio2
This sample is written in C++ and requires some experience with graphics programming and DirectX. Complete content that examines this code can be found at Developing Marble Maze, a game in C++ and DirectX.
For more info about the concepts and APIs demonstrated in this sample, see these topics:
- Create an app using DirectX
- Walkthrough: create a simple game with DirectX
- Direct3D 11 graphics
- Direct2D graphics
- DirectX HLSL
- Developing games
To obtain an evaluation copy of Windows 8.1, go to Windows 8.1.
To obtain an evaluation copy of Microsoft Visual Studio 2013, go to Visual Studio 2013.
Note For Windows 8 app samples, download the Windows 8 app samples pack. The samples in the Windows 8 app samples pack will build and run only on Microsoft Visual Studio 2012.
Operating system requirements
Build the sample
This sample is a Universal sample and contains both Windows 8.1 and Windows Phone 8.1 projects, as well as the code shared between them.
- Start Microsoft Visual Studio 2013 Update 2 and select File > Open > Project/Solution.
- Go to the directory to which you unzipped the sample. Then go to the subdirectory named for the sample and double-click the Visual Studio 2013 Update 2 Solution (.sln) file.
- Follow the steps for the version of the sample you want:
To build the Windows version of the sample:
- Select MarbleMaze.Windows in Solution Explorer.
- Press Ctrl+Shift+B, or use Build > Build Solution, or use Build > BuildMarbleMaze.Windows.
To build the Windows Phone version of the sample:
- Select MarbleMaze.WindowsPhone in Solution Explorer.
- Press Ctrl+Shift+B or use Build > Build Solution or use Build > Build MarbleMaze.WindowsPhone.
Run the sample
To run this sample after building it, first right-click the target project (MarbleMaze.Windows or MarbleMaze.WindowsPhone) in Solution Explorer, and select Set as Startup Project. Then, press F5 (run with debugging enabled) or Ctrl+F5 (run without debugging enabled) from Visual Studio 2013 Update 2 for Windows 8.1 (any SKU). (Or select the corresponding options from the Debug menu.)
The Marble Maze game can be played with touch controls, a tilt accelerometer, an Xbox 360 controller, or the mouse.
To start the game, click or tap Start Game. To view high scores for the local session, tap High Scores.
The controls are as follows:
- Touch controls: press on the screen in the relative (to the marble) direction that you want the marble to roll.
- Xbox 360 controller: tilt the left analog stick in the direction that you want the marble to roll.
- Tile accelerometer: tilt the accelerometer-enabled device in the direction that you want the marble to roll.
- Mouse: Click and hold the left mouse button while the pointer is on the screen in the relative (to the marble) direction that you want the marble to roll.
(Some of these behaviors may not be available or identical in the Windows Phone 8.1 SDK emulator.)