Where to start with Game Programming?

Some advice for beginners

  • (2 Pages)
  • +
  • 1
  • 2

27 Replies - 103351 Views - Last Post: 08 July 2009 - 01:11 AM Rate Topic: -----

#112 Core  Icon User is offline

  • using System.Linq;
  • member icon

Reputation: 774
  • View blog
  • Posts: 5,097
  • Joined: 08-December 08

Re: Where to start with Game Programming?

Post icon  Posted 19 February 2009 - 03:28 PM

First of all, you have to understand that game programming is a very challenging, but rewarding activity. It is not as easy as it may seem for a beginner, so I will provide some advice on this topic. I want to mention, that there is no universal recipe on getting good at game development and this guide may not be suitable for everyone, but some advice will always give a boost.

1. Decide if you really want to do it
Think about the way you think. Do you like math? What about physics? Unless you are just a graphics designer you will have to operate with lots of math and physics during your development. And this is not limited on elementary understanding of physics or/and math. You will have to work with vectors, different physical formulas for velocity and acceleration and of course trigonometry.

2. Decide on the programming language
Obviously, there is no ‘game programming’ language. Theoretically, any programming language can be adapted for game development; however, it’s all about the tool you can operate better with. Are you good with Java? Try creating some games in Java and see how it works. Same applies to other programming languages. However, there are languages that are better for game development from a specific point of view – how efficient will be the development process. C++ is considered the industry standard for game development, mostly because it offers better performance/optimization and is available on multiple platforms (which is basically not a problem for the majority of the programming languages today). You will also have to operate with specific libraries, like OpenGL or DirectX. These libraries are practically essential for game development, so you will have to check if your language of choice has a decent support at least for one of these libraries. Just for a side note, there is also XNA from Microsoft, if you work with C#, which itself is a wrapper over DirectX, so it makes game development easier.

3. Start with the basics
Many beginners are eager to start game development and plan to develop the next AAA title from the very beginning. Unfortunately, this is not going to happen. Major projects are created by big teams of experienced developers and artists. The development may take several years for such teams, so it is practically impossible for a beginner to accomplish this task by himself/herself. Start with the basics. Find a game algorithm that seems interesting to you (do something you would enjoy playing), but at the same time is not very complicated. Here are some ideas:
  • Tic-Tac-Toe
  • Pong
  • Pac-Man Similar Game
  • Simple Space Shooter
  • Simple Tanks Game
These are just some ideas and you should not limit yourself to these. If you have something more interesting, but which is not very hard to accomplish, go ahead and start the project. Always start doing something you know you will finish. However, it’s all about learning, so make sure that you learn while you develop.

4. Developing for next-generation consoles
Developing for such consoles, like Xbox 360, Playstation 3 or Wii shouldn’t be the initial focus when you start developing games. Platform-specific development requires specific tools that are provided by the console manufacturer to professional development teams only at a high price and extensive knowledge regarding that specific hardware. However, Microsoft offers XNA, which allows you to develop games for Xbox 360, but in a very limited environment. It can be a good start, but don’t focus on this at the beginning level.

5. Learn
The game industry does not stand in one place and there are new technologies, libraries, engines and practices appearing very fast. Be ready to learn every day and adapt to new technologies. Something you learned today can become outdated tomorrow, so be ready to adapt yourself to the new environment. This applies to general IT, not only game development.

6. Don't underestimate the power of books and online resources
There are plenty of books and resources available both online and in bookstores that are perfect for learning a new programming language or programming technique. Try avoiding titles that promise to teach you game development in 24 hours or a week – this is impossible. Learning to program takes a lot of time and no book will completely cover all the programming topics for a specific languages. Be ready to search for many things by yourself. Some links are listed above:

How to become a game designer by Martyr2
http://www.dreaminco...wtopic63255.htm

Game tutorials
http://www.dreaminco...howforum108.htm

