Sign in to follow this  
bearanimations

Untitled

Recommended Posts

I've wanted to learn programming for a long time now. Ive tried it before, but didnt really get anywere. I wan't to learn C++ and maybe even python but i dont know were to start. Ive looked at some books but, they seem like there written for people who already know programming, they have really complicated terms i don't even know about. I want to learn so these languages so I can make video games and work on a graphics engine but i dont know were or how, to start, so im asking for you guys help since alot of you seem very good at this. (please keep in mind i have NO programming experience, im an artist, trying to learn proggraming.) im looking for maybe a book, that has alot of hands on kind of stuff so i can try it myself, and not one were it shows all of this complex code and tells me what it does so im stuck and don't know how to do it myself. you know what i mean? i want to learn the code and how to make stuff. thanks

Share this post


Link to post
Share on other sites
http://www.gamedev.net/reference/start_here/

Also, start getting in the habit of looking up terms of that you do not understand. If a book is a solid guide uses a word 'inheritance' and you don't know what it means, look it up. Do not set down the book/tutorial because of word usage.

Programming wasn't easy to start learning (for me) because it requires a great deal of knowledge. Once you learn a good pool of knowledge, it makes everything easier. You learn how to learn, think, study, etc. I think the best programmers are probably not the ones who can program anything currently out right now, but the ones who are able to learn quickly and put what they've learned to great use right away.

Focus on learning.

Share this post


Link to post
Share on other sites
There are a number of non-programmer tutorials on the Python wiki, they take you through things slowly and describe things in terms of non-technical terminology.

Of course, you'll need to download Python before you can use it. Once you've installed Python you'll find it also comes with a piece of software called IDLE, this is an IDE (Integrated Development Environment) and it's what you use to enter Python code and execute it - it's a glorified text editor really.

C++ isn't a simple language for anyone to learn and if your aim is to make graphics and games then you're looking at 3+ years of learning before you produce anything of remote value. In Python you're looking at a few weeks depending on how quickly you read and pick things up.

Graphics with Python can be done by using Pyglet, which is a set of Python functionality specifically for making graphics - You can download and install it at any time, so I recommend you get to grips with Python itself before you look into Pyglet.

Share this post


Link to post
Share on other sites
Quote:
Original post by dmatter
There are a number of non-programmer tutorials on the Python wiki, they take you through things slowly and describe things in terms of non-technical terminology.

Of course, you'll need to download Python before you can use it. Once you've installed Python you'll find it also comes with a piece of software called IDLE, this is an IDE (Integrated Development Environment) and it's what you use to enter Python code and execute it - it's a glorified text editor really.

C++ isn't a simple language for anyone to learn and if your aim is to make graphics and games then you're looking at 3+ years of learning before you produce anything of remote value. In Python you're looking at a few weeks depending on how quickly you read and pick things up.

Graphics with Python can be done by using Pyglet, which is a set of Python functionality specifically for making graphics - You can download and install it at any time, so I recommend you get to grips with Python itself before you look into Pyglet.


thats cool but can python do what C++ can do? graphically and non-graphically.

Share this post


Link to post
Share on other sites
Quote:
Original post by rip-off
Quote:

thats cool but can python do what C++ can do? graphically and non-graphically.


Yes. You will find that most languages can do everything that C++ can do.


really? then how come C++ is so big in the video game dev buz. is it because its easy for buisnesses to work with?

Also. since im trying to make video games and a rendering engine dont i need to learn something like directx or openGL or something like that. or should i wait until i learn more?

Share this post


Link to post
Share on other sites
Quote:
Original post by dmatter
There are a number of non-programmer tutorials on the Python wiki, they take you through things slowly and describe things in terms of non-technical terminology.

Of course, you'll need to download Python before you can use it. Once you've installed Python you'll find it also comes with a piece of software called IDLE, this is an IDE (Integrated Development Environment) and it's what you use to enter Python code and execute it - it's a glorified text editor really.

