Game Programming

Game Programming        

By: James Howze, Brandon Runyan, Deontae' Hayden, Melissa Alvarado, and Ahmed Alhamadah 

Starting out: First Steps  

    When you are first starting out in Game programming you need to pick a programming language. Some of them are easier to use than others normally C or C++ have been more on the difficult end and would not be recommended for beginners unless that have a background with that language already. Gathering some information the chosen language would be a great next step. You can usually pick up a book for that specific language in your local library or book store. If you are having trouble locating information on the language of your choice the Internet has several places that you can search for in most search engines.

 

    The next to think about when programming a video game is to decide on the application programming interface (API).  Virtually all software has to request other software to do some things for it. To accomplish this, the asking grogram uses a set of standardized requests, called application programming interfaces that have been defined for the program being called upon. Almost every application depends on the APIs of the underlying operating system to perform such basic function as accessing the file system. In essence, a program’s API defines the proper way for a developer to request services from that program.

 

Ok so we have some of the underlying basics covered now let’s talk about what is going to go into your game. We have to ask some questions to get to the next step in where to talk the game.

 

·       What type of game do you want to make? (i.e.: simulation, role-playing…..)

·       Will your game be in 2D or 3D?

·       What is the target outcome of your game? (i.e.: education, fun, story telling….)

·       Who is the target Audience of your game?

These questions will start the story board process. You will be able to take note cards and place them on a board in a specific order on when you want special events to take place to get a very rough idea of what you want to accomplish. Plan on adding to and subtracting from the story board as you go along in the development process. This will also effect where you are going to take you first steps in developing the actually game. You have to have a well laid plan in order to have a well-developed game.

Roughing It out

Now that you have a rough story board draft of what you want with a game it is time to start adding in details. What type of characters or interactions will your player have with the game? What role is the person going to assume when they play your game? The questions you should be answering at this point should give you some structure to start and bring the idea of you game to take shape. This leaves the ideas well laid out and we can start with what you will need to do to make your game come to life.

            There are certain things that will need to know how to do when developing a video game. Here is a small list of things that you will likely need to be able to do with your chosen language.

  • Adding Game Assets to your game.
  • Load Content
  • Draw a Sprite
  • Draw Text
  • Make a First – Person Camera
  • Render a Model
  • Use Basic Effects
  • Detect whether a controller button is Pressed
  • Play a Sound
  • Write Games for Capable Hardware
  • Open a File

First of Game assets are just about everything that you see inside of the world. This is for the kitchen sink to the trees you see out the window, also the window. Depending on how you go about coding your game assets can be easy to pull up by importing a file or sometimes you will have to design and develop you own with your artistic expression and idea of what the item should look like.  A large part of your programming time will be in deciding what assets to include in the game as well as how your player input can affect these assets.

You will end up having a lot of different areas of storage for information to be used in your game and being able to bring that content up for quick use is essential. With modern technology most users of video games don’t want to be stuck at a load screen for 3 hours waiting for some small video to decompile. You will need to assign how and when content is to be used.

A sprite is a two-dimensional image or animation that is integrated into a larger scene. Initially including just graphical objects handled separately from the memory bitmap of a video display, this no includes various manners of graphical overlays. Sprites are easily manipulated and can be the focus of your player interaction with ease of control.

Text comes in many shapes and sizes and that is something that we fail to think about in most days and times. When you are programming your game any text is going to be important and you will have to decide on font type and style. If the color of the text is too close to the background some people may have trouble see it. If you pick something that is red or green could that affect people who are color blind. Will the text do anything special like flash or fly on the screen. These are all things that need to be taken in mind when you are developing your video game.

Now you don’t necessarily need to make a first – person camera view but depending on your game it will be required. Sometimes players enjoy the freedom of view that get from a first person view. I may also be the way you wish certain assets to be displayed to the player. Think about how the player will interact with the camera. This feature can add a lot to the dramatic effect of a certain event that you want to emphases to your player.