Bottom line - game programming requires specific skills and permanent work and learning. You should really like it to advance in it. Make sure you have lots of time to work on your development skills and enough enthusiasm to work on and finish game projects. You should not follow this short guide completely, as everyone has individual views on what is right and what is not, but take some beans out of it for yourself to think about.

Also, do not forget that there is always the Game Programming forum on Dream.In.Code, where you can ask your questions related to game development.

Game Programming Links (provided by Mrafcho001)

DirectX

- http://www.c-unit.com/tutorials/
- http://www.sunlightd...indows/DirectX/
- http://msdn.microsoft.com/directx/ --Microsoft Official DX website--
- http://www.drunkenhyena.com/
- http://www.two-kings...orials/d3d.html

OpenGL

- http://www.gamedev.net
- http://www.flipcode.com (also has some really good Win32 tuts)
- http://www.gamasutra.com
- http://nehe.gamedev.net
- http://www.opengl.org
- http://www.lighthouse3d.com
- http://www.opengl.or..._1.0/index.html good

Allegro/AllegroGL

- http://www.talula.demon.co.uk/allegro/
- http://allegrogl.sourceforge.net/
- http://www.grandgent.com/allegro/faq/
- http://www.grandgent...ace/vivace.html - really good..
- http://www.loomsoft....lltut_index.htm

Other
- http://devpaks.org/
- http://www.3dcafe.com/asp/meshes.asp 3D models for your games
- http://www.devmaster.net/
- http://www.humus.ca/

Deciding on the language (provided by gabehabe)
The most common language used within the games industry is C++ which is even used for console game programming. (Coupled together with a graphics library called OpenGL) Also, I have played a few games on the PS3 which were written in Lua.

Another less-common-but-coming-up-fast language is Java, which is mostly used for mobile phone games and applets. An applet is basically a program which can be embedded into a web page. A great example of what can be achieved with Java is RuneScape.

Now it's time to throw in this little wildcard. C# is an object oriented language, which is kind of a hybrid of C++ and Java. The original intention of C# was for software development. It's a very high level language, which means all of those tools that you're going to need will already be made. It's just your job to learn how to use them properly. XNA is a framework, developed for C# which is used for making games. However, I have no experience with XNA to be able to recommend it.

And lastly, I'd like to quote Bench from the C/C++ forum, for this excellent analogy:

Bench said:

If you're a fan of analogies (I truly despise analogies personally, since they're always flawed) - Imagine programming like assembling furniture.
In the Java world, you go down to Ikea and pick up some ready cut, ready drilled flatpack furniture, and all you need to do is screw it all together without needing to worry about the dimensions or the design of the individual pieces (Because someone else has already done all this hard work for you). You might find that the manufacturing process has some very slight anomalies, and doesn't fit together 100% perfectly, or maybe the design doesn't suit your needs exactly, but it does the job very well otherwise.

In the Low-level world, you start out with a solid tree trunk and a workshop full of powertools, where you will handcraft the furniture. You'll need to spend alot more time recreating bits which Ikea would have made for you, though you can finetune each minor detail, you need to understand the resilience of the material, and the way in which stresses and strains work at the joints (Though with handcrafted furniture you will probably have less joints), but you need a detailed understanding of precisely what you're doing so that the furniture you build at the end doesn't collapse.

This post has been edited by Core: 18 May 2009 - 03:45 PM

Was This Post Helpful? 2

#113 Core  Icon User is offline

  • using System.Linq;
  • member icon

Reputation: 774
  • View blog
  • Posts: 5,097
  • Joined: 08-December 08

Re: Where to start with Game Programming?

Posted 19 February 2009 - 03:38 PM

Thanks for pinning the topic, skyhawk133!

This post has been edited by Core: 19 February 2009 - 03:38 PM

Was This Post Helpful? 0
  • +
  • -

#114 pr4y  Icon User is offline

  • Location: 127.0.0.1
  • member icon

