Jump to content

  • Log In with Google      Sign In   
  • Create Account


Where should I start?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
17 replies to this topic

#1 Carlows   Members   -  Reputation: 141

Like
0Likes
Like

Posted 16 June 2013 - 04:14 PM

Well, I'm a little bit frustrated with this, I don't know where to start at!

 

I was looking a few tutorials about DirectX, like DirectXTutorials (I think this is far the best, but it isn't free.), rastertek (I don't know, It's code seems a bit harder for me, I think the first tutorials doesn't explain too much about DX...). I was looking for some OpenGL tutorials too, but, I found it like a pine in the a** to setup OpenGL, even I tried to run some tutorials and i get hundreds of compiling errors, so...

 

What do you recommend to me to start with? I found programming really exciting and usually I have no trouble understanding new topics, but wow, I really don't know where to start...

 

Btw, apologies for my English, i'm from Venezuela (yeah, Chavez!) and English is not my fort.



Sponsor:

#2 minibutmany   Members   -  Reputation: 1529

Like
0Likes
Like

Posted 16 June 2013 - 04:52 PM

How long have you been working in C++? I don't do much C++ but some people really like the SFML and Allegro libraries. They are a little more "user friendly" than openGL.

(Your English is very good, just pine is a tree, I think you meant pain. But pine in the a** makes sense too, it would be pricklyph34r.png).


Stay gold, Pony Boy.

#3 Karsten_   Members   -  Reputation: 1551

Like
0Likes
Like

Posted 16 June 2013 - 05:10 PM

Since OpenGL and DirectX are just graphics APIs, you might want to start with a 3D engine instead if you are just starting out.

 

I quite like Irrlicht since it provides a lot of functionality to get started quickly with C++ and 3D.

As minibutmany suggested Allegro is a good one too but I find SFML still a little bit too low level if you are starting out since it doesn't provide much more than resource loading and a rendering context.

 

 


Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.


#4 Carlows   Members   -  Reputation: 141

Like
0Likes
Like

Posted 16 June 2013 - 05:23 PM

 


How long have you been working in C++?

 

Haha, yeah, pain, sorry for that. Well, I'm most experienced with C#, since I started studying at the university, that's the most used language here (along with Java), but, when I was looking for some options to start in game development, I notice that many people says C# is to slow for making games, and they highly recommend C++, since then I have been learning C++ (I think 3 or 4 months ago..). So, new question, Is it a bad choice changing to C++? Is C# a bad choice for game development? What do you think?



#5 minibutmany   Members   -  Reputation: 1529

Like
0Likes
Like

Posted 16 June 2013 - 07:19 PM

I used c# for a little while. I didn't like the .NET framework very much(partially because of some performance problems, but it should be fine for making games) so I moved to Java which I really love. Java with LWJGL or  Slick2D is very good. What ever you feel is best for you I suppose. Try making some games in C# and Java, and if your not liking it than try a move to C++.


Edited by minibutmany, 16 June 2013 - 07:23 PM.

Stay gold, Pony Boy.

#6 Carlows   Members   -  Reputation: 141

Like
0Likes
Like

Posted 17 June 2013 - 01:22 PM


I quite like Irrlicht since it provides a lot of functionality to get started quickly with C++ and 3D.

 

I've been looking the Irrlicht engine, it seems pretty nice, do you have any tutorials or anything else about this engine? 

 

 

 


Try making some games in C# and Java, and if your not liking it than try a move to C++.

 

Well, It seems to be a big decision, I mean, picking a language... C# and XNA only supports Windows and Xbox, I really think C# is a very nice language, straightforward, but I'm not that conviced on It for making games... And Java, well, pretty much the same thing, excepting It's portability. Anyway, I'm looking for opinions!

 

I'm thinking to start learning C++ more deeper (IDK if deeper is the word I'm looking for, lol), so, can anyone recommend some libraries, or engines to start? I've been looking "SDL", "Irrlicth", and "Allegro"...

 

Btw, just for curiosity, how old were you when you start programming? I'm 18 years old and I've been programming in C# since I was 16, is it a good age to start C++? rolleyes.gif


Edited by Carlows, 17 June 2013 - 01:36 PM.


#7 foxefde   Members   -  Reputation: 143

Like
0Likes
Like

Posted 17 June 2013 - 01:32 PM

Well,I am trying to learn Directx as well,and yeh Rastartek's tutorials are : |   ...In my opinion book is the fastest way to learn it...

 

Opengl?There's book,I checked it and it seems quite informative : http://www.arcsynthesis.org/gltut/   released one year ago



#8 minibutmany   Members   -  Reputation: 1529

Like
0Likes
Like

Posted 17 June 2013 - 02:04 PM

I'm 15 and I've been coding since I was 10, but I didn't get really serious about it until about 2 years ago.


Stay gold, Pony Boy.

#9 Carlows   Members   -  Reputation: 141

Like
0Likes
Like

