# Program Games what do i need to know?



## binsky3333 (Sep 8, 2008)

Ok so i want to make video games. I am pretty new to this so i have some questions!

1.What language should i learn?
2.What should i learn to program the graphics(opengl directx, etc)


----------



## Fastmix (Sep 8, 2008)

Wow that's a huge task in front of you, don't forget to send me a copy of your first game.


----------



## binsky3333 (Sep 8, 2008)

BTW i alreayd know basic C++ i am thinking about learning sdl from www.lazyfoo.net


----------



## Solaris17 (Sep 8, 2008)

C++
Java
.Net
Direct 3D
OpenGL


----------



## Dia01 (Sep 8, 2008)

Fastmix said:


> Wow that's a huge task in front of you, don't forget to send me a copy of your first game.



Send me a copy too.  I'm too stupid to learn such a task.


----------



## kysg (Sep 8, 2008)

Actually making a game is very complex...

depends on how you want to do it, realistically you need an game engine, unless you want to build that from scratch, then you need basic art skills like texturing, photoshop is good for this, then comes the programming knowledge, also you have to make a decent story, yes there are some shortcut programs to get you to make simple games but I dunno anything beyond that is complicated.


----------



## 3870x2 (Sep 8, 2008)

depends on what you want.  Java is multi-platform, c++ is mostly windows based.  OpenGL is more software-to-driver oriented, and direct-x can utilize specific hardware functions.  OpenGL doesnt make full use of your video cards functions, and instead just utilizes the GPU for everything, even pixel-shading, without using the shader clock cycles.  This could change in the new OpenGL.  It is in your best interest to purchase an already existing graphics engine, complete with 3do editor, etc...


----------



## MilkyWay (Sep 8, 2008)

it costs millions to make a graphics engine your better off getting an engine from someone else
unreal engine 3 is easy to use and apparently cryengine offers a lot

its hard to make a game its not as simple as learn the coding and make it why do you think they have specialists


----------



## Widjaja (Sep 8, 2008)

I've looked into what kind of skills Game developers look for in possible employees.

The skills they want are very specialized and don't always have anything to do with programming.

Besides the programming side there is also the 3D design and animations which takes foever to do from scratch.
E.G
Making the skeleton, assigning the joints, assign the bone weights to the vertices correctly, making sure the data in the skin weights are correct on the mesh so it move correctly.
Making the UV map, making the texture to fit the UV map, check for clipping, the list goes on and on.

This is why there is usually a massive team behind each game.
The workload for making a game is huge.


----------



## Deleted member 3 (Sep 8, 2008)

3870x2 said:


> depends on what you want.  Java is multi-platform, c++ is mostly windows based.  OpenGL is more software-to-driver oriented, and direct-x can utilize specific hardware functions.  OpenGL doesnt make full use of your video cards functions, and instead just utilizes the GPU for everything, even pixel-shading, without using the shader clock cycles.  This could change in the new OpenGL.  It is in your best interest to purchase an already existing graphics engine, complete with 3do editor, etc...



C++ works fine in any OS, Linux/Unix are written in C/C++ as far as I know.

OpenGL has little space on Windows nowadays. I would guess installing Visual Studio and XNA is the best way to start building from scratch.

Though if you only know basic C++ I'd say write something else first, get better at it. If you don't want that there are various simpler (though mostly more limited) platforms aimed at making games. I made 3D objects in Dark Basic years ago, it was really easy. Not sure if it still exists.

Starting with simple 2D games is the best approach, don't think you can make anything great in no-time.


----------



## Kreij (Sep 8, 2008)

Dan is correct. You have to start with the basics, which usually means starting with a simple 2D animated game. Before you even consider a game, you may just want to learn how to animate something.

With tools like XNA Studio and VS C#, things are easier to get going on, but no less complicated.
My fisrt venture into 3D programming was to simply make a sphere. Wrap it with a texture of the Earth and rotate it. IT sounds simple, but there is a lot to learn (lighting, transformations, rotations, matrixes, HLSL, etc.).

Starting small and slow and taking the time to learn the basics well is your best bet.

Google (or whatever search engine you use) will become your best friend


----------



## modder (Sep 8, 2008)

it's very difficult begining a game alone !!
i'm a lazy boy and a long long long long time ago i used 3d maker game software like fpscreator.
http://www.fpscreator.com/
http://t3dgm.thegamecreators.com/


----------



## Kreij (Sep 8, 2008)

Using game creation software or a pre-made game engine can greatly speed up the process of getting a working game as the underlying work has already been done for you. All you will have to do is add art resources and make a few minor tweaks to stuff.

However, if the app or engine does not perform in the manner you wish it to you will run into problems as you will not have the programming, or art resource creation background to correct for its deficiencies.

I am not suggesting that you try to write a game engine from scratch (as that is a monumental task) but that you be aware of some of the issues you may encounter.


----------



## binsky3333 (Sep 8, 2008)

Yea thats what i was thinking was starting with 2d graphics. I was thinking of learning SDL from www.lazyfoo.net, if you guys know any good 2d engines just tell me. And also if you know any good sites for programming 2d games.


----------



## Kreij (Sep 8, 2008)

I am not sure what you are trying to do in game programming. SDL appears to be a collection of APIs that allow you to perform similar functions like the DirectX API.

The question I would ask, is there any reason to learn SDL when you can get the same (or more) functionality from the DirectX APIs?

DirectX has established itself as a standard API, and over the generations has kept up with the latest advancements in graphics processing and the GPUs themselves. 

Perhaps it would be more prudent to learn an API that is used extensively by the industry as opposed to another. Not that SDL is not good, but why learn one only to have to learn another in the future?

Everything that you need to start game programming is free, so the choice is yours, whatever you choose.

Just my 2 cents.


----------



## binsky3333 (Sep 8, 2008)

Where can i learn the Directx API?


----------



## Deleted member 3 (Sep 8, 2008)

binsky3333 said:


> Where can i learn the Directx API?



Microsoft has plenty of resources available, apart from that Google is a great mentor.

Besides, let other layers handle the API, ie XNA.


----------



## Kreij (Sep 8, 2008)

If you don't have it already, download Visual C# Express (it's free)
Then download XNA Studio (I use CTP 3.0, it's free also)

Google "XNA Tutorials" and you will find a ton of infromation on both getting started and advanced topics.


----------



## binsky3333 (Sep 8, 2008)

Have any specific XNA tutorial sites you would like to share with me?


----------



## Kreij (Sep 9, 2008)

Here is a great place to learn XNA both 2D and 3D.
Goes from drawing simple primitives to making a flight simulator and creating world landscapes.


----------

