Cyberdemon
Register | User Profile | Member List | F.A.Q | Privacy Policy | New Blog | Search Forums | Forums Home
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Doom Editing > OBLIGE with bugfixes and tweaks available
Pages (2): [1] 2 »  
Author
All times are GMT. The time now is 08:32. Post New Thread    Post A Reply
samiam
Mini-Member


Posts: 96
Registered: 04-05


Hello everyone,

Some people may know that I once worked on a hack of SLIGE called SLUMP, available here:

http://www.samiam.org/slump.html

Well, the bad news is that the SLUMP project is dead. The good news is that's because, IMHO, Andrew Apted's OBLIGE has taken Doom random map generators to the next level. Well, I couldn't help but to tinker with the code and make my own modifications.

The first thing I have done is make "small" maps smaller than Oblige's "small" maps. This caused a number of bugs to pop up, which I hunted down and fixed. Someone once mentioned that being able to generate 1024x1024 deathmatch maps with Oblige would be nice; making a small map with deathmatch enabled now makes maps very suitable for near-overload-small 1-on-1 fragfests. Sometimes there are little nooks and crannies a player can hide in, but it won't take the other player very long to find them.

Small single player maps are now small enough to be playable as deathmatch maps, so I have added deathmatch starts to the single player maps. A small "single player" Heretic map is a playable 1-on-1 Heretic map, and a small "single player" Doom/Doom2 map is a playable 1-on-1 or 3/4-way free-for-all map (Doom maps have more fabs that players can hide behind).

Speaking of Heretic, I have fixed some Heretic bugs. Doors now always work, and it is possible to go to the secret levels in a megawad. Also, someone complained that Smite-Master is too hard with Heretic maps; I have somewhat fixed this by having the gauntlets and chaos device (sorry, the tome is too powerful) at the start of each level at Smite-Master difficulty.

Also, the chances of hitting a bug that causes the code to be unable to make a map has been reduced.

The code can be downloaded here:

http://www.samiam.org/slump/obhack.html

As an aside, down anyone have SL4's hacks to OBLIGE that change the architecture of Doom maps? http://sl4.dmclub.org/wasd/d2scripts.zip doesn't work anymore, and I can't find d2scripts.zip anywhere on the web.

I have some ideas about what to do with this code, so people let me know if you are interested in me working on this code while Andrew works hard on the rewrite that will become the next version of OBLIGE.

Bug reports are greatly appreciated. Feature requests will be looked at, but things like "have it make rooms in the shape of a pentagon" will be responded to with me explaining why it's hard to do something like that with OBLIGE's current codebase. :)

- Sam

Old Post 11-16-07 20:20 #
samiam is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
40oz
Forum Spammer


Posts: 6970
Registered: 08-07


Less height variants would be nice. I know that's an original Oblige thing, not your mod specific, but there are stairs and cliffs everywhere in Oblige maps. It kinda bugs me.

I'm an oblige sucker myself to be honest, In fact I was considering pumping out a megawad and playing it today.

Old Post 11-16-07 22:47 #
40oz is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
samiam
Mini-Member


Posts: 96
Registered: 04-05


You know, it's pretty easy to modify things so the levels are less lumpy. However, I'm holding off on doing this until I can figure out how to recompile the GUI, since how "lumpy" someone wants a map to be is a very subjective. I'd like to have a pulldown menu with "lumpyness", with options like "Flat", "Some lumpyness", "lumpy", "insane", etc. Speaking of which, I'd like to see more size options: "tiny", "small", "medium", "large", "huge", "insane". This way, there is more flexibility for people.

However, first I need to implement features in my "real" open-source project (a DNS server).

That said, I have fixed some generally Heretic-specific bugs, and have added support for Heretic's hidden levels.

Basically, when they made the orignal Heretic, they added three extra levels that, for unknown reasons, were not made part of the levels accessible from the menu. I once heard these levels were made for deathmatch play, but the truth is that only E6M3 is small enough to be a real good deathmatch map. I think they just couldn't find a good place for these three maps so decided to just tack them on at the end.

When they added the 18 levels for "Shadow of the Serpent Riders", they made these three maps E6M1-3.

