Which Technology to use for my next game ?

Started by
5 comments, last by GiroKa 10 years, 7 months ago

It’s more a rant then a question. I’m currently on the final leg of publishing my first game product on the web. I learn a lot in the last years about the Video game industry: design & creation, programming technics and publishing (still some learning to do there).

Now I’m looking at different technology for my next game D&D RPG genre. So I’ve decided to use C++ with a graphic API but which one OPENGL or DIRECTX 11 NOOooo…. it’s not another one of which ones better, there are thousands of inconclusive rant on that on the web already , but more about the game market (see pie chart) .

A little bit of background I’m an avid PC gamer I always love the Keyboard and mouse over the Console gamepads for gaming mostly RTS (i.e. StarCraft, Mech Commander, Age of empire, Dawn of war) and RPG (i.e.Ultima1-8, Baldur’s gate, Titan Quest, Dragon age, diablo2-3…). Having tried Dragon age and Diablo 3 on console after playing them on PC I thought in my opinion the game were diminish by it, I don’t understand why they don’t support the Keyboard and mouse on the console yet? Maybe they‘re afraid it’s going to kill the laptop/PC I don’t know?

Ok getting to the point from what information I gather on the internet (I know the internet… Meh!). It seems like the GPUs are favoring DirectX over OpenGL. SO go whit DirectX RIGHT! Based on market shares Microsoft OS has the biggest audience potential. But the new PCs/Laptops are going to be delivered with Window 8 which wants to segregate all games through their store. OK THEN BE A REBEL and stick with OPENGL and go to Steam which in turn will segregate your game in their green light store.

Small indie developers like me sees Mega Corporations closing the game market more and more and pushing the console down our throat. Small caveat Microsoft buying Atari for a couple of billion and calling it an Indie game studio Grrrrr…. Indie qualifier should be with budget under 5M or something.

So I decided to go to the “Dark Side” the one whit the biggest market share.(DIRECTX 11 API)

Last Small caveat if console are taking over why every time I go to a game conference the PC side is always 4 times busier?

P.S. Might be totally off only 2 years in the business self-taught with books and internet J

Advertisement

I am not a native speaker, so it is very hard for me to comprehend your questions. Sorry.

I guess you are trying to select between OpenGL and Direct3D? (DirectX is more than Direct3D).

Some of your arguments are wrong, It is not like OpenGL is not supported by GPUs. I don't think it would matter in your case.

And you can run OpenGL applications on Windows, so if you are going for 'bigger market share', OpenGL is the actual winner.

But in the end if you have to choose between two, I would say Direct3D just because of DirectX. It simplifies OS dependent things for you (Keyboard/Mouse interaction, windows) and has a lot of features that will help you. I am pretty sure OpenGL also has external support for those (glut for example, but it is really bad. I don't know anything else, didn't used OpenGL for PC for a while. Any other answers?) but they are harder to use and configure because in DirectX everything is designed to work with each other.

However, especially since you are new in graphics programming I would suggest you to try a game engine. If you don't, you have to reinvent the wheel again and again, and in computer graphics that is a bit more complex than a literal wheel. I am not very familiar with game engines however a friend of mine is using XNA, he had no experience before and he is doing fine.

I used XNA frameWork for my first game and buitl a game engine that is totally re-usable to do all sorts of game so fexible and light it can run on all windows platforms including phone and tablet. Flexable anough that anyone that supplies Art and a Idea I cant make a game in a few months. But I feel like I've wasted my time developping that engine because MS Windows stop supporting XNA on their next OS. I know their are still alot of XP, Vista and Win 7 out there but I want my next engine to last at least a couple years.

XNA will still be working in a couple of years.

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

I used XNA frameWork for my first game and buitl a game engine that is totally re-usable to do all sorts of game so fexible and light it can run on all windows platforms including phone and tablet. Flexable anough that anyone that supplies Art and a Idea I cant make a game in a few months. But I feel like I've wasted my time developping that engine because MS Windows stop supporting XNA on their next OS. I know their are still alot of XP, Vista and Win 7 out there but I want my next engine to last at least a couple years.

XNA will work on future Windows versions as well.

Microsoft would have to ditch all support for .Net or DirectX9 in order to actually kill XNA and they will not do that. (It would affect either tons of business applications or pretty much all Windows games written prior to 2007 and quite many of the ones written today and such a break in backwards compatibility would ruin Microsofts reputation forever)

What Microsoft have said is that they will not update XNA with new features(or even bugfixes) but thats only relevant if you need features that aren't in XNA allready (such as support for D3D10 or later) or if there are any critical bugs left in XNA (it is pretty rock solid so its unlikely that any such serious bugs remain)

[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!

OpenGL/DirectX are two different things.

OpenGL is an open specification for graphics, DirectX is a all-in-one library that handles everything. Direct3D is the one that handles graphics.

A long time ago, every graphics manufacturer used to display graphics their way.

So, in order to draw anything on screen you had to know how to display what you wanted on that particular graphic card. I think there were libraries and/or even Windows managed to handle a bit itself, but things were different from card to card.

It was annoying to have a game work properly only on graphic cards X and Y, but not on Z (does anyone remember those damned Voodoo cards?).

So they had a very bright idea of getting a foundation in which all of these manufacturers would work: OpenGL.

Regardless of how their cards use the data and draw on screen, they would all follow the same rules: To draw a triangle, they need X, Y and Z.

So if all the manufacturers follow this (actually I think this goes to whoever writes their drivers), developers don't have to worry anymore about which card it is, they can be sure that by sending X, Y and Z, a triangle is sure to show on screen.

So all cards, of probably nearly everything that isn't fully proprietary (like if you made a device yourself and came up with everything from scratch), supports OpenGL.

As more cards are developed, OpenGL evolves and supports even more stuff.

But basically, OpenGL is a collection of functions/variables to access your card's functions, regardless of manufacturer.

Direct3D, which I have little to no experience (yet) with, does the same thing (access your card's functions) but it's hidden through a layer (library) from Microsoft.

By having this layer they're free to add any cool stuff they want on top of it, like "write TRIANGLE and a triangle shows automatically on screen!".

They're still doing the same thing you would have to do with OpenGL, it's just that they have a function on top of it to shorten the calls.

So I think that by using Direct3D you're limiting your game/engine to Microsoft platforms, but you get some things done already.

By using OpenGL your game/engine is more portable to any platform you choose, but it's like doing everything from scratch.

I think these discussions of "OpenGL or Direct3D?" are mostly pointless if you think of them this way, there's benefits and cons to each, it's just a matter of what do you want to do.

Do you want to flip a bool and have some cool feature ready at the cost of being limited to Microsoft/Windows?

Do you want to program every little detail and code these features yourself to be able to port your game/app anywhere?

(Feel free to correct me if I said anything wrong)

Thank you for your comments, very appreciated.

Good to know my XNA engine is still alive, it is a 2D sprite oriented engine , so it is perfect for simple games like scrollers and connect the dot ect.. on PC, tablet and phone apps, my next one will be 3D capable.

Call me a Neanderthal but I ‘m the type of guy that likes designing from scratch. I like things done a certain way (my way J) which meets certain criteria of functionality that I deem adequate, and some foreseen potential functionality which specializes the engine for optimum performance for the products intended without extraneous support for everything under the sun.

This topic is closed to new replies.

Advertisement