XNA or OpenGL

Started by
13 comments, last by Shashwat 13 years, 9 months ago
XNA or OpenGL??

I studied XNA and learnt manual shaders to draw basic shapes and manipulate them.
But my friend told me that OpenGL has got more scope than XNA.

Shall I go for OpenGL now?
I am comfortable with C# and thus XNA. For OpenGL, would I have to learn VC++.
I know C++. I have created many small games in C++ BGI graphics. But I dont know to handle Windows in VC++.

Even somewhere I read that XNA games are simply crashes if they are not supplied with necessary resources (.Net and XNA).

What should I do now?
If OpenGL, do you have any material to start with?
From where to get OpenGL header and library files?
Please help me.

Thanks
Advertisement
Visual Studio allows to build setup file, which will download and install XNA, .NET then install your game, so it won't crash. So it's not big problem.
With XNA you can make games for PC, XBox 360, and.. iPhone I think, or something, forgot sorry, but I think it has Pixel Shader 2 requirement for PCs (which is like geforce fx/4).
OpenGL will work on all OS: Windows, Mac, Linux (I think XNA doesn't)

There's enough of material for OpenGL and XNA even if you won't find anything, you have GameDev :)

your friend is wrong.

My suggestion is, stick to XNA and make a bigger game.

Stefano Casillo
TWITTER: [twitter]KunosStefano[/twitter]
AssettoCorsa - netKar PRO - Kunos Simulazioni

Ya! Setups can be created and it downloads the required softwares.

Doesn't XNA works on every OS??
Which OSs support XNA?
Different Companies may use different OS. So what will be the use of XNA in windows if company uses Linux or some other OS?

@Kunos! Please give me a brief explanation to stick with XNA.
Its simple. Is that the only reason?
I'm talking about the scope in terms of career.
Please help me.

Thanks
Quote:Original post by Shashwat
Ya! Setups can be created and it downloads the required softwares.

Doesn't XNA works on every OS??
Which OSs support XNA?
Different Companies may use different OS. So what will be the use of XNA in windows if company uses Linux or some other OS?

@Kunos! Please give me a brief explanation to stick with XNA.
Its simple. Is that the only reason?
I'm talking about the scope in terms of career.
Please help me.

Thanks


XNA works only on a handful of OS's, IIRC XNA uses DirectX down-core. So you'd only get Windows, XBOX and any other system that supports DirectX (perhaps some other consoles / mobile phones).

OpenGL, on the contrary, works on many OS's. All modern desktop OS's support OpenGL (Windows, Linux, Mac, Amiga, many phones (OpenGL ES etc)...), or a limited version.

DirectX seems to be used by all major companies at the moment, while OpenGL is mostly used for indie (small) or medium sized games. XNA is relatively new, it's a production tool, so if you want to know what is going on I suggest OpenGL/DirectX. If you want a game to be finished yesterday, I suggest XNA.
[size="2"]SignatureShuffle: [size="2"]Random signature images on fora
Quote:Original post by Shashwat
Ya! Setups can be created and it downloads the required softwares.

Doesn't XNA works on every OS??
Which OSs support XNA?
Different Companies may use different OS. So what will be the use of XNA in windows if company uses Linux or some other OS?

@Kunos! Please give me a brief explanation to stick with XNA.
Its simple. Is that the only reason?
I'm talking about the scope in terms of career.
Please help me.



The "company using Linux or other OS" argument is non existent.

My point is that, you say you have already experienced XNA. There is _NOTHING_ OpenGL can do that XNA cannot.
So any experience you will get by using XNA will worth in your future as graphics developer.

The "portable" argument for OpenGL is, also, non existent. First you'll need a recompile on the new host to make it work. Code for input, sound also will have to be using portable technologies (ie. OpenAL instead of XAudio2).

If I hire a developer and I had to choose between a guy that:

- Can draw triangles in XNA
- Can draw triangles in OpenGL in every OS on the planet
- Can draw triangles in DX9 - DX10 - DX11
- Can draw triangles in low level assembler
- Can draw triangles on an iPhone and iPad

and a guy that:

- Has a working game demo in ANY technology

I'd hire the second guy... who you want to be?


Stefano Casillo
TWITTER: [twitter]KunosStefano[/twitter]
AssettoCorsa - netKar PRO - Kunos Simulazioni

Quote:Original post by Shashwat

@Kunos! Please give me a brief explanation to stick with XNA.
Its simple. Is that the only reason?
I'm talking about the scope in terms of career.



In most cases, the only people who are going to hire you in a professional environment using XNA are companies that are developing games for XBox Live.

OpenGL is also not really used often in major game development companies but there are a lot of indie companies that use it.

Directx is by far the most used of the three for game development by major companies. I would say your safest bet is to learn Directx 10.

If you want a good introduction book to Directx 10 get:
Introduction to 3D Game Programming with DirectX 10 by Frank D. Luna
You don't have to learn C++ to use OpenGL. You can use it with C# just fine through, e.g. OpenTK.

XNA is higher level, so you'll get stuff done easier, but you'll be limited to Windows and XBox. With OpenTK you can target Windows/Linux/Mac OS X and MonoTouch (if you limit yourself to the subset supported on the iPhone).

The choice is rather simple in the end: if you wish cross-platform support, use OpenGL, otherwise use XNA.

[OpenTK: C# OpenGL 4.4, OpenGL ES 3.0 and OpenAL 1.1. Now with Linux/KMS support!]

Quote:Original post by KBakerSR
OpenGL is also not really used often in major game development companies but there are a lot of indie companies that use it.


Actually OpenGL is used quite alot in major game development aswell, pretty much all Mac games use it. (and quite many of the major games do get mac releases aswell these days). Windows games tend not to use it since Intel has awful OpenGL support (compared to their D3D support), in general it doesn't really matter which one you learn though unless you:
1) Have or is targeting systems with intel integrated graphics in which case OpenGL is a bad idea. (unless you settle for OpenGL 2.0 with no extensions, but the same intel hardware tends to support DX10 which has far more features)
2) Target Mac and/or Linux in which case DirectX is a bad idea. (You can run DX9 software on Mac and Linux through wine or even make native builds using Winelib but its not really a perfect solution, and DX10/11 is still mostly unsupported)

With Windows having ~90% marketshare you really can't go completely wrong with DirectX.
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
Without digging any deeper into this.. My suggestion is: Go with C# and XNA. Make a few simple games. Get a feel for it. If you run into things the C# and XNA can't handle, solve it yourself or take a look around for alternatives.

This topic is closed to new replies.

Advertisement