First Love, err... Language

Discussion in 'Indie Basics' started by dypaul, Feb 13, 2005.

  1. dypaul

    Original Member

    Joined:
    Jan 11, 2005
    Messages:
    38
    Likes Received:
    0
    I'm just starting out to learn how to program. I would like to ask you veterans what language I should start with so that I learn all the important concepts/ideas of programming without getting bogged down in all the minutiae of C/C++ rules. My ultimate goal is to learn to program Tetris, to study it to death, to grasp what programming is all about, before tackling C/C++. Thanks.
     
  2. Bmc

    Bmc New Member

    Joined:
    Dec 12, 2004
    Messages:
    1,088
    Likes Received:
    2
    FlashMX 2004 and Actionscript
     
  3. dypaul

    Original Member

    Joined:
    Jan 11, 2005
    Messages:
    38
    Likes Received:
    0
    Another Question...

    If anyone here is self-taught in game programming, can you tell us how long it took you before you could program a game as simple as Tetris?

    Also, where can you find a nice course study program that you can follow on your own, modeled after a real one in college perhaps? Thanks.
     
  4. James C. Smith

    Moderator Original Member

    Joined:
    Aug 21, 2004
    Messages:
    1,768
    Likes Received:
    0
    BASIC -> C -> C++

    Also messed around with Logo, ASM, Java, C#, VB, PHP, forth, and plenty of other stuff. But all my series stuff was the top 3.

    In the early days I used Wang BASIC on mini computers, AppleSoft BASIC on the Apple ][, GWBASIC on the PC, and then MS-Quick BASIC.
     
  5. lakibuk

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    961
    Likes Received:
    0
    I think your post is violating the first rule of this forum's FAQ.
    Anyway. You could start with Java. The language is a little bit friendlier than C/C++. Don't try to start with Tetris, it's not as easy as it looks. Start with a project that does not have graphics. Graphics are usually rather tedious to program. Make a small console game like "number guessing": The game generates a random number 1-100 and asks for your guess. If your guess is lower the game's answer is "the number is higher" and so on.
     
  6. Rainer Deyke

    Indie Author

    Joined:
    Jul 28, 2004
    Messages:
    380
    Likes Received:
    0
    My first language was C. The language that I would recommend to beginners is Python.
     
  7. Gnatinator

    Original Member

    Joined:
    Nov 23, 2004
    Messages:
    357
    Likes Received:
    0
    I second actionscript. I use it for prototyping and creation of more simple games.


    I personally started with C (then moved onto C++), but I would not reccomend it to someone who hasnt touched any programming before. Unless you are very determined (and a little insane), you should start smaller.

    I was programming with the console on and off for a few years when I started. (I was in no rush, so I took my time) Then got into game (graphical) programming after. However, if you keep at it constantly, I dont see why you couldnt be done much sooner. Pong is an excellent starter game btw.


    Formal education, bleh. Get a book and "roll your own" (Thats the best way to go ;)). And yes, I am completley self taught.

    [EDIT]
    Python would also be pretty good. :)

    [EDIT2]
    Java probably wouldnt be too bad either.
     
    #7 Gnatinator, Feb 13, 2005
    Last edited: Feb 13, 2005
  8. Dan MacDonald

    Moderator Original Member Indie Author

    Joined:
    Jul 26, 2004
    Messages:
    1,424
    Likes Received:
    0
    Moved the thread to "Indie Basics" from "Technical"
     
  9. Diodor Bitan

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    251
    Likes Received:
    0
    Be different and start with Lisp. Won't bring you a lot closer to a tetris clone, but definitely closer to what programming is all about.
     
  10. Triple_Fox

    Original Member

    Joined:
    Dec 18, 2004
    Messages:
    49
    Likes Received:
    0
    It doesn't matter where you start, just that you keep at it: it's progressing that's really difficult. These are some things I studied to get to where I could really start writing my game without difficulty:

    -Comparisons of languages. Find one or two that suit your needs, and learn their differences(by experience if needed). There aren't really many "bad" languages, and you can make code for nearly any task with nearly any language - the main limitation is hardware access. But the included features, library support and an inevitable ingrained preference towards some features over others is what differentiates them. If you really want stuff on the screen quickly, aim towards the higher level languages. But going from "stuff on the screen" to "game" really required of the following things...
    -Data structures. These are good for going past "Hello world" and "1+2=3" programs into semi-interesting applications.
    -Object-oriented code. This was the really big, popular concept of the 90s(but of course invented far earlier) and it is indeed useful when applied thoughtfully. I found it hard to grasp initially because it seemed so darned abstract and unrelated to computing; it became useful when I finally realized that objects were just another of several ways to store and manipulate data.
    -Algorithms. They involve more math than data structures, so they're usually tougher to implement, but are also good practice and come in handy to do a lot of things from pathfinding to 3d graphics.

    Once I had all of those things covered, making the step into game-making was just a matter of applying the above to "putting stuff on the screen" so that I could get a little skeleton game and toolset together, then rewriting the code many many times until it had reached a state where I felt it was clean enough to do something more complex(i.e. the game I wanted to do). Things like timed gamedev competitions(Ludum Dare mostly) also helped push me along to try new things, but the simple grind of alternately adding a feature and then reworking an existing one so as to make further features easier to add has been the brunt of my work since last summer.

    Of course, I've aimed a lot higher in complexity than what a lot of indies try out of the gate, which means I still don't have a finished game; it's certainly not the commonly recommended indie strategy, but I've also been careful to make it something where if the first attempt doesn't turn out so hot, I can reuse most of the code and even the art for a totally new kind of game and get something new ready in a matter of months(weeks even?)
     
  11. Vectrex

    Original Member

    Joined:
    Aug 22, 2004
    Messages:
    205
    Likes Received:
    0
    really, try BlitzMax (not blitzbasic). BlitzMax is beautifully simple yet has all the major programming concepts (Like object orientation), not to mention is dead easy to actually get something on the screen (java/c/c++/python even flash take alot of messing about)
    It's mac at the moment with windows being released soon. A LOT of the games you see on this forum are BlitzBasic games (Blitzmax is the 'sequel')
    www.blitzbasic.com
    I remember how much fun and productivity I had in AMOS on the ol' Amiga. Every thing else is horrible in comparison. If you've never programmed before trying to do 'real' programming is pointless as long as you don't want to make the next HalfLife2.
     
  12. Abscissa

    Original Member

    Joined:
    Nov 27, 2004
    Messages:
    677
    Likes Received:
    0
    I always found QBASIC to be a good starting point.
     
  13. princec

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    4,873
    Likes Received:
    0
    Start with BASIC. I think Blitz will do the job and get you results on the screen fast, which is extremely gratifying.

    Then move on to Java :)

    Cas :)
     
  14. svero

    Moderator Original Member Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    3,392
    Likes Received:
    6
    I agree blitz is a nice starting point. It reminds me of programming games in extended basic on the TI99/4a. It had basic sprites and stuff.. That's how I started many years ago.
     
  15. luggage

    Moderator Original Member Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    2,132
    Likes Received:
    0
    I'd suggest starting with something like Blitz. Just make sure you learn to walk before trying to run.
     
  16. Escotia

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    82
    Likes Received:
    0
    This does not seem a suitable post for these forums IMO. How much does 'I need to learn to program' have to do with running a successful Indie Business?

    I don't want to tell the mods how to do their job because it's one I wouldn't want but it seems to me like the general focus of these forums is changing for the worse.

    It's not too far from posts like this to GameDev.net

    Slippery slope.
     
  17. C_Coder

    Original Member

    Joined:
    Dec 21, 2004
    Messages:
    297
    Likes Received:
    0
    We can suggest you all the languages that exist but it is up to you to choose what is best for your project.

    I started with BASIC (in the old days) then Z80 ASM, QBasic, 8086 ASM and then C/C++ and C# apart from other scripting laguages that can be used for quick testing.

    Since Tetris is not a fast action packed game but more of a puzzle game, it can be programmed with any programming language available today.

    BASIC is very easy to pick so I would suggest VB.NET if you wish to use the .NET framework.

    Anyway, as I already said, you have to choose the right tool for the right job.
     
  18. ggambett

    Moderator Original Member Indie Author

    Joined:
    Jul 26, 2004
    Messages:
    1,982
    Likes Received:
    6
    Heh, my "path" is almost the same as James's. ZX Spectrum BASIC -> gwbasic/qbasic/turbo basic -> C/C++.

    Nowadays I'd recommend Python without thinking twice.
     
  19. Jim Buck

    Indie Author

    Joined:
    Jul 27, 2004
    Messages:
    1,158
    Likes Received:
    0
    Whoa, that brought back memories! I also started on a TI-99/4a. I still have all my stuff (including that crazy large floppy drive system) stored away somewhere. I remember trying to learn the assembly language back then and thinking "WTF???". :)
     
  20. Dan MacDonald

    Moderator Original Member Indie Author

    Joined:
    Jul 26, 2004
    Messages:
    1,424
    Likes Received:
    0
    LOGO->C->pascal->VB->C++

    Makes no sense I know, but that's how I learned em.
     

Share This Page

  • About Indie Gamer

    When the original Dexterity Forums closed in 2004, Indie Gamer was born and a diverse community has grown out of a passion for creating great games. Here you will find over 10 years of in-depth discussion on game design, the business of game development, and marketing/sales. Indie Gamer also provides a friendly place to meet up with other Developers, Artists, Composers and Writers.
  • Buy us a beer!

    Indie Gamer is delicately held together by a single poor bastard who thankfully gets help from various community volunteers. If you frequent this site or have found value in something you've learned here, help keep the site running by donating a few dollars (for beer of course)!

    Sure, I'll Buy You a Beer