Game development tool

Last updated

A game development tool is a specialized software application that assists or facilitates the making of a video game. Some tasks handled by tools include the conversion of assets (such as 3D models, textures, etc.) into formats required by the game, level editing and script compilation.

Software non-tangible executable component of a computer

Computer software, or simply software, is a collection of data or computer instructions that tell the computer how to work. This is in contrast to physical hardware, from which the system is built and actually performs the work. In computer science and software engineering, computer software is all information processed by computer systems, programs and data. Computer software includes computer programs, libraries and related non-executable data, such as online documentation or digital media. Computer hardware and software require each other and neither can be realistically used on its own.

Application software computer software designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user

Application software is software designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user. Examples of an application include a word processor, a spreadsheet, an accounting application, a web browser, an email client,a media player, a file viewer, an aeronautical flight simulator, a console game or a photo editor. The collective noun application software refers to all applications collectively. This contrasts with system software, which is mainly involved with running the computer.

Video game electronic game that involves interaction with a user interface to generate visual feedback on a video device such as a TV screen or computer monitor

A video game is an electronic game that involves interaction with a user interface to generate visual feedback on a two- or three-dimensional video display device such as a TV screen, virtual reality headset or computer monitor. Since the 1980s, video games have become an increasingly important part of the entertainment industry, and whether they are also a form of art is a matter of dispute.

Contents

Almost all game development tools are developed by the developer custom for one game, or by a console manufacturer (such as Nintendo or Microsoft) as part of a game development kit. Though tools may be re-used for later games, they almost always start out as a resource for a single game. While many COTS packages are used in the production of gamessuch as 3D packages like Maya and 3D Studio Max, graphic editors like Photoshop and IDEs like Microsoft Visual Studio they are not considered solely game development tools since they have uses beyond game development.

A video game developer is a software developer that specializes in video game development – the process and related disciplines of creating video games. A game developer can range from one person who undertakes all tasks to a large business with employee responsibilities split between individual disciplines, such as programming, design, art, testing, etc. Most game development companies have video game publisher financial and usually marketing support. Self-funded developers are known as independent or indie developers and usually make indie games.

Nintendo Japanese video game company

Nintendo Co., Ltd. is a Japanese multinational consumer electronics and video game company headquartered in Kyoto. Nintendo is one of the world's largest video game companies by market capitalization, creating some of the best-known and top-selling video game franchises, such as Mario, The Legend of Zelda, and Pokémon.

Microsoft U.S.-headquartered technology company

Microsoft Corporation (MS) is an American multinational technology company with headquarters in Redmond, Washington. It develops, manufactures, licenses, supports and sells computer software, consumer electronics, personal computers, and related services. Its best known software products are the Microsoft Windows line of operating systems, the Microsoft Office suite, and the Internet Explorer and Edge web browsers. Its flagship hardware products are the Xbox video game consoles and the Microsoft Surface lineup of touchscreen personal computers. As of 2016, it is the world's largest software maker by revenue, and one of the world's most valuable companies. The word "Microsoft" is a portmanteau of "microcomputer" and "software". Microsoft is ranked No. 30 in the 2018 Fortune 500 rankings of the largest United States corporations by total revenue.

The game tools may or may not be released along with the final game, depending on what the tool is used for. For contemporary games, it is common to include at least level editors with games that require them.

History

Early in the history of the video game industry, game programming tools were non-existent. This wasn't a hindrance for the types of games that could be created at the time, however. While today a game like Pac-Man would most likely have levels generated with a level editor, in the industry's infancy, such levels were hard coded into the game's source code.

The video game industry is the economic sector involved in the development, marketing, and monetization of video games. It encompasses dozens of job disciplines and its component parts employ thousands of people worldwide.

<i>Pac-Man</i> 1980 video game made by Namco Ltd.

Pac-Man is an arcade game designed by Toru Iwatani and published by Namco and Midway Games. It was initally released in Japan as PUCKMAN in May 1980, followed by the United States in October of the same year.

Level editor software tool to design video game graphics

A level editor is software used to design levels, maps, campaigns, etc. and virtual worlds for a video game. An individual involved with the creation of game levels is a level designer or mapper.

