Starting up.

Started by
10 comments, last by Somarl 14 years, 1 month ago
Hi folks, first post here. After 30 years i have finally decided to take the plunge and learn to code. I did a very small amount of basic back in the Amiga days and am literally bursting at the seams with ideas. However we all know you cant just step into a programming forum and demand your game be made while you stand over overseeing every fine detail. People simply wont work for you just because you have an idea thats good. I feel the best way to even begin to make some of the ideas i want is to program myself and get as much depth and understanding on the subject as i can. I am doing this with a friend who is also relatively new to programming and as 2 heads are better than one we hope we might be able to accelerate our learning a little, we also share most of the same game ideas. It is my hope that one day, perhaps after 10 years or so of coding we will be at a competent enough level to gather up a small team and maybe use an engine to produce a game that we want. I have read Dave Astle, John Hattens and Geoff Howland guides on this site and found them to be fantastic. Especially the guide on what games to do first and why. In it he mentions starting with tetris and moving on from there. All i ask is how do i get my hands on a good tetris beginners guide for c++ (what i have chosen to learn in) so me and my friend can begin our journey. Then after this he reccomends a breakout clone, followed by pacman and then super mario clone. Does anyone know where i can begin with great tutorials for complete beginners on all of the above? This site seems to be a fantastic resource, thanks for the help chaps.
Advertisement
Quote:In it he mentions starting with tetris and moving on from there.
When he says start with Tetris, he doesn't mean, first program you write as a beginner is a tetris game. That means it's the first non console game you may consider writing.

By the time you tackle a tetris game, you should have already written sufficiently complex console based programs. Jumping into tetris as a first program is a disaster, because it leads to you asking:

Quote:All i ask is how do i get my hands on a good tetris beginners guide for c++
Google???

But also, consider what a tutorial is. Someone else programmed tetris. Someone else spent time and figured things out. Then they posted a set of instructions which you follow. You want to learn to program? Don't follow a tutorial. Figure out on your own.

Quote:Then after this he reccomends a breakout clone, followed by pacman and then super mario clone. Does anyone know where i can begin with great tutorials for complete beginners on all of the above?
Then after you are done with these beginner tutorials, what will you do for an intermediate game? Look for an intermediate tutorial?

You imagine that after following beginner tutorials, suddenly, you'll be enlightened enough to program without third party help. False.

If you want to learn to program, stop following tutorials, and start solving problems by yourself. A tutorial is a recipe of instructions from another programmer. Following a recipe of instructions is NOT programming.
Yup, the most important stuff you learn as a programming beginner is to learn how to learn o_O', how to think for yourself and how to manage your time.
I, a beginner, used these to learn what i know:

Learn c++ :

Great C++ Video Tutorials
More c++ Tutorials
Good enough e-book teaching c++

Next you should learn an API (I went with Win32)
Just google for tutorials. The first link i gave you has some Win32 tutorials that should get you started with the API.

And finally you will need to use a graphics API, again google it. The two most popular ones are OpenGl and Directx.

Don't jump to 3d or 2d games too fast though. I made some simple console games (text based, no graphics) such as BlackJack, Tic Tac Toe, a simple strategy game and even a text based sims! before i jumped into graphical games.

Have fun :)
"Spending your life waiting for the messiah to come save the world is like waiting around for the straight piece to come in Tetris...even if it comes, by that time you've accumulated a mountain of shit so high that you're fucked no matter what you do. "
Sorry yeah i should have been more specific with my choice of words. By tutorial i guess i dont really mean that because the achievement of programming Tetris for example is not my "end goal", i do actually want to program it while learning what does what and why, i am not sure what this is called but i chose the word tutorial which i guess was wrong. Google is not being very friendly to me at the moment and all i am coming up with is "ultimate beginners guides" which still dont really put me at the very beginning. After "hello world" im not sure which direction to take and i could spend hours and hours searching google for the best "tutorials" (theres that word again) but i actually wanted what the community thinks would be the best startup guide for a total novice (by total i mean someone who doesnt even know how libraries work)

