From RogueBasin
Jump to navigation Jump to search

Daedalus is an open source maze generation program for Windows, authored by Walter Pullen, and free software under GPLv2. It allows creating, solving, displaying, and analyzing mazes of numerous types and in many algorithms. Daedalus features a macro or scripting language that can access and drive all its features and settings. Therefore "Daedalus" can refer to either the program itself or the Daedalus programming language it implements.

Design of Daedalus

Daedalus is centered around bitmaps. It maintains a list of bitmap arrays, which many of its commands manipulate. For example, creating a maze places it in a bitmap (and usually in the bitmap currently being displayed on the screen). You can solve mazes created by other programs in Daedalus, by copy/pasting them as a bitmap or text into the program. The 3D first person perspective display of Daedalus is defined by a list of bitmaps: Where blocks are placed is stored in one bitmap, the color of each block is in another bitmap, the height of each block is in a third, the textures to display on the sides of blocks (and the texture maps themselves) are in other bitmaps, and so on.

The Daedalus scripting language is centered around macros and events. Macros are like functions, and do sets of operations. Events call macros and are fired by the program when things happen, such as when a particular key is pressed, the mouse is moved or clicked, or when you move your viewing point (e.g. your character) from one square to another.

Daedalus scripts are interpreted instead of compiled, like BASIC or JavaScript. That means Daedalus scripts are plain text, and easily edited. A Daedalus game can be programmed in Notepad or any other text editor, on any machine that can run Daedalus itself.

Roguelike Specific Details

Daedalus makes a good language in which to quickly create roguelikes. It features various actions to easily do advanced operations seen in roguelikes, such as create mazes of various types, which allows games to be implemented in relatively small files. For example, with a single call it can create a Rogue or Nethack style dungeon with randomly positioned rooms, and randomly positioned passages connecting them. Its 3D engine allows producing roguelikes in 3D or 3D first person perspective.

Related links

Daedalus Roguelikes