Images of the player's character were also hard-coded, being drawn, frame by frame, by source code commands. As soon as the more technologically advanced use of sprites became common, game development tools began to emerge, custom programmed by the programmer. Today, game development tools are still often programmed by members of the game development team by programmers, often whose sole job is to develop and maintain tools.

Sprite is a computer graphics term for a two-dimensional bitmap that is integrated into a larger scene, most often in a 2D video game.

Examples

Bitsy: A game development tool featured exclusively at itch.io

itch.io website for hosting and commercialization of video games

itch.io is a website for users to host, sell and download indie video games. Released in March 2013 by Leaf Corcoran, the service hosts nearly 100,000 games and items as of February 2018.

Use

Numerous tools can be used to assist in game development. Often developers use tools to convert 3D model formats and graphic image formats into custom formats (though, increasingly, importers and exporters handle these tasks). Level editors are used to create environments and other tools may be used to view assets before they are incorporated in the game. For a contemporary commercial game, a half dozen tools or more may be used to assist in the game creation process.

An importer is a software application that reads in a data file or metadata information in one format and converts it to another format via special algorithms. An importer often is not an entire program by itself, but an extension to another program, implemented as a plug-in. When implemented in this way, the importer reads the data from the file and converts it into the hosting application's native format.

An exporter is a software application that writes out a data file in a format different from its native format. It does this via special algorithms. An exporter often is not an entire program by itself, but an extension to another program, implemented as a plug-in. When implemented in this way, the exporter converts the hosting application's native format into the desired format and writes it to the file.

Game tools change very often during the development process. The look and facility of a tool from the beginning of a project to the end may change dramatically. Often features are added with very little testing to assist other developers as fast as possible. The use of a tool also changes so much that users may have difficulty operating it from one day to the next as late-added features change how it is to be used. Since facility is often the primary goal for tools, they may be very user-unfriendly, with little or no built-in help. For tools that are to be shipped with the game, often debugging and user-friendly features are done near the end of the development process.

Outside of the game development team during the game's creation, many tools would have little facility. Level editors, however, once entirely proprietary, have increasingly been included with the shipping game to allow users to create their own game scenarios. Some games, such as Firaxis' Civilization IV , are built with user modification in mind and include numerous tools for game customizing.

See also

Related Research Articles

GIMP Open source image retouching and editing tool

GIMP is a free and open-source raster graphics editor used for image retouching and editing, free-form drawing, converting between different image formats, and more specialized tasks.

Integrated development environment software application used to develop software

An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools, and a debugger. Some IDEs, such as NetBeans and Eclipse, contain the necessary compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not.

Plug-in (computing) software component that adds a specific feature to an existing software application

In computing, a plug-in is a software component that adds a specific feature to an existing computer program. When a program supports plug-ins, it enables customization.

Programmer person who writes computer software

A programmer, developer ("dev"), coder, or software engineer is a person who creates computer software. The term computer programmer can refer to a specialist in one area of computers, or to a generalist who writes code for many kinds of software. One who practices, or professes, a formal approach to programming may also be known as a programmer analyst. On the other hand, "code monkey" is a derogatory term for a programmer who simply writes code without any involvement in the design or specifications.

Software documentation is written text or illustration that accompanies computer software or is embedded in the source code. The documentation either explains how the software operates or how to use it, and may mean different things to people in different roles.

Text editor Software to modify text documents

A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software, following the naming of Microsoft Notepad. Text editors are provided with operating systems and software development packages, and can be used to change files such as configuration files, documentation files and programming language source code.

In computing, cross-platform software is computer software that is implemented on multiple computing platforms. Cross-platform software may be divided into two types; one requires individual building or compilation for each platform that it supports, and the other one can be directly run on any platform without special preparation, e.g., software written in an interpreted language or pre-compiled portable bytecode for which the interpreters or run-time packages are common or standard components of all platforms.

Game engine Software-development environment designed for building video games

