SDL & Windows 8 Metro WinRT

Started by
6 comments, last by waxie 11 years, 11 months ago
Hi there All,

I have asked this question over at StackExchange but have not got a proper responce so I thought I would aks here!

I am just beginning to dip my toe into game programming and have been reading up on all the different API's out there like SDL, SFML, OpenGL, XNA, MonoGame and of course DirectX. (Needless to say there are a lot of choices out there)

As much as I like SFMLs object oriented syntax I have chosen to read up and start with SDL as it is pretty ubiquitous and available on every platform (Windows, Linux, Mac) and also available on portable devices (Android, iOS) with the current exception of WinPhone 7. Plus there are lots of tutorials on the net about it.

After that pre-amble here is my question.

I notice that the docs say that for the windows platform the SDL API calls through to DirectX for higher perf. ( http://www.libsdl.org/intro.en/whatplatforms.html )

Microsoft have said that for Metro Game Apps you can only use DirectX (which means no XNA, no OpenGL, no SFML, etc, etc)

My question is: If SDL just wraps DirectX calls will I (we) be able to use SDL to bring games to the new Metro WinRT environment and Windows 8 marketplace?

This would be great if possible. Additionally as WinPhone 8 is supposedly built on Win8 then this could mean SDL would be available on the win phone in the future too.

My first question again is, am I right in saying that SDL uses DirectX on windows? The documentation seems to say that but other people in forums write that it targets OpenGL?

My Second question is, if SDL does target DirectX then should we be able to target Metros Apps going forward?

I have installed Visual Studio 11 (beta) in Windows 8 Consumer Preview (CP) and went file->New to check project types.

The project types that look of interest to me are:

"Blank Application",
"Direct2D Application"
"Direct3D Application"

I have generated a simpel "Direct2D App" but when you make calls through to SDL it generates its own seperate window when you call: SDL_INIT.

My third question is: Is it possible to link/setup the SDL window to point to the Direct2D surface in the this project?

Thanks everyone for taking the time to read this post and secondly for your time in responding to this question and I look forward to hearing your response.

PS: I am a complete newbie in this area and am just looking for the best API library that targets as many systems as possible and from what I have read SDL seems to fir that bill.
[Insert funny, quick and inventive verbal humor here]
Advertisement
Last I heard SDL wraps DX5 or DX6. Not the latest Direct X, which is at 11, I believe. And DX11 is a completely different architecture than its precedessors. Though Promit and co would have a better idea/answer, you may want to see if SlimDX is compatible with WinRT and Metro. SlimDX is a managed wrapper around DX. With that said, I'm 99% sure that SDL in its current form will not help you in your Win8 endeavors.

Beginner in Game Development?  Read here. And read here.

 

Thank you for your answer here Alpha. DX5/6 eh? Hmmm that does put a crimp onmy plans and is a shame.

I will have a look into SlimDX but it is becomming clear that there is not one API to rule them all and at some point you will have to port a game to one of the other platforms if the libraries are not available.
[Insert funny, quick and inventive verbal humor here]
Can I ask, as a beginner am I making the rightt decision using SDL? My aims are to:

- Get an understanding of general game mechanics
- Write a cheesy 2D platformer game

I would like to see it playing on as many systems as possible (win / mac / linux / android / ios (WinMetro if possible) ) which is the original impetus for asking my question.

Is using SDL the way to start here? - If you was starting from brass-tacs today would you use SDL or would you prefer another library? ...or, am I just asking the wrong question and in the end I will need to understand a couple of different libraries if I want my chessy platformer game to be available to as many platforms as possible?

Thanks.
[Insert funny, quick and inventive verbal humor here]
I would go with SFML. From there once you understand game mechanics and the like you can worry about cross-platform APIs. But at this point, it looks like SFML is your best bet. It's more modern as far as underlying technology goes, well compared to SDL.

If I was you, I'd get a game working on SFML first, understand the mechanics (trust me that's the most important part), then worry about porting it to different platforms.

Beginner in Game Development?  Read here. And read here.

 

Thank you for your advice Alpha.

I'll download SFML now and kick the tyres so to speak.
[Insert funny, quick and inventive verbal humor here]
Shameless self-promotion:

If you feel someone has given you good advice or has been helpful in general, then please feel free to the click the up arrow on that person's post :)

Beginner in Game Development?  Read here. And read here.

 

Ah-haa!! I see. Is that how things work around here biggrin.png

It feels like my first day at school!! - I only found out about this site recently and I signed up today. biggrin.png

Duly noted.
[Insert funny, quick and inventive verbal humor here]

This topic is closed to new replies.

Advertisement