Articles
This is a listing of articles, arranged by subject.
Articles under "design" will help the developer make decisions about gameplay. Articles under "implementation" will help with algorithm design, and offer various methods of implementing features. Headings are arranged in a general chronological order of development. Large lists of ideas (items, spells, themes, etc.) are in bold.
Development
Fundamentals
- What a roguelike is
- Dungeon
- Items
- Monster
- Character
- Race
- Class
- Skill
- Permadeath
- Shops
- Random generation
Project management
Roguelike developments are complicated projects to handle; if you have weak goals, the project will slip out of your control and its success may be compromised.
- Rewrite
- Bug and Bug Report
- RFE
Game modification
Communities
Design
- Aspects of playing
- Fun Factor
- Power Curve
- The Role of Hunger
- Alternatives to Permadeath
- Third dimension in an ASCII-based roguelike
- Time Systems
- What a RL should be
- Roguelike Alphabet
- Spatial Consistency
Setting, story, and mood
- Theme
- Roguelike Themes
- Creating a Story
- Horror in Roguelike Games
- Horror in Roguelike Games, Part I : Gore
- Roguelike Mood
- Big List of RPG Plots
Roleplaying
Dungeon features, terrain
Combat
Magic
Religion
Interface
Game ideas
Ideas for roguelikes are posted regularly on rgrd, but over time are forgotten. In an attempt to preserve the more interesting ideas these pages were created:
- Magic Tower
- Modern Dungeon Exploration
- Roguelike DM by Timothy Pruett
- Magical Dungeon by Patashu
- GalaxyRL by tongHoAnh
- Time-gate roguelike by anchor0057
- Murder Mystery RL by Shedletsky
- World of Rogue by Gamer_2k4
- Shopkeeper RL by Antonie
- Fire Brigade RL by Antonie
- TraderRL by alsagoz
- OrcRL by DrGong
Implementation
Programming languages
RogueBasin has articles about these languages. That doesn't mean that you can't use other languages. The best language for your roguelike is the one you know well (or want to learn).
Portability
Extensibility
Map
- Cellular Automata Method for Generating Random Cave-Like Levels
- Creating A Forest
- Dungeon builder written in Python
- Data structures for the map
- Creating Measurably "Fun" Maps
- Simple maze
- Dungeon-Building Algorithm
- Irregular Shaped Rooms
- Wilderness generation using Vornoi diagrams
- Island and labyrinth map generating algorithm
- Delving a connected cavern
- See also: Category:WorldGeneration
Combat
AI
- 4GAI - The "4th Generation AI" used in many Angband variants
- A Better Monster AI
- Complex NPC Interaction
- Emergent Behaviour in Unangband Monster AI
- Implementing interesting townsfolk AI
- Need driven AI
- Pathfinding
- Plug-In Monster AI
- Quick Pathfinding in a Dungeon
- Ratio AI
- Roguelike AI - Doing it the generic way
- Roguelike Integlligence - Evolving State Machine AIs
- Roguelike Intelligence - Displaced Actions
- Roguelike Intelligence - Genetic Algorithms and Evolving State Machine AIs
- Roguelike Intelligence - Intrinsic Information and State Machine AIs
- Roguelike Intelligence - Stateless AIs
- Tracking by Scent and Sound
- The game AI page
Line of sight, field of vision
- Line of Sight is used to determine when a specific destination square is visible from a source square. This can be used to determine whether a player is visible to a monster, the path an arrow takes to a particular enemy, and as a building block for a field of vision algorithm.
- Field of Vision determines all squares visible from a particular source. This is useful when determining which squares to show a player, what squares are lit up by a light source, etc.
Magic
Graphics
Sound
Time management
Useful algorithms and code
- Compression
- Bit manipulation
- Fractals
- Mersenne twister
- Random name generation
- Random number generation
Java Roguelike Development Guide
A list of articles specific to Java roguelike development
Game reviews
May give some idea of what people like and don't like in other games.
Other
The original Dungeondweller articles are archived at [1]. Please do not move them to RogueBasin without permission from the original author.
There are more articles at [2]. Most of these are duplicates of articles here.