Rendering

Rendering is the most technically complex aspect of 3D production, but it can actually be understood. The term rendering refers to the calculations performed by a 3D software package’s render engine to translate the scene from a mathematical approximation to a finalized 2D image. During the process, the entire scene’s spatial, textural, and lighting information are combined to determine the color value of each pixel in the flattened image.

There are two main types of Render that you should become familiar with Real-Time Rendering and Offline/Pre-Rendering. Real time Rendering is used most prominently in gaming and interactive graphics, where images must be computed from 3D information at an incredibly rapid pace. Offline rendering is used in situations where speed is less of an issue, with calculation typically preformed using multi-core CPUs rather than dedicated graphics hardware. You can see this difference pretty easily in when you first start up a video game these days you notice they have a very sharp and amazing cinematic to start out the game. When you finally get into the game it doesn’t look nearly as nice as that cinematic did. That is because the cinematic is done offline where Photorealism is important and what you see in game is done in Real-Time.

Well now we have this nicely rendered 3D image on screen now we have to create some effects. Explosions, movement, rain, sunlight, these are all effects that will be incorporated into your game. Lighting and shading are going to add a large effect to your game and make it feel more realistic. You have to be careful here thought because shadows are hard to render. If it is to complex they will slow down the gameplay to a point unpleasant to play.

Control

Everything looks nice and the game has some stunning effects but we have a problem. You can’t do anything! Programming in control detection is something you have to come up with. Will you player use a control pad or a keyboard an mouse. Will you be able to rebind the keys used to play the game? This is a very important part because this directly effects how your player interacts with your game. A bad interface will cause lag to the game and the player will lose interest, it also needs a logical layout so that the most used an important buttons are easy to reach and not in weird places making it uncomfortable to constantly use them.

This is nearing the end development of the main parts of the game but we are forgetting one of the most important things. You have to breathe life into this game with sound. You choices in what item makes what sound will be very important to how the player believes that he is actually living that experience. When you put a large explosion on the screen he should not hear a cat’s meow. The music choice of the game is also very important for what type of atmosphere you are trying to set. If you player has just entered a very creepy dungeon you don’t want to have a very upbeat song playing. The player needs to feel that the dungeon is creepy with the atmosphere that you set.

Progress Saving

One of the last things you will need to look at when finishing up everything on your is how it is going to open other files. You player will most likely want to save his game progress and that is something that you need to account for. Where will it save his information and how will it go about retrieving that information when he is ready to continue it. Also how will you be able to set up the game so it knows where this character left off and what he had on him when he saved.

Building a game can be a very rewarding programming challenge. If you do decide to conquer the world of gaming it will be a tough road. Competition is hard for the few jobs at large corporations but the reward of seeing the final product of a well-made game can fill you with a great sense of pride. You will learn a lot when programming for a video game because it requires the solving of so many problems not just specific to the gaming world but computers around the world.

Works Cited

 "Begin Game Programming Basics." Stack Overflow. N.p., 13 2011. Web. 12 Dec 2012. <http://stackoverflow.com/questions/4635772/begin-game-programming-basics>.

 "Fundamental How-to topics." Game Programming Basics. Microsoft. Web. 12 Dec 2012. <http://msdn.microsoft.com/en-us/library/bb975874(v=xnagamestudio.31).asp&xgt;.

Orenstein, David. "QuickStudy: Application Programming Interface." ComputerWorld. International Data Group Inc, 10 2000. Web. 12 Dec 2012. <David Orenstein>.

Slick, Justin. "What Is Rendering." About.com. About.com. Web. 12 Dec 2012. <http://3d.about.com/od/3d-101-The-Basics/a/Rendering-Finalizing-The-3d-Image.htm>.

 "Sprite (Computer Graphics)." Wikipedia. Wikimedia Foundation Inc., 10 2012. Web. 12 Dec 2012. <http://en.wikipedia.org/wiki/Sprite_(computer_graphics)>.

Comments