Video and computer games are usually based on a programming language, such as C++, Java or Flash. The traditional route for publishing was to go through a major publisher like Electronic Arts, but game developers are now also able to self-publish through digital download platforms like Steam.
Creating a game involves programming it in a programming language. The services of professional artists, musicians and writers are also often engaged to create content and unique assets for the game. There are some tools that enable the creation of relatively simple games without the need for a programming language, however, such as "GameMaker: Studio" by YoYo Games. Prefabricated and flexible game engines are also often used as a base, such as CryENGINE or the Unreal Engine.
Traditionally, a game developer had to find an established publisher to publish and market his game for him. With the advent of digital distribution, however, developers have the option of publishing a game on their own. Some of the popular platforms for this are Steam, Good Old Games, Desura, Gamers Gate and DotEmu. It is also possible for developers to publish a game entirely independently by purchasing their own Web hosting for it and subscribing to a payment processing service.