Skip to content


Repository files navigation

avdl - Abstract video-game development language

GitHub release (latest SemVer) Travis (.com) Coverage Status

This is a high level programming language for making video games.

The idea behind it, is that a game is described using the language in an abstract way. Then it's the compiler's responsibility to compile that into an actual executable game for specific platforms.

Published under the GPL-3 license, this project can be used for free. Any game created with avdl fully belongs to the person that made it, and they can do what they like with it.

Games made with this language

These are games made by me, using avdl, to get an idea of what the language can do.

Available on these Linux Distros

You can find this project packaged for the following Linux distributions:

Ubuntu 20.04.2 LTS

Add the Personal Package Archive (PPA) to your system, then update repositories and install:

add-apt-repository ppa:afloofdev/avdl
apt-get update
apt-get install avdl

Note: These commands require root permissions, usually aquired with the sudo command.

Arch Linux - AUR

AUR version

You can find this project in the Arch User Repository (AUR). Make sure to install the dependencies listed here:

Using the command line, move to an empty directory and run:

git clone
pacman -U avdl-<version>-<arch>.pkg.tar.zst

Note: The command pacman -U needs root permissions, as it is used to install packaged from a local file.

Fedora - Copr

Copr build status

Enable the repository using the package manager, and install:

dnf copr enable afloofdev/avdl
dnf install avdl

Note: These commands may require root permissions.

How to compile and install manually

You can compile the project using makefile on Linux and cmake on windows.


To compile this project, you will need the following dependencies:

  • make - to build the project
  • gcc - to compile this project and to aid the compilation of avdl projects
  • sdl2 and sdl2_mixer - used for windowing and audio
  • glew - used for advanced opengl functionality

There's a different process to get the dependencies, depending on your operating system. Here's some examples:

Ubuntu 20.04 LTS

On a clean install, you will need to install the following packages to get everything you need:

apt install git make gcc libglew-dev libsdl2-dev libsdl2-mixer-dev

Arch Linux

Use the following command to get the required packages:

pacman -S glew sdl2 sdl2_mixer make gcc

Fedora 34, Fedora 35, Fedora rawhide

Use the following command to get the required packages:

dnf install make gcc glew-devel SDL2-devel SDL2_mixer-devel

Alpine Linux

Use the following command to get the required packages:

apk add make git gcc musl-dev glew-dev sdl2-dev sdl2_mixer-dev

Compilation - Linux

On a linux system, simply execute the following lines from the terminal, while you are at the project root directory:

make install

The default install location is /usr/local. To change that, apply a custom prefix value like below:

make prefix=/usr
make prefix=/usr install


There is a new tutorial that explains the basics here:

For how to use avdl through the command line, together with arguments, see the man page at manual/avdl.1. You can do so with man manual/avdl.1 from the project's root directory, or if you have the project installed, you can run man avdl instead.