Open source game engines are frameworks used to help create games for computers, consoles and other devices. Providing the core game engine can help programmers to focus more on the game logic and less on basic aspects such as displaying graphics, playing sound or networking. There are a number of open source game engines available, each geared toward creating a specific type of game. Some engines allow for vast three-dimensional (3D) worlds, while others focus on optimized two-dimensional (2D) graphics that can be played on handheld or mobile devices. When engines are developed as open source, the benefit is that an enthusiastic community of players can help to develop and test the engine.
A game engine is different from a completed game, because it contains only the abstracted, core elements of the program code, such as the ability to display graphics. The engine does not contain any game data or any game logic. This means most engines require more programming and development on top of what is provided if a completed game is to be created. There are a small amount of open source game engines that do allow a point-and-click approach to development, but these are rare and limited in their power.
There are different types of open source game engines designed to handle different aspects of a game. Some are designed to handle all aspects of a game, from graphics to input, while others are designed to handle certain areas, such as audio. Unlike some game engines that are not open source, these will always include the source code, allowing them to be seamlessly integrated into the completed game. It also means the code can be modified to meet the needs of the programmer.
Most of the open source game engines that are available support special scripting languages. These languages can be used to customize the performance of the game engine without the need to recompile the source code. These scripting languages also can sometimes be used to define the game logic, or how the game is played, without the needed to write and compile actual code files.
Developing a game with open source game engines can help to reduce the amount of time needed to code functions that many others have already done, but it also can lead to some problems. For one, anyone can have access to the game engine code and might be able to exploit bugs and glitches to gain an advantage in the game. Another problem could be inherent flaws inside the engine code that could be very difficult to find because the code was written by a third party. Open source game engines also cannot, in general, be used for commercial game development, because of the license, so the games created with them cannot be sold.