Reputation: 35
  • View blog
  • Posts: 621
  • Joined: 19-September 08

Re: Where to start with Game Programming?

Posted 19 February 2009 - 03:42 PM

Good post, this will hopefully ward off some of the "Halp mi make a P2P MMORPG"...
Was This Post Helpful? 0
  • +
  • -

#115 stayscrisp  Icon User is offline

  • フカユ
  • member icon

Reputation: 998
  • View blog
  • Posts: 4,172
  • Joined: 14-February 08

Re: Where to start with Game Programming?

Posted 20 February 2009 - 03:33 AM

Before I went to college to learn Game Development everything was daunting and seemed impossible to learn, trying to sift through endless tutorials in a multitude of programming languages is like banging your head against a wall.

I know it is not necessary to get an education in game's because a lot of courses are for lack of a better word 'crap' and do not give you the right skills needed to either break into the industry or even just be a hobbyist game developer with a large scope to develop there ideas.

That being said an education in something related or relevant to game design and development will give you that extra push that teaching yourself will not give you. There are obvious exceptions to this where people can get wherever they want just by learning online and through books, but these are extremely dedicated people.

Being in a learning environment consisting of people all with a common interest and goal can speed up the learning experience and ultimately make it a lot more enjoyable, making you more likely to stick at it. Is there a local college or university running a game course? check them out.

It really is worth it.

my 2 cents :D
Was This Post Helpful? 1

#116 sundar_rajan  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 1
  • Joined: 23-February 09

Re: Where to start with Game Programming?

Posted 23 February 2009 - 10:09 AM

Thank you

It will be really helpful for those like me who want to learn Game Program
Was This Post Helpful? 0
  • +
  • -

#117 Xentiago  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 7
  • Joined: 06-December 08

Re: Where to start with Game Programming?

Posted 26 February 2009 - 06:09 PM

Thanks for this informative guide. Much appreciated by a beginner. :D
Was This Post Helpful? 0
  • +
  • -

#118 calebjonasson  Icon User is offline

  • $bert = new DragonUnicorn(); $bert->rawr();
  • member icon

Reputation: 209
  • View blog
  • Posts: 989
  • Joined: 28-February 09

Re: Where to start with Game Programming?

Posted 02 March 2009 - 09:15 PM

thanks for the post it was a good guide and i was wondering if you could Halp mi make a P2P MMORPG. (just kidding)
Was This Post Helpful? 0
  • +
  • -

#119 papuccino1  Icon User is offline

  • His name was Robert Paulson.
  • member icon

Reputation: 63
  • View blog
  • Posts: 1,121
  • Joined: 02-March 08

Re: Where to start with Game Programming?

Posted 16 March 2009 - 03:42 PM

Great resource. Damn this was a good read!
Was This Post Helpful? 1
  • +
  • -

#120 SwiftStriker00  Icon User is offline

  • No idea why my code works
  • member icon

Reputation: 432
  • View blog
  • Posts: 1,596
  • Joined: 25-December 08

Re: Where to start with Game Programming?

Posted 25 March 2009 - 10:56 AM

I would even suggest thinking about what kind of games you want to make as well. There are alot of unique algorithms and quirks for one genre (i.e. RPG) that have nothing to do with another (i.e. Platformer). I started developing RPG simulations and then once I understood the big pictures for games, i slowly moved into Platormorer games, which I had to work to understand how to mimic physics, something a top-down view RPG wouldn't necessarily need to have. While my Platform games do have a lot of similar code, Like an inventory for keys or whatever and I like adding a few upgrades, hit detection on jumping is a whole other story.

Just a side note, i took the long way and started making RPG code first. Not the best genre to fall into first, there is a lot more code needed and testing to be done before you see results. Go with little mini games as mention in thread starter then onto platform. Everybody likes a mario remake, no matter how bad it is
Was This Post Helpful? 0
  • +
  • -

