Domain-specific entertainment language

Last updated

Domain-specific entertainment languages are a group of domain-specific languages that are used describe computer games or environments, or potentially used for other entertainment such as video or music.

A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging from widely used languages for common domains, such as HTML for web pages, down to languages used by only one or a few pieces of software, such as MUSH soft code. DSLs can be further subdivided by the kind of language, and include domain-specific markup languages, domain-specific modeling languages, and domain-specific programming languages. Special-purpose computer languages have always existed in the computer age, but the term "domain-specific language" has become more popular due to the rise of domain-specific modeling. Simpler DSLs, particularly ones used by a single application, are sometimes informally called mini-languages.

Contents

Game languages

Zillions of Games commercial general game playing system

Zillions of Games is a commercial general game playing system developed by Jeff Mallett and Mark Lefler in 1998. The game rules are specified with S-expressions, Zillions rule language. It was designed to handle mostly abstract strategy board games or puzzles. After parsing the rules of the game, the system's artificial intelligence can automatically play one or more players. It treats puzzles as solitaire games and its AI can be used to solve them.

Game Description Language, or GDL, is a logic programming language designed by Michael Genesereth as part of the General Game Playing Project at Stanford University, California. GDL describes the state of a game as a series of facts, and the game mechanics as logical rules.

Xconq 1987 video game

Xconq is an open-source computer strategy game and game engine. First posted to comp.sources.games on 9 July 1987, it is notable as one of the first multi-player games to be released for the X Window System. It was for several years the only turn-based graphical war game available on Unix/X systems. Xconq is released as free and open-source software under the terms of the GNU General Public License v2.

Interactive fiction

Infocom was a software company based in Cambridge, Massachusetts that produced numerous works of interactive fiction. They also produced one notable business application, a relational database called Cornerstone.

Text Adventure Development System (TADS) is a prototype-based domain-specific programming language and set of standard libraries for creating interactive fiction (IF) games.

RenPy Visual Novel Engine

The Ren'Py Visual Novel Engine is a free software engine which facilitates the creation of visual novels, a form of computer-mediated storytelling. Ren'Py is a portmanteau of ren'ai (恋愛), the Japanese word for 'romantic love', a common element of games made using Ren'Py; and Python, the programming language that Ren'Py runs on. Ren'Py has proved attractive to English-language hobbyists; over 1000 games use the Ren'Py engine, nearly all in English.

MUDs

LambdaMOO is an online community of the variety called a MOO. It is the oldest MOO today.

LPMud, abbreviated LP, is a family of MUD server software. Its first instance, the original LPMud game driver, was developed in 1989 by Lars Pensjö. LPMud was innovative in its separation of the MUD infrastructure into a virtual machine and a development framework written in the LPC programming language.

LPC is an object-oriented programming language derived from C and developed originally by Lars Pensjö to facilitate MUD building on LPMuds. Though designed for game development, its flexibility has led to it being used for a variety of purposes, and to its evolution into the language Pike.

Music

Movies

See also

Related Research Articles

Simple DirectMedia Layer free software multimedia library

Simple DirectMedia Layer (SDL) is a cross-platform software development library designed to provide a hardware abstraction layer for computer multimedia hardware components. Software developers can use it to write high-performance computer games and other multimedia applications that can run on many operating systems such as Android, iOS, Linux, macOS, and Windows.

SCUMM scripting language developed at LucasArts

Script Creation Utility for Maniac Mansion (SCUMM) is a video game engine developed at Lucasfilm Games, later renamed LucasArts, to ease development on their first graphic adventure game Maniac Mansion (1987). It was subsequently used as the engine for later LucasArts adventure games.

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 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.

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.

PyQt GUI Library for Python

