Jump to content
  • Advertisement
Sign in to follow this  
salvenger

What to use ?

This topic is 3088 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Should I use:
DirectX,
OpenGL,
Pygame (2D, with python of course [SDL]),
or
SDL (2D)?

2D or 3D?

I have no experience in 3D and decent in 2D.

C#, C++, Visual Basic, Python (with pygame), Java (with Java2D? JOGL?) as a language?

If 3D, please provide link(s) (if possible) to tutorials, docs, ect.

THANKS in advance ^^,
Salvenger

Share this post


Link to post
Share on other sites
Advertisement
The honest choice really is up to you. The libraries listed above are all very capable (I'm guessing they are at least. There is a lot of talk about SDL but I've never been in touch with Pygame and it's rarely mentioned); the ultimate answer lies in the purpose or preference if circumstances allow.

You'll have to figure out the disadvantages and advantages of the libraries. Here's what I know (or think I know at least >.>) about DirectX and OpenGL.

If you don't like reading theories, don't read anything below this point ;]

Although I've never used either, there are a couple of obvious differences between the two: Mainly, DirectX is proprietary and OpenGL is open source. This means that DirectX is maintained by a regular team and it's constantly being updated to new standards whereas OpenGL is an open project for people. Frankly, there is a committee I believe that maintains OpenGL standards and whatnot, but I don't know how that works so forgive me if I'm missing anything.

Another thing you're looking for is questions like: "How popular are those libraries?", "Which platforms support the libraries?", "How easy are the libraries to use?". Of the two mentioned above, I am willing to say that DirectX is still dominant. Companies can find a lot of things that are very favorable over OpenGL. The main thing is sound support. Yeah, doesn't seem like a big deal, but using occams razor, why would you ever go through the extra trouble of bringing a couple of libraries to one project when you can use one that includes the necessary functionality?

Considering the platforms that they run on, we have everything made by microsoft (windows, xbox, and maybe some other stuff they make that runs on stripped down versions) and it can possibly run on Linux with the right stuff. OpenGL obviously runs on Linux, Mac, and Windows so considering games for PCs, OpenGL isn't a bad idea. I believe the PS3 runs OpenGL as well, but it's an old 1.something version with some extensions that Sony pulled out of a hat so I don't how that works. Considering that a lot of gaming has moved onto consoles nowadays, it's probably better to just consider a more dominant library first and later on move to other ones which most likely you'll have to do anyway.

At the end, if it was up to me, I would go with DirectX. You get DirectX for free (I hope), most of the stuff needed is already within the package so no need for outside assistance, and maybe Microsoft has some nice reference website online and from my experiences with MSDN for the win32 api I use, it's most likely better than what you've ever seen. =]

[/end rant]

Share this post


Link to post
Share on other sites
Thanks you for your replies.

I would love to use DirectX in Visual Studio 2010 Ultimate, but I don't know how to add the references manually. For they are not listed because of the .NET 4 Framework. (I believe anyways.),

EDIT:
I would also like to ask:
What is XNA?
Is XNA free?

Sorry, I would do some research but it's 12:46 AM and I'm like dead tired lol.
Good night, I'll check back in the morning.

Salvenger

Share this post


Link to post
Share on other sites
I would recommend you to use SDL + OpenGL with C++ as language. (Atleast for serious game development, if you want to go the easy way (if the previous thing is too hard for you ;): Python + PyGame)

Why? Because if you use DirectX you are bound to Windows (and XBox 360) no other platform is supporting it. That means that you can't release your game(s) for Macs, Linux-PCs and other stuff like mobile devices, the Wii or the PlayStation.

Some nice blogpost about OpenGL and DirectX:
http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX

SDL is mainly for abstraction from the OS. Means that you don't have to think about the OS at all, you can just write your game and then it's compilable on all platforms. It also gives you the functions for reading out images, playing sounds , etc and is thus an replacment for everything except the graphic-part of DirectX.

For the compiling and stuff I use Code::Blocks with MinGW on windows, but the compiler and the IDE is more an minor decision.

Share this post


Link to post
Share on other sites
That Wolfire post is little more than flamebait and was discussed to death when it was posted.

Generally concerns about cross-platform applicability are misplaced in this forum, because most beginners don't need to be worried about it. It's also disingenuous to imply that cross-platform APIs are necessary for cross-platform projects (they aren't, always) or that that they make the process painless (they don't, usually, just easier).

It also does not matter one bit what professionals use because, again, their needs differ vastly from those of a beginner posting in this forum.

salvenger, among the options you listed you should use those you are already most familiar with. If you are equally unfamiliar with all of them -- which I find unlikely since you claim to have some experience -- then I would recommend Python as a first language, and thus PyGame as an API when you are ready for it.

Fundamental concepts of computer programming and graphics programming transfer across APIs; a good programmer will ultimately know many languages and understand how to choose the best tools for the job. Don't worry about making the "wrong choice" at this stage. The most important thing is to pick something and start working.

Share this post


Link to post
Share on other sites
If I was to make a game in C# using Visual Studio (using SDL), would it be crossplatformable?

Or would I have to use Monodevelop?

Another option: (When I get home, currently visiting my uncle)
I could install Ubuntu on a hard drive (I have 3 in my desktop) and use:
Monodevelop, Code::Blocks, Eclipse, ect ect.

I know all those languages pretty well actually.
The newest one to me is C++.

Thanks in advance,
Salvenger

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!