Members - Reputation: 101
Posted 03 January 2013 - 01:19 PM
Crossbones+ - Reputation: 23995
Posted 03 January 2013 - 02:00 PM
If you want to learn to program, it doesn't matter too much which language you start with, because you'll end up learning multiple languages later on anyway, so even if you have to "throw away" your knowledge of the first language you learn, you still learn some of the foundational of programming which is shared between most languages.
It is far more important that whatever language you choose, you stick with it for multiple years (think 5 years - plan for the long haul) before changing to a new language.
Some common language choices are: C#, Java, C++, Python
There are hundreds of languages, but about 10-15 "commonly used" languages. Once you learn one (which takes a year to learn the basics of, and multiple years to really comprehend), it's easy to learn others (in a matter of months).
If you are wanting to use the Unity Engine, the Unity Engine uses C# and their own scripting language called UnityScript.
I would suggest not starting with C++ because it's one of the hardest languages - but I started with C++ myself, and am glad I did. However, you have to press through the difficulty through a little self-discipline, because it does you zero good if you start to learn something and then don't follow through.
I typically suggest Python as a great first programming language - it's really powerful, really simplified (in a good way), and has alot of available resources to help you get started. It was also used successfully in several successful commercial games (though to be honest, most large games mix multiple languages together (usually two - the engine language and the scripting language)).
I suggest picking up two books on whatever language you choose:
The first would be a nice thick comprehensive book that walks you through chapter by chapter. This would be a book dedicated to learning the language itself, so don't get one that has the word "game" or "videogame" in it. Don't get something that says, "Game Development with Python" or something of that nature. Get one that is focused on Python/C++/C# itself, without the game-related focus.
The second book would be a bit smaller, more "fun" sounding, and a lighter read. Less comprehensive, it'd be something you can read on the couch instead of at a computer desk, and you can go look up something in the second book if you didn't understand the author's wording of the same concept in the first book. The second book can involve games, if you want, but it doesn't need to.
The primary book you get should definitely be written within the last three years (2010 or later).
Note: If you go with C++, try to get a book written in 2012, since C++ just had a major language update in 2011 (called C++11), and older books would use outdated knowledge.
Eventually, you'll get more advanced books - but don't buy them now, wait until you program for two years before deciding what the weak areas of your knowledge are, then buy or check out of the library books focused on those spots.
I feel a good modern "primary" book and a second fun "couch" book are all you need, and the only expenses that you face. Any gaps in coverage will be supplemented by online tutorials, articles, and discussion forums.
When you need help, for whatever language, learn to try to solve it yourself first*, research it second (in the documentations and in your books), google third, then come here (GameDev.net) and Ask a Smart Question. We're standing by to help while we procrastinate on our own programming projects.
*And after trying it yourself, even if you succeed, look up if there's a more proper way to learn good coding style.
For the first two years of programming, hang around here. Don't try to 'advance'* too soon to 'General Programming' or 'Game Programming', stick in For Beginners, and you'll learn alot - there's no shame in posting in the For Beginners forum, and I start threads to ask questions in there occasionally even after seven years of programming. Read threads that you didn't start, and learn from it, even if it's discussing a different language. Ask questions. Then ask followup questions, until you actually understand or unless you feel you got into a programming topic that is too much too soon for your current level.
*It's not advancement - the For Beginners forum is actually the "For basic questions" forum, that even technical users ask questions in, for example when a 20-year programmer is learning a new language. It's the difficulty of the question being asked, not the skill level of the asker, that decides what questions should go in what forum. General Programming and Game Programming are for technical discussions of advanced programming topics, regardless of the asker's skill level.
Welcome to GameDev, and I wish you well on your journey! Programming can be very frustrating one month, and very very enjoyable and rewarding the next - but it took me nine months of programming before I realized that I actually enjoyed programming for itself, and that it was more than just a means to getting to the fun parts of making a game.
Edited by Servant of the Lord, 03 January 2013 - 02:11 PM.
It's perfectly fine to abbreviate my username to 'Servant' rather than copy+pasting it all the time.
All glory be to the Man at the right hand... On David's throne the King will reign, and the Government will rest upon His shoulders. All the earth will see the salvation of God.
Of Stranger Flames - [indie turn-based rpg set in a para-historical French colony] | Indie RPG development journal
[Need web hosting? I personally like A Small Orange]
Crossbones+ - Reputation: 5986
Posted 03 January 2013 - 02:03 PM
1) The name of the programming language I will need to learn and anything else i need to learn.
2) Suggest and provide a link to a book that might help me or a place where i can learn/suggest a method of learning.
3) Suggest a free game engine which is easy to use for beginners.
4) Please provide links to any other useful resources which will improve my programming knowledge
5) How long it would take to achieve my goal
All of that except for number 5 can be answered by reading this guide.
Five impossible to answer... some people ( savants basically ), might be able to accomplish it in a number of months, others would take years, while some people will never be able to figure it out.
The shortest advice I can give is, don't try to skip the learning curve, you cant. Start by learning how to program, work from there and build on your successes.
Also, you posted in the wrong forum, this should be in For Beginners.
Members - Reputation: 101
Posted 03 January 2013 - 08:28 PM
You can make a first person shooter game quick by using Unity3D.
There are so many free completed projects out there.
I recommend you using C# for Unity3D.
Unity is free if your business revenue is less than a million dollars. You can publish PC, Browser and MAC games for free, mobile plugins are 400 each for IOS and Android.
All the big and small gaming companies are using this
Crossbones+ - Reputation: 3280
Posted 04 January 2013 - 07:28 PM
It sounds like the game engine part of Blender would be perfect for you. If it is eventually needed, then Python used in Blender would be one of the easy languages for your first one.
The other choices are XNA and C# or Unity and C# for my top total newbie recommendations.
I use Blender for some things and it is very powerful.
Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.
by Clinton, 3Ddreamer
Members - Reputation: 602
Posted 04 January 2013 - 07:55 PM
I've only heard bad things about the Blender game engine, so I don't recommend that.
You're already messing with Unity, so start learning C#. Not through Unity, just C# by itself. Pick up a few C# programming books, not game programming books. Practice, create lots of console applications. Then, start messing with Unity. You won't be a very good programmer after this, but you should be able to get some stuff done. Grab a book on Unity and go through it.
You can probably have something up and running within a few months. It wont be very good, but it'll work.