Posted 17 June 2013 - 02:10 PM


I'm 15 and I've been coding since I was 10, but I didn't get really serious about it until about 2 years ago.

 

Lol, thats really nice. Don't you have any nice project you can show us?

 


Well,I am trying to learn Directx as well,and yeh Rastartek's tutorials are : |   ...In my opinion book is the fastest way to learn it...

 

Don't you have experience with an engine, anything to recommend?



#10 Dante12129   Members   -  Reputation: 1018

Like
0Likes
Like

Posted 17 June 2013 - 03:35 PM

If you're going for 2D graphics in C++, I would recommend SFML. It is object-oriented so the interface is much easier to use and it lets you use OpenGL with it if you would like.



#11 frob   Moderators   -  Reputation: 19757

Like
2Likes
Like

Posted 17 June 2013 - 03:39 PM

I'm most experienced with C#, since I started studying at the university, that's the most used language here (along with Java), but, when I was looking for some options to start in game development, I notice that many people says C# is to slow for making games, and they highly recommend C++, since then I have been learning C++ (I think 3 or 4 months ago..). So, new question, Is it a bad choice changing to C++? Is C# a bad choice for game development? What do you think?

Well, It seems to be a big decision, I mean, picking a language... C# and XNA only supports Windows and Xbox, I really think C# is a very nice language, straightforward, but I'm not that conviced on It for making games... And Java, well, pretty much the same thing, excepting It's portability. Anyway, I'm looking for opinions!
...
I'm 18 years old and I've been programming in C# since I was 16, is it a good age to start C++? rolleyes.gif


Let's pause and do a reality check.

One the one hand, random people told you that C# and Java are "too slow for making games".

On the other hand, actual evidence shows you that C# and XNA are used for many thousands of games on XBLIG. Many games like Minecraft and also many thousands of web games and platform-agnostic games are written in Java. And there is the fact that Android apps are Java, and they seem to be doing pretty well.

Who are you going to believe? Random people who said it isn't good enough? Or the many thousands of actual successes that use the languages?


If you want to learn C++ then learn it. There is much that can be gained from the language, especially if you want to work on living room game consoles.  Now that you have a few languages under your belt adding C++ will be fairly easy.  Learn it if that is what you want.

But don't ignore your present languages just because some random people told that they are too slow.


Check out my personal indie blog at bryanwagstaff.com.

#12 Carlows   Members   -  Reputation: 141

Like
0Likes
Like

Posted 17 June 2013 - 03:57 PM


If you want to learn C++ then learn it. There is much that can be gained from the language, especially if you want to work on living room game consoles.  Now that you have a few languages under your belt adding C++ will be fairly easy.  Learn it if that is what you want.

 

You're right about everything you said, and I'm definitely going to learn C++, otherwise, will be helpful start on 2D graphics instead jumping to 3D directly?



#13 frob   Moderators   -  Reputation: 19757

Like
4Likes
Like

Posted 17 June 2013 - 04:33 PM


You're right about everything you said, and I'm definitely going to learn C++, otherwise, will be helpful start on 2D graphics instead jumping to 3D directly?

How is your 3D math skills?

 

Right now you are learning C++ and also learning graphics APIs.  Do you want to also be learning linear algebra at the same time?  That is an awful lot to stuff into your brain at once.

 

Generally it is best to focus on one topic at a time.  Unless you are already very comfortable with linear algebra, I would delay the jump to 3D for now.


Check out my personal indie blog at bryanwagstaff.com.

#14 Karsten_   Members   -  Reputation: 1551

Like
1Likes
Like

Posted 18 June 2013 - 09:12 AM

