glQuake d3d11 - winphone 8 port release

Category: windows phone howto


jmarshall23 on Mon, 31 Dec 2012 07:48:35


One of the things that pissed me off when I bought my windows 8 phone was the fact there wasn't any good games for it out there, so over my christmas break I decided to port GLQuake to D3D11/Windows Phone 8. This isn't really that big of a thing, but for any developers are looking to design a game for the windows phone, one huge problem out of the box is there aren't really many engines that run on the device atm. For those that want to make zombie invasion 6billion for the windows phone with some fixes it might be the engine to make your game on. 

It is buggy, but it's playable(right now to get to a level you need to set map <xyz> in autoexec.cfg, thats only because I haven't programmed the input for the menu yet), the PVS system seams to cull out more stuff than it should, the sky, liquid and lava don't render correctly half the time(half the time they do though), and the sound system cuts out. And the culling for models gets reversed sometimes also dont know why.

I tried to keep the engine as close as I could to the original, one of the big things I had to add was obviously d3d11 support but also I added fbo/ibo support. I did that because it made converting trifan to tristrip easier. 

So anyway if you want to see it in action:


To compile add the pak's to the src/base folder.


Velocet on Tue, 01 Jan 2013 02:15:00

Nice work!

How about uploading it to CodePlex or

BurnTuna on Tue, 01 Jan 2013 13:20:05

...and to think you took only a few days to port the 'mother' of all first-person shooting game to windows 8. Awesome job, dude.

Could you give me another link? The link looks broken to me.

Thanks, mate.

jessenic on Tue, 01 Jan 2013 14:12:22

Could you add the project on GitHub? You can also host the downloads there and a website for free and no ads. With GitHub everyone could fork your project and add their modifications and then send them to you to review and you could merge them with your repository. GitHub is very simple to use with the GitHub Windows Client too, so you don't need to worry about command line stuff.

Here is the official Quake repo by id Software:

You could fork it and merge your changes in your fork.

SeNS on Mon, 07 Jan 2013 02:25:01

Hi! Impressive work, thanks & congrats! 

BTW, I've tried to build your sources but getting HLSL compiler error X3501: 'main': entrypoint not found

I've never worked with HLSL compiler and вщтже know how to fix the issue. Also, seems like archive have alack of directx headers.

Could you please advice?


jmarshall23 on Mon, 07 Jan 2013 05:17:52

Ensure that you are building for the ARM profile and that your building debug. Off hand I would say that your somehow building against the wrong profile, but the problem can be fixed by setting the proper settings for the hlsl files(you will notice that the vertex shader entry point is VSMain, and the pixel shader entry point is PSMain), you will also have to set the proper output directory(if you want it to have your changes get deployed to the phone). 

RyanWill on Mon, 07 Jan 2013 15:02:35

Great work

SeNS on Mon, 07 Jan 2013 15:51:47

Thanks, my fault: changing profile to ARM solved the problem!

P.S. Definitely, hosting that project on GitHub or Google code will be very helpful. Please continue your work; Quake is more than just a game ;)

P.P.S. jmarshall23, JFYI: I've reposted that great news on the xda-dev forum .


CYannick on Mon, 07 Jan 2013 18:33:00


It's a very nice job but the link on Gamefront is dead, can you reupload your source or place it on codeplex or github please ? 

Thanks ;)

Oskar Knobel on Mon, 07 Jan 2013 20:52:53

You, Sir, deserve an award.

Its amazing to see how far you got just over Christmas; porting legacy fixed function pipeline GL to D3D11 must be a huge task. By posting your work here, you're doing a great service to other developers :-)

Link is still working for me. Particularly interested in how you integrated the game with the Windows Phone programming model.

I'm going to have a look at the project soon, too bad I have so little time right now.

Thank you.

Velocet on Mon, 07 Jan 2013 23:01:02

I just couldn't wait and set up a Codeplex project:

Quake for Windows Phone 8 @ CodePlex

Will upload the source in a few hours.

RyanWill on Tue, 08 Jan 2013 03:03:28

I was able to get the first stage to load after modifying the autoexec.cfg, but the on screen controls are off. They do not line up where they show up on screen and I can only find one of them. Otherwise its looking great so far!

jmarshall23 on Tue, 08 Jan 2013 05:32:17

Porting the fixed function stuff was easy(just time consuming), the only real problem that I had stupidly enough was getting everything triangulated(which is the problem with the sky, and water), I started this like three or four days before I released it, it really actually didn't take that long. I really won't have much time to work on this, maybe I can fix the bugs over the weekend, but realistically as a programmer in the game industry with a deadline coming up at the end of the month who knows how much time I'll have.

I'm more looking at porting return to castle wolfenstein to the windows phone, Quake was kind of a test run for me.

Really porting Quake to the state where it's at now, really just consisted of a few steps:

  1. Porting the code so it compiles on the C++ compiler(Windows phone doesn't allow C files).
  2. Creating a d3d(PC) wrapper that allowed 60% of the rendering code to remain virtually unchanged.
  3. Moving everything over aside from the 2D stuff to vbo/ibo's.
  4. Porting the vs2012 project file to windows phone 8. I actually had to manually modify the project in a few places via notepad, this was the only part of the process that MS didn't really streamline as well as they should have.
  5. Convert tri-fan to tri-lists, still partially broken.

But overall I was fairly impressed on how streamlined and easy it was to port the code over.

RyanWill on Tue, 08 Jan 2013 14:11:51

You've done a great job.

Looking forward to Castle Wolfenstein... Great game

SeNS on Tue, 08 Jan 2013 17:33:54

>>I just couldn't wait and set up a Codeplex project:

Hmm, don't understand why you did it? It's not your sources, and you are not a project owner... I believe it's only jmarshall23 business where and how to host his work.

SeNS on Tue, 08 Jan 2013 17:37:28

Rygot, if you confirm your handset model (I beleive it's Lumia 920, correct) and jmarshall23 will guide me where to change screen controls position, I can re-build app for you.

RyanWill on Tue, 08 Jan 2013 19:13:58

Correct. Lumia 920

DavidLudwig on Wed, 09 Jan 2013 18:40:50

Hey, this looks great!

Out of curiosity, do you recall what kind of problem(s) you ran into regarding compiling C code for Windows Phone.  I've been doing some work porting some C-based apps to Windows 8 and Windows RT, and have been able to get at least one C-based game working (Doom 1:  I haven't tried porting anything to Windows Phone 8 just yet though.  I've been hoping that porting to Windows Phone 8 would, for most of the code, just require a recompile (after creating new project files, changing init params, etc.), but am wondering if this might not be the case.  :-/


-- David L.

CoderMan on Fri, 01 Feb 2013 10:01:25

Just wanted to say thanks - have a Lumia 920 and have been itching to do something with it.

I've been toying over the idea of getting my c++ game engine running on windows phone 8 but wasn't sure (and too lazy to google) where to start.

Your code has provided me with a nice reference point on to how get it up and running - the DirectX11 layer also helps a lot (the engine uses dx9).

Thanks for giving me the kickstart I needed !