Skip to main content
GameDev.net gamedev.net
🔒 Locked

learning game development

Started by elobire Jul 8, 2012 at 6:28 PM 23 replies 4.8k views
Original Post
elobire
elobire
What is the best way to learn game development?
I know its a broad question, but should i first learn a programming language such as Java, or should i learn to use something like Unity?

Thanks.
DevLiquidKnight
DevLiquidKnight
Learn a programming language first, especially if you intend to go further into game development. Unity is only one game engine... theirs tons of other ones you will have at your disposal if you can program.
elobire
elobire

Learn a programming language first, especially if you intend to go further into game development. Unity is only one game engine... theirs tons of other ones you will have at your disposal if you can program.

Thanks. Is there any language that you would recommend i start with? I already started learning some Java in college, so i was thinking about learning from there, or is there something else i should learn?
Servant of the Lord
Servant of the Lord
Python is good, but if you already started with Java, I'd suggest sticking with it - it's an equally good choice. You should stick with Java for a few years. Learning any language deeply is more important than learning "the right language". Eventually, you'll want to learn multiple languages, using the right language for the right job - but when starting out, any language that you are capable of understanding is the best language for any job you are capable of undertaking.

Go deep in Java before branching out to other languages. When you do branch out, because of your deepness in Java, you'll find other languages much easier to understand.
elobire
elobire

Python is good, but if you already started with Java, I'd suggest sticking with it - it's an equally good choice. You should stick with Java for a few years. Learning any language deeply is more important than learning "the right language". Eventually, you'll want to learn multiple languages, using the right language for the right job - but when starting out, any language that you are capable of understanding is the best language for any job you are capable of undertaking.

Go deep in Java before branching out to other languages. When you do branch out, because of your deepness in Java, you'll find other languages much easier to understand.


I did try python a while back, but for some reason i just couldnt get into it and enjoy it like i do with Java.
Does anyone know any good books to learn java from?
Thanks for the help
Fredericvo
Fredericvo
I recommend C++ but I'm biased. Have only recently started to appreciate the beauty of it. I don't know Java but I have a feeling it's bloatware and slow just from hearsay so I really don't know if I'm wrong about it.
Narf the Mouse
Narf the Mouse

I recommend C++ but I'm biased. Have only recently started to appreciate the beauty of it. I don't know Java but I have a feeling it's bloatware and slow just from hearsay so I really don't know if I'm wrong about it.

Hearsay is a bad way to form an opinion on a language. And no programming language I've ever heard of tries to be deliberately slow.
Fredericvo
Fredericvo

[quote name='Fredericvo' timestamp='1341791205' post='4957077']
I recommend C++ but I'm biased. Have only recently started to appreciate the beauty of it. I don't know Java but I have a feeling it's bloatware and slow just from hearsay so I really don't know if I'm wrong about it.

Hearsay is a bad way to form an opinion on a language. And no programming language I've ever heard of tries to be deliberately slow.
[/quote]I don't think I said it was deliberate.
DevLiquidKnight
DevLiquidKnight
Without getting into a language war, I think Java, C++ or C# are all excellent choices, I really don't like Java's debugging capabilities though. Personally I found C++ the most versatile and useable as a beginner.
phayer
phayer
I would suggest C# - kinda more fun and motivating to have some GUI easily available.

Don't know how that is done in Java. Only used it for small console apps.
Pashbee
Pashbee
As Java is familiar with you, you could try this path:-

This is an awesome free resource you can download free online - http://math.hws.edu/javanotes/ - I can't recommend it enough. Start by following those notes through and get a firm grasp of computer science/programming basics.

Once you have the basics you can then look at this as a stepping stone to actually getting some games going using purely Java - http://www.amazon.co.uk/Beginning-Java-Programming-Jonathan-Harbour/dp/1435458087/ref=sr_1_1?s=books&ie=UTF8&qid=1341814742&sr=1-1 - This is a very good resource to get you into programming Java games as applets (mainly), and also you will learn which IDE's (Integrated Development Environment) are popular for programming in Java (although Eclipse is probably still the best choice anyway). A word of warning about programming java applets, they can be a real pain to get working sometimes (but there is JWS to make things much easier).

As you move on and get more confident there is - http://jmonkeyengine.com/ - as a game engine choice to program in. It's well documented and seems to have a good community to ask questions from. It also comes bundled with its own SDK....which looks good. This was my choice of game engine in Java before I switched to C# and XNA (which isnt a game engine of course, but more a language and a framework or scaffolding if you like). I don't consider learning Java first a waste of time, it's a fantastic primer language and usable for cross platform game making.

Lastly, since your question is about game development, you have to actually work on your design skills as well to really appreciate how you should approach game design. For this I recommend this book - http://www.amazon.co.uk/The-Art-Game-Design-lenses/dp/0123694965/ref=sr_1_1?s=books&ie=UTF8&qid=1341815432&sr=1-1 - For me, it is the perfect read on game design. It covers important concepts such as game design through iteration, anthropology and other human studies, which allow you to understand the very basics in human thinking. A good game can be a great a game if you get your design fundamentals right.

