Pages

Thursday, May 15, 2008

Game Programming (First Steps)

Game Programming
(First Steps)

The first thing to do is to decide which programming language or programming environment you would like to use.

You can go about this in several ways:
You can begin by choosing which language you wish to program in and then find a suitable development environment for that language.
You can begin by choosing a development environment and work with the language options your chosen development environment gives you.
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:
How easy is the language to learn?
Is the language suitable for making games? (Is it fast and powerful enough?)
Does the language work with suitable game development libraries or APIs?
What platforms (Operating systems/processor architectures) will the language run on?
Will I be able to find support when I run in to problems? Is there adequate documentation available?
There is an entire tutorial devoted to picking a first language here.
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:
Is the library compatible with my language?
Is the library suited to my skill level?
Will the library work with the kind of games I plan on making?
Is adequate documentation available so that I can learn the library?
Do I understand and agree to the library's license?
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. You now learn to use your selected language and library. Immerse yourself. Read everything you can. If you don't understand, 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.

Next : Designing

Sunday, May 11, 2008

Game Programming (Started)

Game Programming
(Started)


How do I get Started

When beginning to learn about game programming, finding a place to start can be intimidating and difficult. This article aims to help point you in the right direction, by giving you the tips and resources you need.

The Approach: How do I get started?
The answer to this question can depend on many things, one of them being your personality.
Are you the type of self-motivated person that can flow through difficult and even frustrating puzzles and problems to reach a goal? If so and you have a game idea that you dream about every night, then it would be wise (and you probably have the determination) to begin with the information given in the following sections.
Or are you the type of person that would like to see results quickly and are perhaps interested in avoiding as many complicated and frustrating scenarios as possible (they will always be there) at least for now? If so it could be ideal for you to take up programming by working with a pre-made game engine, as you would likely get faster results that way than you would with a traditional programming language/gaming library combination.

Perhaps it would be best to find a development environment and begin programming as many small games (Pong, Tetris, Breakout, etc...) as you can just to get a feel for how they are done. Perhaps pick your favorite and really flesh it out with all the bells and whistles and fantastic features you can think of.

This page is to help you determine the best approach for you. This page even gets you thinking about distributing or releasing your game to the public, which is admittedly beyond a 'Getting Started' issue for a beginning programmer, but could be considered a 'Getting Started' issue for a programmer who is just beginning game development.
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.

Next : First Steps

Saturday, May 10, 2008

What is Game Programming

What is Game Programming

Playing a computer game is one thing, but how are these games produced? Could I make my own computer game? How do companies bring together the art, music and story and meld it together to form an interactive experience? To some, this process seems like a voodoo; a complex dark art that they neither understand, or feel that only large companies with millions of funding and masses of staff are capable of doing.
'Programming' is the act of instructing a computer to do your bidding. Computer games are made up of millions of individual instructions that tell the computer what to draw where, how to make the characters act, what to show on screen and so on. These instructions are what bring together the art, sound and story, much like a film director calls out, "Lights, Camera, Action!". (Although Programming is not quite that simple, yet!)

Game programming is an endless supply of coffee. It is sitting in your room listening to music on your headphones because it's 01:00 and everyone else is sleeping. Game programming is collision detection, vectors, mathematics, and in some cases, frustration. Game programming is NOT sleeping and definitely NOT profitable (for most) but game programming is FUN and we love game programming! Game programming all the way!
Nonetheless, it's possible to get a job in the game industry! Imagine working with other creative, like-minded individuals to develop games that millions of people will potentially play! Game programmers work with other passionate artists, game designers, and production managers to take an idea to reality. Many companies such as Microsoft Games Studios, Rare, and Bungie offer internships to students who have an interest in video game programming. So, keep reading to discover how you can develop the game of your dreams.

Game Programming is your school level studies combined with your state of the art computer programming skills. If you know C/C++ perfectly, that doesn't assure that you'd be a perfect game programmer because game programming requires knowledge of 3D mathematics clubbed with AI and physics skills. Game Programming is fun but the most challenging form of programming as there are not much possibilities of work arounds in this domain, there's just one way and that is DO IT RIGHT IN THE MOST OPTIMIZED WAY.

Note: It is not a requirement of programming that you practice bad sleeping habits, nor is it recommended. Don't forget to take regular breaks, away from the computer, and sleep as needed. Some doctors recommend diverting your eyes every ten minutes or so for about one minute. Looking out the window, or at something that doesn't stress your eyes, is a good idea for long term "sessions."

Thursday, May 1, 2008

Game Programming

Game Programming

Game programming, a subset of game development, is the programming of computer, console or arcade games. Though often engaged in by professional game programmers, many novices may program games as a hobby. Some software engineering students program games as exercises for learning a programming language or operating system.

Development process
Professional game development usually begins with a game design, which itself has several possible origins. Occasionally the game development process starts with no clear design in mind, but as a series of experimentations. For example, game designer Will Wright began development of The Sims – the best-selling PC game of all time – by getting programmers to experiment with several ideas.

Prototyping
Programmers are often required to produce prototypes of gameplay ideas and features. A great deal of prototyping may take place during pre-production, before the design document is complete, and may help determine what features the design specifies.
Prototypes are developed quickly with very little time for up-front design and mostly act as a proof of concept or to test ideas.

Game design
Though the programmer's main job is not to develop the game design, the programmers often contribute to the design as do game artists. The game designer will solicit input from both the producer and the art and programming lead for ideas and strategies for the game design. Often individuals in non-lead positions also contribute, such as copywriters and other programmers and artists.
Programmers often closely follow the game design document. As the game development progresses, the design document changes as programming limitations and new capabilities are discovered and exploited.

Production
During production, programmers churn out a great deal of source code to create the game described in the game's design document. Along the way, the design document is modified to meet limitations or expanded to exploit new features. The design document is very much a "living document" much of whose life is dictated by programmer's schedules, talent and resourcefulness.
While many programmers have some say in a game's content, most game producers solicit input from the lead programmer as to the status of a game programming development. The lead is responsible for knowing the status of all facets of the game's programming and for pointing out limitations. The lead programmer may also pass on suggestions from the programmers as to possible features they'd like to implement.
With today's visually rich content, the programmer must often interact with the art staff. This very much depends on the programmer's role, of course. For example, a 3D graphics programmer may need to work side by side with the game's 3D modelers discussing strategies and design considerations, while an AI programmer may need to interact very little, if at all, with the art staff. To help artists and level designers with their tasks, programmers may volunteer or be called upon to develop tools and utilities. Many of these may be ad-hoc and buggy due to time constraints (time for development of such tools is often not included in a game's schedule) as well as because they are only for in-house use anyway. Many game tools are developed in RAD languages for quicker development and may be discarded after the completion of the game.

Testing
The formal quality assurance testing process, performed by professional game testers, begins well into game development. High-budget titles may begin testing with the first playable alpha, while low-budget and casual games might not enter testing until a release candidate is ready. The programmers' task is to fix errors and bugs as such are discovered by the QA teams.