#121 kaushik4study  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 2
  • Joined: 21-April 09

Re: Where to start with Game Programming?

Posted 21 April 2009 - 11:00 PM

thanx buddy very informative.

This post has been edited by kaushik4study: 21 April 2009 - 11:02 PM

Was This Post Helpful? 0
  • +
  • -

#122 Blue_Flower  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 16
  • Joined: 22-April 09

Re: Where to start with Game Programming?

Posted 22 April 2009 - 01:43 AM

this advices have explained to me alot of things to begin in this field
Thank you very much about this useful advices
Was This Post Helpful? 0
  • +
  • -

#123 dremok  Icon User is offline

  • New D.I.C Head

Reputation: 7
  • View blog
  • Posts: 24
  • Joined: 22-April 09

Re: Where to start with Game Programming?

Posted 26 April 2009 - 06:14 AM

Great advices!

Though, in contrary to SwiftStriker, I think that RPG is a great genre to start programming in, as long as you keep it simple. That is, if you enjoy RPG's and have some ideas of your own, of course.

For me it was a quick way to implement game ideas of my own without having to think about any difficult mats, physics and collision detection algorithms.

Myself, I started programming text-based RPG's and soon moved on to turn-based RPG's with simple graphics that got more and more advanced over time. Eventually, I moved on to mouse-controlled turn-based strategy games.

This way I was inspired by the fact that I could make "my own truly unique games" and slowly learned about "the game loop", keyboard handlers and other things related to game programming, while not having to think about difficult maths and physics.

When moving on with real-time games I started making old school space shooters to learn collision detection and eventually platformer, where I learned how to implement real physics.

My point is, if you start by making a Mario Bros remake you might be disappointed by the fact that the result looks exactly like another game which you have been playing til your fingers bled. At the same time, even a Mario Bros remake demands some knowledge of rather advanced physics implementation and collision detection. At least it will seem advanced if you are just starting out.

Of course, all this is very personal and has to do with what kind of games you enjoy to play, what kind of games you want to make and what visions and ideas you already have.

My suggestion is to start out with Tic-Tac-Toe and other turn-based puzzle/guessing games and move on to a simple space shooter if you're more into action games, and a simple turn-based RPG if you're more into RPG/strategy games.

Just my two cents =)
Was This Post Helpful? 0
  • +
  • -

#124 DingleNutZ  Icon User is offline

  • D.I.C Head

Reputation: 0
  • View blog
  • Posts: 121
  • Joined: 02-May 09

Re: Where to start with Game Programming?

Posted 03 May 2009 - 09:18 PM

For Begginers i reccomend getting into Game maker, it was the first language i learned and it was awesome for making games find it at

http://www.yoyogames.com/

Was This Post Helpful? 0
  • +
  • -

#125 crazyjugglerdrummer  Icon User is offline

  • GAME OVER. NERD WINS.
  • member icon

Reputation: 119
  • View blog
  • Posts: 690
  • Joined: 07-January 09

Re: Where to start with Game Programming?

Posted 20 May 2009 - 12:55 PM

Very good topic! Not to discourage anyone, but game programming involves LOTS of programming, and its not just for any gamer to do. Gaming experience doesn't hurt, but you really need to love and master the programming part. :D
Was This Post Helpful? 1
  • +
  • -

#126 StarBP  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 42
  • Joined: 06-May 09

Re: Where to start with Game Programming?

Posted 03 June 2009 - 06:25 AM

Very good advice. About the Pac-Man clone, you may want to port the few lines of assembly that deal with ghost AI to your target language. It gives the game lots more personality than using a simple path-finding algorithm for all of them (the "four Blinkys approach"). If you do use the four-Blinkys approach, then you might as well color all of the ghosts red, since that's how they're behaving.
Was This Post Helpful? 0
  • +
  • -

  • (2 Pages)
  • +
  • 1
  • 2