A game engine is a software-development environment designed for people to build video games. Developers use game engines to construct games for consoles, mobile devices, and personal computers. The core functionality typically provided by a game engine includes a rendering engine ("renderer") for 2D or 3D graphics, a physics engine or collision detection, sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, scene graph, and may include video support for cinematics. Implementers often economize on the process of game development by reusing/adapting, in large part, the same game engine to produce different games or to aid in porting games to multiple platforms.

A software house is a company whose primary products are various forms of software, software technology, distribution, and software product development. Software houses are companies in the software industry.

A game programmer is a software engineer, programmer, or computer scientist who primarily develops codebases for video games or related software, such as game development tools. Game programming has many specialized disciplines, all of which fall under the umbrella term of "game programmer". A game programmer should not be confused with a game designer, who works on game design.

A programming tool or software development tool is a computer program that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs, that can be combined together to accomplish a task, much as one might use multiple hand tools to fix a physical object. The most basic tools are a source code editor and a compiler or interpreter, which are used ubiquitously and continuously. Other tools are used more or less depending on the language, development methodology, and individual engineer, and are often used for a discrete task, like a debugger or profiler. Tools may be discrete programs, executed separately – often from the command line – or may be parts of a single large program, called an integrated development environment (IDE). In many cases, particularly for simpler use, simple ad hoc techniques are used instead of a tool, such as print debugging instead of using a debugger, manual timing instead of a profiler, or tracking bugs in a text file or spreadsheet instead of a bug tracking system.

Video game development is the process of creating a video game. The effort is undertaken by a developer, ranging from a single person to an international team dispersed across the globe. Development of traditional commercial PC and console games is normally funded by a publisher, and can take several years to reach completion. Indie games usually take less time and money and can be produced by individuals and smaller developers. The independent game industry has been on the rise, facilitated by the growth of new online distribution systems such as Steam and Uplay, as well as the mobile game market for Android and iOS devices.

Game programming, a subset of game development, is the software development of video games. Game programming requires substantial skill in software engineering and computer programming in a given language, as well as specialization in one or more of the following areas: simulation, computer graphics, artificial intelligence, physics, audio programming, and input. For massively multiplayer online games(MMOG),knowledge of additional areas such as network programming and database programming is requisite. Though often engaged in by professional game programmers, some may program games as a hobby.

Adventure Game Studio game creation kit and engine

Adventure Game Studio (AGS) is an open source development tool that is primarily used to create graphic adventure games. It is aimed at intermediate-level game designers, and combines an Integrated development environment (IDE) for setting up most aspects of the game with a scripting language based on the C language to process the game logic.

Hard coding is the software development practice of embedding data directly into the source code of a program or other executable object, as opposed to obtaining the data from external sources or generating it at run-time. Hard-coded data typically can only be modified by editing the source code and recompiling the executable, although it can be changed in memory or on disk using a debugger or hex editor. Data that are hard-coded usually represent unchanging pieces of information, such as physical constants, version numbers and static text elements. Softcoded data, on the other hand, encode arbitrary information like user input, HTTP server responses, or configuration files, and are determined at runtime.

In computer programming, Intentional Programming is a programming paradigm developed by Charles Simonyi that encodes in software source code the precise intention which programmers have in mind when conceiving their work. By using the appropriate level of abstraction at which the programmer is thinking, creating and maintaining computer programs become easier. By separating the concerns for intentions and how they are being operated upon, the software becomes more modular and allows for more reusable software code.

The Apple Developer Tools are a suite of software tools from Apple to aid in making software dynamic titles for the macOS and iOS platforms. The developer tools were formerly included on macOS install media, but are now exclusively distributed over the Internet. As of macOS 10.12, Xcode is available as a free download from the Mac App Store.

ShiVa3D is a 3D game engine with a graphical editor designed to create applications and video games for desktop PCs, the web, game consoles and mobile devices. Games made with ShiVa can be exported to over 20 target platforms, with new export targets being added regularly.

The Language Server Protocol (LSP) is an open, JSON-RPC-based protocol for use between source code editors or integrated development environments (IDEs) and servers that provide programming language-specific features. The goal of the protocol is to allow programming language support to be implemented and distributed independently of any given editor or IDE.