How do I get Started

From GPWiki
(Difference between revisions)
Jump to: navigation, search
(External links)
Line 132: Line 132:
 
* [http://www.gameproducer.net GameProducer.net - Daily game production resource]
 
* [http://www.gameproducer.net GameProducer.net - Daily game production resource]
 
* [http://www.idevgames.com iDevGames.com - Get started with Mac and iPhone game programming]
 
* [http://www.idevgames.com iDevGames.com - Get started with Mac and iPhone game programming]
 +
* [http://winmain.vn Develope Open Source]
  
 
[[Category:Introduction]]
 
[[Category:Introduction]]

Revision as of 06:40, 15 March 2012

Main page icon1.gif Introduction: Main Page >> What is game programming? | How do I get started? | FAQ for new game programmers


Template:Duplication

When you first begin to learn about game programming, it can be difficult to know where and how to start. Every game programmer has their own views, derived from their own, first-hand experiences, about the best way to learn about game design and about the best way to design a game. If you tried to follow all of their advice, and gave each programmer's opinion equal weight, you would quickly discover that you were going nowhere. You wouldn't even be able to pick a programming language to write in.

The very first thing you need to learn as a programmer is that it is up to you to decide what kind of game you are going to make. Ultimately, you are going to have to make all of these decisions yourself (or with the aid of your teammates), and it is the aim of this article to give you the confidence and direction you need to make those decisions.

Contents

Rule One: Know yourself

Before you type one word in your design document you have to stop and ask yourself a question: What are you willing to do to make this game?

Not all game programmers are created equal, so it's natural that different programmers will be willing to do different things to get the job done. But these differences in temperament can lead to drastically different design paths. Before you start working on your game, think about the following types of programmer stereotypes and see how you fit in.

Programmer stereotypes

Every programmer falls somewhere on this spectrum from techie to tinkerer to visionary, and their position on this spectrum probably changes every day depending on their mood and their level of sleep deprivation. The important thing to understand is that these are all valid and necessary approaches to game design. The more fully that you can embody the positive aspects of each of these stereotypes and curtail the negative, the more effective you will be as a game programmer.

Rule Two: Know your objective

The next thing you need to learn is that there is no right way to design a game. Every game makes its own demands and defines its own limits.

The important thing you need to keep in mind when you are designing your game, and throughout the game's entire development cycle, is that you need to design around the core features that make the game fun to play. If fun gameplay is not your first priority, then you might want to consider a career in an alternate field, like 3D imaging or artificial intelligence. The point is, you have to be clear about your real goals and intentions. Creating video games isn't the only way to contribute to this field. If your sole motivation in designing a game is to demonstrate some new technical feature, cut the gameplay elements and focus on the feature instead.

Here are a couple of different paths to game design that you may want to consider before beginning your own project.

Programming paths

Like the programmer stereotypes, each of these paths to game design has its own strengths and weaknesses and you will probably find yourself preferring different paths at different stages in the design phases of your game development cycle. Remember, there is no one right way to make a game, but the path you ultimately end up choosing will have a profound impact on the difficulty and length of the development cycle. Here is where you need to take another good hard look at yourself and decide what you are willing to do to bring your vision to life.

For some excellent advice on starting your first game project, see the section Tips on Designing Your First Game.

Tips on designing your first game

Choosing a programming language

If this is your first time programming, then the first thing you need to do is take a look at the programming languages and programming environments you will be using. The specific language that you use will, of course, depend to some degree on your background, and on the needs of the game.

There are a couple of different ways you can go about choosing a language:

The reason why your choice of a language may depend on the development environment is that not all languages support equally robust environments on all systems. If you are a new programmer, the last thing you want to worry about is setting up a complex command line build environment! Even though you may think that some obscure little language would be cool to learn, do yourself a favor and start by using a popular and well-supported environment. Unless, of course, you're the hard core techie type who finds that kind of trouble-shooting appealing.

If you are already proficient in a particular programming language, it is likely best to begin there since game programming is difficult enough on its own; learning a whole new language will only compound the difficulty.

If you are not familiar with any particular programming language, you'll need to decide which one you'd like to learn, but you are also in a unique and fortuitous scenario; you can pick the programming environment and language that is best for you.

When researching languages, you should consider:

There is an entire tutorial devoted to picking a first language here.

Choosing a library/API

Once you've decided on a language, you'll need to choose a game development library or API. Game libraries may provide you with functions for displaying graphics, playing sounds, getting input, and more. See the Wiki's Libraries for a list of libraries from which you can choose. This is another huge decision. Consider the following:

Educating yourself

Now that you've got a language and library in mind, it's time to read tutorials! This is the most important step in the whole process. Immerse yourself. Read everything you can. If you don't understand something, ask for help. Above all, do not give up!

The languages page will lead you to a number of game programming tutorials for your language of choice, and your library should have documentation for you to read. When you're ready to try writing some code of your own, you'll need an IDE, or "Integrated Development Environment," which is a program that supplies, among other advanced features, a place to write code and a way to compile it. With many languages, a full-blown IDE is not strictly necessary, but it still might be easier for a beginner to use one.

Whatever you do, don't get overwhelmed, or frustrated. Scope out some of this information, then roll up your sleeves and try some of it out. There's certainly something here that will fit your needs and your personality.

Creating game media

For many game developers, this is the hardest part! After perusing the content tools page and deciding on a set of tools, it's time to get down to the business of creating your game's media. If you aren't an artist, you may need to search around for partners who are skilled in this area. For beginner games, there isn't anything at all wrong with so-called "programmer art," however. You can also try some of the freely available art resources that can be found on the Internet. (See the Game Content Resources page.)

Coding tips

Future considerations

While it might seem a little early to be talking about releasing your game and supporting your fans, it's never too early to start thinking about the big picture.

Deploying your game

So, your game is complete and ready for the masses, but how do you get it to them? That's where deployment comes in. Be sure to read our deployment page for a full description of the options you have.

Selling your game

If you have created a game that you feel could be sold, you really have two options: Find a publisher, or publish the game yourself.

There are a number of independent game publishers out there on the internet. Some of them will require that you sign an exclusive contract with them, which means that they will be the sole distributors of your game. Other publishers may give you the option of signing a non-exclusive agreement, although for a lower rate of pay.

Self-publishing will ensure that a greater percentage of the total earnings will go into your pockets, but the twin burdens of marketing and sales will then fall squarely upon your shoulders.

Some truly excellent articles for independent game developers can be found on Dexterity Software's website.

Of course, if you're programming games for the joy of it, or you feel that it would be best for the future of the game and its players, it's always possible you'd like to release the games as Free Software/Open Source Software (FOSS). If so, it's advantageous to decide this early; A number of sites such as Sourceforge give free web-hosting to FOSS projects, and using a FOSS license allows you to reuse code from existing FOSS games with a compatible license. Contrary to popular belief, it is not only possible to make money selling FOSS, doing so is making money for many developers, such as Linden Labs. See Selling Free Software.

Getting more help

As always, if you aren't sure how to proceed, or are stuck in any way, visit the forums and ask for help! We're all friendly here, and are quite willing to lend newcomers a hand. After all, we were all newbies once!

External links

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox