Resource icon

[Reusable] SRB2 Dungeon Crawler [v2.0.2] - A Rogue-like SRB2 experience v2.0.2

This thread contains content that may be reused, modified, or ported by anyone.

Flame

WR 102
How fast can you and your friends clear a 50 floor dungeon in this...


SRB2 Dungeon Crawler


attachment.php

Intro
Fight through randomly generated levels with increasing difficulty (Max: 5). Most Levels will have randomly generated enemies, and (basic) hazards. If you think this is crazy, or if you think I'm crazy for creating this, you're probably right. Don't believe me? Open up your favorite .pk3 editor and see the level for yourself!

Encounter randomly generated enemies
attachment.php



Experience randomly generated nonsense!
attachment.php



Get to to the goal!
attachment.php



It's also netplay compatible*! Assemble a team together!
attachment.php


Gameplay
You spawn in a random area of the map. Your goal is to reach the spring which will bring you to the next Dungeon Level. At the time of writing, all players must be present on a spring to move on. At the last level, you fight a basic Eggman boss, however he may be accompanied by other enemies to spice up the challenge.

As an added bonus, rings, score and present shield powers are preserved between level transitions.

Helpful Console commands
Code:
dng_printlevel <num> - Prints the desired level. Up to the maximum generated levels.
dng_levels <1-999> - Server only. Defaults to 5. Generates this many levels for a given dungeon. (Requires map switch+reload. Will not generate if in a current Dungeon Run)
dng_clear - Server only. Clears the current dungeon, and starts a new dungeon run from Level 1. (Requires map reload)
dng_skiplevel - Server only. Skips the current Dungeon Level. (Does not work for the last floor)
dng_gotolevel <num> - Server Only. Allows you to skip to a specified floor of a dungeon, if one exists.

  • dng_printlevel legend
    • Below is a list for what is visible to the player in a 48x48 grid (matrix).
      Code:
      Tile.WALL = 0 -- Impassible
      Tile.WALK = 1 -- Walkable
      Tile.CORR = 2 -- Corridor passageway
      Tile.SPAWN = 3 -- Player Int Spawn
      Tile.SPRING = 4 -- Spring (Ascending)
      Tile.RING = 5 -- Ring collection
      Tile.ITEM = 6 -- Item
      Tile.KEY = 7 -- Key space
      Tile.ENEMY = 8 -- Enemy
      Tile.BOSS = 9 -- Boss
      Tile.PIT = 10 -- Death Pit

Problems, bugs?
  • MT_DRAGONBOMBER has been disabled for this release. It has a tendancy to cause an unknown sigsegv with the Eggman boss found on the last dungeon floor.
  • Outside of the MT_DRAGONBOMBER behavior, I have not seen any erratic behavior from any other enemy that would cause an error to happen.
  • Some enemies will be looking away from you when they are spawned. This is expected and I'm actively looking into changing this for the better in a future release.
  • If there are any enemies that DO happen to give an error, or worse, a sigsegv, please report it! I understand the mixing of enemy types can have unexpected results. Please report anything you may be doing at the time of error, if one were to occur. Screenshots and providing your srb2win.RPT file also helps too! Let's work through this together.

Speical Notes
Level generation is random. So don't be surprised if you find a level with a spring next to your player spawn, or a level that has multiple of the same enemy. I've tried to mitigate this as much as I can.


Changelog:
Code:
v2.0.2
- Added a helpful message for dedicated server hosts that identifies what Dungeon Level a player is currently on.

Bugfixes
- Fix of Lua error on NONET builds that attempt to find the ALLOWJOIN console variable.
- Additionally, hosting dedicated netgames without problem or error is now possible.

v2.0.1
Bugfixes
- You will no longer obtain erroneous extra lives caused by going to the next dungeon level with 100 or more rings.

v2.0.0
- Added command: dng_gotolevel - Allows you to skip to a specified floor of a dungeon, if one exists.
- Significantly improved networked Dungeon Code for new joiners. [Special thanks to LJ Sonic]
-- Dungeons with less than 100 levels can now safely be joined without host error/sigsegv.
- Default generated levels have been increased from 5 to 10

