Sign in to follow this  
OdHero

Help for a noob

Recommended Posts

Hi. I need help on where to start making games. I read a article on this site about where to start, and although it was useful in knowing not to start very ambitious, it didn't help me in the way I needed. I am a super noob in making games. I havn't even started really. All I know is, I am a gamer, youngish, and I want to start making games. But I really have no idea to start, I don't know anything to do with making games. So where to start, what things I'll need to make games, software, what tutorials to start out. Forgive me if I havn't explored the site enough to find the answers, but if there is answwers in topics on this site a link would help. Thanks in advance

Share this post


Link to post
Share on other sites
To make a game you need to be able to program. See this thread for some information about programming in general.

First choose a language. Viable options include C++, C#, Visual Basic .NET, and Python. Since you have no experience whatsoever, I recommend Python. It serves as a great introduction to programming concepts, and will hide you from the exceptionally difficult problems (usually memory management).

You can learn more about Python at their website.

You can also download a plug-in library for Python called PyGame which provides functionality required by games, such as graphics, audio, input, et cetera. It can be found here.

At your skill level, it's probably best you don't even attempt graphical games for quite a while. Programming is an art, and a difficult one to master. You need a firm grasp of programming concepts if you are to make a piece of software as complex as a game.

I recommend you start making console programs to test out various programming constructs. Then apply these to simple console games, such as Guess the Number, or after a month or so, Tic-Tac-Toe.

HTH,
nilkn

Share this post


Link to post
Share on other sites
Thank you, I will start now.

Seeing a python is easiest, does that mean, on a different programming software it will be better, if I was good at them both.

Also what does binary have to do with programming, forgive me if that is another stupidly foolish question.

Share this post


Link to post
Share on other sites
Quote:
Original post by OdHero
Thank you, I will start now.

Seeing a python is easiest, does that mean, on a different programming software it will be better, if I was good at them both.

Also what does binary have to do with programming, forgive me if that is another stupidly foolish question.


Python, when compared to languages such as C++, is pretty lacking in power. So a skilled C++ programmer could do much more than a skilled Python programmer (assuming they each use their respective languages exclusively; there do exist ways that both languages can be used together).

Binary is the code which the processor understands. The compiler takes textual code such as C++ and converts it into binary, which is then mashed into an executable file.

Python, however, is not a compiled language. It is interpreted, meaning that instead of the code being compiled down into binary, there is a program always running in the background call the interpreter which has the ability to read your textual code.

Because the interpreter has to parse your code, Python is quite a bit slower than C++. However, for you this is irrelevant. In a year or so you'll need to start worrying about speed. Until then, concentrate on just learning the basic concepts.

Share this post


Link to post
Share on other sites
Just start with regular python first then move onto pygame. Binary is important to know because it basically runs computers and software. 0 is off, 1 is on. You should at least have a basic understanding of it.

Share this post


Link to post
Share on other sites
A lot of game programming companies use different things from java with mobile phone games, PC games use more C++ and check out if you want to learn more:
http://www.womangeeks.com/hello/learning/highlevel/cpp/intro.html
Yet you should really learn another one first at least javascript since it requires no compiler. Or even something like Visual basic since it's a lot more visual then a lot of other to begin with.

Share this post


Link to post
Share on other sites
While binary underlies everything we do, the whole history of computer science is a struggle to get as far away as possible from programming directly in binary. Modern programming languages do quite a reasonable job of hiding away the ones and zeros. I would not worry about this for now, if you are just starting out; it will be a long time before you need to do anything tricksy with bithacks or octal. Learn to do simple loops and conditionals first, that will serve you a lot better in the beginning.

Share this post


Link to post
Share on other sites
Whoa this is incredibly hard, the tutorial I was following wasn't helping AT ALL, can anyone give me a link to a recent and good python tutorial.

Share this post


Link to post
Share on other sites
http://www.honors.montana.edu/~jjc/easytut/easytut/node3.html

Try that one, it's the one I am using, if you haven't tried it already.

Share this post


