{"id":13682318,"url":"https://github.com/marukrap/RoguelikeDevResources","last_synced_at":"2025-04-30T07:31:21.524Z","repository":{"id":46274470,"uuid":"128501758","full_name":"marukrap/RoguelikeDevResources","owner":"marukrap","description":"A curated list of roguelike development resources","archived":false,"fork":false,"pushed_at":"2021-07-18T06:45:39.000Z","size":102,"stargazers_count":1022,"open_issues_count":1,"forks_count":64,"subscribers_count":55,"default_branch":"master","last_synced_at":"2024-08-02T13:33:57.630Z","etag":null,"topics":["game-development","roguelike"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marukrap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-07T06:11:35.000Z","updated_at":"2024-08-02T07:50:05.000Z","dependencies_parsed_at":"2022-08-12T12:50:30.356Z","dependency_job_id":null,"html_url":"https://github.com/marukrap/RoguelikeDevResources","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marukrap%2FRoguelikeDevResources","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marukrap%2FRoguelikeDevResources/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marukrap%2FRoguelikeDevResources/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marukrap%2FRoguelikeDevResources/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marukrap","download_url":"https://codeload.github.com/marukrap/RoguelikeDevResources/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224201930,"owners_count":17272669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["game-development","roguelike"],"created_at":"2024-08-02T13:01:44.108Z","updated_at":"2024-11-12T01:31:28.939Z","avatar_url":"https://github.com/marukrap.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"# Roguelike Development Resources\n\n*A curated list of roguelike development resources*\n\n* [Communities](#communities)\n* [Resources](#resources)\n\t* [Procedural Map Generation](#procedural-map-generation)\n\t* [Field of View](#field-of-view)\n\t* [AI](#ai)\n\t* [Time Management](#time-management)\n* [Tutorials](#tutorials)\n* [Videos](#videos)\n* [Libraries](#libraries)\n* [Open Source Roguelikes](#open-source-roguelikes)\n* [Miscellaneous](#miscellaneous)\n\n## Communities\n\n* [RoguelikeDev Reddit](https://www.reddit.com/r/roguelikedev) - :+1:\n* [Roguelikes Discord](https://discord.gg/9pmFGKx)\n* [Temple of the Roguelike](http://forums.roguetemple.com/)\n\n## Resources\n\n* [RogueBasin Articles](http://www.roguebasin.com/index.php?title=Articles) - :+1:\n* [Procedural Generation Resources](https://www.firespark.de/?id=article\u0026article=ProceduralGenerationResources) - :+1:\n* [Procedural Generation Wiki](http://pcg.wikidot.com/)\n* [Random Dungeon Generators](http://wiki.secretgeek.net/random-dungeon-generators)\n* [Procedural Map Generation](http://www.gridsagegames.com/blog/2014/06/procedural-map-generation/)\n* [FAQ Friday](https://www.reddit.com/r/roguelikedev/wiki/faq_friday)\n* [Roguelike Tilesets](https://www.reddit.com/r/roguelikedev/comments/436sop/roguelike_tilesets/)\n\n### Procedural Map Generation\n\n* **Dungeon**\n\t* BSP\n\t\t* [Basic BSP Dungeon Generation](http://www.roguebasin.com/index.php?title=Basic_BSP_Dungeon_generation)\n\t\t* [Dungeon Generation using BSP Trees](https://eskerda.com/bsp-dungeon-generation/)\n\t\t* [How to Use BSP Trees to Generate Game Maps](https://gamedevelopment.tutsplus.com/tutorials/how-to-use-bsp-trees-to-generate-game-maps--gamedev-12268)\n\t\t* [Procedural Dungeon Generation](http://www.varav.in/posts/2016/05/25/dungeon.html)\n\t\t* [Procedural Dungeon Generator](https://www.reddit.com/r/gamedev/comments/z6gl5/procedural_dungeon_generator/)\n\t\t* [Random Map Generators](http://www.acornarcade.com/articles/Random_map_generators/index1114.html) - [#2](http://www.acornarcade.com/articles/Building_the_Dream_1_-_Container_data_structures/index1162.html) [#3](http://www.acornarcade.com/articles/Building_the_Dream_2_-_The_RISC_OS_Sound_System/index1209.html) [#4](http://www.acornarcade.com/articles/Building_the_Dream_3_-_Random_map_generators_redux/index1211.html) [#5](http://www.acornarcade.com/articles/Building_the_Dream_4_-_Random_city_basics/index1214.html)\n\t\t* [Infra Arcana Map Generation Demo](http://forums.roguetemple.com/index.php?topic=3778.0) - Videos [#2](http://www.youtube.com/watch?v=b6Kz2qMyKww) [#3](http://www.youtube.com/watch?v=_oRKLYqB4GI)\n\n\t* Maze\n\t\t* [Jamis Buck's Maze Algorithms](http://www.jamisbuck.org/mazes/)\n\t\t* [Jamis Buck's Random Dungeon Generator](http://dungeonsndigressions.blogspot.kr/2011/02/bucks-random-dungeon-generator.html) - [#2](https://github.com/jamis/dnd-dungeon)\n\t\t* [Think Labyrinth: Maze Algorithms](http://www.astrolog.org/labyrnth/algrithm.htm)\n\t\t* [Random Dungeon Generator Launcher by Wizards of the Coast](https://www.wizards.com/dnd/mapper/launcher.htm)\n\t\t* [Rooms and Mazes: A Procedural Dungeon Generator](http://journal.stuffwithstuff.com/2014/12/21/rooms-and-mazes/)\n\n\t* Cellular Automata\n\t\t* [Cellular Automata Method for Generating Random Cave-Like Levels](http://www.roguebasin.com/index.php?title=Cellular_Automata_Method_for_Generating_Random_Cave-Like_Levels)\n\t\t* [Using A Cellular Automata Style Rule to Create A Cave System](http://pixelenvy.ca/wa/ca_cave.html)\n\t\t* [C# Algorithm to Build Interesting Cave Systems](http://www.evilscience.co.uk/a-c-algorithm-to-build-roguelike-cave-systems-part-1/)\n\t\t* [Procedural Cave Generator](https://github.com/AK-Saigyouji/Procedural-Cave-Generator) - Unity/C#, 3D\n\t\t* [How Does Level Generation Work In Brogue?](https://www.rockpapershotgun.com/2015/07/28/how-do-roguelikes-generate-levels/) - :+1:\n\t\t* [Python Dungeon Generator](https://whatjaysaid.wordpress.com/2016/01/15/1228/)\n\t\t* [Improving Procedural 2D Map Generation](https://www.sbgames.org/sbgames2017/papers/ComputacaoFull/175350.pdf) - Hilbert curves\n\t\t* [Contour Bombing Cave Generation Algorithm](http://www.darkgnosis.com/2018/03/03/contour-bombing-cave-generation-algorithm) - Alternative for CA\n\n\t* Graph\n\t\t* [Over-Engineering Dungeon Generation](http://angband.oook.cz/forum/showthread.php?t=927)\n\t\t* [Procedural Dungeon Generation Algorithm Explained](https://www.reddit.com/r/gamedev/comments/1dlwc4/procedural_dungeon_generation_algorithm_explained/) - :+1:\n\t\t\t* [TinyKeep](https://forums.tigsource.com/index.php?topic=36176.0) - Devlog\n\t\t\t* [Demo](http://tinykeep.com/dungen/) - Flash\n\t\t* [Procedural Dungeon Generation Algorithm](https://github.com/adonaac/blog/issues/7)\n\t\t* [Delaunay Triangulation Dungeon Generator](https://github.com/glouw/dungen) - C\n\t\t* [Dungeon Generation Algorithm](https://www.reddit.com/r/roguelikedev/comments/1sd730/my_dungeon_generation_algorithm/) - Relative Neighborhood Graph\n\t\t* [2D Map Generated with a Node-Based Approach](https://www.reddit.com/r/proceduralgeneration/comments/65xrvc/2d_map_generated_with_a_nodebased_approach/)\n\t\t* [Dungeon Generator (Part 1) – Node-Based Approach](https://ondra.nepozitek.cz/blog/42/dungeon-generator-part-1-node-based-approach/)\n\n\t* Template\n\t\t* [Spelunky Generator Lessons](http://tinysubversions.com/spelunkyGen/)\n\t\t* [Herringbone Wang Tiles](http://nothings.org/gamedev/herringbone/) - :+1:\n\t\t* [Rogue-like Level Generator](https://www.reddit.com/r/proceduralgeneration/comments/3pa8a1/my_take_at_a_roguelike_level_generator_ft/)\n\t\t* [Procedural Room Generation Explained](http://www.magicaltimebean.com/2014/11/procedural-room-generation-explained/)\n\t\t* [How I Learned to Stop Worrying and Love Prefabs](https://www.goldenkronehotel.com/wp/2017/02/18/how-i-learned-to-stop-worrying-and-love-prefabs/)\n\t\t* [A Template-Based Approach to Procedural Map Generation](https://docs.google.com/document/d/e/2PACX-1vR2cc7r4s_K2T9AYWn06HiccQBv4jlfeFD874yWTa6BZOBDKLVMH7pRW0wZIOZ8cqHombTISFVMlkbV/pub)\n\n\t* Miscellaneous\n\t\t* [The Original Rogue Algorithm](https://web.archive.org/web/20131025132021/http://kuoi.org/~kamikaze/GameDesign/art07_rogue_dungeon.php)\n\t\t* [Dungeon Maker](http://dungeonmaker.sourceforge.net/DM2_Manual/index.html)\n\t\t* [Level Generator](https://github.com/mreinstein/level-generator)\n\t\t* [Recursive Tile Map Growth](https://github.com/r3eckon/Recursive-Tile-Map-Growth) - Java\n\t\t* [Make a Mystery Dungeon](https://web.archive.org/web/20180417195113/http://www5f.biglobe.ne.jp/~kenmo/program/dangeon2/dangeon2.html) - :jp:\n\t\t* [Three Techniques to Procedurally Generate Dungeons](https://www.reddit.com/r/gamedev/comments/2lyqki/three_techniques_to_procedurally_generate/)\n\t\t* [A Bunch of Dungeon Algorithms](https://www.reddit.com/r/roguelikedev/comments/6df0aw/my_implementation_of_a_bunch_of_dungeon_algorithms/)\n\t\t* [Level Generator Toolkit](https://chilly-durango.itch.io/level-generator-toolkit)\n\t\t* [DCSS Layout Types](https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:dungeon:layout_types)\n\t\t* [Sample Levels from placerooms.pl](https://web.archive.org/web/20180417193512/http://jonadab.jumpingcrab.com/pastebin/508.html) - [#2](https://github.com/tsadok/level-generator-perlscripts/blob/master/placerooms.pl)\n\t\t* [The Zelda Dungeon Generator](http://beckylavender.co.uk/portfolio/the-zelda-dungeon-generator/)\n\t\t* [Constructive Generation Methods for Dungeons and Levels](https://graphics.tudelft.nl/Publications-new/2016/SLTLB16/chapter03.Online.pdf) - PDF\n\t\t* [Unangband Dungeon Generation](http://roguelikedeveloper.blogspot.ru/2007/11/unangband-dungeon-generation-part-one.html) - Parts 2-9 links in the article.\n\t\t* [Random Dungeons: Turbulence Algorithm](http://earok.net/sections/articles/game-dev/theory/random-dungeons)\n\t\t* [Winding Ways](http://www.roguebasin.com/index.php?title=Winding_ways)\n\t\t* [Random Paths via Chiseling](https://www.boristhebrave.com/2018/04/28/random-paths-via-chiseling/)\n\n* **Town**\n\t* [A Constrained Growth Method for Procedural Floor Plan Generation](https://graphics.tudelft.nl/Publications-new/2010/LTSDB10a/LTSDB10a.pdf) - PDF\n\n* **Overworld**\n\t* [Generating Fantasy Maps](http://mewo2.com/notes/terrain/)\n\t* [Overworld Overview](http://bytten-studio.com/devlog/2014/09/08/overworld-overview-part-1/)\n\t* [World Generation Breakdown](http://www.nolithius.com/articles/world-generation/world-generation-breakdown)\n\t* [Creating a Random 2D Game World Map](https://gillesleblanc.wordpress.com/2012/10/16/creating-a-random-2d-game-world-map/)\n\t* [Building an Infinite Procedurally-Generated World](https://spin.atomicobject.com/2015/05/03/infinite-procedurally-generated-world/)\n\t* [Map Generator Based on Voronoi Diagram and Perlin Noise](https://github.com/averrin/mapgen) - C++\n\t* [World Generator Inspired by Dwarf Fortress](https://github.com/Dozed12/df-style-worldgen) - Python\n\t* [Procedural Worlds from Simple Tiles](http://ijdykeman.github.io/ml/2017/10/12/wang-tile-procedural-generation.html)\n\t* [Various PCG Articles by pvigier(Vagabond)](https://pvigier.github.io/tag/pcg/) - Overworld/Dungeon/Cave/City, etc.\n\t* [Island Generation](http://thingonitsown.blogspot.com/2018/10/island-generation.html) - More interesting articles on the blog.\n\t\n* **Landscape**\n\t* [Landscape Generation using Midpoint Displacement](https://bitesofcode.wordpress.com/2016/12/23/landscape-generation-using-midpoint-displacement/)\n\t* [Simple 2D Terrain with Midpoint Displacement](http://www.somethinghitme.com/2013/11/11/simple-2d-terrain-with-midpoint-displacement/)\n\t* [Simple 2D Landscape Generator Inspired by No Man's Sky](http://theadarshsinha.com/pcg.html) - [#2](https://www.reddit.com/r/proceduralgeneration/comments/4v3vce/simple_2d_scenemountainlandscape_generator/)\n\n* **Space**\n\t* [Procedural Generation for Dummies: Galaxy Generation](http://martindevans.me/game-development/2016/01/14/Procedural-Generation-For-Dummies-Galaxies/)\n\t* [Procedural Stars Map](https://web.archive.org/web/20180417193835/http://simonrodriguez.fr/starmap/)\n\t* [Procedural Generation of 2D Space Scenes in WebGL](https://wwwtyro.net/2016/10/22/2D-space-scene-procgen.html)\n\t* [A 2D Procedural Galaxy with C++](http://itinerantgames.tumblr.com/post/78592276402/a-2d-procedural-galaxy-with-c)\n\t* [The Frontier Galaxy](http://www.jongware.com/galaxy1.html)\n\t* Poisson Disk Sampling\n\t\t* [Fast Poisson Disk Sampling in Arbitrary Dimensions](http://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph07-poissondisk.pdf) - PDF\n\t\t* [Poisson-Disc Sampling](https://www.jasondavies.com/poisson-disc/) - Demo\n\t\t* [Poisson Disk Sampling](http://devmag.org.za/2009/05/03/poisson-disk-sampling/) - Tutorial\n\t\t* [Poisson Disk Points Generator](https://github.com/corporateshark/poisson-disk-generator) - C++\n\n* **Spaceship**\n\t* [How I Generate a Layout for Space Ships; Quick Guide](https://www.reddit.com/r/gamedev/comments/1z676s/how_i_generate_a_layout_for_space_ships_quick/)\n\t* [Randomly Generating Simple Spaceships In Heat Signature](https://www.pentadact.com/2014-02-07-randomly-generating-simple-spaceships-in-heat-signature/) - [#2](https://www.pentadact.com/2014-07-19-improving-heat-signatures-randomly-generated-ships-inside-and-out/)\n\t* [Procedurally Generate Spaceship Sprites](https://github.com/stewsters/shipwright)\n\t* [How My Toolkit Builds Spaceships](https://www.reddit.com/r/proceduralgeneration/comments/6daqjb/really_pleased_with_how_my_toolkit_builds/)\n\n### Field of View\n\n* [Roguelike Vision Algorithms](http://www.adammil.net/blog/v125_Roguelike_Vision_Algorithms.html) - :+1:\n* [Comparative Study of Field of View Algorithms for 2D Grid Based Worlds](http://www.roguebasin.com/index.php?title=Comparative_study_of_field_of_view_algorithms_for_2D_grid_based_worlds)\n* [What the Hero Sees: Field-of-View for Roguelikes](http://journal.stuffwithstuff.com/2015/09/07/what-the-hero-sees/)\n* [Partial Occlusion Field-of-View](http://blog.pixelpracht.net/?p=340)\n\n### AI\n\n* [The Incredible Power of Dijkstra Maps](http://www.roguebasin.com/index.php?title=The_Incredible_Power_of_Dijkstra_Maps) - :+1:\n\t* Progressive Dijkstra Scan - [#1](https://web.archive.org/web/20180823180255/http://paleoludic.com/writing/whitespace-reasoning/) [#2](https://web.archive.org/web/20180823171708/http://paleoludic.com/writing/a-pathfinding-primer/) [#3](https://web.archive.org/web/20180823175048/http://paleoludic.com/writing/engineering-pds/)\n* [Dijkstra Maps Visualized](http://www.roguebasin.com/index.php?title=Dijkstra_Maps_Visualized)\n* [Distance Map](http://projects.jake.cx/distance-map/)\n* [Applications of Dijkstra Maps in Roguelikes](https://www.youtube.com/watch?v=2ExLEY32RgM) - Video\n* [TinyKeep AI Demo](http://tinykeep.com/ai/) - Flash Demo, Videos\n\n### Time Management\n\n* [A Turn-Based Game Loop](http://journal.stuffwithstuff.com/2014/07/15/a-turn-based-game-loop/)\n\n## Tutorials\n\n* [Roguelikedev Does The Complete Roguelike Tutorial](https://www.reddit.com/r/roguelikedev/wiki/python_tutorial_series) - Version 2017/2018 :+1:\n* [Complete Roguelike Tutorial using Python and libtcod](http://www.roguebasin.com/index.php?title=Complete_Roguelike_Tutorial,_using_python%2Blibtcod) - :+1:\n* [Complete Roguelike Tutorial using C++ and libtcod](http://www.roguebasin.com/index.php?title=Complete_roguelike_tutorial_using_C%2B%2B_and_libtcod_-_part_1:_setting_up)\n* [Creating a Roguelike Game in C# and RogueSharp](https://roguesharp.wordpress.com/)\n* [Roguelike Tutorial in Java and AsciiPanel](http://trystans.blogspot.kr/2016/01/roguelike-tutorial-00-table-of-contents.html)\n* [Building a Roguelike in JavaScript and rot.js](http://www.codingcookies.com/2013/04/01/building-a-roguelike-in-javascript-part-1/)\n* [Let's Build a Roguelike in FreeBasic](http://users.freebasic-portal.de/rdc/tutorials.html)\n* [Unity 2D Roguelike Tutorial](https://unity3d.com/kr/learn/tutorials/s/2d-roguelike-tutorial)\n* ~~[Python Roguelike Tutorial](https://www.youtube.com/playlist?list=PLKUel_nHsTQ1yX7tQxR_SQRdcOFyXfNAb) - Videos~~\n\n## Videos\n\n* [Roguelike Celebration 2016](https://www.youtube.com/channel/UCsCqXksJuAkfZRtnW5Pq1mw/videos)\n* [Roguelike Celebration 2017](https://www.youtube.com/playlist?list=PLi7jNGNQhwdhiZcp2g4yU7xpXmOqS9VBl)\n* [Roguelike Celebration 2018](https://www.youtube.com/channel/UCKv_QzXft4mD6TXmQBZtzIA/videos)\n* [IRDC 2016](https://www.youtube.com/channel/UCIxJ3OhqqQkUP6xaD23rZcQ/videos)\n* [IRDC 2017](https://www.youtube.com/playlist?list=PLcZ-fMpNVsjUQ_eKlGrOH_OOgjxKzT84w)\n\n## Libraries\n\n* [libtcod](http://roguecentral.org/doryen/libtcod/) - C/C++, Python\n* [BearLibTerminal](http://foo.wyrd.name/en:bearlibterminal) - C/C++, C#, Lua, Pascal, Python, Ruby\n* [rltk](https://github.com/thebracket/rltk) - C++\n* [SadConsole](https://github.com/Thraka/SadConsole) - C#\n* [rot.js](https://github.com/ondras/rot.js) - JavaScript\n* [rotLove](https://github.com/paulofmandown/rotLove) - Lua\n* [T-Engine4](https://te4.org/te4) - Lua\n* [LambdaHack](https://github.com/LambdaHack/LambdaHack) - Haskell\n\n## Open Source Roguelikes\n\n* [Angband](https://github.com/angband/angband) - C\n* [Nethack](https://github.com/NetHack/NetHack) - C\n* [Retro Rogue Collection](https://github.com/mikeyk730/Rogue-Collection) - C :+1:\n* [Martin's Dungeon Bash](http://www.chiark.greenend.org.uk/~mpread/dungeonbash/) - C/C++\n* [Cataclysm DDA](https://github.com/CleverRaven/Cataclysm-DDA) - C++\n* [Dungeon Crawl Stone Soup](https://github.com/crawl/crawl) - C++\n* [Incursion](https://bitbucket.org/rmtew/incursion-roguelike/src/master/) - C++\n* [Infra Arcana](https://github.com/martin-tornqvist/ia) - C++\n* [IVAN](https://github.com/Attnam/ivan) - C++\n* [KeeperRL](https://github.com/miki151/keeperrl) - C++\n* [Amaranth](https://github.com/munificent/amaranth) - C#\n* [Pixel Dungeon](https://github.com/watabou/pixel-dungeon) - Java\n* [Hauberk](https://github.com/munificent/hauberk) - Dart :+1:\n* [DoomRL](https://github.com/ChaosForge/doomrl) - FreePascal\n\n## Miscellaneous\n\n* [The Roguelike Archive](https://britzl.github.io/roguearchive/)\n* [Donnie Russell II's Home Page](https://sites.google.com/site/donnierussellii/home) - Rogue, Hack, Larn, MAG, Moria, etc.\n* [Decoded: Rogue](http://www.maizure.org/projects/decoded-rogue/index.html)\n* [Roguelike Source Code Review](https://github.com/rsaarelm/roguereview)\n* [Fantasy Name Generator](https://github.com/alxgiraud/fantasygen) - JavaScript\n* [Dyson's Map Archive](https://rpgcharacters.wordpress.com/maps/)\n* [Cool Retro Term](https://github.com/Swordfish90/cool-retro-term)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarukrap%2FRoguelikeDevResources","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarukrap%2FRoguelikeDevResources","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarukrap%2FRoguelikeDevResources/lists"}