For Irrlicht, the official tutorials are pretty good. (http://irrlicht.sourceforge.net/tutorials/).

 

Since you will probably be using a 3D engine (like Irrlicht) rather than a low level 3D graphics API (OpenGL / DirectX) directly, you can also avoid linear algebra for a while until you have gained some familiarity with C++ (and programming in general) and are ready for some slightly more advanced graphics.

 

As an aside, not many developers use C# with low level OpenGL directly (via OpenTK), so why do people think that C++ developers do? The only reason I can think is that C++ developers are generally more technical so are more likely to get their hands dirty with engine programming?


Edited by Karsten_, 18 June 2013 - 09:17 AM.

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.


#15 Carlows   Members   -  Reputation: 141

Like
0Likes
Like

Posted 18 June 2013 - 12:44 PM


until you have gained some familiarity with C++ (and programming in general) and are ready for some slightly more advanced graphics.

 

What do you think are the most important topics about C++? I'm very familiarized with the basics, I mean, variables, functions, classes, objects, inheritance, etc.. Where should I go further in C++?

 

Thank you very much for all your answers. smile.png



#16 Alessio1989   Members   -  Reputation: 1832

Like
0Likes
Like

Posted 18 June 2013 - 02:05 PM

C++11 has a nice set new features, you should have a look at it. unfortunately, VC++2012 still lacks in the new standard support, yes 2013 version is coming but I don't think that i will brings full c++11 support sad.png


Edited by Alessio1989, 18 June 2013 - 02:05 PM.


#17 marcClintDion   Members   -  Reputation: 431

Like
0Likes
Like

Posted 18 June 2013 - 07:22 PM

The point made by frob about languages that are considered 'slow' is definitely a valid one.  There is nothing forcing a C# programmer to use every available component from every possible feature set.  This is where the performance issues come about.  Not every available function was designed for a games and, no doubt, some should be avoided where speed is an issue.  On the flip side of this, a sloppy coder could easily make a huge mess using a language that is considered 'fast' such as assembly, if you write inefficient code your program will be slow regardless of your choice of language.  If this is a concern for you then make sure that code optimization is a focus in your research as much as anything else.  Personally, I like plain old boring C for the runtime software,  but this is arguing semantics,  I try to only use what is common to every C-based language.  Because of this, last year when I decided to rebuild my engine to work on iOS it was almost perfectly seamless, I never even bothered learning the Objective C standard and everything went fine because, as I said, I try to only use what is common to almost every language. 

 

If you are really concerned about performance than you might consider studying as many languages as you can stand to, at least to start off with, and this way you'll start to see the pattern that is common to all, then you will naturally fall into the environment that you are best suited to.  This will help you to avoid dead-ends down the road like the one that's worrying people who have been using XNA although this XNA issue doesn't sound as bad as people have been saying but this scenario is still very possible.  All it takes is for one CEO and his board to bankrupt a corporation and you may find the development environment of your choice is gone the way of the dinosaur. You can future proof yourself by avoiding what is not common to all.

 

If you must use inefficient libraries, try to keep it out of the main game executable and only use them for pre-processing stuff like code generation, model formatting, level building and other such things.  I love fstream.h and I use it constantly for code generation and diagnostics, but I'd never use it in the game itself, accessing the hard drive is at least a couple hundred times slower than the rest of the computers components. 

 

Until you start writing in-depth physics simulations, the graphics pipeline is likely going to be the only bottleneck you face for now. Here are some optimization guides for OpenGL and DirectX.  Most of these tips are common to both since the GPU is ultimately where graphics calls go.  If you get this stuff right then you'll be ahead of the game.

 

http://www.mesa3d.org/brianp/sig97/perfopt.htm

 

https://www.google.ca/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&sqi=2&ved=0CEYQFjAD&url=https%3A%2F%2Fdeveloper.qualcomm.com%2Fdownload%2Fadreno200performanceoptimizationopenglestipsandtricksmarch10.pdf&ei=JATBUZ3WJeL0iQKdnYH4Cg&usg=AFQjCNFbU3Vf2mT2sf7LTAJQ3xqijdyUAA&sig2=RbjFUxJdBYsDRcSxTnWbXA&bvm=bv.47883778,d.cGE&cad=rja

 

http://developer.apple.com/library/ios/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/BestPracticesforShaders/BestPracticesforShaders.html#//apple_ref/doc/uid/TP40008793-CH7-SW3

 

http://developer.download.nvidia.com/GPU_Programming_Guide/GPU_Programming_Guide.pdf

 

http://msdn.microsoft.com/en-ca/library/windows/desktop/ee415571%28v=vs.85%29.aspx

 

http://www.ati.com/developer/dx9/ATI-DX9_Optimization.pdf

 

Here's one for AMD CPU's http://support.amd.com/us/Processor_TechDocs/47414_15h_sw_opt_guide.pdf

 

And one from Intel   http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-optimization-manual.pdf


Consider it pure joy, my brothers and sisters, whenever you face trials of many kinds, because you know that the testing of your faith produces perseverance. Let perseverance finish its work so that you may be mature and complete, not lacking anything.


#18 marcClintDion   Members   -  Reputation: 431

Like
0Likes
Like

Posted 18 June 2013 - 07:38 PM

Also, you mentioned issues with OpenGL compiler errors.  Here is some super basic OpenGL stuff, most of it's pretty old but it still works.  Each lesson has downloads for many, many compilers.  The earlier ones have projects for 3 dozen different compilers.

 

http://nehe.gamedev.net/tutorial/lessons_01__05/22004/

 

The following has tons of projects for both DirectX and OpenGL

 

http://www.ozone3d.net/opengl_direct3d_tutorials.php

 

Also, if you are having hundreds of compiler errors, post them in a thread and ask for help on how to resolve them.  There must be at least a few hundred people around who can easily walk you through that part. Most of the time, those huge piles of errors are really just a few errors.  One missing .lib file can be responsible for dozens of those reported errors.


Consider it pure joy, my brothers and sisters, whenever you face trials of many kinds, because you know that the testing of your faith produces perseverance. Let perseverance finish its work so that you may be mature and complete, not lacking anything.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS