Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
mmx

Can you help me find the source code for Rethcir's program Random Doom?

Recommended Posts

Quite some time ago Rethcir integrated SLIGE and BSP with the Doom source, allowing random levels to be built on-the-fly. I'm interested in checking this integration, specially the BSP part, but i wasn't able to find the source for this. Does anyone know if it was released?

Share this post


Link to post

While indeed is technically fascinating, I don't see much of a use for this. What's the difference for the player between a 32 maps created at random, and a sequence of maps created randomly while you end each map, making a total of 32 random maps? For the player it's exactly the same.

I know you just asked for the code, so you I assume you're more interested in the technical stuff. I just wanted to type something.

Share this post


Link to post

Random DOOM created a random level each time a new level was loaded. This means that everytime you played, you had a different experience. You never played the same thing twice.

It's not like generating levels, putting inside a WAD and calling it random.

Share this post


Link to post

You might consider using a random map generator that is a step up from SLIGE, it is called Oblige.

Share this post


Link to post

I know OBLIGE and it's far superior, but i'm intrigued by the capability of generating levels during gameplay. I wanted to extend that (making it faster) and implement new features, probably porting some stuff from OBLIGE too.

Share this post


Link to post

Ok how about this; You generate 32 maps in a WAD file and play them all, then you generate 32 new maps in a new WAD file and play all of those, and so on. It is EXACTLY the same and JUST AS RANDOM as levels created randomly when loaded.

What would be more interesting is an in-game generator that creates the level randomly on the fly during the game and modifies it continually. Walk from one room through a corridor into the next room, turn around and walk back and that room will be completely different! That could be scary.

Share this post


Link to post
CodeImp said:

Walk from one room through a corridor into the next room, turn around and walk back and that room will be completely different! That could be scary.

That's the kind of level that I love for later Hell maps, surreal with a dollop malcontent mixed in! It's like one of my recurring nightmares where it all seems familiar but it's all wrong at the same time. Reminds me of FreeDoom's MAP30 where once you get to the invisible maze, there are two teleport pads. Taking the left one (the wrong one) will lead you to a slightly different version of an earlier part of the map, only this time there's a Spider Mastermind behind the door that should have led back to the starting room! That's when you realize that your sanity is slipping down the drain and that this is the final level.

Share this post


Link to post
CodeImp said:

Walk from one room through a corridor into the next room, turn around and walk back and that room will be completely different! That could be scary.


I probably shouldn't mention this, but...

Spoiler

...there's a level in Threshold which does exactly that ;)

Share this post


Link to post
CodeImp said:

Ok how about this; You generate 32 maps in a WAD file and play them all, then you generate 32 new maps in a new WAD file and play all of those, and so on. It is EXACTLY the same and JUST AS RANDOM as levels created randomly when loaded.


It might be exactly the same if you know how to use OBLIGE or SLIGE and have basic knowledge of Doom modding. For players, that's not really a very "comfortable" process.

Anyway, this thread is not a discussion of whether or not built-in SLIGE is good or practical. It's about the source of Random Doom. So, does anyone have contact info on the author, or an idea of where the source might be?

Share this post


Link to post

David Chess has the code but ever since AOL Hometown closed, the link to the program and the source code are now invalid and have been lost with the exception of others who may have them lying around on their hard drives.

Share this post


Link to post

I've edited the thread title to make it a little clearer to casual passers-by that you are asking about something specific.

Share this post


Link to post

For a "node builder in one file", see my TinyBSP code here:

http://edge.svn.sourceforge.net/viewvc/edge/trunk/old132/src/tinybsp.cc?view=log

