|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On April 07 2011 05:58 EscPlan9 wrote:A brief intro before my questions...Lately I've been concentrating more on my web development skills, which previously were behind my OOP ones. I have a solid grasp of HTML and CSS. I'm also picking up the Adobe Creative Suite (Flash, Photoshop, Premiere, etc) from projects in my Interactive Digital Media Class. However, in my free time I want to learn more about communicating with the server on the web. Say I want to understand how to implement functions like the end-user submits information to the server, the server processes the information and queries a database I create. What languages should I go for next to better understand how to do this? At the moment my web dev track has gone like this: HTML > CSS > JavaScript > DOM > ???PHP, Ruby, Apache, IIS, ASP .NET, C# .NET all have been recommended for what to learn next. I've tried to hone in on PHP using Apache, but haven't gone far yet since setup has been such a pain in the ass. At the moment PHP isn't able to update Apache's httpd config file and I need to lookup how to manually do that (after taking a good amount of time researching how to get Apache working - which it now does). I guess I have a few questions:1) What languages should I learn next? 2) Are the options different enough that I should learn both in the end? i.e. ASP.NET vs C#.NET? PHP vs Ruby? Apache vs IIS? 3) Related, but do the different options serve different functions, or is it more of a preference thing? 4) At the moment I am using this for my PHP tutorial: http://devzone.zend.com/node/view/id/627 Because I'm having issues getting PHP properly configured, my test php file just displays its entire contents in plain text (I'm assuming that's the reason I'm not seeing the expected server response). Any suggestions for other tutorials? I didn't see any linked in OP. I know it's a lot of questions, but I want to know more about what some of you recommend for the next steps given what I want to learn. edit: formatting changes
Not sure what you want to do but installing APACHE was easy for me. Download XAMPP and install PHP APACHE, MYSQL all in one go.
|
On April 07 2011 15:36 arioch wrote:Show nested quote +On April 07 2011 05:58 EscPlan9 wrote:A brief intro before my questions...Lately I've been concentrating more on my web development skills, which previously were behind my OOP ones. I have a solid grasp of HTML and CSS. I'm also picking up the Adobe Creative Suite (Flash, Photoshop, Premiere, etc) from projects in my Interactive Digital Media Class. However, in my free time I want to learn more about communicating with the server on the web. Say I want to understand how to implement functions like the end-user submits information to the server, the server processes the information and queries a database I create. What languages should I go for next to better understand how to do this? At the moment my web dev track has gone like this: HTML > CSS > JavaScript > DOM > ???PHP, Ruby, Apache, IIS, ASP .NET, C# .NET all have been recommended for what to learn next. I've tried to hone in on PHP using Apache, but haven't gone far yet since setup has been such a pain in the ass. At the moment PHP isn't able to update Apache's httpd config file and I need to lookup how to manually do that (after taking a good amount of time researching how to get Apache working - which it now does). I guess I have a few questions:1) What languages should I learn next? 2) Are the options different enough that I should learn both in the end? i.e. ASP.NET vs C#.NET? PHP vs Ruby? Apache vs IIS? 3) Related, but do the different options serve different functions, or is it more of a preference thing? 4) At the moment I am using this for my PHP tutorial: http://devzone.zend.com/node/view/id/627 Because I'm having issues getting PHP properly configured, my test php file just displays its entire contents in plain text (I'm assuming that's the reason I'm not seeing the expected server response). Any suggestions for other tutorials? I didn't see any linked in OP. I know it's a lot of questions, but I want to know more about what some of you recommend for the next steps given what I want to learn. edit: formatting changes I work as a winform C#/Java developer so I do not have a great deal of experience with web development as a whole, but I can clarify for you on question 2. ASP.NET is a toolkit based on the CLR (Common Language Runtime) so you actually have the option of writing ASP code in any of the .NET programming languages. For future employment though you will have a lot more options if you jump in at the deep end and learn to code C# from the ground up, focusing on client server development. Your best bet is probably to pick up one of the Microsoft Press books, 70-515 is the ASP block MCTS. Another option is to look at enterprise Java development, there is a lot of work about at the moment for people who have experience working with Spring and Hibernate. Obviously I am being boring and looking at it from an employment point of view, but for a budding programmer it is important to start looking at what the market needs as early as you can - C# and Java EE coding jobs are currently on the rise. 
I'm glad you mentioned it from an employment perspective. I'm doing it primarily to increase my skillset, and increase my chances of being employable from it. And it just so happens that I also really enjoy learning more about them too.
I should have made it clearer that my ultimate goal with all of this is to make myself more easily "employable". I see a lot of job descriptions requesting skills in:
.NET Programming - usually with C# PHP or Ruby Apache or IIS
I do not have a strong grasp on what is expected from someone working in a position requiring those skills. For now I'm concentrating on understanding the fundamentals of each as well as integrating them. My main concern is I feel overwhelmed with the amount of additional languages and technologies I should familiarize myself with, and rather than tackling them all at once, I wanted suggestions on where to START as well as how to progress.
I have programming experience with Java and C++. Database experience with MySQL. Web development experience with CSS, HTML, and Flash. I also recently have learned JavaScript - just haven't practiced it much. I'm interested in learning the next steps on where to go from here.
Not sure what you want to do but installing APACHE was easy for me. Download XAMPP and install PHP APACHE, MYSQL all in one go.
Thanks for the suggestion! That certainly makes it much easier.
|
On April 07 2011 19:14 haduken wrote:Show nested quote +On April 07 2011 05:58 EscPlan9 wrote:A brief intro before my questions...Lately I've been concentrating more on my web development skills, which previously were behind my OOP ones. I have a solid grasp of HTML and CSS. I'm also picking up the Adobe Creative Suite (Flash, Photoshop, Premiere, etc) from projects in my Interactive Digital Media Class. However, in my free time I want to learn more about communicating with the server on the web. Say I want to understand how to implement functions like the end-user submits information to the server, the server processes the information and queries a database I create. What languages should I go for next to better understand how to do this? At the moment my web dev track has gone like this: HTML > CSS > JavaScript > DOM > ???PHP, Ruby, Apache, IIS, ASP .NET, C# .NET all have been recommended for what to learn next. I've tried to hone in on PHP using Apache, but haven't gone far yet since setup has been such a pain in the ass. At the moment PHP isn't able to update Apache's httpd config file and I need to lookup how to manually do that (after taking a good amount of time researching how to get Apache working - which it now does). I guess I have a few questions:1) What languages should I learn next? 2) Are the options different enough that I should learn both in the end? i.e. ASP.NET vs C#.NET? PHP vs Ruby? Apache vs IIS? 3) Related, but do the different options serve different functions, or is it more of a preference thing? 4) At the moment I am using this for my PHP tutorial: http://devzone.zend.com/node/view/id/627 Because I'm having issues getting PHP properly configured, my test php file just displays its entire contents in plain text (I'm assuming that's the reason I'm not seeing the expected server response). Any suggestions for other tutorials? I didn't see any linked in OP. I know it's a lot of questions, but I want to know more about what some of you recommend for the next steps given what I want to learn. edit: formatting changes Not sure what you want to do but installing APACHE was easy for me. Download XAMPP and install PHP APACHE, MYSQL all in one go.
I agree. XAMPP is very easy to set up and i'd recommend that for windows machines. I also never had any problems setting it up manually. For Linux systems you usually just tell your package manager to install apache/httpd and php and it's done, too.
I do not recommend ASP.NET. While C# and the .NET framework are almost perfect, ASP.NET is a horrible abomination.
There are basically 4 languages that are quite good in web development: PHP: Most people these days start with it and it's ok for most programs, but when it gets big it's hard to keep the code clean and maintainable. A factor i always consider: If you decide for PHP you are almost guaranteed to find a job as webdeveloper as there are plenty of PHP jobs out there. It's also a simple language to learn.
Perl: The classic. It's not that common these days, but with mod_perl it can be very fast and efficient. I started with it and think it's about 20 times more powerful for web development than any other language, but it takes a lot of "getting used to". Considering finding a job with it... well, those jobs are very rare, don't learn the language to increase your job chances. It's now almost exclusively used for system administration.
Ruby: Usually used with Ruby on Rails Framework which does a lot of the Web Stuff for you. I have no experience with it, but it's definatly growing fast. There are some concerns regarding performance, but to my knowledge most of it has been fixed. As a growing language, if you learn this language you risk that ruby stops growing before it gets used more. In language features, it definatly has a lot of features other languages lack.
Python: This language grew a while ago but seems to be stagnating now and many seem to switch to Ruby. It takes some getting used to due to the unusual syntax but has a reputation as a very readable language. I have no personal experience with it either.
There are of course also JSP and ASP, but i'm not a big fan of either, though for the job market factor, there are quite a few jobs looking for those.
As for webservers: Unless you decide on ASP.NET, use a linux server with Apache, IIS - while it has developed a lot - is (imho) still not that good. If you want to use ASP.NET, you are almost forced to use IIS. While there are ways to use ASP.NET with apache and mono, in my last tests it didn't perform very well.
|
On April 07 2011 19:41 Morfildur wrote:Show nested quote +On April 07 2011 19:14 haduken wrote:On April 07 2011 05:58 EscPlan9 wrote:A brief intro before my questions...Lately I've been concentrating more on my web development skills, which previously were behind my OOP ones. I have a solid grasp of HTML and CSS. I'm also picking up the Adobe Creative Suite (Flash, Photoshop, Premiere, etc) from projects in my Interactive Digital Media Class. However, in my free time I want to learn more about communicating with the server on the web. Say I want to understand how to implement functions like the end-user submits information to the server, the server processes the information and queries a database I create. What languages should I go for next to better understand how to do this? At the moment my web dev track has gone like this: HTML > CSS > JavaScript > DOM > ???PHP, Ruby, Apache, IIS, ASP .NET, C# .NET all have been recommended for what to learn next. I've tried to hone in on PHP using Apache, but haven't gone far yet since setup has been such a pain in the ass. At the moment PHP isn't able to update Apache's httpd config file and I need to lookup how to manually do that (after taking a good amount of time researching how to get Apache working - which it now does). I guess I have a few questions:1) What languages should I learn next? 2) Are the options different enough that I should learn both in the end? i.e. ASP.NET vs C#.NET? PHP vs Ruby? Apache vs IIS? 3) Related, but do the different options serve different functions, or is it more of a preference thing? 4) At the moment I am using this for my PHP tutorial: http://devzone.zend.com/node/view/id/627 Because I'm having issues getting PHP properly configured, my test php file just displays its entire contents in plain text (I'm assuming that's the reason I'm not seeing the expected server response). Any suggestions for other tutorials? I didn't see any linked in OP. I know it's a lot of questions, but I want to know more about what some of you recommend for the next steps given what I want to learn. edit: formatting changes Not sure what you want to do but installing APACHE was easy for me. Download XAMPP and install PHP APACHE, MYSQL all in one go. I agree. XAMPP is very easy to set up and i'd recommend that for windows machines. I also never had any problems setting it up manually. For Linux systems you usually just tell your package manager to install apache/httpd and php and it's done, too. I do not recommend ASP.NET. While C# and the .NET framework are almost perfect, ASP.NET is a horrible abomination. There are basically 4 languages that are quite good in web development: PHP: Most people these days start with it and it's ok for most programs, but when it gets big it's hard to keep the code clean and maintainable. A factor i always consider: If you decide for PHP you are almost guaranteed to find a job as webdeveloper as there are plenty of PHP jobs out there. It's also a simple language to learn. Perl: The classic. It's not that common these days, but with mod_perl it can be very fast and efficient. I started with it and think it's about 20 times more powerful for web development than any other language, but it takes a lot of "getting used to". Considering finding a job with it... well, those jobs are very rare, don't learn the language to increase your job chances. It's now almost exclusively used for system administration. Ruby: Usually used with Ruby on Rails Framework which does a lot of the Web Stuff for you. I have no experience with it, but it's definatly growing fast. There are some concerns regarding performance, but to my knowledge most of it has been fixed. As a growing language, if you learn this language you risk that ruby stops growing before it gets used more. In language features, it definatly has a lot of features other languages lack. Python: This language grew a while ago but seems to be stagnating now and many seem to switch to Ruby. It takes some getting used to due to the unusual syntax but has a reputation as a very readable language. I have no personal experience with it either. There are of course also JSP and ASP, but i'm not a big fan of either, though for the job market factor, there are quite a few jobs looking for those. As for webservers: Unless you decide on ASP.NET, use a linux server with Apache, IIS - while it has developed a lot - is (imho) still not that good. If you want to use ASP.NET, you are almost forced to use IIS. While there are ways to use ASP.NET with apache and mono, in my last tests it didn't perform very well.
Thank you so much for your input! Much appreciated!
|
On April 07 2011 19:41 Morfildur wrote: There are basically 4 languages that are quite good in web development: PHP: Most people these days start with it and it's ok for most programs, ...
Perl: The classic. ... We're really into language flamewar territory here, but my own personal view on both of these is as follows. See this?
![[image loading]](http://evanparity.com/pics/javascript.jpg) This is, of course, a little tongue-in-cheek, but I think the same picture could apply to both of these. I have very little experience with either, but particularly in the case of Perl, that's somewhat deliberate. While you can write unmaintainable, hard-to-understand code in any language (and you can write maintainable Perl) few languages seem to encourage it as much as Perl. Many of the things I view as contributing to this are fundamental to the language. If I want to write something that a Perl person would do in Perl, I use Python.
Ruby: ...
Python: This language grew a while ago but seems to be stagnating now and many seem to switch to Ruby. It takes some getting used to due to the unusual syntax but has a reputation as a very readable language. I have no personal experience with it either. I don't know much about Ruby, but the stuff I do know is pretty promising. I don't think I'd say any of the languages here are fast however.
Finally, I do have quite a bit of Python experience. The main syntactic difference is that it uses actual indentation for nesting level instead of { } pairs; I've come to not like this, but it's worth putting up for the rest of the language. There are some other semantic oddities -- like if you have an 'if' statement, and create a variable 'x' inside the body, it continues to be visible after the 'if' statement concludes. (I.e. there is exactly one scope for each function body.) Their scoping rules have other annoyances you'll come across. But every language has it's weird features and warts. (What language besides Perl has "scalar" and "array" contexts?)
I would not say Python has stagnated. The reason it may appear that way is because relatively recently there was actually a huge change: Python 3. This makes a number of backwards-incompatible changes, and a bunch of libraries haven't been ported over. This means that people are sort of tending to stick to the 2.x series -- but the newer version is available, and can definitely be used.
You could also consider looking at some other more unusual languages: Lisp (probably either Scheme or Clojure; Common Lisp is not very... elegant in many ways), SML, Prolog, Haskell to name a couple. You won't find many programming jobs, but I think it's good to challenge your notions of how you program.
As for webservers: Unless you decide on ASP.NET, use a linux server with Apache, IIS - while it has developed a lot - is (imho) still not that good. If you want to use ASP.NET, you are almost forced to use IIS. While there are ways to use ASP.NET with apache and mono, in my last tests it didn't perform very well.
Don't forget you can use Apache under Windows too. I'd say the experience would likely be better under Linux, but if you have other reasons to stay on Windows don't think that's that idea's death throes by any means. ;-)
|
On April 08 2011 00:36 EvanED wrote:We're really into language flamewar territory here, but my own personal view on both of these is as follows. See this? ![[image loading]](http://evanparity.com/pics/javascript.jpg) I think you're pretty fireproof with that one JavaScript is to "thin client that's been hitting the Ben and Jerry's hard" development community what pee is to shipwrecked sailors. When there's nothing else, people will swallow anything.
It'll be interesting to see how long it takes the world to wake up the idea that it's possible to install software. It's already back with a vengeance on smartphones and tablets (aka. craptops - "it's like a laptop, it just does less"), and I hope to buggery it makes a return in the proper-computer world before someone somehow manages to coerce me onto something that involves JavaScript.
|
I am interested in hobby game development, my goal is something like Starcraft 1 / warcraft 2 / age of empires. I feel very confident in my c++ skills but I havn't read any graphic courses or alike.
What do you recommend to use? I've looked at OpenGL and Ogre3D though I'm not sure what to pick or why. Do I need a graphic engine?
|
On April 09 2011 03:55 KaiserJohan wrote: I am interested in hobby game development, my goal is something like Starcraft 1 / warcraft 2 / age of empires. I feel very confident in my c++ skills but I havn't read any graphic courses or alike.
What do you recommend to use? I've looked at OpenGL and Ogre3D though I'm not sure what to pick or why.
Check out the SDL library. It's good enough for most hobbyist (and even some commercial) 2D games and there are tons of tutorials floating around. 3D is a whole different ball game.
|
If you're looking for languages that will be popular for web development in the future, I'd focus on Ruby or Python. Google has made Python the more popular language than Ruby; however, IMO Ruby is the better language of the two.
The performance issues with Ruby have been 'solved', not that there were really any significant performance issues with the language itself. It was mostly just people figuring out how to scale Ruby applications.
Python is definitely the preferred language for desktop applications, due to the great libraries that are available. A lot of it does come down to personal preference in the end though.
|
On April 09 2011 04:00 mpupu wrote:Show nested quote +On April 09 2011 03:55 KaiserJohan wrote: I am interested in hobby game development, my goal is something like Starcraft 1 / warcraft 2 / age of empires. I feel very confident in my c++ skills but I havn't read any graphic courses or alike.
What do you recommend to use? I've looked at OpenGL and Ogre3D though I'm not sure what to pick or why.
Check out the SDL library. It's good enough for most hobbyist (and even some commercial) 2D games and there are tons of tutorials floating around. 3D is a whole different ball game.
Do you use OpenGL with SDL, or just SDL alone?
|
On April 09 2011 04:18 KaiserJohan wrote:Show nested quote +On April 09 2011 04:00 mpupu wrote:On April 09 2011 03:55 KaiserJohan wrote: I am interested in hobby game development, my goal is something like Starcraft 1 / warcraft 2 / age of empires. I feel very confident in my c++ skills but I havn't read any graphic courses or alike.
What do you recommend to use? I've looked at OpenGL and Ogre3D though I'm not sure what to pick or why.
Check out the SDL library. It's good enough for most hobbyist (and even some commercial) 2D games and there are tons of tutorials floating around. 3D is a whole different ball game. Do you use OpenGL with SDL, or just SDL alone? You can use OpenGL with SDL if you want to.
|
Is there any reason to do it? I don't want to start with one feature and find out I have to start all over!
|
On April 09 2011 04:44 KaiserJohan wrote: Is there any reason to do it? I don't want to start with one feature and find out I have to start all over!
SDL is easier if you're doing 2D (like all the games you mentioned), and because SDL supports OpenGL you won't need to relearn anything later.
|
Bisutopia19152 Posts
On April 09 2011 03:55 KaiserJohan wrote: I am interested in hobby game development, my goal is something like Starcraft 1 / warcraft 2 / age of empires. I feel very confident in my c++ skills but I havn't read any graphic courses or alike.
What do you recommend to use? I've looked at OpenGL and Ogre3D though I'm not sure what to pick or why. Do I need a graphic engine?
Start with DirectX. It's much nicer then OGL and it contains a lot of other nifty things such as DirectSound and DirectShow. I just built a video game using directX and it was the better choice and easier to learn.
|
It is advisable to separate your game into layers according to MVC and implement the game logic first, and choosing a renderer once its basics are in place.
|
On April 09 2011 04:49 BisuDagger wrote:Show nested quote +On April 09 2011 03:55 KaiserJohan wrote: I am interested in hobby game development, my goal is something like Starcraft 1 / warcraft 2 / age of empires. I feel very confident in my c++ skills but I havn't read any graphic courses or alike.
What do you recommend to use? I've looked at OpenGL and Ogre3D though I'm not sure what to pick or why. Do I need a graphic engine?
Start with DirectX. It's much nicer then OGL and it contains a lot of other nifty things such as DirectSound and DirectShow. I just built a video game using directX and it was the better choice and easier to learn.
I've had a hard time finding DirectX tutorials, do you know a good source?
DirectX and OGL are both graphic APIs but not engines right? What do engines do, simplify the API calls? Do you need a engine to start out?
I'm not sure I understand the difference between game logic and rendering.
|
On April 09 2011 05:07 KaiserJohan wrote:Show nested quote +On April 09 2011 04:49 BisuDagger wrote:On April 09 2011 03:55 KaiserJohan wrote: I am interested in hobby game development, my goal is something like Starcraft 1 / warcraft 2 / age of empires. I feel very confident in my c++ skills but I havn't read any graphic courses or alike.
What do you recommend to use? I've looked at OpenGL and Ogre3D though I'm not sure what to pick or why. Do I need a graphic engine?
Start with DirectX. It's much nicer then OGL and it contains a lot of other nifty things such as DirectSound and DirectShow. I just built a video game using directX and it was the better choice and easier to learn. I've had a hard time finding DirectX tutorials, do you know a good source? DirectX and OGL are both graphic APIs but not engines right? What do engines do, simplify the API calls? Do you need a engine to start out?
Engines usually provide additional abstractions on which to base your game. If you've never coded a game before, I'd suggest you start without an engine. After a couple of times, you'll be able to see why engines are useful. They're very useful when doing 3d graphics, because they implement functions for loading, manipulating, animating and rendering 3d models.
Also, DirectX is ok but it's more complex than necessary and has a lot of features that will just confuse you if you're just starting. Another good library for 2d graphics (if you don't like SDL) is Allegro.
|
On April 09 2011 04:44 KaiserJohan wrote: Is there any reason to do it? I don't want to start with one feature and find out I have to start all over! It depends on what you want to do really. SDL can and most likely will use OpenGL behind the scenes anyway for doing simple 2D stuff like sprite rendering and things like that. So you might find that it provides all of the functionality you'd need for what you want to write and you'd still get hardware acceleration for your game. So what I mean is, you might find that you can abstract away OpenGL and not even have to think about using it personally.
If that's the case you can just think in a higher level of abstraction on your game, and you wont have to write any OpenGL API calls personally. All of that will be handled by SDL when, for instance, you tell it to render an image. But if you still want to do something that SDL can't provide, you can easily just write the OpenGL code for it. It will allow you to do that. If you wanted to, you could use SDL + OpenGL to write a 3D game, but in that case you'd be writing OpenGL code a lot because SDL doesn't provide its own wrapper around 3D functionality. For instance, SDL has no support for any 3D models formats so it's not like you could just tell it to load and render a 3D model like you could do with a sprite. So you'd have to code in OpenGL to achieve that. And you'd have to code the projection matrix stuff to initialise a 3D game, where SDL can do all that for you behind the scenes in a 2D game, etc. Hope that makes sense
|
What about graphical resources, do I have to draw stuff like tiles and textures by hand in paint? O_O Is there any good tools available for all that stuff? I have a hard time drawing stick figures lol >_>
|
Okay, here's a quick rundown of some graphics basics.
A lot of what you should do depends on your choice of 2D vs 3D. I know more about 3D than 2D; I'm not sure what I would suggest for the latter. SDL I think would be a decent choice, but I don't know if it would be the best. So I can only competently talk about 3D. I can tell you that both DirectX and SDL provide 2D capabilities.
- Base graphics API. You've got two choices here: Direct3D and OpenGL. OpenGL has the advantage that it's cross platform (without worrying about Wine compatibility or crap like that); Direct3D is Windows only. I haven't programmed with DirectX, but I've done a little OpenGL; it's an okay API. I'm too much of a C++ person and too much of a functional programming person to actually like using it (it's way too stateful for my tastes, and you'll even see talk about the "OpenGL state machine"), but it's not too painful to use. I have no clue if Direct3D is any better. There are varying opinions on which API is nicer; there are a number of high-profile people (e.g. John Carmack) who prefer Direct3D. In an interesting departure from their norm, MS is rather more inclined to break backwards compatibility in Direct3D in the name of progress than the OpenGL consortium, and DirectX is a lot closer to the gaming console world where you have a controlled environment. (E.g., you know that all DirectX 11 cards support this feature and this feature and this feature.) My impression is also that MS somewhat dictates what features the next version will contain based on what the graphics cards are expected to support; OpenGL more follows, and adopts the features when they have some measure of ubiquity. Thus OpenGL's core features lag behind those of Direct3D, but there are extensions that give access to newer features if the card supports it. (But see the later point on engines.) See http://en.wikipedia.org/wiki/Comparison_of_OpenGL_and_Direct3D.[/*]
- Supporting libraries. OpenGL and D3D only give you 3D access. You'll need libraries to handle lots of other things, like creating windows, handling input, and making sound, and you'll need to decide what library to use for this. SDL falls into this category. It has a bunch of sub-libraries for each of these things. It's a very good choice (though probably not the only one) if you're programming with OpenGL. If you're using Direct3D, you'll want to look into the rest of DirectX, of which D3D is one part. For instance, there is DirectInput and DirectSound as subparts. Both SDL and DirectX offer 2D capabilities as well.
- Graphics engine. Now, all of the above in some sense may be too low-level. What you almost certainly want to be doing is using a graphics engine. These wrap up some of the APIs mentioned before and give you a much higher-level view. For instance, your engine may provide code for reading in a 3D Studio or Blender model from a file and adding it to the scene, instead of you having to do that yourself. They often also provide both OpenGL and DirectX implementations, so you are freed from having to decide between which of those you want to use. (I don't know how the API is for unifying them.) The class project I worked on a couple years ago used Irrlicht, though I wasn't really involved in the graphics programming so can't tell you what's good and bad about it. It definitely worked, and I don't remember hearing about too many graphics problems. Another choice is Ogre3D. Outside of the C/C++ realm you'll find stuff like Panda3D for Python.
Anyway, I suggest deciding between 2D and 3D, and if you go 3D, go find an engine and start playing around with it and see what you think. If you like it, then have at it!
|
|
|
|