Link to post
Share on other sites
I started programming seriously with C++, when I was 14. I flirted temporarily with Visual Basic before that, but

<rant>STAY AWAY! It is pretty much worthless, unless you are a 1337 h4x0r who is making some kind of phishing software or trojan horse and can't make his own GUI worth shit.</rant>

Anydangway, ignore SKATIN_HARD. Don't even look at binary or machine code, until you are like me, weird, knowledgable to a slight extent (very slight in my case), and want to make your own interpreted language.

I like C++ and recommend it to beginners because learning it, although difficult, comes with the knowledge that you are learning a useful, industry-standard language that can and has been used to make Halo, Starcraft, and pretty much any professional game on the market. I'm quite happy. I think it would have killed my enthusiasm if I learned some language that wasn't so standard, and then learned that "OOPS! Can't apply this syntax to professional work!" Learn C++ first, then move on to python or other languages afterwards. You want to experiance several languages after you have gained some skill with your first, so that you can learn to apply concepts across any language.

These skills will come with time, my Padawan. For now, code.

[EDIT] All you need to start programming in C++ is dev-cpp (google dev-cpp and bloodshed). It is an IDE and will make it much easier for you to compile your code.

Share this post


Link to post
Share on other sites
listen to silver =O
start with c++, it's not as hard and evil as everyone makes it out to be
it's what I started with and I'm learning slowly, but getting it
buy some books on it, and withing a month or 2 you'll have the basics down
other then that I don't have any advice, I wish you luck though =)

Share this post


Link to post
Share on other sites
I see little point in starting with C++, you'll find it far more frustrating then something such as Python as it will require a lot more work to create basic 2D games (like Pong or Tetris). Sure it may be the 'Industry Standard' language but what you need to realise is knowledge of a particular language isn't that important, knowledge and experience of programming is and Python is a better language than C++ to introduce you to programming.

As for a good introduction to Python check out How To Think Like A Computer Scientist.

Share this post


Link to post
Share on other sites
I started by learning the basics of C++ but got discouraged because making graphic programs with it requires Windows programming. I then went to Visual basic which allows you to make graphical programs right for the start, it also teaches the basics of programming.

This is only my opinion but I find C++ is nasty if you are not extremely patient. For me I wanted to see some results quicker. I read 3 books on C++ and still was not even close to being able to make 2d graphic games. With Visual Basic I made a really cool slot machine within a moth of starting. I will admit that learning the basics of C++ (functions, pointers, what OOP is ect) really helped me understand VB quickly. I will be returning to C++ again soon but only after I find a good tutor to speed up the process.

Good Luck


Share this post


Link to post
Share on other sites
Oh please, can we start over? DO NOT LISTEN TO NEWBIES WHO SAY "I started with C++, so that must be the best language, and I can recommend it over anything else".
No offense, guys, but learning C++ first will *not* give you some big advantage. Python is as much an industry standard as C++ is. Lots of games use Python for scripting and C++ for the engine. Before we advise newbies on their choice of language, can't we make it a habit to ask ourselves "How qualified am I to judge this?" If you know C++ but not Python, are you really in a position to say that C++ is a better starting language?

VosKeyGen:
Quote:
it's what I started with and I'm learning slowly, but getting it

So, what you're saying is not that C++ is a *good* starting choice, but only that it is possible to learn it (slowly). Exactly how helpful is that? ;)

As someone who actually knows more than one language, let me just point out that once you've learned programming, jumping to a different language is ridiculously easy.
If you're good at python, I'd say you should be able to pick up C++ in a day or so. The basics of the language in 30 minutes, maybe an hour, and then the rest of the day to get some practice with the extra features and quirks it offers.

Please, when posting in these threads, keep in mind that you're talking to a guy who has no clue about anything whatsoever(exaggerating a bit to make a point. No offense, OdHero [wink]), and if everyone just throws in their own personal preferences, or "I am learning C++ now, and I haven't yet given up, hence C++ must be the best language", or "I only know one language, so logically, all other languages must be inferior, and you'd be wasting your time if you start with those", it ends up in a muddle with 30 conflicting suggestions, which is just not very useful.

