The new forums will be named Coin Return (based on the most recent vote)! You can check on the status and timeline of the transition to the new forums here.
The Guiding Principles and New Rules document is now in effect.
Hey guys, a friend and I are starting to work on our first game! He already knows how to program, but I want to learn as well so I can make an equal contribution. So do you guys have any advice for where to learn, and what sites to look up? I'm thinking of C++ for the moment, but will take any advice.
If your end goal is to make XBox Indie games, you need to learn C# and how to use the XNA tools. If you are sticking to PC, you'll probably want to learn C++.
For C++, this site is my favorite reference tool but I have no idea how good their tutorials are: http://www.cplusplus.com/
If you want to learn standard (aka ANSI) C++, the easiest way is to install a Linux distribution (or MacOS) and get a dev environment set up. If this is the way you want to go, let me know and I can help.
As someone who started with learning C++ I would not recommend it. I've heard Python is good for learning as Celestial Badger mentioned, but have not done anything with it myself.
Personally I would recommend C#, between Unity and XNA and the vast amount of tutorials and resources for them, it seems like a good way to learn to make games.
Like Awk said, you should find out what your friend knows and was planning to do this in, if he already knows how to program he should have an idea what language he wanted to make it with and what tools he wanted to use. Also like Awk said, start small, tic tac toe or blackjack will likely be your first game, followed by more complicated things like Connect4, and Battleship.
There is no "Visual C++" language, only C++. Microsoft Visual C++ is a programming environment, not a language.
Anyway, in the end, it doesn't really matter what you start with. I would recommend that you start with an object oriented language, as that is the most commonly used these days. Once you learn the basics in any language, going from one or another won't be too difficult. C++ has the most difficult learning curve, but there are a lot of features that you simply won't need at a beginning level.
It really depends on what you want to do. XNA uses C# and Silverlight while Android devices use Java. Most games for the PC are written in both C++ / C and Assembly. I learned starting with C and then moved on to C++ ( I don't really recommend this route).
What is important, is that you stick with one language and not skip around. You might also want to consider picking up Unreal script. It has a very java like syntax and feel to it. UDK is also extremely useful for not just programmers but artists as well. Keep in mind, that there is *A lot* that goes into the production of a video game. So, have fun.
0
jackalFuck Yes. That is an orderly anal warehouse.Registered Userregular
I think the argument that once you learn one language other languages are easy is misleading. There's a whole world of languages that follow different paradigms and have different idioms. Managed/Unmanaged, Strong/Weak typed, Static/Dynamic Type, Functional/Procedural, OOP/non-OOP and even with OOP you have prototype based vs inheritance based. Going from Java to C# or Ruby to Python would be easy, but Python to C# wouldn't be and C++ to Ocaml would be quite a culture shock.
This doesn't really matter in this case because the correct answer is to learn what your friend will be using.
understand that if you start with C++ and immediately jump into a game that your friend, presumably already experienced, is writing, anything you do will probably be disastrous and burdensome
Programming requires massive amounts of repetition and failed projects, learning from mistakes, etc, to become effective.
You must begin with small things, and do lots of them, and do them badly, and then learn why they sucked, and do it better the next time.
The language is less important than your attitude about learning.
If you have zero patience then python is probably better than C++, however
To expand upon what Jasconius said. Programming is like car building. Building a game is like building your own sports car. When you first learn, you're going to be learning how to build your own bicycle, then gocart, then maybe some sort of street legal car. You will be a long ways away from the sports car and likely anything you want to do to help will have to be redone.
not a doctor, not a lawyer, examples I use may not be fully researched so don't take out of context plz, don't @ me
0
jackalFuck Yes. That is an orderly anal warehouse.Registered Userregular
I wouldn't expect him to write production quality code, but an extra set of eyes is always helpful.
If you want to learn how things work on the barest level I highly recommend "The Elements of Computing Systems" once you know a bit of programming. It explains many of the concepts that are abstracted away in higher level languages in a simple, concise, and newbie-friendly fashion (that is, as long as you have some previous programming experience).
Grey Paladin on
"All men dream, but not equally. Those who dream by night in the dusty recesses of their minds wake in the day to find that it was vanity; but the dreamers of the day are dangerous men, for they may act their dream with open eyes to make it possible." - T.E. Lawrence
0
GnomeTankWhat the what?Portland, OregonRegistered Userregular
I definitely recommend Python + PyGame or Ruby + RubyGame to start (and if I let my bias creep in, it will be Ruby every time, because it's awesome).
At any rate, they are simple to program in (no need for a huge IDE or even a compiler, very simple write-and-run), PyGame/RubyGame are simple to use and there are tutorials everywhere, and they will both teach you the basic concepts of programming, which are language independent.
Jumping in to something like C++, or even C#, can be mind boggling frustrating if don't already have some basic concepts of programming down. Languages like Python and Ruby are much more forgiving and have syntaxes that approach "sane" for a normal human that isn't using to looking at brackets and semi-colons all day.
I normally recommend Python for learning to program, but if you're looking to go directly into games, C#/XNA is a really good bet. It's not quite as easy as Python, but it's not as obtuse as C++/C, and it is really really good, for getting games or game-like things together.
Posts
Keep in mind your first game is going to be tic tac toe or something basic.
For C++, this site is my favorite reference tool but I have no idea how good their tutorials are: http://www.cplusplus.com/
If you are using Visual C++ (the Microsoft one), use this site instead as Visual C++ has many subtle differences from "standard" C++: http://msdn.microsoft.com/en-us/vstudio/hh386302
Here are some links for C# and XNA if you want to go that route:
C#: http://msdn.microsoft.com/en-us/vstudio/hh341490
XNA: http://create.msdn.com/en-US/education/basics/xna_framework
You can get free "Express" editions of the Microsoft tools here: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express
Don't download the VS11 beta tools, as most add-ons won't work with it yet.
If you want to learn standard (aka ANSI) C++, the easiest way is to install a Linux distribution (or MacOS) and get a dev environment set up. If this is the way you want to go, let me know and I can help.
http://codeyear.com/
http://www.pygame.org/news.html
Personally I would recommend C#, between Unity and XNA and the vast amount of tutorials and resources for them, it seems like a good way to learn to make games.
Like Awk said, you should find out what your friend knows and was planning to do this in, if he already knows how to program he should have an idea what language he wanted to make it with and what tools he wanted to use. Also like Awk said, start small, tic tac toe or blackjack will likely be your first game, followed by more complicated things like Connect4, and Battleship.
Anyway, in the end, it doesn't really matter what you start with. I would recommend that you start with an object oriented language, as that is the most commonly used these days. Once you learn the basics in any language, going from one or another won't be too difficult. C++ has the most difficult learning curve, but there are a lot of features that you simply won't need at a beginning level.
It really depends on what you want to do. XNA uses C# and Silverlight while Android devices use Java. Most games for the PC are written in both C++ / C and Assembly. I learned starting with C and then moved on to C++ ( I don't really recommend this route).
What is important, is that you stick with one language and not skip around. You might also want to consider picking up Unreal script. It has a very java like syntax and feel to it. UDK is also extremely useful for not just programmers but artists as well. Keep in mind, that there is *A lot* that goes into the production of a video game. So, have fun.
This doesn't really matter in this case because the correct answer is to learn what your friend will be using.
Programming requires massive amounts of repetition and failed projects, learning from mistakes, etc, to become effective.
You must begin with small things, and do lots of them, and do them badly, and then learn why they sucked, and do it better the next time.
The language is less important than your attitude about learning.
If you have zero patience then python is probably better than C++, however
we also talk about other random shit and clown upon each other
At any rate, they are simple to program in (no need for a huge IDE or even a compiler, very simple write-and-run), PyGame/RubyGame are simple to use and there are tutorials everywhere, and they will both teach you the basic concepts of programming, which are language independent.
Jumping in to something like C++, or even C#, can be mind boggling frustrating if don't already have some basic concepts of programming down. Languages like Python and Ruby are much more forgiving and have syntaxes that approach "sane" for a normal human that isn't using to looking at brackets and semi-colons all day.