What Graphics Library to use?

Started by
13 comments, last by XDaWNeDX 12 years, 11 months ago
So, I'm at day 14 in my Sam's teach yourself visual c++ in 21 days, and wish to start getting some more books. Specifically books to help me with my graphics library of choice.

So I do not want to start out with some lower level graphics library to try and understand the physics and stuff prior to jumping into a higher level graphics library, like DX or OGL.

I am going to be creating a single game as my main goal, and multiple test games to teach myself the physics, AI, etc. Special games I've designed specifically for each part of the main game, and parts that will not be implemented but are still going to be self taught to myself. So because this is my path, I can't use a simple graphics library and then jump into the main library. While physics won't change, the syntax will and I will have to reteach myself everything therefore making it a waste of time.

So what graphics library should I use?

What are the pros and cons of the major graphics librarys that can be used for games similar to MapleStory (not as big obviously, but someday, if it is SOMEHOW succesful it may be.)

I apologize for any spelling mistakes or grammatical errors there may be. I'm using a really bad keyboard where EVERY key sticks because of dust that has been built up for years. It's my schools.
I am a sesquipidalian.

Go not where the path leads, but rather walk somewhere new and leave a trail.
Advertisement
If you are looking for advice on what graphics engine to use to decide what book to purchase next, I have a different suggestion. Subscribe to Safari Books Online and read snippets of several books so you can decide yourself.

No offence meant, but you are mixing terminology and aspects up, and some of your question is downright confusing, so I think your next step might be best served by reading a generalize "Intro to game programming" type book, so you can make better sense of the various components. Again, Safari books online is a good resource for this, as a month subscription is about 1/2 of full retail of most computer books. Why buy one when you can rent 15,000! Caveat being, you need to be able to read on your screen.

So, I'm at day 14 in my Sam's teach yourself visual c++ in 21 days, and wish to start getting some more books. Specifically books to help me with my graphics library of choice.

So I do not want to start out with some lower level graphics library to try and understand the physics and stuff prior to jumping into a higher level graphics library, like DX or OGL.

I am going to be creating a single game as my main goal, and multiple test games to teach myself the physics, AI, etc. Special games I've designed specifically for each part of the main game, and parts that will not be implemented but are still going to be self taught to myself. So because this is my path, I can't use a simple graphics library and then jump into the main library. While physics won't change, the syntax will and I will have to reteach myself everything therefore making it a waste of time.

So what graphics library should I use?

What are the pros and cons of the major graphics librarys that can be used for games similar to MapleStory (not as big obviously, but someday, if it is SOMEHOW succesful it may be.)

I apologize for any spelling mistakes or grammatical errors there may be. I'm using a really bad keyboard where EVERY key sticks because of dust that has been built up for years. It's my schools.
I would recommend using DirectX, in fact, tomorrow the book "Beginning DirectX 11 Game Programming" will be released on Amazon. I have read the previous two books in the series and they are a great introduction to the API.

If you do not want to start with DirectX 11, you can read, "Introduction to 3D Game Programming with Direct X 9.0c: A Shader Approach". While it was published some time ago (2006) the information in there is provides a great introduction.

You should be prepared to hit some heavy math though for whatever API you want to pick up. You will need to know matrix and vector operations thoroughly.

Beginning DirectX 11 Game Programming : http://www.amazon.com/Beginning-DirectX-11-Game-Programming/dp/1435458958/ref=sr_1_1?ie=UTF8&qid=1305571236&sr=8-1
Introduction to 3D Game Programming with Direct X 9.0c: A Shader Approach : http://www.amazon.com/Introduction-Game-Programming-Direct-9-0c/dp/1598220160/ref=sr_1_1?ie=UTF8&s=books&qid=1305571327&sr=1-1

If you are looking for advice on what graphics engine to use to decide what book to purchase next, I have a different suggestion. Subscribe to Safari Books Online and read snippets of several books so you can decide yourself.

