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.

Learning to Program

russsprucerussspruce Registered User new member
edited April 2012 in Help / Advice Forum
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.

russspruce on

Posts

  • AwkAwk Registered User regular
    What languages does your friend know?

    Keep in mind your first game is going to be tic tac toe or something basic.

  • a5ehrena5ehren AtlantaRegistered User regular
    edited April 2012
    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 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.

    a5ehren on
  • Jam WarriorJam Warrior Registered User regular
    edited April 2012
    Not yet checked it out as am on work's crappy browser right now, but found this today and will be looking into it later:

    http://codeyear.com/

    Jam Warrior on
    MhCw7nZ.gif
  • CelestialBadgerCelestialBadger Registered User regular
    C++ is too hard to start with. Try Python and Pygame

    http://www.pygame.org/news.html

  • JWashkeJWashke Registered User regular
    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.

    steam_sig.png
  • kyarangerkyaranger Registered User regular
    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.

  • jackaljackal Fuck Yes. That is an orderly anal warehouse. Registered User regular
    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.

  • JasconiusJasconius sword criminal mad onlineRegistered User regular
    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

    this is a discord of mostly PA people interested in fighting games: https://discord.gg/DZWa97d5rz

    we also talk about other random shit and clown upon each other
  • bowenbowen Sup? Registered User regular
    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
  • jackaljackal Fuck Yes. That is an orderly anal warehouse. Registered User regular
    I wouldn't expect him to write production quality code, but an extra set of eyes is always helpful.

  • Grey PaladinGrey Paladin Registered User regular
    edited April 2012
    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
  • GnomeTankGnomeTank What the what? Portland, OregonRegistered User regular
    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.

    Sagroth wrote: »
    Oh c'mon FyreWulff, no one's gonna pay to visit Uranus.
    Steam: Brainling, XBL / PSN: GnomeTank, NintendoID: Brainling, FF14: Zillius Rosh SFV: Brainling
  • TofystedethTofystedeth Registered User regular
    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.

    steam_sig.png
Sign In or Register to comment.