I HTH and I wish you good luck and lots of fun.


I would suggest C# - kinda more fun and motivating to have some GUI easily available.

Don't know how that is done in Java. Only used it for small console apps.


Sorry phayer, I am not being insulting here but I read this at least 10 times and I am not sure I understand what you are saying? If by GUI you mean IDE (Integrated Development Environment), then yes good call, Visual Studio is a good IDE, has everything you need including Intellisense, ability to mouse wheel zoom into your code (trust me if you're getting old like me this is a big help and I don't think even Eclipse supports this out of the box) and generally the debugging information seems to be helpful.
Please Add Rep if I helped // Working on untitled 2D platformer (more to come soon)
Twitter - @MarkPashby
SimonForsman
SimonForsman

[quote name='phayer' timestamp='1341801904' post='4957126']
I would suggest C# - kinda more fun and motivating to have some GUI easily available.

Don't know how that is done in Java. Only used it for small console apps.


Sorry phayer, I am not being insulting here but I read this at least 10 times and I am not sure I understand what you are saying? If by GUI you mean IDE (Integrated Development Environment), then yes good call, Visual Studio is a good IDE, has everything you need including Intellisense, ability to mouse wheel zoom into your code (trust me if you're getting old like me this is a big help and I don't think even Eclipse supports this out of the box) and generally the debugging information seems to be helpful.
[/quote]

I think he is talking about WinForms or WPF, (The Java counterpart would be Swing)
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
Pashbee
Pashbee

[quote name='Pash' timestamp='1341816346' post='4957170']
[quote name='phayer' timestamp='1341801904' post='4957126']
I would suggest C# - kinda more fun and motivating to have some GUI easily available.

Don't know how that is done in Java. Only used it for small console apps.


Sorry phayer, I am not being insulting here but I read this at least 10 times and I am not sure I understand what you are saying? If by GUI you mean IDE (Integrated Development Environment), then yes good call, Visual Studio is a good IDE, has everything you need including Intellisense, ability to mouse wheel zoom into your code (trust me if you're getting old like me this is a big help and I don't think even Eclipse supports this out of the box) and generally the debugging information seems to be helpful.
[/quote]

I think he is talking about WinForms or WPF, (The Java counterpart would be Swing)
[/quote]

Ahh, understood. That could make more sense.
Please Add Rep if I helped // Working on untitled 2D platformer (more to come soon)
Twitter - @MarkPashby
elobire
elobire
Thanks Pash, those links are really helpfull.
Pashbee
Pashbee

Thanks Pash, those links are really helpfull.


No problems, you're welcome. Good luck and post back with updates.
Please Add Rep if I helped // Working on untitled 2D platformer (more to come soon)
Twitter - @MarkPashby
phayer
phayer
Sorry for not specifying; Yes, I was talking about WinForms/WPF - Swing is the Java counterpart you say? Got to google this. Never really gotten naked with Java.
jimobama
jimobama
Just getting Him Confuse the more, his question is "What is the best way to learn game development?", Answer learn a language first,
The most common Language use for game programming are C++,java,C#, Python and others. But the best of all is C++ which is not sooo easy to deal with. for a beginner i will recommemed java first. because it is easy to deal with compare to C++.

C++ is faster than java in compilation. and many things. u can have more books reference in C++ than in java too.
jimobama
jimobama
Try see this site http://www.toymaker.info/Games/html/beginners.html
SimonForsman
SimonForsman
for a beginner i will recommemed java first. because it is easy to deal with compare to C++.

C++ is faster than java in compilation. and many things. u can have more books reference in C++ than in java too.


I would actually advise against Java for a beginner, it isn't all that easy to write games in (the standard library is pretty much crap for it and having beginners deal with things like LWJGL isn't a good idea imo)), C# with XNA or Unity is much easier to deal with. (Allthough if he allready knows Java moving onto making games with it won't be that difficult)

Also, C++ is far slower at compiling than Java (and most other languages). (This can be a fairly big disadvantage for beginners as you'll quickly hit a point where compiling can take several minutes and unless you throw in scripting support (not that easy if you're still learning the language) you'll have to recompile frequently which really kills productivity (This is most noticable when you start using templates))
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
Narf the Mouse
Narf the Mouse

[quote name='Narf the Mouse' timestamp='1341796900' post='4957099']
[quote name='Fredericvo' timestamp='1341791205' post='4957077']
I recommend C++ but I'm biased. Have only recently started to appreciate the beauty of it. I don't know Java but I have a feeling it's bloatware and slow just from hearsay so I really don't know if I'm wrong about it.

Hearsay is a bad way to form an opinion on a language. And no programming language I've ever heard of tries to be deliberately slow.
[/quote]I don't think I said it was deliberate.
[/quote]
Not what I meant. Just saying people who make programming languages/compilers/etc. tend to make them fast and efficient.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.