How do PC games work
Video games are simply computer programs. These programs are lists of instructions to the processor to perform mathematical calculations. These calculations perform the video sound and logic (A.I) of the computer game.
Videogames can be written in many different programming languages but perhaps the most frequently used is C++ for large projects that require high performance. C++ is a good midway point between the high speed and low footprint of assembly language but with the rapid development speed of a high level language. Furthermore it allows for the modular use of library files.These libraries of functions can then be used to by multiple projects to enhance the time to market of the game. An example of this is Microsofts DirectX and the open source OpenGLwhich are libraries of instructions and functions which make the writing of multimedia applications and videogames far more simple than it was prior to their release.
Today the idea of complex libraries have been taken a step further with complete construction kits to create a particular game type. Generally these engines come complete with all of the software tools to produce a particular genre of game. These engines expediate the completion a project, but frequently are so specialised in niche game that they tend to produce 'cookie cutter' games. Games from these engines are frequently so similar that often only the graphics and sound effects are different between the games. Examples of game engines are The UNreal engine, Renderware, EAgle, and the Doom Engine. But these days there are hundreds of commercial and GNU game engines.
The development of a video game usually takes a number of steps to complete. These steps are in common with any other software projects and are described as a methodology. There are variations of software methodologies but in general they have many of the same features. They usually break into the following;
- Analysis
- Feasibility
- Specification
- Design
- Code
- Test
- Release
- Maintainance
Analysis looks at what is required for the program.
Feasibility looks at whether it is possible within constraints
Specification is what is needed to be created
Design is the write up how the project will work
Coding is the actual writing of the software
Testing make sure the programs is bug free
Release is the actual release of the fully developed software and any emergency patching required.
Maintainance is the release of updates patches etc. as required.
Not all games follow this exact number of steps but generally it is the way that projects are completed.
If you want to take up games programming then you should consider learning a programming language first, consider either taking up a university/college course in programming or getting involved with a public open surce project.
Most established computer companies require at least a Batchelors degree in maths or computer programming to even be considered for a trainee position these days, although there are always places other vocations such as artists and musicians. A ggod way in for a propective games developer is to get into a company as a software tester first and work your way up from there.