Lots of people say figure it out on your own but im the type of person that would load up a compliler or whatever and just sit there staring at the screen. Im an excellent learner, i can not self teach from absolute 0. If given the right resources i can alter things, understand them and then begin to mix things up enough to start to self learn but until i get on that block im pretty clueless. Take photoshop for example, i have looked at it on and off for years not having a clue what any button does. We then needed it for work so my boss brought some guy in to show us what was what, 3 hours later and i picked up enough to be of reasonable competence now 2 years down the line, i just needed the starting block. All i have to do is google things and i can pretty much follow and understand the core of them to do what i need to on photoshop (not that im great at graphics its just an example).

@Wayoff, thanks very much i will take a look at these tonight and forward them to my friend also.

Oh and where i live has a very poor library and a a very poor bookshop :) so if i buy any books it will have to be from amazon which i am skeptical about doing because many of them have negative reviews regarding competence levels but if anyone recommends any other books for a nub like myself i will gladly look into it.

Once again guys, thanks for the fast replies, i am already feeling at home in this community.
Quote:Original post by Somarl
decided to take the plunge and learn to code.

Without any current experience and only BASIC in the past, consider learning "to code" in a suitably friendly language: &#106avascript, Ruby, Python.<br><br>These things have incredibly low barrier to entry <a href="&#106avascript:alert('Hello World!')">&#106avascript:alert("Hello World!")</a>, they allow for trial and error approach, and are current generation's first languages - which means there are a lot of newbies asking the same questions you'll ask.<br><br><!--QUOTE--><BLOCKQUOTE><span class="smallfont">Quote:</span><table border=0 cellpadding=4 cellspacing=0 width="95%"><tr><td class=quote><!--/QUOTE--><!--STARTQUOTE-->perhaps after 10 years or so of coding we will be at a competent enough level to gather up a small team and maybe use an engine to produce a game that we want.<!--QUOTE--></td></tr></table></BLOCKQUOTE><!--/QUOTE--><!--ENDQUOTE--><br>Think about it in reverse.<br><br>The year is 2000. Nothing that was relevant back there matters anymore. There are lessons to be learned as far as career goes - but technology, methodologies, platforms, users, interfaces have changed completely.<br><br>These days, you should be thinking in terms of 10 days to accomplish something. 10 years simply isn't an option anymore.
Actually Antheus i think you have a good point there. The way i was sort of thinking is (and ill use your 2000 example here) that if you wanted to make a game of 2000's standards then i guess everything you could lean in 2000 would be relevant, not just that but although less is applicable by todays standards knowing a lot then would surely help just a little with todays extra advancements.

I would be more than happy doing games that are to todays standards, even though i think that will be a pipedream as seen as it takes EA 1500 people to make a game as simple as mirrors edge, which while good and must have been a bitch to make, lacks depth and longevity imo. But i would like to think that c++ will still be around or some variation of it, in a few more years to come and will at least be able to achive evetything that any publisher can bring to the table right now. If they make a programming language and engines that simplify this process then i bet ill still be all the better knowledge wise learning what i can now. Your right though, the next ten years will bring some very very different things.

I have a friend studying java at the mo, but i was under the impression that it was quite limited and not as "powerful" as c++ (although easier) and mainly good for web based games etc rather than commercial games, which is what i would eventually like to aim for.

I chose c++ as i would not only like to make more advanced games in the future but also perhaps use game engines and most seem to like c++, obviously for the basics i would pick something simple like java or basic for say a 2d space shoot-em-up but i would like to eventually take things a big step further and after reading some guides it seemed like that was the logical choice. Maybe i am wrong about java and its capabilities, maybe that would be a better place to start before moving on to c++?
Hi Somarl,

Everyone has there own opinions on where people should start. My opinion would be something simple like BASIC or Python, while in early stages of learning to program it's not about learning the syntax but learning about different programming techniques starting at the basics, Variables, Arrays, Methods/Functions ect.. My advice would be to stick to procedural programming aswell until you fully understand it then move to OOP. Once you learn these basics moving from BASIC/Python to something like C++ should'nt be so hard as you will just have to learn about OOP then learning the syntax of what you have learnt already.