No offence meant, but you are mixing terminology and aspects up, and some of your question is downright confusing, so I think your next step might be best served by reading a generalize "Intro to game programming" type book, so you can make better sense of the various components. Again, Safari books online is a good resource for this, as a month subscription is about 1/2 of full retail of most computer books. Why buy one when you can rent 15,000! Caveat being, you need to be able to read on your screen.
[quote name='XDaWNeDX' timestamp='1305569769' post='4811557']
So, I'm at day 14 in my Sam's teach yourself visual c++ in 21 days, and wish to start getting some more books. Specifically books to help me with my graphics library of choice.

So I do not want to start out with some lower level graphics library to try and understand the physics and stuff prior to jumping into a higher level graphics library, like DX or OGL.

I am going to be creating a single game as my main goal, and multiple test games to teach myself the physics, AI, etc. Special games I've designed specifically for each part of the main game, and parts that will not be implemented but are still going to be self taught to myself. So because this is my path, I can't use a simple graphics library and then jump into the main library. While physics won't change, the syntax will and I will have to reteach myself everything therefore making it a waste of time.

So what graphics library should I use?

What are the pros and cons of the major graphics librarys that can be used for games similar to MapleStory (not as big obviously, but someday, if it is SOMEHOW succesful it may be.)

I apologize for any spelling mistakes or grammatical errors there may be. I'm using a really bad keyboard where EVERY key sticks because of dust that has been built up for years. It's my schools.

[/quote]

I'm not quite sure how my question could've possibly been confusing. I know that if I say "what Graphics API should I use", based on my previous questions, if anybody remembers me then I would be attacked with answers of "Continue learning c++, then when you feel like you've mastered that continue to a graphics API" or "Start out small, use allegro and make some smaller games first, then go do this, etc" I had to clarify what I clarified in order to avoid useless answers.

Although, the real question - if you actually read my question - was "What are the pros and cons of the major graphics librarys (openGL and directx are the two majors, I'm sure theres a few other really good ones though) that can be used for games similar to MapleStory"

Where that gets confusing, I'm not sure.


I would recommend using DirectX, in fact, tomorrow the book "Beginning DirectX 11 Game Programming" will be released on Amazon. I have read the previous two books in the series and they are a great introduction to the API.

If you do not want to start with DirectX 11, you can read, "Introduction to 3D Game Programming with Direct X 9.0c: A Shader Approach". While it was published some time ago (2006) the information in there is provides a great introduction.

You should be prepared to hit some heavy math though for whatever API you want to pick up. You will need to know matrix and vector operations thoroughly.

Beginning DirectX 11 Game Programming : http://www.amazon.co...05571236&sr=8-1
Introduction to 3D Game Programming with Direct X 9.0c: A Shader Approach : http://www.amazon.co...05571327&sr=1-1


Thank you, I am quite biased towards directx, as bill gates is my idol and owns microsoft, which created directx to my understanding. However, creating a game in directx that is multiplatform is extremely hard. Not impossible, but quite hard.

I'm autistic, well a lower form called 'aspergers', part of the diagnosis is actually that I have to enjoy math so hitting the heavy math should be fun. I'll go for the beginning DirectX 11 Game Programming. Thank you very much.
I am a sesquipidalian.

Go not where the path leads, but rather walk somewhere new and leave a trail.
Pros and cons of OpenGL vs Direct3D is a well worn out topic. Summary: OpenGL has the portability advantage, D3D drivers tend to be more stable, in their modern incarnations both are more similar than they are different, they have roughly equal capabilities (every now and then one jumps ahead of the other, but over time they average out), OpenGL has a C-like procedural API, D3D has a C++ like OO-like API. Everything else is hot air and religious warfare based on 15-year-old data. ;)

Longer term it's of more benefit to you to learn both, but for which to learn first, well why not see which suits your requirements the best and pick that one?

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.


Pros and cons of OpenGL vs Direct3D is a well worn out topic. Summary: OpenGL has the portability advantage, D3D drivers tend to be more stable, in their modern incarnations both are more similar than they are different, they have roughly equal capabilities (every now and then one jumps ahead of the other, but over time they average out), OpenGL has a C-like procedural API, D3D has a C++ like OO-like API. Everything else is hot air and religious warfare based on 15-year-old data. ;)