PyQt is a Python binding of the cross-platform GUI toolkit Qt, implemented as a Python plug-in. PyQt is free software developed by the British firm Riverbank Computing. It is available under similar terms to Qt versions older than 4.5; this means a variety of licenses including GNU General Public License (GPL) and commercial license, but not the GNU Lesser General Public License (LGPL). PyQt supports Microsoft Windows as well as various flavours of UNIX, including Linux and MacOS.

Pygame is a cross-platform set of Python modules designed for writing video games. It includes computer graphics and sound libraries designed to be used with the Python programming language.

A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Many of these markup languages are dialects of XML and are dependent upon a pre-existing scripting language engine, usually a JavaScript engine, for rendering of controls and extra scriptability.

CherryPy is an object-oriented web application framework using the Python programming language. It is designed for rapid development of web applications by wrapping the HTTP protocol but stays at a low level and does not offer much more than what is defined in RFC 7231.

Unigine is a proprietary cross-platform game engine, developed by Russian software company Unigine Corp. Apart from its use as a game engine, it is mainly used in enterprise area: simulators, virtual reality systems, serious games and visualization. Distinguishing feature of Unigine is the support for large open worlds, up to the planet scale. It also has advanced 3D renderer which currently supports OpenGL 4 and DirectX 11. An updated Unigine SDK is released each 3 months.

SCXML stands for State Chart XML: State Machine Notation for Control Abstraction. It is an XML-based markup language that provides a generic state-machine-based execution environment based on Harel statecharts.

CEGUI graphical user interface software library for the C++ programming language

Crazy Eddie's GUI (CEGUI) is a graphical user interface (GUI) library for the programming language C++. It was designed for the needs of video games, but is usable for non-game tasks, such as applications and tools. It is designed for user flexibility in look-and-feel, and to be adaptable to the user's choice in tools and operating systems.

The DASL Programming Language is a high-level, strongly typed programming language originally developed at Sun Microsystems Laboratories between 1999 and 2003 as part of the Ace Project. The goals of the project were to enable rapid development of web-based applications based on Sun's J2EE architecture, and to eliminate the steep learning curve of platform-specific details.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

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.

A game creation system (GCS) is a consumer-targeted game engine and a set of specialized design tools, engineered for the rapid iteration of user-derived video games. Examples include Novashell and Pie in the Sky.

References

  1. EGGG : The extensible graphical game generator by Jon Orwant, a Ph.D. Thesis
  2. "Video Game Language (ViGL) Archived January 6, 2006, at the Wayback Machine " begins to abstract away all the reusable technical and game related aspects that most games utilize into a domain specific language.
  3. http://www.pygame.org/project-A+video+game+description+language+(VGDL)-2397-4058.html A language for developing 2D video games using the pygame engine
  4. "Archived copy". Archived from the original on 2011-07-08. Retrieved 2010-06-28.CS1 maint: archived copy as title (link)
  5. Game Description Language Specification Archived July 20, 2011, at the Wayback Machine (PDF)
  6. Game Description Language for Incomplete Information. Extension to GDL which includes randomness and visibility (PDF)
  7. World Description Language (PDF). No longer available. Extension to GDL which includes realtime, randomness and visibility
  8. GameXML Archived May 21, 2011, at the Wayback Machine is a collection of XML specifications which describe and script computer simulation engines. Developed by the XML Game Consortium (XGC), it is an ongoing project to create a reusable, standards-based architecture that can be applied toward computer games and simulations.
  9. Xconq Xconq is a general strategy game system. It is a complete system that includes all the components: a portable engine, graphical interfaces for Unix/Linux/X11, Macintosh, and Windows, multiple AIs, networking for multi-player games, and an extensive game library.
  10. The Card Game Language Archived 2016-03-04 at the Wayback Machine The Card Game Language, or CGL for short, is a language which was developed during created by students in a project dedicated to the subject of language and compiler theory.
  11. The Card Game Description Language
  12. Modelling and Generating Strategy Games Mechanics by Tobias Mahlmann, a Ph.D. Thesis
  13. Gamut, a game generating command line program