{"id":14128475,"url":"https://github.com/Lallassu/DungeonGenerator","last_synced_at":"2025-08-03T23:31:08.583Z","repository":{"id":91940429,"uuid":"67923278","full_name":"Lallassu/DungeonGenerator","owner":"Lallassu","description":"Dungeon generator for games.","archived":false,"fork":false,"pushed_at":"2016-09-11T13:24:03.000Z","size":310,"stargazers_count":69,"open_issues_count":0,"forks_count":6,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-08-16T16:22:33.460Z","etag":null,"topics":["dungeon-generator","game-map","gamedev","indiedev","perl"],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lallassu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-09-11T10:11:39.000Z","updated_at":"2024-01-24T20:31:03.000Z","dependencies_parsed_at":"2024-01-31T10:09:39.578Z","dependency_job_id":null,"html_url":"https://github.com/Lallassu/DungeonGenerator","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/Lallassu%2FDungeonGenerator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lallassu%2FDungeonGenerator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lallassu%2FDungeonGenerator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lallassu%2FDungeonGenerator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lallassu","download_url":"https://codeload.github.com/Lallassu/DungeonGenerator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228571844,"owners_count":17938772,"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":["dungeon-generator","game-map","gamedev","indiedev","perl"],"created_at":"2024-08-15T16:01:45.258Z","updated_at":"2024-12-07T06:31:18.474Z","avatar_url":"https://github.com/Lallassu.png","language":"Perl","funding_links":[],"categories":["Perl"],"sub_categories":[],"readme":"# Dungeon Generator\n\n## Description\nDungeon generator that produces a 2D-array of different values that can be used to create a dungeon for \na game. The script is written in Perl and generates a gif image of the dungeon.\n\nThe values used for the algorithm in the 2D array is the following:\n* 1 = room\n* 2 = road\n* 3 = Flood fill, temporary used, not used in the resulting map (array).\n* 4 = (not used)\n* 5 = Player spawn (adds a position in the middle of a room)\n* 6 = Boss spawn (adds a position in a room as far away as possible from player)\n\nThe image used in the script is just used to represent the actual dungeon. In a game, the 2D array would be used and the different values in the array would be parsed.\n\nThe result of the script can look like this:\n[dungeon.gif]\n![alt tag](https://github.com/Lallassu/DungeonGenerator/blob/master/dungeon.gif)\n\nThe dungeon generator will be used in Qake voxel-engine that can be found here:\nhttps://www.assetstore.unity3d.com/#!/content/68150\n\nAnd the result implemented in Qake voxel engine using the output from the script (though ported to C#) can look like this:\n[qake_dungeon.png]\n![alt tag](https://github.com/Lallassu/DungeonGenerator/blob/master/qake_dungeon.png)\n\n## Run\n```\nperl genmap.pl \u0026\u0026 open dungeon.gif\n```\n\n## Algorithm\nThe algorithm is very basic but produces very good random dungeons. \nThe process is as follows.\n* Generate rooms of random sizes and make sure that they don't overlap and also got some distance between them.\n* Add doors in the middle of each room.\n* From each door, try to draw a road of a certain size outwards until it hits either a road or another room.\n* Flood fill each room of the map. Store the biggest flood filled map and remove the rest.\n\n\n## License\nMIT License.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLallassu%2FDungeonGenerator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLallassu%2FDungeonGenerator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLallassu%2FDungeonGenerator/lists"}