It was made for EDGE (which is C++) and produces GL nodes. The code would be simpler if producing normal DOOM nodes (don't need the intersection list). Back-porting to DOOM might be a pain, but easier than integrating, say, ybsp. One last thing, TinyBSP is also very fast.

BTW, I'm the author of Oblige, and I think sticking random level generation into a sourceport doesn't make much sense for DOOM. People would rather use their favorite source port. Now if you were making a totally new game (be it based on DOOM engine or something else), with RMG as part of the design, then it makes sense.

Share this post


Link to post
andrewj said:

For a "node builder in one file", see my TinyBSP code here:

http://edge.svn.sourceforge.net/viewvc/edge/trunk/old132/src/tinybsp.cc?view=log

It was made for EDGE (which is C++) and produces GL nodes. The code would be simpler if producing normal DOOM nodes (don't need the intersection list). Back-porting to DOOM might be a pain, but easier than integrating, say, ybsp. One last thing, TinyBSP is also very fast.

BTW, I'm the author of Oblige, and I think sticking random level generation into a sourceport doesn't make much sense for DOOM. People would rather use their favorite source port. Now if you were making a totally new game (be it based on DOOM engine or something else), with RMG as part of the design, then it makes sense.


I guess i'm lacking the skills for backporting a GL node builder to normal nodes... heck, i'm lacking the skills for integrating SLIGE/BSP into Doom, that's why i wanted the source-code.

Shame on me, but i'll use this thread to make a suggestion for OBLIGE since you're the author of the program: a little checkbox that allows us to export MAP files instead of PAKs with BSPs.

Share this post


Link to post
mmx said:

a little checkbox that allows us to export MAP files instead of PAKs with BSPs.

Such a feature is in the WISHLIST, but getting Quake to work well for normal users is a much higher priority than generating source maps.

Plus I'm concerned that the standard Quake 1/2/3 build tools will sometimes fail trying to build the maps (the dreaded "leaks"), and I don't want to deal with complaints about it.

Share this post


Link to post

It might be exactly the same if you know how to use OBLIGE or SLIGE and have basic knowledge of Doom modding. For players, that's not really a very "comfortable" process.


I'm about as much of a computer idiot as you can find and even for me, using OBLIGE really isn't that hard ; it's certainly not harder than finding a source port on the internet, downloading it, installing it and configuring it properly, in fact I'd argue it was easier for me (I used OBLIGE months before I managed to get ZDoom and PrBoom working).

I don't mean to argue against you and your project, just trying to give some perspective.

Share this post


Link to post
mmx said:

I guess i'm lacking the skills for backporting a GL node builder to normal nodes... heck, i'm lacking the skills for integrating SLIGE/BSP into Doom, that's why i wanted the source-code.

In that case I would strongly suggest avoiding the SLIGE source. Its basically one 30,000 line source file with next to no comments and an extremely tangled nest of recursive algorithms. I know, having spent a fair amount of time untangling it myself as a learning exercise.

glBSP on the other hand is a lot nicer though there is still a few kinks in the design (which is only to be expected).

If you really want to integrate a BSP algorithm and/or a random map generator and (by your own admission) lack the knowledge to do it yourself; I think you are right to seek out the source of project that has already done so.

Unfortunately the 'big' ports which have an integrated nodebuilder are also huge departures from the original DOOM codebase.

Share this post


Link to post
DaniJ said:

Unfortunately the 'big' ports which have an integrated nodebuilder are also huge departures from the original DOOM codebase.


For the "ease of modding" angle, that's not necessarily a bad thing. In my own personal experience tinkering with ZDoom's code, the fact that a lot of things have been rewritten or reorganized following an OOP paradigm made it simpler to discover. (Though to be honest there are some parts which on the other hand have been made a lot more complicated given things like slope physics and the ton of new features.)

Share this post


Link to post

ZDoom's internal node builder is pretty much self contained and can easily be used with a more 'basic' port if the small part of the code responsible for the data transfer is adjusted. Of course when using it with C code some work will be necessary to wrap the C++ interface but that shouldn't be too hard.

Share this post


Link to post

RanDoom used a weird DJGPP hack to fork out to SLIGE as a separate process and then tried to load the output file.

Unfortunately it had some kind of weird bug that we never could track down (I was Rethcir's chief beta tester on this project). It would sometimes just crash when trying to load the file.

IMO you'd do better to start from scratch than to dig up that ancient code.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×