Question:
What's the BEST way to start learning programming?
2008-09-22 11:14:01 UTC
I've been an artist my whole life, and my major goal over the last 6 years has been to break into the gamming industry. I made it in 3 years ago as a tester, and it was then that I decided I wanted to more about how a game is made from a different perspective than as an artist.

Since then I've tried my hand at Multimedia Fusion to get an idea of the "If this - Then that" way of thinking, and it inspired me to move on to actual programming. I've modded several games including Sim City Societies, Call of Duty 4, Zelda-64, Quake 4, Battlefield 2142, and GTA-3 / GTA3-Vice city. From each game I learned a little bit of xml, a little bit of C++, a little bit of C#, and little bit of some code that I don't even know.

It's been really easy for me to alter these games, create new features, and add in new assets, but now I'm looking to create my own game. I want to build an engine from scratch, but I don't want to struggle through it making stupid mistakes as I go, i want to fully understand what I'm doing.

I would be interested in making games for PC systems (Windows), consoles, and mobile devices. Oviously, with no direct connection to a source that would provide me with a console or mobile dev-kit, I'm constrained to learning programming for pc development, but I'd like know what I could prepare for should I ever have acces to something that would allow me to program on the later 2 platforms. Any advise?

An answer I'm not looking for:

Go to school. - I'm planning on taking up another degree, but I'm aware that with or without classes there are things to be learned, and that is what I'm mostly interested in. I also need to know exactly what I should be focused on before spending money on classes I may or may not need.
Seven answers:
2008-09-22 11:57:35 UTC
You can start learning C++ with these video tutorials:

http://xoax.net/comp/cpp/index.php



They are perfect for beginners. This one can get you started by showing you how to install a free compiler:

http://xoax.net/comp/cpp/console/Lesson0.php



Here are some simple games with code downloads that you can use to get some ideas:

http://xoax.net/comp/cpp/console/Lesson9.php

http://xoax.net/comp/cpp/console/Lesson23.php

http://xoax.net/comp/cpp/console/Lesson29.php



These tutorials can get you started with graphics programming in OpenGL:

http://xoax.net/comp/cpp/opengl/index.php



You can go through the tutorials and if you have questions on them or anything else in C++, please post to me here:

http://xoax.net/forum/



Enjoy!
Andy G
2008-09-22 12:28:37 UTC
That is pretty ambitious. There are professional programmers then there are engine designers. If you are really serious about writing your own game to make money then you should consider licensing the engine. I'm not saying that you wouldn't be able to write an engine but the volume of information you would need to learn to write a good one is staggering.



But don't let me put you off. The best place for you to start probably is looking at DirectX or OpenGL. These libraries allow you to take advantage of any hardware you have for gaming on your machine while you concentrate on drawing. I heard that it was pretty normal for engine designers of high end games to read SIGGRAPH, over the years this has published a lot of the technology that 3d worlds use. You might be better starting with an existing engine here.

Once you have the world, you need to look at AI and gameplay. Which is a whole different ball-game. Normally engine designers create a customizable engine which these elements can be programmed in later. Consider embedding a programming language so that this can be done or have some sort of API.



I would like to be king.
2008-09-22 13:27:21 UTC
The best way is to do exactly what you're doing. Begin by playing with existing games, and learn the fundamentals of programming.



You're now ready, as you say, to take it a notch deeper. Now you need to really learn what gaming and programming are from the bottom up.



My first advice is to not worry too much about consoles yet. It will be a long time before you're ready to write commercial console games, but you'll be able to do quite a bit on the PC (or mac or linux machine) to get yourself there. PCs of all sorts are a better experimentation environment anyway.



The language isn't that critical either. Learn to program well in one language, then convert that skill to other languages. I'm currently a big fan of Python as a first language. It's reasonably clean, very powerful, supports all the major libraries, works on any platform, and is entirely free and open source.



First, learn to program. Understand variables and memory, conditions, loops, and branches. Simplify your code with functions, and combine data into arrays and other advanced data structures. Learn how to use objects to combine data and code into easily re-usable packages.



When you've got a solid foundation of programming, turn to those ideas that differentiate game programming from other types of development. Learn about animation / gaming loops. Learn how to display a graphic screen (which is usually much different than a standard Windows display) Learn how to build sprites - the most common game object. Understand the relationship between position, motion, and accelleration, and how to make a sprite move correctly.

Learn collision detection so your sprites can crash into each other to do interesting things. Learn a little about physics so you can make your objects act realistically (or not.) Learn something about artificial intelligence so you can build interesting opponent models.



Once you can build great 2D games, the jump to 3D is not that difficult. There's just a lot more complexity in 3D. For example, in 2D, your sprites are based on images. They're easy to find, create, and work with. A 3D game requires models with scene-graphs, textures, animations, skeletons, and lighting models. There's no need to mess with all this detail until you have a solid grasp of game development in 2D



I've written a couple of books on game development.

Flash Game Programming for Dummies covers 2D gaming in Flash.



I got a little tired of Adobe's pricing scheme, so I wrote another book on game programming in Python.



Game Programming - the L Line covers game development in the Python language. The final chapter describes a complete game engine from the ground up. You can use this engine in your own games or use it as a starting place for creating your own gaming engine.



I've begun creating online videos for the Python course which will be available to anyone.



Please feel free to stop by my site to see examples from the books, or drop by my forum:

http://www.aharrisbooks.net



Hope this helps!
2016-04-05 11:39:48 UTC
You can try learning java or C++, that is always a good place to start. I do not know of any programs as of now though, because I don't start that training until next year (Junior year of HS). Good luck and hopefully you find something :)
2008-09-22 11:35:17 UTC
I suggest you begin with a simple language such as the Blitz lineup (http://www.blitzbasic.com) This will enable you to figure out how variables, functions, types, and many other things work. You can develop some really good software too.



If you are looking into mobile devices you can give Android a chance, the SDK is free and you can download it here - http://code.google.com/android/download.html
2008-09-22 11:31:06 UTC
Um its good that you have some knowledge modding and you have done some programming as well. The best platform you can start with its a pc and then move up to other things. You can use MSVC 2005 with XNA to develop for the xbox360 but you would need to pay their subscription. It would cost you a lot to acquire the "real" devkits for playstation 3 or xbox360 of course. The best way to learn its...to buy books lots of them for c++ these are awesome books you want to check out

http://www.amazon.com/Accelerated-Practical-Programming-Example-Depth/dp/020170353X/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1222107922&sr=8-1

http://www.amazon.com/C-Programming-Language-Special-3rd/dp/0201700735/ref=pd_bbs_5?ie=UTF8&s=books&qid=1222107922&sr=8-5

http://www.amazon.com/C-Standard-Library-Tutorial-Reference/dp/0201379260/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1222108008&sr=1-1

To develop games for the pc you want to look at DirectX or OpenGL API

you can also look into SDL/Allegro which are easier to use they're just wrappers(they simplify) to the other 2

Also look into this page http://www.gamedev.net/ they know what they are doing and will guide you in the correct direction.
2008-09-22 11:31:33 UTC
w3schools.com



cplusplus.com





cprogramming.com


This content was originally posted on Y! Answers, a Q&A website that shut down in 2021.
Loading...