Jumping straight into C++ may seem like a good idea because once you "master" that you will find it a doddle to learn most other languages, but it will prolong your learning starting here as you will pick things up alot slower.

There will be people who will disagree with my post, but as I stated this is just personal opinions.

Good luck,

OneHitWonder
Quote:Original post by Somarl
Actually Antheus i think you have a good point there. The way i was sort of thinking is (and ill use your 2000 example here) that if you wanted to make a game of 2000's standards then i guess everything you could lean in 2000 would be relevant, not just that but although less is applicable by todays standards knowing a lot then would surely help just a little with todays extra advancements.

Not really. To recreate state-of-the-art from 2000 is a matter of a few hours today by selecting a free off-the-shelf component. Then there are all those other dimensions, such as social networking, mobile computing and pervasiveness of virtual machines. Quake runs in browser today, as a plugin.

Quote:I would be more than happy doing games that are to todays standards, even though i think that will be a pipedream as seen as it takes EA 1500 people to make a game as simple as mirrors edge, which while good and must have been a bitch to make, lacks depth and longevity imo.

Actually, EA just fired those 1500 people, and instead bought a small "indie" shop for $300 million.

Quote:But i would like to think that c++ will still be around or some variation of it, in a few more years to come and will at least be able to achive evetything that any publisher can bring to the table right now.

C++ will be around. But where will you run it and what will you do with it?

Downloadable applications lose some 9/10 conversions compared to online/embedded apps. Or, 9 out of 10 users that hear about it won't bother downloading and installing it, they want it instantly available.

iPhone is Objective-C and OGL-ES, android is Java. PC is Flash/ActionScript and soon HTML5+&#106avascript. Consoles are gated communities with high barrier of entry, XNA is C#.
Unreal Engine is UnrealScript and available for free. Unity3D is C#, also free.

The problem is that language doesn't do anything - you need platform support on user's side, and that is no longer there. iPad is closed, smartphones are moving towards gated systems on managed platforms, PC is Windows/Unix/Mac, ...

Yes, C++ will be there. Just like COBOL, Java and their friends. Just not in the form relevant for developers.

Quote:I have a friend studying java at the mo, but i was under the impression that it was quite limited and not as "powerful" as c++ (although easier) and mainly good for web based games etc rather than commercial games, which is what i would eventually like to aim for.
Java is COBOL. It is for big iron enterprise apps. I didn't mention it as good alternative.

It's up to you, just remember that there are languages, none of which do anything useful, and then there is platform. Platform is what your users use, and the barrier to entry for native applications is simply prohibitive.
"I have a friend studying java at the mo, but i was under the impression that it was quite limited and not as "powerful" as c++ (although easier) and mainly good for web based games etc rather than commercial games, which is what i would eventually like to aim for."

While the Java is not ideal for games, it could be a good language to start with nonetheless:

1) You can put your games online and get feedback from players. You can do that with C++ games, but people are more inclined to play a game on a web page than download it.

2) You might make a popular web game which would impress employers and potentially make you a fair bit of money from ads. Not rich, but maybe enough for a new car or something.

3) It is fairly similar to C++ in terms of syntax. Having learned Java, you will at least be able to read C++. You should be able to transition to C++ from Java fairly easily.

4) Calling Java limited and not powerful is rather unfair. It is only a little bit slower than C++. It can call C++ libraries through the JNI, so it can get around the limits of what a pure Java program can do. It also has threads built into the language, garbage collection, plenty of interesting core libraries and it is designed with networking and the internet in mind. Actual MMOs have been written in it, such as Runescape. You might find yourself coding part of your magnum opus in Java, even if most of it is in C++.

[Edited by - badjim on February 25, 2010 6:00:48 PM]

This topic is closed to new replies.

Advertisement