How to Make a Roguelike

Josh Ge

@GridSageGames

  • Language
  • Scope
  • Core Mechanics
  • 7DRL
  • Resources
  • Hooks
  • Tips

Today

What language can I use?

ANY

Python

Ultima Ratio Regum

Temple of Torment

Some Languages Used in Roguelikedev

ActionScript
awk
BASIC
C
C++
C#
Clojure

GML
Go
Haskell
Haxe
Hy
Java
Javascript

Perl
PHP
Python
Racket
red-lang
Ruby
Rust

Common Lisp
D
Elm
Excel (really)
Free Pascal
FreeBASIC
GDScript

Kotlin
Lua
Moonscript
Nim
Objective-C
Ocaml
Pascal

Scala
Smalltalk
Swift
TI_BASIC
Turbo Pascal
TypeScript
Visual Basic

Should I start making

my dream roguelike?

NO

(Well maybe, if you don't mind restarting a few times.)

7DRL

(7-Day Roguelike)

  • Roguelike made in 7 days
  • Annual event (2005~present)
  • Reviews and scoring
  • A challenge, not a competition

Knight (2014)

A Roguelike Where You Dodge Projectiles (2016)

Seven Day Band (2015)

Broken Bottle (2011)

Drakefire Chasm (2012)

Golden Krone Hotel (2014)

Cogmind (2012)

POLYBOT-7 (2018)

Non-7DRL Examples

Mage Guild

Demon

The Ground Gives Way

Xenomarine

NetHack

Resources

  • r/RoguelikeDev Community
  • RogueBasin
  • Roguelike Radio
  • Assets

libtcod

  • Many languages
  • Mouse/keyboard
  • Bitmap fonts
  • Palette/color manip.
  • Map Generation
  • FOV
  • Pathfinding
  • Week 1 - Parts 0 & 1: Setting up Python and libtcod, drawing an @, and moving around

  • Week 2 - Parts 2 & 3: The object system and generating your first map

  • Week 3 - Parts 4 & 5: Field of view, placing enemies, and attacking

  • Week 4 - Parts 6 & 7: Combat damage and building the interface

  • Week 5 - Parts 8 & 9: Items, inventory and ranged targeting

  • Week 6 - Parts 10 & 11: Save/load and leveling up

  • Week 7 - Parts 12 & 13: Monster/item progression and equipment

  • Week 8: Sharing your game

  • Summary

#1: Languages and Libraries
#2: Development Tools
#3: The Game Loop
#4: World Architecture
#5: Data Management
#6: Content Creation and Balance
#7: Loot Distribution
#8: Core Mechanic
#9: Debugging
#10: Project Management
#11: Random Number Generation
#12: Field of Vision
#13: Geometry
#14: Inspiration
#15: AI
#16: UI Design
#17: UI Implementation
#18: Input Handling
#19: Permadeath
#20: Saving
#21: Morgue Files
#22: Map Generation
#23: Map Design
#24: World Structure
#25: Pathfinding

#26: Animation
#27: Color
#28: Map Object Representation
#29: Fonts and Styles
#30: Message Logs
#31: Pain Points
#32: Combat Algorithms
#33: Architecture Planning
#34: Feature Planning
#35: Playtesting and Feedback
#36: Character Progression
#37: Hunger Clocks
#38: Identification Systems
#39: Analytics
#40: Inventory Management
#41: Time Systems
#42: Achievements and Scoring
#43: Tutorials and Help
#44: Ability and Effect Systems
#45: Libraries Redux
#46: Optimization
#47: Options and Configuration
#48: Developer Motivation
#49: Awareness Systems
#50: Productivity

#51: Licenses
#52: Crafting Systems
#53: Seeds
#54: Map Prefabs
#55: Factions and Cooperation
#56: Mob Distribution
#57: Story and Lore
#58: Theme
#59: Community
#60: Shops and Item Acquisition
#61: Questing and Optional Challenges
#62: Character Archetypes
#63: Dialogue
#64: Humor
#65: Deviating from Roguelike Norms
#66: Status Effects
#67: Transparency and Obfuscation
#68: Packaging and Deployment
#69: Wizard Mode
#70: Map Memory
#71: Movement
#72: Changelogs
#73: Naming
#74: Puzzles and Minigames

FAQ Friday (2015~present)

RogueBasin

Cardinal Quest
Desktop Dungeons
Brogue
DoomRL
Frozen Depths
Dungeons of Dredmor
100 Rogues
Progression Systems
Powder
Deity Systems
The Binding of Isaac
Roguelikes Features in Other Genres
Mystery Dungeon 2: Shiren the Wander
Resource Management
Quickband
History and Future of Roguelikes
Roguelike of the Year 2011
Tales of Maj'Eyal 4
Interview with DarkGod
Cataclysm
Procedural Content in Roguelikes
Infra Arcana
Interview with David Ploog
Themes and Settings
Permadeath
How to Make a 7DRL
7DRLs of Yesteryear
7DRLs 2012 part 1
7DRLs 2012 part 2
Identification Systems
Rogue
Combat Mechanics
Interview with Thomas Biskup, creator of ADOM
Red Rogue
Diablo
Coffeebreak Roguelikes
IRDC London 2012 day 1
Zaga-33 and MicRogue
IRDC 2012 Retrospective
Designing for Non-Roguelikers

Score Systems
Elitism
Spelunky
Winning
Caves of Qud
Steam Greenlight
FTL: Faster Than Light
Designing for the Visually Impaired
Interview with Tarn Adams
Episode 50
Graphics and Tile Design part 1
Graphics and Tile Design part 2
Game Design in Academia
Game Jams
Strategy Games
Interview with FTL Developers, Justin Ma and Matthew Davis
Roguelike of the Year 2012
The Resurrection of ADOM
Sil
The T-Engine
libtcod (aka the Doryen Library)
How to Make a Good 7DRL part 1
How to Make a Good 7DRL part 2
Player competitions
Roguelike Communities
7DRLs 2013 - Winner Reflections
7DRLs 2013 Overview
7DRL 2013 Failures
Boss Fights
Introducing People to Roguelikes
The Hunger Clock
IRDC 2013
Let's Play Videos
Sword of the Stars: The Pit
Cataclysm Dark Days Ahead
Dungeonmans
The Hero Trap
Inspiration from Board Games
Mobile Roguelikes
UnReal World

Puzzles
Interview with Zeno
ASCII
Nethack
2013 Retrospective
How to Make a Unique 7DRL
7DRLs 2014
International Roguelike Development Conference 2014
Interview with the Angband devteam part 1
Interview with the Angband devteam part 2
Our First Roguelikes
Return to Brogue
868-HACK
ProcJam
End of 2014
Ultima Ratio Regum
Getting More Roguelikes on Steam
What Players Want from 7DRLs
2015 7DRLs
YASDs
IRDC 2015 USA
Interview with Frank Lantz
IRDC 2015 UK
Procedural Narrative Design
Dungeon Hacks, a book about roguelikes
30 Minutes of UMoria
Listeners Q&As
Information
Cogmind
Obsession
Invisible Inc
Interview with Kornel Kisielewicz
End of 2015
Gameplay-Orientated Procedural Generation
The Curious Expedition
How to Design a 7DRL
Strategy and Tactics
Interview with John Harris
Coding Practices
KeeperRL

Simulation
Nethack Tool-Assisted Speedrun
Geometry
Shmups
Road Not Taken
IVAN
New York IRDC 2016
How to be Good at Roguelikes
Imbroglio
Jupiter Hell, successor to DoomRL
International Roguelike Developers Conference - Europe 2016
End of 2016
How to Make a Traditional 7DRL
Randomness
7DRLs 2017
MidBoss
Book on Procedural Generation in Game Design
Golden Krone Hotel
Unexplored
Horror
MUDs
Roguelike Development Conference 2017
End of 2017
AI
7DRLs 2018
Cinco Paus
Difficulty

Assets!

Tilesets

Good Starting Points

(General Design)

  • Core Mechanic
  • Visuals/SFX
  • Theme

Theme

Educational

Fantasy/Hybrid Fantasy

Historical/Pseudo-hist.

Horror

Modern

Mythology/Folklore

Science Fiction

Survival

Miscellaneous

  • Language
  • Math
  • Conan
  • D&D
  • Player-as-monster
  • Tolkien
  • Underwater
  • Wuxia
  • Ancient Egypt
  • Dinosaurs
  • Feudal Japan
  • Gladiators
  • Gold Rush
  • Medieval Europe
  • Organized Crime
  • Pirates
  • Renaissance
  • Vikings
  • Wild West
  • World War I/II
  • Lovecraftian
  • Vampires
  • Zombies
  • Covert Ops
  • Rescue Worker
  • Superheroes
  • Supernatural
  • African
  • Arabian
  • Asian
  • Aztec
  • Egyptian
  • European
  • Greco-Roman
  • Indian
  • Native American
  • Norse
  • Aliens
  • Cyberpunk
  • Cyberspace
  • Dystopian
  • Futuristic
  • Generation Ship
  • Mecha
  • Offworld Colony
  • Post-apocalyptic
  • Space
  • Steampunk
  • Time Travel
  • Crafting
  • Dreams
  • Economics/Trading
  • Player-vs-RNGesus

MakaiRL

Skies of Bloody April

Lone Spelunker

Pirate Rogue

Armoured Commander

"XRL"

  • Based on existing IP
  • Less planning and design required
  • Focus on implementation

DoomRL

AliensRL

DiabloRL

MetroidRL

CastlevaniaRL

MegamanRL

ROGUElike One

ZeldaRL

XCOMRL (X@COM)

Tips for the Long Run

Release early and often

Join us for

r/RoguelikeDev

Sharing Saturday!

Keep a blog

  • organize your thoughts
  • examine your work from a different angle
  • document the process
  • becomes a useful long-term reference
  • get feedback
  • build a community

Cogmind Returns
Core Concepts
Straight to the Source
Guided Weapons, Salvos & Overloading
Building a Better UI
Options
Multi-tile Robots
Machines
Melee Combat
Large Parts & Non-Parts
Drag & Drop
Introducing... the Intro
GUI Animation
Allies & Factions
Fog of War
Info, Animated
Context Help
Burnout, Momentum & EM Disruption
Hacking, the Concept
Hacking, the Interface
Terminals
Scanalyzers & Fabricators
Recycling Units and Repair Stations
Part Info Visualizatiom Modes
Animation vs. Pacing: A Dilemma of Modern Roguelikes

Ambient Sound
Ally Orders
F1 Help
Message Log
Map Dynamics
Making a Game
Data-driven Development

You, Cogmind
Items: Types & Distribution
Playing Your Own Game
Balance
ASCII Particle Effects
ASCII Art
Cogmind ASCII Art, the Making of
MORE ASCII Particle Effects
Making Particles

Accommodating Color Blindness
Sound in Roguelikes

Weapon SFX
The Audio Engine

Sound Design in Cogmind, a How-to
Options, Revisited

Kickstarter?
Procedural Map Generation
Mapgen: Tunneling Algorithm
Mapgen: Cellular Automata
Dungeon Metrics

Dungeon Prefabs
Furnishing a Dungeon

Non-Interactive Machines
Projectile Penetration
Cogmind Roadmap: Year 1 and Beyond
Consumables
Robots
Fonts in Roguelikes
Font Creation
Cogmind Fonts
From Prototype to Full Game
The Player is Always Right: An Existential Approach to Game AI
New Cogmind Website
Anatomy of an ASCII Title Screen
UI Feedback: Map Dynamics 2.0
Information Warfare
Inventory Management
Cogmind ASCII Art Gallery

The Importance of Roguelike Food Clocks
ASCII Wallpapers
Robot Hacking

Wanted: Pixel Artist

Tileset Concepts, an Open Poll
Web Support in Single-Player Roguelikes
ASCII vs. Tiles
Map Intel: Information Warfare Revisited

Tileset 1.0
Cogmind Release Schedule
Alpha Release State
Cogmind the Roguelike
A World of Robots
The Living Dungeon
Map Composition
Cogmind Alpha Access LAUNCHED!
The Making of Cogmind's Alpha Trailer
Releasing a Commercial ASCII Roguelike, a Post-Mortem
Readable Fonts for Roguelikes
Roguelike Development with REXPaint
Traps
Player Metrics (Alpha Challenge 2015)
Morgue Files
Garrison Access
Garrisons
Unauthorized Hacks
Year 2 of the Cogmind

REXPaint 1.0
An Alternative UI?
Designing Cogmind's World Map
Dialogue UI
Generating and Populating Caves
FOV Aesthetics

Fabrication
Cogmind, 1 Year of Alphas
Iterative UI Design
Inventory Management, Revisited
Tutorials and Help: Easing Players into the Game
The Alpha Release Cycle: Running a Successful EA Program

Ability/Effect Systems and Scripted Content
Roguelike Celebration 2016, the Experience
Weaving Narratives into Procedural Worlds, Part 1: Value
Weaving Narratives into Procedural Worlds, Part 2: Characteristics
Weaving Narratives into Procedural Worlds, Part 3: Methods
Improving the Hacking Experience
Year 3 of the Cogmind
Map Prefabs, in Depth
Pricing a Roguelike
Adjustable Difficulty
Dissecting a Cogmind Changelog
Music for Cogmind?
Working with Seeds
Versioning Schemes
Cogmind's Two-Year-Old New Logo
Cogmind Alpha Year 2 Sales Data (Pre-Steam)
Beyond the Design Doc: Unplanned Cogmind Features
Data and Thoughts from a Month on Steam
Year 4 of the Cogmind
Player Metrics: Stats and Preferences on and off Steam
Color Customization
POLYBOT-7, a 2018 7DRL
2018 7DRL Postmortem, Part 1: Preparation
2018 7DRL Postmortem, Part 2: First Days with UI, Aesthetics, and Mechanics
2018 7DRL Postmortem, Part 3: Spending Too Long on Map Generation and Content
2018 7DRL Postmortem, Part 4: Finishing Touches
Achievements
Achievements UI: Design and Implementation
Robot Hacking, Take 2
65 Robot Hacks

Accessibility is important

Cogmind Player Stats

The Beginning

How to Make a Roguelike

By Josh Ge

How to Make a Roguelike

  • 4,268