These maps can be accessed via the "-warp" command line parameter, or via the "ENGAGE##" (Heretic's version of "IDCLEV##") cheat code. When you finish E6M1, you go to E6M2, and on to E6M3. E6M3 doesn't have an exit (which supports the "deathmatch map" argument).

As it turns out, it, depending on your source port, may or may not be possible to play E6M4, E6M5, and so on. The original DOS Heretic definitely supports E6M4 (Sailor Scout's old Heretic shrine makes a note of this); E6M5 and so on look to be buggy. There is no secret level defined for E6; best not to have one.

What I have done for ObHack is just add support for E6M1, E6M2, and E6M3; the wads that exist in the original Heretic. E6M3, like the Heretic E6M3, doesn't have an exit. After you kill all the monsters, I guess you just call it a day or something.

As an aisde, Snowberry in the beta version of Doomsday doesn't support Heretic wads with E6 maps, even though the original DOS Heretic has no problem with these wads.

Anyway, if anyone has more information on the history of these three extra wads, I'd be interested in hearing about it.

I have also fixed some other bugs: Not being able to make a map because a door fab wasn't found was fixed. There was also a bug where the door color statues sometimes block things, making it impossible to finish the level without using the noclip ("kitty") cheat code. My fix is not perfect; it tries to determine if the statues block, and if they may block, it puts the state closer to the wall (which looks a little ugly, but it's better that than a level that can't be finished). The real fix is to add these statues when it's still possible to mark the "blocks" with the statues as non-passable. I've also fixed a failed assert that sometimes popped up when making small deathmatch levels.

Again, bug reports are welcome; I also like hearing feature requests.

- Sam

Old Post 11-20-07 00:35 #
samiam is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
samiam
Mini-Member


Posts: 96
Registered: 04-05



JohnnyRancid said:
Less height variants would be nice.


Done. ObHack 003a now has a field entitled "steepness", which, surprise surprise, determines how much height variance the random maps will have. You can go from almost flat to having as much height variance as the current Oblige maps.

It's here:

http://www.samiam.org/slump/obhack.html

There's some other enhancements, such as being able to have "tiny" or "huge" maps. What I had to remove, alas, was Hexen and Wolfenstein 3D support, since I don't have either game and am therefore unable to test the generator for those games.

My next plan (besides fixing the lack of health in tiny maps) is to make a command-line version of ObHack.

- Sam

Old Post 11-27-07 16:19 #
samiam is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
samiam
Mini-Member


Posts: 96
Registered: 04-05


Yesterday, I uploaded an update to ObHack. This is a new release with the following new features:

* It is now possible to specify how much of a map is indoors or outdoors

* It is now possible to have "swarms" of monsters; this is twice as many monsters as hordes. Perfect for the hardcore Doomer who has been playing Doom 8 hours every day since 1998, and thinks Hell Revealed is far too easy. Note that having this many sprites in the game can crash some source ports.

* New mode: Single Player + Deathmatch. This makes maps which try to be both reasonable Single Player and Deathmatch maps. This way, you can learn the map playing it single player, then kick all of you friends' butts playing the same maps Deathmatch.

* Now parameter: Initial weapon. Mainly for balancing deathmatch, this allows each player to optionally start with either a single-barrel Shotgun (Basic weapon) or Rocket launcher (Hardcore weapon). In Heretic, the basic weapon is the Crossbow, and the hardcore weapon is the Phoenix Rod. Also useful if you don't want to play "hunt the crossbow" when starting Heretic maps.

This should be my last update for a while (unless people request for features). It can be downloaded here:

http://www.samiam.org/slump/obhack.html

- Sam

Old Post 12-04-07 16:31 #
samiam is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
leileilol
dork stalker


Posts: 2726
Registered: 06-04



samiam said:
These maps can be accessed via the "-warp" command line parameter, or via the "ENGAGE##" (Heretic's version of "IDCLEV##") cheat code. When you finish E6M1, you go to E6M2, and on to E6M3. E6M3 doesn't have an exit (which supports the "deathmatch map" argument).

http://www.doomworld.com/idgames/index.php?id=7021

Old Post 12-04-07 20:00 #
leileilol is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
andrewj
Senior Member


Posts: 1641
Registered: 04-02



samiam said:
* Now parameter: Initial weapon. Mainly for balancing deathmatch, this allows each player to optionally start with either a single-barrel Shotgun (Basic weapon) or Rocket launcher (Hardcore weapon).

That's a really nice idea!

Not sure if the new GUI has room for it. Hmmm... actually it could override the "Traps" button since traps (especially the open-monster-closet type) don't make much sense in deathmatch maps, so that button would otherwise be quite useless.

Old Post 12-06-07 00:06 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit || Quote
TheInitialCommand
Newbie


Posts: 6
Registered: 08-04


Hey,

I was wondering why the seed is limited to -9999 through 99999, is there a reason this is not a 32 bit integer? Although I did notice that you have increased this from the original Oblige limit of -999 to 9999.

−2,147,483,648 to +2,147,483,647

Or for the insanely hardcore, what about a 128bit long, to make sure we never see the same 2 levels =)?
−170,141,183,460,469,231,731,687,303,715,884,105,728 to +170,141,183,460,469,231,731,687,303,715,884,105,727

Do you think the seed range could be increased in ObHack at all, or is there a very good reason for this limitation?

Thanks,

Old Post 01-05-08 00:32 #
TheInitialCommand is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
Enjay
ASK ME ABOUT FOOTBALL / STEAM / DEAD CELEBRITIES / THE BLAIR WITCH PROJECT


Posts: 6387
Registered: 12-00


Presumably you are requesting this because you have already played levels using the almost 110,000 seeds currently available?

Old Post 01-05-08 01:22 #
Enjay is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
TheInitialCommand
Newbie


Posts: 6
Registered: 08-04


You are right Enjay its still a ridiculous amount of combinations / permutations. I was just thinking that since Oblige/OBHack are superb algorithmic generators, why set an artificial ceiling on the possibilities that they can generate. Especially Oblige that is capped at just 10999 possibilities.

Old Post 01-05-08 02:59 #
TheInitialCommand is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
andrewj
Senior Member


Posts: 1641
Registered: 04-02



TheInitialCommand said:
why set an artificial ceiling on the possibilities that they can generate.

The current rewrite allows five digits (00000-99999).

The reason is because 4 or 5 digits is easy to communicate to other people without making a mistake. And like Enjay said, if you made a megawad for every seed, that would be over 300,000 levels to play through, and I bet if you managed to play them all you'd go insane, well, more insane :-)

Old Post 01-05-08 05:59 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit || Quote
TheInitialCommand
Newbie


Posts: 6
Registered: 08-04


Hahaha,

Yeah these are all good counter arguments, but no one has that nagging feeling that the most perfect level ever designed is sitting in seed 2418242, or anywhere else outside the realm of the current possibilities? Not that we would be able to find it anyway =)

Old Post 01-06-08 00:22 #
TheInitialCommand is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
samiam
Mini-Member


Posts: 96
Registered: 04-05


Hey, I appreciate people using my fork of ObHack and providing feedback on it. I apologize for not replying sooner; I've been quite busy and don't have time to scan forums as much as I would like.

Anyway, Enhas and I have been working together in private email on improving ObHack. Enhas has done most of the work; I'm just blessing my patches and making releases.

The first thing Enhas has done is clean up the FreeDoom code. I've played through a wad made with the modified code in FreeDoom, and it looks good. So, I'm making a snapshot of this code available for testing here:

http://www.samiam.org/slump/ObHack-win-20080128.zip

In compliance with the GPL, the full source code:

http://www.samiam.org/slump/ObHack-src-20080128.tar.bz2

This will become the 003e release of ObHack.

Enhas is also making some improvments that I will incorporate in to the 004 series of ObHack (some tweaks to how smaller maps look).

Also, I agree that it would be nice to give the RNG a greater range. What I'm thinking is using a different seed whenever any parameter is changed, such as the number of monsters. Right now, a map with a given seed and only a few monsters gives you pretty much the same map with a given seed and a lot of monsters. I'd like to change that.

Right now, the internal code can handle a seed with a value as high as 500,000 or so (the seed used is a 31-bit value; I multiply the seed by 3803, add the level number multiplied by 37 to that number, then add an offset so we can retry making a given level multiple times in case there's a problem like being unable to place a staircase).

I plan on changing the random number generator (RNG) to one where the RNG seed can be a string of arbitrary length for the 004 series of ObHack.

(Geek talk: The way I will do this is to change the Mersenne twister seeding core so that, instead of using a Linear congruential generator to seed the RNG state from the supplied seed value, it uses a cryptographic hash called "Radio Gatun" to set these values)

Release date: Ha! This is free software. :)

- Sam

Old Post 01-28-08 21:29 #
samiam is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
Worst
Mini-Member


Posts: 84
Registered: 09-07


would it be possible to have boomctf support? (ctf format compatible in odamex, zdaemon and skulltag)

code:
// 5130 = "Blue flag"; // 5131 = "Red flag"; // // 5080 = "Blue Start" // 5081 = "Red Start"


it could be pretty fun :P

Old Post 01-29-08 09:52 #
Worst is offline Profile || Blog || PM || Search || Add Buddy IP || Edit || Quote
andrewj
Senior Member


Posts: 1641
Registered: 04-02


CTF maps are planned. They really need to be symmetrical so that no side is at a disadvantage, but currently Oblige cannot make symmetrical maps -- that is something I'll be working on with the rewrite.

Old Post 01-29-08 10:47 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit || Quote
samiam
Mini-Member


Posts: 96
Registered: 04-05


OK, I've just update ObHack to 003e; this only updates the FreeDoom maps so they don't use monsters that the sprites haven't been completed with yet. It's available here:

http://www.samiam.org/slump/obhack.html

- Sam

Old Post 01-29-08 21:02 #
samiam is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
samiam
Mini-Member


Posts: 96
Registered: 04-05


Enhas has been working a while on improving the core of the level generation code. I have integrated his changes, along with a change to slightly tweak the random number generator so the levels are different, in a snapshot of ObHack:

http://www.samiam.org/slump/ObHack-snap-20080201.zip

- Sam

Old Post 02-01-08 22:19 #
samiam is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
samiam
Mini-Member


Posts: 96
Registered: 04-05


Just letting everyone know that I have just posted a new developer's snapshot. In this snapshot, there is a new level size: Progressive. This makes the early levels small and the later levels huge in a given episode (in Doom 2, it's an 11-map cycle; map01 is tiny; map11 is huge, and map12 is tiny again).

http://www.samiam.org/slump/obhack.html

Old Post 02-04-08 19:45 #
samiam is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
samiam
Mini-Member


Posts: 96
Registered: 04-05


OK, another minor update uploaded to the ObHack page:

http://www.samiam.org/slump/obhack.html

And, so as to not clutter this group, I'm, from now on, posting snapshot updates to my geek blog:

http://maradns.blogspot.com

- Sam

Old Post 02-07-08 22:55 #
samiam is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
Csonicgo


Posts: 4458
Registered: 03-04


Yaaaay, I'm hoping for a march shot :(

Old Post 03-12-08 21:25 #
Csonicgo is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
samiam
Mini-Member


Posts: 96
Registered: 04-05



Worst said:
would it be possible to have boomctf support?


Done.

As an aside, I now understand why no one use Odamex. It took me hours, and I mean hours to figure out how to get Odamex to play a simple CTF map. Odamex does not include any documentation, and the wiki's documentation is pretty sparse and hard to use as a reference.

Odamex doesn't have built-in help on the server; I had to resort to looking at the source code to figure out how to use it.

Basically, I had to open up both a client and a server; the secret command is "usectf 1", then to restart the server ("ctf" tells you whether you have CTF; instead of a nice "CTF enabled" or "CTF disabled" message, Odamex just has the next-to-useless "yes" and "no" responses). Eventually, the server will decide that you want to play ctf.

It literally took me longer to get Odamex set with CTF to make sure CTF maps worked than it took for me to add CTF support to ObHack.

Here's a clue, Odamex developers: If you want people to use your program make it easier to use; include documentation for your cryptic commands. Ideally, don't make people have to figure out cryptic commands at all.

Yes, there is a UNIX tradition for cryptic commands, but there is also a tradition of people writing documentation for said cryptic commands.

Anyway, the 20080403 snapshot of ObHack has CTF support. It's really basic; I just put each flag in a corner of a deathmatch map. On one side of the map are all of Blue's starts; on the other side are all of Red's starts. Playing these random CTF maps is like playing a card game; the maps will probably be unbalanced, making the game one of luck as much as it is a game of skill.

It can be downloaded here:

http://www.samiam.org/slump

- Sam

Old Post 04-03-08 19:57 #
samiam is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
andrewj
Senior Member


Posts: 1641
Registered: 04-02


Neat.

Yeah Odamex needs a lot of work on the user friendliness front. When I tried it on a server, it said it loaded DOOM2.WAD (in the console) and then told me I needed DOOM2.WAD and wouldn't start. Turns out I had v1.666 of the IWAD and you need v1.9, but I had to dig through a lot of stuff to figure that out.

Old Post 04-04-08 04:07 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit || Quote
samiam
Mini-Member


Posts: 96
Registered: 04-05


You know, while waiting for Oblige III to come out (Since you're not getting paid, I'm in no hurry to see it come out), people can use ObHack, since I am making some (minor) improvments to it.

One idea which I will probably not implement is a random dungeon generator that would be good especially for Heretic levels:

http://www.aarg.net/~minam/dungeon.cgi

- Sam

Old Post 04-08-08 23:10 #
samiam is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
andrewj
Senior Member


Posts: 1641
Registered: 04-02


That dungeon generator is quite good, and he explains the algorithm which is even better. It does create some long hallways which I think may not work so well in the context of a 3D game. Plus it lacks a quest system (keys and switches) which would need to be imposed on the dungeon.

For Oblige III I have been working on the new room planning system (which BTW I'm nearly done figuring out how it will work), anyway I have come across so many different ways that a level could be made, it's likely that Oblige will eventually have more than one method for planning levels (especially DM maps vs SP maps), and I foresee people experimenting with new ones via Mods.

Old Post 04-09-08 06:35 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit || Quote
gun_psycho
Member


Posts: 634
Registered: 03-07


I have one question about this: how do I add the Cyberdemon and Spider Mastermind into the regular levels? That has been boggling my mind for quite a while.

Also, would it be possible to have support for decorate-based mods? It's just a though.

Old Post 04-29-08 10:42 #
gun_psycho is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
GreyGhost
Why don't I have a custom title by now?!


Posts: 8828
Registered: 01-08


The easiest and best way to add the big bosses is with an editor. Powerful monsters like those should be placed with care and malice aforethought. >:-)

Old Post 04-29-08 11:57 #
GreyGhost is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
gun_psycho
Member


Posts: 634
Registered: 03-07


@GreyGhost: What I meant to say was: how do you get Oblige to add the big boss monsters to the regular levels?

Old Post 05-01-08 05:32 #
gun_psycho is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
andrewj
Senior Member


Posts: 1641
Registered: 04-02


I think GreyGhost was joking around. Oblige cannot add the biggest boss (Spider-Mastermind) yet, because it is too big and would nearly always get stuck against walls or other monsters. This will be fixed in the next release (Oblige the 3rd). Custom mods (e.g. for a monster pack) will also be possible in the next release, though somebody still needs to write the mod for Oblige.

Old Post 05-01-08 09:45 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit || Quote
gggmork
If you can make any sense of this post, congratulations


Posts: 2824
Registered: 06-07


I've been playing oblige_094 a lot and absolutely love it, great job. Reminds me of the 1980 computer game rogue. I suggest having check boxes for the weapons and monsters you want included (ex. if check cacodemons, chaingunners and super shotgun, then ONLY those would be included in the maps (plentiful enough to compensate for the absense of everything unchecked)). And it would be awesome if cyberdemons/masterminds were available too (of course you could uncheck them). Probably cyberdemons would have a much lower probability of showing up (and even possible but rather unlikely for 2 or more to show up in the same map).

EDIT: actually that checkbox suggestion is too on/off/boolean, not that you should contaminate the project with my ideas anyway. You wouldn't likely want to completely turn off monster types. Maybe better to be able to set the approximate probability of each type of monster (but still have it be slightly random) so you can generate levels that TEND to have tons of hitscanners or whatever you want. Or maybe outright enter a number value for each monster type you want like 'i want 3 cyberdemons and 11 mancubuses' (though that would remove some of the fun randomness of current maps).

Last edited by gggmork on 05-14-08 at 02:22

Old Post 05-13-08 09:26 #
gggmork is offline Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
andrewj
Senior Member


Posts: 1641
Registered: 04-02


Thanks gggmork.

A mod that implemented selectable monsters would be possible for OBLIGE III (the big rewrite).

BTW folks, I plan to release a 0.97 version soon which is 0.94 plus a few fixes, including at least the following:
- Sam's much expanded Heretic themes
- fix the show-stopper stair problem
- allow Cyberdemons in maps

Old Post 05-13-08 11:09 #
andrewj is offline Profile || Blog || PM || Search || Add Buddy IP || Edit || Quote
All times are GMT. The time now is 08:32. Post New Thread    Post A Reply
Pages (2): [1] 2 »  
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Doom Editing > OBLIGE with bugfixes and tweaks available

Show Printable Version | Email this Page | Subscribe to this Thread

 

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are OFF
[IMG] code is ON
 

< Contact Us - Doomworld >

Powered by: vBulletin Version 2.2.5
Copyright ©2000, 2001, Jelsoft Enterprises Limited.