Skip to content
schaul edited this page Jun 27, 2012 · 7 revisions

A high-level video game description language (VGDL) written in Python and built on top of pygame.

Motivation

Our aim is to make it easy to:

  • design new games that employ a variety of dynamics and strategies, in a simple language
  • automatically generate such games
  • use a collection of such games as benchmark for general AI approaches (possibly in competition format).

Structure

The aim is to decompose game descriptions into two parts:

  1. a high-level, human-readable description language, to specify the dynamics, which builds on
  2. an ontology of preprogrammed concepts for dynamics, interactions, control.

Programmers extend the possibilities of (1) by writing modules in (2), and game designers can very quickly compose new games from those components without programming.

The VGDL is further split into two parts, the description of the game dynamics (what types of objects exist, how they interact, and how the score is affected) and the level layouts (in 2D).

The interface and graphics are very much bare-bones (at least so far), because

  • these games are supposed to be played/learned by AI systems
  • this reduces the overhead in creating new games, and out objective is to have a very large collection of simple but interestingly different games, rather than a few complex and polished games.

In a first phase, all game objects are just colored squares.

Start here

  1. Look at the code for the example games and play a couple of those
  2. See if you can write a new variant (by just modifying a couple of lines in an existing game) that is fun to play!
  3. If you feel up to it, dive into the programming side and add new dynamics for even better games.

Wiki contents

Want to help?

The project design is supposed make it possible to build simple games without too much ramp-up effort: so if you wrote some, or even just some cool levels, please contribute them to the project!

Of course, this is very much work in progress, so all other contributions (new sprite types, physics types or more beautiful graphics) are welcome too!

My contact info

Clone this wiki locally