When starting programming, it doesn't matter the least whether your language was used to make Halo. What matters is that it lets you program, and you learn programming principles, so at least base your advice on that.

Ok, that was my rant of the day. I hope I didn't offend anyone too much. Don't take it personally, I've just seen too many threads with too many people confusing newbies with advice they just don't have the knowledge to give.

Now, getting back on topic. Python is a very popular beginners language, and yes, it is in its way as powerful as C++. Some things are easier to do, some might be harder, and some might run a lot slower than if you used C++.
What you need when starting out, is to learn programming, not individual languages like C++ or Python. You need to get into a programmers way of thinking, learn how take any problem and write it down as code. Both Python and C++ and any other language will teach you that, and once you have that skill down, you'll be able to learn new languages in a matter of hours.

The main difference between C++ and Python is that C++ requires a lot of extra work to do anything. This is a blessing and a curse. Obviously, when you have to do everything yourself, it also means you're in control every step of the way.
But it also means you have to worry about a lot of completely irrelevant things, you have many more ways to introduce much nastier bugs, and it just takes far longer to write anything.

To someone learning programming, none of the above is positive. You need to learn programming, not "how to manage memory", or "How to communicate with the graphics card". Having to deal with those distractions doesn't prevent you from learning programming, but it certainly doesn't make it easier either. They're just that, distractions.

To someone who knows programming, the above can be useful, because while it does cause a lot of headaches, and certainly will slow you down when you try to write your game, it also gives you the low level control you might need.

Finally, Visual Basic (VB) might just deserve a mention too, as people occasionally suggest starting with that. It is renowned for teaching bad programming habits, and a lot of people hate it with a passion. But of course, it's not all that bad. It's easy to get started with, and while it doesrely on some things that are considered very bad style in other languages, it doesn't mean you'll be marked for life, and will never be able to learn "proper" programming.

Quote:

Also what does binary have to do with programming, forgive me if that is another stupidly foolish question.

It's all binary. Everything is binary, binary is everything. Ok, so this sounds like some cheap zen philosophy, but that's what it comes down to. Everything you do on a computer is fundamentally binary. Instructions to the CPU are binary sequences, all the data you manipulate (numbers, text strings, graphics) are series of binary digits.
Mostly though, people try to abstract away from this, for example by using programming languages instead of writing machine code directly. So you don't really need to know anything about binary when starting out. Later on, it becomes handy to know, because you'll occasionally have to manipulate individual bits in a number, for example, or to understand why some weird behaviour happens.
For now though, don't worry about it. ;)

Edit: Just skimmed the How To Think Like A Computer Scientist link provided above, and it looks like a true gem for people starting out with programming. Even if you start with another language, I'd suggest at least skimming through that tutorial.

Quote:

Ok thanks but how much does C++ program cost? Is it free?

There is no single C++ program. C++ is nothing more than a set of rules for how a text (your file containing the program code) should be interpreted.
Anyone can make a program that reads such a file, and uses it to generate a program that the computer can run (A compiler), and lots of people have done so. On Linux, the de facto standard is GCC or G++, which is free. On Windows, the professional standard is Microsoft's Visual Studio, which is expensive. [smile]
The most popular free tool for Windows is, as far as I know, Dev-C++.
The last two include an IDE, which is basically an advanced text editor to make thing easier for you. The code you're going to write is simply plain text, and so you could write it in Notepad if you liked. But obviously, a program that actually knows the syntax of the language can make things much easier for you, by highlighting keywords, guessing what you're trying to type, and with tooltips telling you what's what when you hover the mouse over a piece of code.

[Edited by - Spoonbender on June 14, 2005 9:12:57 AM]

Share this post


Link to post
Share on other sites
Well, I started with about 6 months worth of experience in VB, and I do recommend it as a basis to programming, and to get your head in the right place. Then, I suggest moving to something like C++, Java, or even Python. All of them have their place. I don't have game programming experience like most of the people you will encounter here, but I do have a strong background in coding.

