C++, C#, or something else? Also some other questions
Thanks for the help, Kahroo
I suggest C++, others suggest Python, Java, C# etc... So I guess you might want to simply start learning the language you intend to keep with or the one that the majority of libraries you intend to use natively support.
So, if you are most interested in making a game quick (perhaps to test out a new idea) then yeah, Unity and any of it's languages it uses (they all perform the same task).
However, if you have a passion for programming itself and are in no rush to knock up a game, then I would suggest starting with C++ and OpenGL (follow some books first).
I'm in no hurry to put out a game yet. I'd rather learn first then try to make my game. I would like it to look good too. Also do you have and recommendations for any C++/OpenGL Books. And wouldn't learning DirectX be better then OpenGL? Don't most games use that more?
For Books try "Learn C++ through game programming" No Graphics, All text. But would get you a good start on C++
Then there is 3D Game programming Complete. Uses a C++ off shoot called Torgue. But introduces you to the elements of 3D
recommendations for any C++/OpenGL Books. And wouldn't learning DirectX be better then OpenGL? Don't most games use that more?
Only in AAA titles (due to heavy marketing by Microsoft). Remember that DirectX is not portable to iPhone, Android, Linux... etc (or anything but Microsoft based platforms)
As for books, the best I know is the OpenGL Programming Guide.
Hi,
First, a total newbie should write a few simple programs before programming any game. Make "Hello World", simple data base, easy letter display application, or other programs, but keep them very simple. These should be made as console applications, which can be done in practically any language.
Languages most friendly for newbies are Python, Lua, C#, Perl, Ruby, and some other common ones - mostly scripting languages. Look for auto-memory management language (unmanaged) for your first one, such as C#. After you have made some simple applications, then you are ready to start programming a game. Make simple games before you touch a complex IDE or SDK.
Avoid the lower level programming in the beginning of your learning, a must if you want to make the most progress in the first few stages of your growth. You should be focused on programming basics and game structure first and not a publishable game. Don't try to make that popular game for a year or maybe two.
Game examples for beginner level - make several of them:
Crossword puzzle
Tic-Tac-Toe
Pong
Tetris
Pac Man
Defender
Asteroids
Mario Brothers
...or other simple 2D game imitations...
Make each one well before moving to the next, polishing it and maybe adding some art assets, game functionality, or U.I. complexity with each version. This will get you into the habit of completing projects according to a Software Development Cycle.
If you want to create nice games either as a hobby or a profession, you must have good fundamentals at all times just like any other major profession in life like sports or business. Sorry, no shortcuts are recommended by me in the early months, year or two, but make sure that you are making real progress with visible and satisfying results. This is why I advise that you stay involved with game programming communities forever to help you do that.
Give it a minimum of about a year with 2D games before you start 3D game development, in my opinion.
The real question is, what are the things which scripting languages have which streamline the learning for the beginner? We recommend unmanaged, interpreted, (at least first stage of learning), and fewer choices/options than C++ has to enable a more orderly and less confusing path of learning.