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.
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.
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.
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.
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.
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.
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?)
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.
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
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.
I'd suggest starting with something like Blitz. Just make sure you learn to walk before trying to run.
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.
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.
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.
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???".