Longer term it's of more benefit to you to learn both, but for which to learn first, well why not see which suits your requirements the best and pick that one?


Well I'm essentially targetting specifically friends who have PCs...

Plus, most computer gamers have PCs, because of the general assumption among different OS's, that macs are for working on stuff, PCs are for gaming and speed, and nobody even knows about linux. So most people who play games on the computer either have a mac, that can run XP on a VM, a linux (with an XP partition on the same drive. Like me.) or a windows operating system without any extra stuff.

So I suppose I'll go for PC gamers and use directx, seeing as it tends to be more stable, and bill gates is my idol.

Thanks guys. Time to go buy that book! :D
I am a sesquipidalian.

Go not where the path leads, but rather walk somewhere new and leave a trail.

So I do not want to start out with some lower level graphics library to try and understand the physics and stuff prior to jumping into a higher level graphics library, like DX or OGL.


You've got things mixed up. "High level" means more abstract, i.e. far away from knowledge about the underlying hardware. "Low level" means less abstract, i.e. having to know more about the underlying hardware.

OpenGL and Direct3D are very low level. Anything that involves physics is much higher level (and probably uses OpenGL or D3D).

[color="#1C2837"]I'm not quite sure how my question could've possibly been confusing. I know that if I say "what Graphics API should I use", based on my previous questions, if anybody remembers me then I would be attacked with answers of "Continue learning c++, then when you feel like you've mastered that continue to a graphics API" or "Start out small, use allegro and make some smaller games first, then go do this, etc" I had to clarify what I clarified in order to avoid useless answers. [/quote]

The question is confusing because you don't understand how a few things work. For example:

[color="#1C2837"]So because this is my path, I can't use a simple graphics library and then jump into the main library. While physics won't change, the syntax will and I will have to reteach myself everything therefore making it a waste of time.[/quote]

A graphics library has nothing to do with physics. They are completely separate topics and are handled with completely different libraries/APIs/SDKs.

Well I'm essentially targetting specifically friends who have PCs...

Plus, most computer gamers have PCs, because of the general assumption among different OS's, that macs are for working on stuff, PCs are for gaming and speed, and nobody even knows about linux. So most people who play games on the computer either have a mac, that can run XP on a VM, a linux (with an XP partition on the same drive. Like me.) or a windows operating system without any extra stuff.

So I suppose I'll go for PC gamers and use directx, seeing as it tends to be more stable, and bill gates is my idol.

Thanks guys. Time to go buy that book! :D


I'm sorry to butt in here, but this is an area that I am very interested in.

It is true that most games come out for PC alone, but that isn't an argument to continue the trend. Many mac users hate using bootcamp or parallels. Sure, they are thankful that they have the option so they are not completely left out, but a growing portion of the mac user base are very interested in games. Just look at the titles in the Apple Store and do a bit of research on the sales stats (yes it is a bit hard to find, and if I had known I would end up referring to it publicly I would have book marked my sources). The just of it is that many games that have basically stopped selling in the PC market have been revitalized by being ported to the mac, where they experience consistent sales performance.

So the essence of the question here is: arguably equivalent performance and stability between the two libraries where one disallows a growing crossection of potential users and the other does not.

P.S. Bill Gates is a business man. As such I doubt he or his company would discount so many potential customers. I mean, just look at the publisher of this title.
Plus Steam's support of the Mac is bringing a lot of titles over to that platform...
As for what graphics library, well it depends. You could use something like SFML, which is Object-Orientated, Open Source, Cross Platform and rather simple to use. It's essentially a 2D OpenGL wrapper that removes a lot of the complexity.

Of course there is a school of thought that if you really want to learn, it's best to try and "reinvent the wheel" and use something like OpenGL or DirectX even though odds are the wheel you'll invent will be noticably elliptical...

