Sign in to follow this  

Starting up.

This topic is 2849 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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 :)

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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: javascript, Ruby, Python.

These things have incredibly low barrier to entry javascript:alert("Hello World!"), 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.

Quote:
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.

Think about it in reverse.

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.

These days, you should be thinking in terms of 10 days to accomplish something. 10 years simply isn't an option anymore.

Share this post


Link to post
Share on other sites
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++?

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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+javascript. 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.

Share this post


Link to post
Share on other sites
"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]

Share this post


Link to post
Share on other sites
Quote:
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.
But, that's not programming. Programming, with all the tools and modern knowledge stripped away, is problem solving. Here's what problem solving roughly is:

1. Take a problem.
2a. If problem seems "trivial" to solve, attempt to solve.
2b. If problem was not trivial to solve, break it down into subproblems.
2b i. Repeat step 1 on each subproblem.
2b ii. Solve problem trivially given that subproblems are solved.

The real challenge falls into breaking down into subproblems. Can you do this in a useful manner (i.e. subproblems are ? Can you do it quickly? You can't learn to break down problems by reading solutions. There's countless people who tell you about how they can read code. But give them an exceedingly small problem to program from scratch, and they fail miserably.

You say you want to program. That means you need to engage in taking some problem and solving it. Not looking at a proprosed solution, and then understanding it. Being a good reader does not make you a good writer.

I am not proposing you start from absolute zero and make real applications from there. There are books and learning resources that will teach you the fundamentals of a language. In doing so, they will present you with simple programs and walk you through how it works.

However, these programs are incredibly trivial compared to Tetris clones. They are isolated examples intended to illustrate concepts. You need to engage in lengthy problem solving to take something as complicated as Tetris, and decompose it into subproblems that you can tackle with the concepts you know.

That's all I'm saying. Instead of looking for guides on Tetris, focus on first just acquiring fundamental knowledge. Then challenge yourself to solve increasingly complex programs. And it will be quite a while before you feel that you can comfortably tackle making a Tetris clone.

You do want to make something more complicated than Tetris in 10 years, right? You have 10 years to practice. If I want to be a good writer in 10 years, I start practicing writing from day 1. If I want to be a good artist in 10 years, I start practicing from day 1. Want to program complex games in 10 years? Start with simple stuff from day 1. Not reading code. Actually writing.

Share this post


Link to post
Share on other sites
Quote:
Original post by oler1s

That's all I'm saying. Instead of looking for guides on Tetris, focus on first just acquiring fundamental knowledge. Then challenge yourself to solve increasingly complex programs. And it will be quite a while before you feel that you can comfortably tackle making a Tetris clone.


This is pretty much what i intend to do. As i feel i need fundementals first before i can move on to anything else. I was just sort of stuck between the transition of learning how "hello world" works to then moving on to whatever is inbetween that and the equivilant of tetris. If i wanted to learn how to write i would try to learn the alphabet first then see how a pen works (if i didnt even know what a pen or ink was or which way to hold it up to make the ink come out.) because i dont believe you can write straight away. As for programming it is solving problems your right but i feel i need to know some basics and have a good starting point so i can create something that has problems to solve in the first place. I think people took the words tutorial a bit too literally (i apologise im not sure what word i was looking for) but my best method of learning is actually being shown, if someone sits down with me and points out why each line of code does what and how it is applicable to any program or some programs etc, this isnt always possible as i have no-one like that who can help so i have to do the next best thing. Read and code and look at what each element brings to the table, that might be a good start.

I understand it will be a hard journey but im old and wise enough not to delude myself into thinking ill be able to break new technology boundaries in 20 minutes and make the next mordern warfare game on my own but ten times better than a full team of very highly paid developers. I wont and never will but thankfully this is not my goal. Im glad you folks arent pulling any punches when it comes to making me understand that this will be a tough journey. Id like to take the next 6 months to a year working like a MF and see where i am up to. If i feel i can learn more i may persist, if not ill leave all games to the very talented devs who handle them and never step foot into the world of coding again :) If it was so complicated to the depths of hell (and im sure its difficult for a beginner but not almost impossible) to program tetris im sure there wouldnt be a games market as i truely think people couldnt be bothered spending 6-8 years just to be able to code tetris with no bugs, we'd never get anywhere. I wont be starting with this of course and im sure ill have plenty of problems when i eventually do.

From what some of the replies have said i am gathering a certain vibe for the direction of gaming, mostly due to the next generations lack of patience in wanting to instaplay a game, instaenjoy and instaquit. mainly web based games or stuff like farmville being the future. Im not really into this though i think it certainly is the future being that everyone is losing patience with everything but i will always prefer games with a little more depth and longevity. Do i detect even i hint of bitterness towards them from some folk (if so i really dont blame you at all) based on the fact that some people may have spent the last 8 years learning to code and spent 2 years making an rpg (or something) that people will be less interested in than something like a very simple farmville type game because it lacks that instant pick up and put down simplicity (sorry if that came across as arsey and sarcastic, i really dont mean is that way at all.) This i think drives me on even more to do my own thing as i believe there will always be (although ever shrinking) a small market for people who want to play a game with a little more depth and a learning curve, this wont make you the money like a farmville game could with its ad's and such plus it will more likely take 10 times longer to code but i believe in it and i guess thats all that matters.

Once again thanks for your time folks, im getting some great feedback here and trust me i am listening and taking it all in, even if it sounds like im rambling :)

Share this post


Link to post
Share on other sites

This topic is 2849 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this