- First wave of Level clear conditions have been added:
-- Added Level clear condition: Key Search.
--- 15% chance to encounter a Key level in a dungeon. A key must be collected to move on to the next level.
- Existing HUD Element graphics have been modified and new HUD graphics have been added to reflect the addition of this first Level clear condition. [Special thanks to Rubberjig]
- Additional clear conditions will be progressive updates to be added overtime.

Bugfixes
- Console command dng_skiplevel now properly brings ALL players to the specified spring instead of the person (server) that executed the command.

v1.0.1
Hotfix
- Fixed small typo within the code that originally wasn't triggering anything.
- Disallowed joins for *new players* joining servers while in the middle of a run if the number of generated levels is greater than that of it's set default value (5)

v1
- Initial Release
Special Thanks
Lat' - Inspiration to this Random Dungeon Generation script.
LJ Sonic - Code utilization to optimize sending Dungeon data over network buffer.
CobaltBW - Playtester and Brainstormer for enemy difficulty
Ruberjig - Key and Hud Graphics
Tatsuru - Playtester
Amperbee/Rapidgame7 - Playtester
DylanDude - Playtester
Digiku - Community playtester/support

Supporters / CoAuthors

 

Attachments

  • srb20386.gif
    srb20386.gif
    2.1 MB · Views: 12,762
  • srb20391.gif
    srb20391.gif
    1.7 MB · Views: 12,297
  • srb20382.gif
    srb20382.gif
    909.1 KB · Views: 12,223
  • srb20378.gif
    srb20378.gif
    1.4 MB · Views: 12,261
  • srb20392.gif
    srb20392.gif
    207.5 KB · Views: 12,290
  • srb20383.gif
    srb20383.gif
    528.7 KB · Views: 436
  • srb20192.jpg
    srb20192.jpg
    76 KB · Views: 231
  • srb20193.jpg
    srb20193.jpg
    118.3 KB · Views: 253
  • VSL_DungeonCrawl-v1.0.1.zip
    1.7 MB · Views: 752
  • VSL_DungeonCrawl-v2.0.2.zip
    1.7 MB · Views: 2,254
Last edited by a moderator:

Flame

WR 102
As an addendum to my original post, for whom it may concern, I've had a few discussions with a few people in the srb2 discord. They suggest this is more of a Lua script than a fully fledged level. However I am open to go either which way with the judging decision.
 
Last edited:

D00D64

Probably Responsible
Moderator
Kart Krew™️
Judge
Due to how much this does (even for just "1" level) and providing an alternate mode of play, I'm gonna file it under Mods. Welcome to releases!
 

HajimeEl64

"In a world ablaze with war...Heroes must unite.."
I played this yesterday and boi this gives me Dark Cloud vibes from playing this
 

Icarus

Phantasy Savior
I'm not a huge fan of the Rogue-like genre as a whole (except games like the Mystery Dungeon) but this is a great thing for a quick run of SRB2
 

Hat

m
smh, should've called it SRB2 Dungeon Crawla. Other than that, it's epic. Really allows tons of things to happen in netgames, such as making ia last man standing with difficulty 5.
 

Flame

WR 102
Hey all, v1.0.1 of this script is available. This attempts to fix a unique issue whereby if players attempt to join mid-dungeon, and if the number of generated levels is greater than that of it's set default value (5), the game outright sigsegvs for the host player. Already joined players do not have a problem. It is recommended to warp to a map of your choosing before commencing in the Dungeon Run.
See below for changes.

Code:
v1.0.1
- Fixed small typo within the code that originally wasn't triggering anything.
- Disallowed joins for *new players* joining servers while in the middle of a run if the number of generated levels is greater than that of it's set default value (5).
 
Last edited:

softchassis

Call me Nadia
This is a really cool mod! Pretty simple, but fun to pop in and play, not to mention it's a pretty good way to test out other characters.