[quote name='XDaWNeDX' timestamp='1305569769' post='4811557']
So I do not want to start out with some lower level graphics library to try and understand the physics and stuff prior to jumping into a higher level graphics library, like DX or OGL.


You've got things mixed up. "High level" means more abstract, i.e. far away from knowledge about the underlying hardware. "Low level" means less abstract, i.e. having to know more about the underlying hardware.

OpenGL and Direct3D are very low level. Anything that involves physics is much higher level (and probably uses OpenGL or D3D).
[/quote]

I do know that, I meant lower level, as in easier to understand. It can technically mean either way, although it's confusing the way I said it. I should've said some simpler graphics API.

[color="#1c2837"]I'm not quite sure how my question could've possibly been confusing. I know that if I say "what Graphics API should I use", based on my previous questions, if anybody remembers me then I would be attacked with answers of "Continue learning c++, then when you feel like you've mastered that continue to a graphics API" or "Start out small, use allegro and make some smaller games first, then go do this, etc" I had to clarify what I clarified in order to avoid useless answers. [/quote]

The question is confusing because you don't understand how a few things work. For example:

[color="#1c2837"]So because this is my path, I can't use a simple graphics library and then jump into the main library. While physics won't change, the syntax will and I will have to reteach myself everything therefore making it a waste of time.[/quote]

A graphics library has nothing to do with physics. They are completely separate topics and are handled with completely different libraries/APIs/SDKs.
[/quote]
MMk, I thought physics in games were simply replicated by changing the speed and direction at which a bitmap moved across the screen. Which would be graphics. I hadn't realized there was more to fake physics than that.


[quote name='XDaWNeDX' timestamp='1305650884' post='4811985']
Well I'm essentially targetting specifically friends who have PCs...

Plus, most computer gamers have PCs, because of the general assumption among different OS's, that macs are for working on stuff, PCs are for gaming and speed, and nobody even knows about linux. So most people who play games on the computer either have a mac, that can run XP on a VM, a linux (with an XP partition on the same drive. Like me.) or a windows operating system without any extra stuff.

So I suppose I'll go for PC gamers and use directx, seeing as it tends to be more stable, and bill gates is my idol.

Thanks guys. Time to go buy that book! :D


I'm sorry to butt in here, but this is an area that I am very interested in.

It is true that most games come out for PC alone, but that isn't an argument to continue the trend. Many mac users hate using bootcamp or parallels. Sure, they are thankful that they have the option so they are not completely left out, but a growing portion of the mac user base are very interested in games. Just look at the titles in the Apple Store and do a bit of research on the sales stats (yes it is a bit hard to find, and if I had known I would end up referring to it publicly I would have book marked my sources). The just of it is that many games that have basically stopped selling in the PC market have been revitalized by being ported to the mac, where they experience consistent sales performance.

So the essence of the question here is: arguably equivalent performance and stability between the two libraries where one disallows a growing crossection of potential users and the other does not.

P.S. Bill Gates is a business man. As such I doubt he or his company would discount so many potential customers. I mean, just look at the publisher of this title.
[/quote]

Bill Gates is not actually in charge of Microsoft anymore, so I hear. I heard he stepped down, to make a charity with his wife. Although my sources could be wrong. And yes, Microsoft owns Windows. Microsoft created directx. See the link there? They won't make it usable on any other operating system to increase the sales of THEIR stuff.


Plus Steam's support of the Mac is bringing a lot of titles over to that platform...
As for what graphics library, well it depends. You could use something like SFML, which is Object-Orientated, Open Source, Cross Platform and rather simple to use. It's essentially a 2D OpenGL wrapper that removes a lot of the complexity.

Of course there is a school of thought that if you really want to learn, it's best to try and "reinvent the wheel" and use something like OpenGL or DirectX even though odds are the wheel you'll invent will be noticably elliptical...


I wish to create a game, similar to MapleStory, after a series of well designed test games to understand everything I need of course. Is SFML powerful enough to do so?
I am a sesquipidalian.

Go not where the path leads, but rather walk somewhere new and leave a trail.

This topic is closed to new replies.

Advertisement