C++ isn't a simple language for anyone to learn and if your aim is to make graphics and games then you're looking at 3+ years of learning before you produce anything of remote value. In Python you're looking at a few weeks depending on how quickly you read and pick things up.

Graphics with Python can be done by using Pyglet, which is a set of Python functionality specifically for making graphics - You can download and install it at any time, so I recommend you get to grips with Python itself before you look into Pyglet.


also what is a library. I noticed you said that Pyglet is a library. what does that mean. Is it a bunch of code?

Share this post


Link to post
Share on other sites
Quote:
Original post by bearanimations
how come C++ is so big in the video game dev buz. is it because its easy for buisnesses to work with?
Python is also big in the video game biz too actually. C++ is used because it has compilers available on many platforms and companies have existing code bases written in C++ and aren't about to just throw it all away.

Quote:
Also. since im trying to make video games and a rendering engine dont i need to learn something like directx or openGL or something like that. or should i wait until i learn more?
Pyglet takes care of this for you, it uses OpenGL under the hood. It does provide OpenGL functions for you to use directly too, should you need or want them.

Quote:
also what is a library. I noticed you said that Pyglet is a library. what does that mean. Is it a bunch of code?
You're spot on, it's just a bunch of code that makes common tasks (like loading images) in a certain domain (graphics) easier for you.

Share this post


Link to post
Share on other sites
Big game engines are already written in C++. It is expensive and arguably pointless to rewrite this code in a new language.

Games that are trying to push the hardware still prefer to write speed critical parts of the code in lower level languages. C++ tends to be at a level closer to the machine, and with effort can usually be pushed to perform as fast as or faster than other languages.

I want to stress a couple of the points here:

* It takes a lot of effort to make any language efficient. C++ is no exception to this rule.

* Most efficiency gains are made by improving the underlying algorithms (which can be done in any language).

* Most languages can have bindings to C. As such, if there is a task that you cannot do in a said language at sufficient speed, you can usually drop down to C.

An finally, there are a number of games that use Python.

Share this post


Link to post
Share on other sites
Quote:
Original post by rip-off


* Most languages can have bindings to C. As such, if there is a task that you cannot do in a said language at sufficient speed, you can usually drop down to C.

An finally, there are a number of games that use Python.


What is a binding?
Quote:

Pyglet takes care of this for you, it uses OpenGL under the hood. It does provide OpenGL functions for you to use directly too, should you need or want them.


so lets say i learn openGl and get really awesome, does that mean i could make my own opengl code and use it in python?

Share this post


Link to post
Share on other sites
Quote:
Original post by bearanimations
What is a binding?
It's a way of associating code written in C (a low level language that benefits from raw efficiency) with code written in Python. Certain libraries write speed-critical functions in C then expose 'bindings' that allow those functions to be called from Python.

Quote:
so lets say i learn openGl and get really awesome, does that mean i could make my own opengl code and use it in python?
OpenGL code looks largely consistent across all languages and it has compatible bindings for Python - So yep you can use OpenGL with Python just finely, such as by going through Pyglet.

I recommend you learn the Python language itself before you learn Pyglet and/or OpenGL however. A common mistake is to think that OpenGL is a language in its own right, this is not the case - OpenGL is merely a collection of functions (a library) just like any other.

Share this post


Link to post
Share on other sites
Quote:
Original post by dmatter
Quote:
Original post by bearanimations
What is a binding?
It's a way of associating code written in C (a low level language that benefits from raw efficiency) with code written in Python. Certain libraries write speed-critical functions in C then expose 'bindings' that allow those functions to be called from Python.

Quote:
so lets say i learn openGl and get really awesome, does that mean i could make my own opengl code and use it in python?
OpenGL code looks largely consistent across all languages and it has compatible bindings for Python - So yep you can use OpenGL with Python just finely, such as by going through Pyglet.

I recommend you learn the Python language itself before you learn Pyglet and/or OpenGL however. A common mistake is to think that OpenGL is a language in its own right, this is not the case - OpenGL is merely a collection of functions (a library) just like any other.


ok i see what you mean there. so then, is openGl the same as directx? does one have an advantage/disadvantage over the other? what can they be used for?

Share this post


Link to post
Share on other sites
Quote:
Original post by bearanimations
ok i see what you mean there. so then, is openGl the same as directx? does one have an advantage/disadvantage over the other? what can they be used for?
Well OpenGL is a graphics library. DirectX is a collection of libraries, the graphics specific library is called Direct3D.

Generally speaking there is no advantage to either OpenGL or Direct3D, there are differences though:

* OpenGL is cross-platform (works on Mac, Linux, PS3 and handheld devices) whereas Direct3D is Windows specific.

* Direct3D works by releasing new versions in order to expose new graphics features, whereas OpenGL works by adding extensions to expose new features - this typically means that OpenGL provides faster access to the bleeding edge features of a graphics card than Direct3D but seriously that's not a concern to most people and Microsoft are releasing Direct3D versions in quicker succession now too.

* From a beginners perspective, OpenGL is easier to pick up and go with, but Direct3D is easier once you become more experienced. Fortunately the concepts are identical across both so you can simply reapply you're knowledge from one to the other with minimal fuss.

* A quick Google indicates that OpenGL may be is easier to get working with Python (like through Pyglet [smile]) than Direct3D would be (DirectPython looks interesting though).

Share this post


Link to post
Share on other sites
ok ive got one more set of questions.

What is an sdk for? i know it stands for software development kit, but how is it used? is it like a library? or is it for making plugins?

also, is it possible to use more than one library in a project? I found a good book for making games with python and a library called pygame. can i use that with pyglet?

Since im making a graphics engine: what exactly is an engine? is it like a big version of a library? or something more complex?

also: ive looked up the definition of middle ware but got conflicting answers. can anyone explain exactly what middleware is/does.

one last question: how do i use a library in my project? do i have to link the project to the library or something?

thanks for the help

Share this post


Link to post
Share on other sites
Quote:
Original post by bearanimations
What is an sdk for? i know it stands for software development kit, but how is it used? is it like a library? or is it for making plugins?
It's a set of tools, a 'kit', that allows developers to develop some piece of software. That kit could include any number of tools, such a libraries, utility programs, plugins, anything that is deemed useful really.

Quote:
also, is it possible to use more than one library in a project?
You can use as many as you want. Sometimes one library requires another in order to work (a 'dependancy'). Often there exist many libraries for the same job so they might interfere with each other if used at the same time for some reason.

Quote:
I found a good book for making games with python and a library called pygame. can i use that with pyglet?
Pygame is like pyglet, they're both used for the same thing. I don't know if there is any reason to use them both together. They largely offer overlapping features, although they also each have the odd feature not present in the other.

Pygame is older and, perhaps, more widely used than Pyglet.
Pyglet is newer and more up to date, but less well known presently.

By and large, there's not much reason to favour one over the other as a beginner.

Quote:
Since im making a graphics engine: what exactly is an engine? is it like a big version of a library? or something more complex?
An engine is a libary, although the term 'engine' implies a large library that powers something complex (a game for example).

Quote:
also: ive looked up the definition of middle ware but got conflicting answers. can anyone explain exactly what middleware is/does.
Middleware is software that lives in the middle between high level software and low level software, providing a cushion to the high level software that wants to make use of low level stuff.
Example: high-level software = your engine
mid-level software = Pyglet/Pygame
low-level software = OpenGL/Direct3D

Quote:
one last question: how do i use a library in my project? do i have to link the project to the library or something?
Libraries usually have documentation detailing how to install them. Pyglet for example, you just run the installer and that's it, you can dive right into code by importing modules you wish to use.

Share this post


Link to post
Share on other sites
wow dude youve helped me out alot, seriously.
ive got two more questions though, can you help me out?

is it possible to convert code from one languae to another? for my engine i planned on modding ogre but thats written in C++, is there any way to convert it to python code besides by hand?

also i found this thing called Nvidia physiX. is this a library too? can it be used with python?

Share this post


Link to post
Share on other sites
Quote:
Original post by bearanimations
is it possible to convert code from one languae to another? for my engine i planned on modding ogre but thats written in C++, is there any way to convert it to python code besides by hand?
Sometimes people write converters that can translate code in one language into another, the output is pretty shoddy code and certainly not a practical solution by any means. However, read on...

Quote:
also i found this thing called Nvidia physiX. is this a library too? can it be used with python?
It is indeed a library, one for physics rather than graphics. It too is written in C++. Converting C++ to Python is impractical, instead it is better to find some C bindings to allow Python and C++ to interoperate. Fortunately, some clever person has done this for Ogre, PhysX and a number of other C++ libraries: Python-Ogre.

Share this post


Link to post
Share on other sites
I think you're getting a little bit ahead of yourself here. Before you start using ogre or physix you need to learn how to actually program. If you've never programmed before and attempt to learn a language by doing complex things like this, you are going to get very frustrated very fast and are going to be worse off for it. In general, the language you use will not affect the kinds of programs you can make nor will it determine what APIs you will have access to: many engines, APIs, and libraries are available for most of the popular languages.

Pick a language and stick with it. Learn how to use it and learn how to use it well. Once you've got a solid foundation under your feet, then branch off into graphics, physics, AI, etc.

I recommend starting with python. It's much easier to learn (especially if you're new to programming) than other languages such as C++. It's also much easier to use and will make you much more productive than other languages.

Share this post


Link to post
Share on other sites
Quote:
Original post by CrimsonSun
I think you're getting a little bit ahead of yourself here. Before you start using ogre or physix you need to learn how to actually program. If you've never programmed before and attempt to learn a language by doing complex things like this, you are going to get very frustrated very fast and are going to be worse off for it.
Agreed, it's good to know what a language is capable of and aim high by all means - but start small and set yourself attainable nugget sized goals in order to work upwards. [smile]

First thing's first, learning how to program.

Share this post


Link to post
Share on other sites
Quote:
Original post by dmatter
Quote:
Original post by CrimsonSun
I think you're getting a little bit ahead of yourself here. Before you start using ogre or physix you need to learn how to actually program. If you've never programmed before and attempt to learn a language by doing complex things like this, you are going to get very frustrated very fast and are going to be worse off for it.
Agreed, it's good to know what a language is capable of and aim high by all means - but start small and set yourself attainable nugget sized goals in order to work upwards. [smile]

First thing's first, learning how to program.


ya i definitly understand what you guys are saying. i'm just kind of curious about some of that other stuff though. What do you think would be a good
programm(s) to make to learn programming like for instance a hello world program or a calculator?

Share this post


Link to post
Share on other sites
A hello world program is traditionally the very first program you see. A very rudimentary calculator shows up pretty early on. There is no one list of programs you write. It actually takes a bit of creativity on your part to invent small little programs to write, to practice the material you learn.

Once you get some basic proficiency, you can write some small programs that accomplish something, if rather simple or naive in nature. Card games and dice games can be done somewhat early, depending on the game, so that's usually a good goal to head towards.

Share this post


Link to post
Share on other sites
Quote:
Original post by oler1s
A hello world program is traditionally the very first program you see. A very rudimentary calculator shows up pretty early on. There is no one list of programs you write. It actually takes a bit of creativity on your part to invent small little programs to write, to practice the material you learn.

Once you get some basic proficiency, you can write some small programs that accomplish something, if rather simple or naive in nature. Card games and dice games can be done somewhat early, depending on the game, so that's usually a good goal to head towards.


thanks.

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