Make your 'Hello, world!'s, then move on to random number generators, then move on to string manipulation, then move on to recursive algorithims, then to matricies. Then think about graphics. The more of a strong foothold you have in the language of your choice, the easier it will be to pick up the rest.

Hope thats of some help.

Share this post


Link to post
Share on other sites
Quote:
Original post by MarkovChain
Well, I started with about 6 months worth of experience in VB, and I do recommend it as a basis to programming, and to get your head in the right place. Then, I suggest moving to something like C++, Java, or even Python. All of them have their place. I don't have game programming experience like most of the people you will encounter here, but I do have a strong background in coding.


VB can very easily teach bad habits. I recommend against it unless you're intention is to become an applications programmer (bearing in mind that apart from messing around with QBasic years ago VB was the language I started with myself). Python is simple enough as a starting language, and won't encourage the bad habits people can sometimes pick up from BASIC variants.

Share this post


Link to post
Share on other sites
Quote:
Original post by violetann
A lot of game programming companies use different things from java with mobile phone games, PC games use more C++ and check out if you want to learn more:
http://www.womangeeks.com/hello/learning/highlevel/cpp/intro.html
Yet you should really learn another one first at least javascript since it requires no compiler. Or even something like Visual basic since it's a lot more visual then a lot of other to begin with.


That tutorial of yours is really quite bad. No offense intended, but I'd seriously consider a re-write. It has terrible spelling and grammar and isn't particularly informative.

Also, as I've already mentioned in response to someone else, VB can quite easily encourage bad programming practices.

Share this post


Link to post
Share on other sites
Once again thank you all for posting, and don't worry Spoonbender, I don't mind the point you made about me knowing absolutly nothing, because it's true. I'm here to learn so it I don't mind being a noob or anything.

But this is getting incredibly confusing, I'm really getting no where on where I should start etc, also are there any book or site you recomend me use in conjuction with a program?

Share this post


Link to post
Share on other sites
Step one: Download Dev-C++.
Step two: Go to cprogramming.com and finish it all.
Step three: Try to make TicTacToe in console. If you fail, read more tutorials.
Step four: Use SDL to make a pong game.
Step five: Make more games.
Step six: Learn either OpenGL or Directx. The difference is basically DirectX is windows only.
Step seven: You now know enough now to make a step by step list on how to program games.

Share this post


Link to post
Share on other sites
OdHero, i think the one thing that you can really learn from this thread is that almost everyone has a different opinion.

i know from my own experience how confusing it can be when everyone seems to be giving you conflicting advice, it just makes matters worse.

what i would say you should do is look into beginner information about the different programming languages that people are suggesting (c++, python, visual basic etc) and try to decide for yourself which one would be best for you to start on. at the end of the day it's your choice which one you learn, just make sure you stick at it and follow tutorials through to the end.

personally i only started to learn about programming at university, in Pascal for a brief time and then in c++. i actually found c++ to be quite easy to understand once i got the basics of programming, and as it's a standard in the games industry it's nice to know that everything im learning will one day be put to good use.

that's just my experience though. as i said, you need to decide for yourself which language would be best for you to learn as a basis.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Thanks rob, thats the most helpful, all of them are, I now no a little about all the different programmes, now I'll pick one and start by using tutorials. TY very much.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Thanks rob, thats the most helpful, all of them are, I now no a little about all the different programmes, now I'll pick one and start by using tutorials. TY very much.

Share this post


Link to post
Share on other sites
IT may be worth noting that no matter what language you take up, it is not wasted time by any means. The thought processes involved in coding, the ability to find answers to problems, and the ability to spell out a process in writing, are more important than syntax I believe.

Just to back that up a bit, I started in BASIC, then Visual Basic(never going back, please God...), then Java, and now C++. After a couple years using BASIC varients, it took me maybe a month to figure Java to the point of usefulness, and I've got basic OpenGL graphics in C++ with 7 days exposure. Point is, you'll learn the way computers work no matter which language you start in.

Share this post


Link to post
Share on other sites

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