I can't imagine how you even made this, but have you considered trying to make a way to add verticality to the levels? I'm guessing that'd be pretty difficult. I think a no rings mode would also be an interesting way to spice this up.
Either way, great job on this!
 

Solid SOAP

Member
This has potential to be really cool! I love the idea, I'd really love to see it expanded with slopes, more complex and/or difficult level design, etc.

Can 5 emblems be hidden somehow?

Keep it up!
 
Last edited:

Felix44

the SOC expert
this mod is very great but it could be nice if there would like buttons to activate the exit, doors, or secret rooms the more harder the dungeon gets
 

Goldenhog

Wandering Protagonist
>not dungeon crawla
one job

It is definitely a technical feat, but I really really wish the floors were larger and the difficulty went further than just 5.
 

Flame

WR 102
attachment.php


Hey all, v2.0 of this script is available. Significant improvements all around and introduction to the first wave of Level clear conditions.

Code:
v2.0.0
- Added command: dng_gotolevel - Allows you to skip to a specified floor of a dungeon, if one exists.
- Significantly improved networked Dungeon Code for new joiners. [Special thanks to LJ Sonic]
-- Dungeons with less than 100 levels can now safely be joined without host error/sigsegv.
- Default generated levels have been increased from 5 to 10

- First wave of Level clear conditions have been added:
-- Added Level clear condition: Key Search.
--- 15% chance to encounter a Key level in a dungeon. A key must be collected to move on to the next level.
- Existing HUD Element graphics have been modified and new HUD graphics have been added to reflect the addition of this first Level clear condition. [Special thanks to Rubberjig]
- Additional clear conditions will be progressive updates to be added overtime.

Bugfixes
- Console command dng_skiplevel now properly brings ALL players to the specified spring instead of the person (server) that executed the command.
 

Attachments

  • srb20406.gif
    srb20406.gif
    99.5 KB · Views: 8,279
Last edited:

Slade Salad

Battle Mod Salad
After trying the new version, I realized that there is a glitch where after leveling up with 100 rings, you get an extra live by taking another ring

Same thing with 200 rings, you get 2 extra lives.
 

Attachments

  • srb20072.gif
    srb20072.gif
    954.2 KB · Views: 161
  • srb20073.gif
    srb20073.gif
    618.3 KB · Views: 141
Last edited:
This is super fun! In my brief plays so far, I'm really impressed at how well it works.

The Tron wireframes are cool but just curious — how difficult would it be for this to also include backgrounds/wall/floor/skyboxes that are randomly generated from a small selection?

With some walls/floors from Castle Eggman Zone, this could feel like a full dungeon crawler!
 

Flame

WR 102
Hey all, v2.0.1 of this script is available. General bugfixes in this release.

Code:
v2.0.1
Bugfixes
- You will no longer obtain erroneous extra lives caused by going to the next dungeon level with 100 or more rings.

As an addendum, I apologize for my silence in this thread. I haven't had a good time of day to sit and thoughtfully respond to questions asked.



Failur said:
cez textures for dungeon crawla when :sonicsass:
Moose the Fat Cat said:
The Tron wireframes are cool but just curious — how difficult would it be for this to also include backgrounds/wall/floor/skyboxes that are randomly generated from a small selection?

With the way I'm envisioning it, this shouldn't be too difficult of a feat. Although, it will mainly take some trial and error to see what textures work best with one another. And, with the way dungeons are generated, my main limitation, is making it look neat and tidy - Say if a room had a CEZ Carpet floor texture much like Thunder Citadel, or something similar.

Solid SOAP said:
Can 5 emblems be hidden somehow?
I don't adequately have a clean way to implement hiding emblems for the time being. I can, however, highly consider this as a possible dungeon clear option!

felix44 said:
this mod is very great but it could be nice if there would like buttons to activate the exit, doors, or secret rooms the more harder the dungeon gets
Surely a consideration for a wave of dungeon clear conditions!
 
Last edited:

Who is viewing this thread (Total: 1, Members: 0, Guests: 1)

Top