Questions tagged [roguelike]

A roguelike is usually a turn-based computer game with a strong focus on intricate gameplay and replayability due to procedurally generated content.

There are several similar but distinct definitions of Roguelike in current use.

The newest defines "Classic Roguelike" strictly.

To be a Classic Roguelike, all of the following features must be present (summarized):

  • Turn Based: The player interacts in discrete turns.
  • Grid Based: There is an underlying orthogonal (rectangular) or hexagonal grid where the entities of the world are placed. Movement is in full cell-to-cell discrete steps.
  • Permanent Failure: Games can support save-and-quit, but not a reload function to retry any section of the game. Upon death the game must be restarted from the beginning.
  • Procedural Environments: Most of the game is generated by the game for every new play session.
  • Random Conflict Outcomes: The main conflict actions (attacks or spells usually) has a randomized outcome within a defined distribution.
  • Inventory: There are items the player can pick up and use and inventory space is limited.
  • Single Character: The player controls exactly one character in the game world.

Previously the most widely known definition of a Roguelike was the Berlin Interpretation:

The Berlin Interpretation defines Roguelikes as a genre with the following high and low value factors.

High value factors:

  • Random environment generation.
  • Permadeath.
  • Turn based.
  • Grid based.
  • Non-modal.
  • Complexity
  • Resource management.
  • Hack n' slash.
  • Exploration and discovery.

Low value factors:

  • Single player character.
  • Monsters are similar to players.
  • Tactical challenge.
  • Ascii display.
  • Dungeons.
  • Numbers.

Another old definition is available at the Roguebasin page.

112 questions
3
votes
3 answers

Building a Roguelike in Silverlight (or WPF)

I've been toying with the idea of building a web-based Roguelike game using Silverlight (or maybe just a desktop game using WPF). If you don't know what a Roguelike is, it's a type of graphical RPG where the graphics are rendered using text. Because…
Brian MacKay
  • 31,133
  • 17
  • 86
  • 125
3
votes
4 answers

Ways to make a Roguelike in native C

I have had the dream of making a Roguelike for a few months now, and for some reason, my stubborn mind won't let me use a library. How would one draw the map and manipulate it without using and sort of library other than stdio.h?
user1657155
  • 41
  • 1
  • 2
3
votes
1 answer

Dynamically Generating Roguelike Dungeons with Haskell and Repa

Similar question found here I am working on a roguelike game written in Haskell. I've decided to represent the world as a 2D grid using Data.Array.Repa, now I wish to dynamically generate random dungeons which can contain corridors that are either…
cdk
  • 6,698
  • 24
  • 51
2
votes
2 answers

Keystrokes/Controls in libtcod and python?

In the Python/Libtcod tutorial on Roguebasin the basic code for controlling your character uses the up down left and right keys. Is there a way to make it use WSAD or any other keys? Libtcod only allows me to use "special" keys, like the arrow keys,…
2
votes
2 answers

How do I determine correct wall pieces in a random 2D dungeon I made?

I've made a random 2D tile-based dungeon generator in Python (and PyGame), which is a basic 2D array of wall and floor tiles, and it works great, filled with rooms and corridors. But now I want to go around the rooms and corridors with nicer wall…
Jayce
  • 539
  • 6
  • 21
2
votes
1 answer

Pygame wall sprite collision

I am making a roguelike game, but I am beginner when it comes to coding. I already have my character moving, my wall and floor sprites, but there is some error in my code that allows the character to move through walls. I used the block_path to…
Jose Vaz
  • 33
  • 5
2
votes
1 answer

Game levels are unexpectedly generating on top of each other

I have been working on procedural generating levels. I have created boxes who have a spawn depending on their opening. If a box has a left spawn. the left spawn will know that it needs to create at least 1 door on the right. This seems to be…
mafiaf
  • 99
  • 1
  • 6
2
votes
2 answers

Rectangle overlapping in Java

I'm trying to make a random map generator. It should create a random sized rooms at random coordinates, and remove the room it it overlaps with other rooms. However, the overlap checking isn't working. Here are the relevant parts of code: public…
bunjo
  • 23
  • 2
2
votes
2 answers

How can I dynamically retrieve the variable used to initialize an instance?

I'm trying to implement a speed-based turn system for a roguelike. I've set up a Mob class using metamethods, so that assigning the following to a variable will spawn a mob into the map at certain grid coordinates: function Mob:spawn(x,y,m) …
Apple Baps
  • 37
  • 6
2
votes
3 answers

How to make an array of struct in C?

I am making a roguelike game. I want to represent the map as an array of structs, for example having 256 structs in an array. The map is a 16*16 grid of tiles, and each tile has attributes, such as whether there is an item on top of it. So say that…
sadljkfhalskdjfh
  • 747
  • 3
  • 10
  • 17
2
votes
1 answer

Java RogueLike line of sight issue

I am making a roguelike game and I'm trying to implement the "Quick and Dirty" FOV technique into my game, but I'm having some issues. I'm almost certain it's in my function where the line calculation is done in which I have a x and y variable move…
Mark9135
  • 101
  • 11
2
votes
2 answers

Batch Roguelike Game

I've been learning some batch programming, and decided to make a roguelike, as it's one of my favorite types of games. I have researched any information on making a roguelike in batch, but haven't found much. From the little bit I've gathered, this…
Jeremy Darrach
  • 273
  • 1
  • 6
  • 18
2
votes
2 answers

Use composition, strategy pattern and dictionary to better instantiate class stored in dictionary

I develop a RogueLike in python, and I try to make my best with OOP and my little knowledge to construct a python course for student. mapRogue = ['~~~~~~~~~~', '~~~~.....Y', 'YYYYY+YYYY', 'YYYY....YY'] I want to…
reyman64
  • 523
  • 4
  • 34
  • 73
2
votes
1 answer

How to make a font sheet(for use in python roguelike)

I have continued making progress on my python roguelike, and dived further into this tutorial: http://roguebasin.roguelikedevelopment.org/index.php?title=Complete_Roguelike_Tutorial,_using_python%2Blibtcod . I also made my own font to use in this…
Jeremy Darrach
  • 273
  • 1
  • 6
  • 18
2
votes
1 answer

Python / LibTCOD - libtcod.console_wait_for_keypress(True) triggering twice for each input

I'm going through the Roguebasin python/libtcod roguelike tutorial. The problem I encounter is, every time key = libtcod.console_wait_for_keypress(True) is called, the main loop fires off not one, but two times. The code handling keyboard input is…
Mainframe
  • 21
  • 2