Showing posts with label ObHack. Show all posts
Showing posts with label ObHack. Show all posts

Saturday, August 28, 2010

ObHack 007.0 released

Fritz has made a release of ObHack 007.0, which I have uploaded to my web site:

samiam.org/slump

More information and support for this release is here:

http://www.doomworld.com/vb/doom-editing/52407-obhack-007-0-released-random-map-generator/

Saturday, July 10, 2010

ObHack 006.9 released

Fritz and I have made another release of ObHack. Fritz has done all of the hard work updating the program; my contributions consist of verifying there are no viruses in the Windows binary (with AVG) and making the .zip file and source code .7z file.

It can be seen here:

http://samiam.org/slump/

Since Andrew hasn't come out with an OBLIGE release in a while, this should whet people's appetites for having an updated Doom random map generator.

As always, I do not support ObHack; please do not post to this blog ObHack support concerns--they will not be approved.

Update: A more detailed changelog and support for ObHack 006.9 is available in this Doomworld discussion.

Tuesday, March 2, 2010

My final ObHack release

A while ago, I found a minor bug in ObHack which Fritz fixed.

I have finally gotten around to integrating Fritz’s patch in to my version of ObHack, which I call “ObHack-006b-pl1” (ObHack release 006b patchlevel 1). This is simply ObHack 006b with Fritz’s patch.

Barring a security hole in ObHack, this will be my last ObHack release. Fritz is the current maintainer and has made a lot of improvements and changes which I encourage people to download and use. Also, Andrew has very recently made a release of Oblige which makes some impressive maps.

As always:

http://samiam.org/slump/

Tuesday, February 16, 2010

ObHack Windows zipfile fixed

I haven't used the program to make .zip files in *NIX in a while, and its command line parameters can be a bit confusing (the correct way to make a zipfile is zip -r ObHack-win-006.8.zip ObHack-win-006.8, with that '-r' being lower case; the manpage incorrectly states that you can do it as zip -r ObHack-win-006.8 ObHack-win-006.8 but that doesn't actually work); as a consequence, the zipfile had a single invisible file with the name .zip in it.

I have remade the zipfile and uploaded it to the ObHack webpage.

Monday, February 15, 2010

ObHack 006.8 released

Fritz has released ObHack 006.8, a random map generator for Doom and Heretic, today. It can be downloaded here:

http://samiam.org/slump/

Support for ObHack is in this forum:

http://www.doomworld.com/vb/doom-editing/

Wednesday, February 10, 2010

I do not support ObHack

I no longer maintain and do not support ObHack, some hacks I did for a Doom random map generator until a couple of years ago. To get support for ObHack, go to this location:

http://www.doomworld.com/vb/doom-editing/

and look for the most recent thread about ObHack. You may have to go back a page or two (click on the small link marked “>>”) to find the most recent ObHack thread.

Right now, the last poster to post about ObHack was Fritz, the maintainer. He is doing a a good job maintaining and updating ObHack, and can best handle your concerns.

Monday, January 4, 2010

ObHack 006.7 released

Fritz has created and I have uploaded and released ObHack 006.7, a random map generator for Doom, Doom 2, and Heretic:

http://samiam.org/slump/

Thursday, September 24, 2009

ObHack secret spoiler bug fixed by Fritz

A while ago I found a bug in ObHack 006b which I decided wasn’t worth the time to fix.

Well, Fritz has fixed this bug. I have a patch at the following location:

http://samiam.org/slump/secret-spoiler.patch

Note that this patches cleanly against 006b, but does not patch cleanly against Fritz’s ObHack 006.4 release. I am sure Frtiz’s next ObHack release will have this bug fixed.

Tuesday, August 25, 2009

ObHack 006.3 released by Fritz

While I no longer am working on the ObHack codebase (modifications I did to the original 2007 Oblige 2 code), Fritz has taken over maintenance of the code and we have just released Obhack 006.3:

http://samiam.org/slump

ObHack has a number of features not in to the Oblige 3 codebase, such as Deathmatch and CTF support (unlike Oblige, even single-player maps have some basic Deathmatch support, and there's even a mode which tries to make maps that are both good DM and single-player maps), Heretic support, and what not.

I hope people enjoy the code. Feel free to post suggested features or bugfixes here, but remember that Fritz, not myself, is maintaining the code.

Sunday, August 2, 2009

Some guidelines on ObHack hacking

Since there is some interest in ObHack still, even though I've stopped work on it myself, I'll give people some guidelines for modifying ObHack.

ObHack is a C++ frontend; all the C++ code does is display the GUI and physically write the wad file. The lion's share of ObHack code is written in a language popular with game designers called LUA, a straightforward language that is a lot cleaner and maintainable than C.

The only time the C++ code needs to be modified is if one wishes to change the options seen in the GUI, or one wishes to change the version number of ObHack reported in the wad files created.

For people who aren't comfortable with C++, no big deal. Just change the LUA scripts (indeed, my earliest releases of ObHack were Oblige with just the scripts modified).

What ObHack does is first plan the level to be built. ObHack decides how many "quests" are there; a quest is going down a path until you're in a room with a small podium and a goody on the podium like a key, weapon, or power-up (a quest can also end with a switch that opens a door or to the exit that takes us to the next level). ObHack decides how many key quests to make, how many and what type of weapon and power-up quests there are, whether a given quest is secret, etc. ObHack also decides how long a quest should be at this point (how long the path we go down until we find the desired item is), and where the player starts on the map.

Once ObHack decides the quests to make, ObHack then sets up a square grid and decides how the squares are connected to each other, whether a given square is indoor or outdoors, etc. (Quests are marked with the type of scenery a place has, whether it's indoors or outdoors and what the floor, walls, etc. look like) Should ObHack not be able to make an exit quest or a key quest for a given locked door, ObHack will try again; if we can't make the quest as long as we wanted, ObHack will make the quest shorter, etc. ObHack also decides the average elevation of a given square at this point.

Each one of these squares is the size of a "room". ObHack also, at this point, decides to have "scenic" squares which you can not enter (nor can monsters enter) but add some scenery (this is why you see things like cages without monsters in them; that's a cage put in a scenic square).

Once the arrangement of rooms is done, ObHack then uses builder.lua to build the map. It is at this point that ObHack places ammo, health, armor (that isn't a goody at the end of a quest), and monsters. In addition, ObHack adds stairs, platforms, and scenery to levels (prefabs like the fountain, the pillars, and what not). Should ObHack not be able to place a stair in a level, ObHack will try redrawing the level again (starting from scratch with the planner) until ObHack has a level it is satisfied with.

Once that is done, ObHack converts the level in to a Doom wad, writes the wad, and the C++ code uses glbsp to make the wad have a node tree and be playable in Doom/Heretic.

So, for people who want to further develop ObHack, this should give people a starting point. LUA is really easy to program; don't let the C++ code scare you. The LUA code is a little messy at times, and, to be honest, I don't have time to really help people understand the code.

If anyone wants to continue working on ObHack and maintain the code, let me know. It's a lot of work, but you will have the satisfaction of having a Doom random map generator you have complete control over.

Thursday, July 23, 2009

ObHack EOL announcment

I'm just letting people know I currently have no plans to continue development of my ObHack fork of Oblige. This includes bug fixes and feature improvements. If you want to become the maintainer of this project, let me know.

I've decided the "you've found a secret area" message popping up outside the secret door once in a blue moon is not a serious enough bug to merit making a new ObHack release.

I recently posted, on my personal blog, an entry about no longer playing deathmatch games that were in vogue in the 1990s but have gone out of style. Most people play games on dedicated consoles, or play MMORPGs (multiplayer role playing games, like World of Warcraft) these days.

While I still enjoy the occasional Doom single player game, it's no longer something important enough to me to merit devoting a programming project to it.

Tuesday, June 2, 2009

I found a bug in ObHack 006b

I found a bug in ObHack 006b. Occasionally, the "You found a secret area!" message pops up when I stand outside a secret door, which spoils a secret.

In more detail, with the seed "OB-Doom1-200906" (no quotes in the actual seed), using the game "Doom 1", the length "Full Game", the mode "Single player", and with the following adjustments: Level Size "Small", Monsters "Plenty", Puzzles "Heaps", Outdoors "More", Switches "Keys only", Steepness "Some", Health "Enough", Ammo "Enough", and Start weapon "Basic", in E1M3, the secret area leading to the secret level gives me the "Your found a secret area" message when I stand outside the secret door.

I hope to find time to fix this bug this week sometime and released ObHack 006c with this one bug fixed.

Sunday, April 19, 2009

Deadwood snapshot update: Marko Njezic has added TCP service support; Final ObHack release

Marko Njezic has contributed code to have it so Deadwood's TCP half is now a working Windows service. This has resulted in the syntax for installing and removing the Deadwood service from the command line changing. Instead of using Deadwood --install and Deadwood --remove, now Deadwood install all and Deadwood remove all is used. Instead of one service, Deadwood is now two services: Deadwood and DeadwoodTCP.

I have updated the INSTALL.txt file to reflect these changes. The reason for the two services is because the program that handles the occasional DNS-over-TCP packet is run separately from the main DNS-over-UDP service.

Before releasing Deadwood 2.2.02:
  • Have it so the DeadwoodTCP service can properly log things to a file named dwtcplog.txt
  • Have Deadwood's URL, http://maradns.org/deadwood, in the description of the Deadwood and DeadwoodTCP service that one sees on the list of services
  • Update the SQA regression to reflect the new www.example.com server
  • Have the www.example.com DNS-over-TCP test run first, since this is the most likely test we will need to update whenever the example.com DNS server moves
This can be downloaded at maradns.org/deadwood/snap


I have made a release of ObHack yesterday, ObHack 006b. This is ObHack 006a with the following last-minute bugfixes:
  • More of Mr. Chris' themes are in the "Doom 1 Mr. Chris" game
  • Default game is Doom2 again
  • I've finally fixed the long-standing issue with monsters and items on crates (Andrew's fix needed changes in two parts of the code and I only changed one part back in 2008)
This will probably be the final release of ObHack; there isn't that much interest in a random map generator for a 15-year-old game (albeit one with a number of source ports that give the game modern 3D support) and Andrew has already released a new rewrite of Oblige; ObHack was my modifications to his older 2007 Oblige release.

ObHack can be downloaded at samiam.org/slump

Saturday, April 18, 2009

ObHack 006a released: Real secrets; Mr. Chris contributions; Switches setting

I have released ObHack 006a today; I plan on having this be my last ObHack release for the foreseeable future, since Oblige III is already out and it will take me a while to adjust to Oblige III.

There are a lot of changes compared to the last ObHack release:
  • ObHack now has real secrets; you'll have to pay attention to find the secret areas
  • Every level now has at least one secret
  • New option: "Switches"; this allows you to have all puzzles be key puzzles, switch puzzles, or a mixture of both
  • New game type: "Doom 1 Mr. Chris"; this is a version of Doom1 with some of Mr. Chris' changes applied to it
  • RNG seeds can be up to 20 letters long now
It can be downloaded at samiam.org/slump

Wednesday, April 8, 2009

ObHack snapshot update: Secret doors

I have released a new snapshot of ObHack today; this snapshot is identical to the 20090404 (April 4, 2009) snapshot of ObHack except that secret doors can no longer been seen by looking at the automap (the linedefs for secret doors are now correctly marked as "secret" linedefs).

It can be downloaded at http://samiam.org/slump

Sunday, April 5, 2009

Simple RadioGatun library

A while ago, I wrote a simple code-size optimized Radio Gatun library. A version of this code is used in new ObHack releases, and can be downloaded here or looked at here.

Saturday, April 4, 2009

ObHack snapshot released: Real secrets

One thing that has always bothered me a bit about Oblige/ObHack is that secrets are fairly rare, and no real effort is made to hide the secret areas.

Today's snapshot of ObHack fixes this. Now, ObHack generated maps will always have at least one secret on a level. In addition, it's not quite so trivial to find a secret; you need to pay attention to find it.

The ObHack snapshot (20090404) can be downloaded by clicking on this link.

Sunday, March 29, 2009

ObHack 005c released

I have released ObHack 005c today:
  • Bugfix: The reason why the outdoors theme occasionally had a Wolfenstein door was because there were no doors marked for the nature theme, so ObHack would just choose any door at random. Fixed (Andrew had this fix for Oblige 0.97, but it took a bit of prodding to figure out which diff was the fix)
  • Minimize the use of prefabs with Wolfenstein textures in non-Wolfenstein levels
  • Memory leak in RNG plugged
  • FLTK updated to use FLTK-1.1.9 (which actually makes the source tarball smaller; I also don't like having the code use a developer snap of some library to compile)
It can be downloaded at samiam.org/slump.

Sunday, March 22, 2009

ObHack 005a released

One thing that has always annoyed me a bit about ObHack is the fact the library for the underlying random number generator only allows a 32-bit seed to be used.

I have fixed this. Instead of using the Mersenne twister as a random number generator, ObHack now uses the 32-bit version of RadioGatĂșn as the RNG. This allows us to take advantage of the fact that RadioGatĂșn allows an arbitrarily long input as its "seed" and can output a arbitrarily long stream.

Since RadioGatĂșn is (as far as this academic cryptographic community knows) a secure stream cipher, its output is indistinguishable from random noise.

I have changed the relevant parts of the LUA scripts to seed the random number generator with a string instead of a number, and have changed the GUI dialog code to allow any string up to 16 characters long to be inputted as the RNG seed.

If a seed longer than 16 characters is desired, this can be done by invoking ObHack from the command line. To do this:
  • Open up the ObHack gui from the directory containing ObHack
  • Configure, in the GUI, the type of game you want ObHack to make (level size, number of monsters, game type, number of maps to make, etc.)
  • Leave the GUI without making a level
  • Now, invoke ObHack from the command line with the first command line argument the seed of the map you want to make that starts with a number. For example, to use the seed '12345-long-ObHack-seed.wad' invoke ObHack as ObHack 12345-long-ObHack-seed.wad. It will generate a .wad file with both the name and seed '12345-long-ObHack-seed.wad' (yes, the .wad extension will be part of the RNG seed).
  • This can be done repeatedly from a script if you have a few DVD-R blanks you want to fill up or what not
  • Did I make it clear that a map generated from the command line must start with a number?
Note that there is a minor bug in ObHack: When I wrote the code to implement the new RNG last night, I neglected to free the memory used by the old seed when re-seeding the RNG; this means the program leaks 240 bytes of memory for every level generated by ObHack in a megawad; when making a Heretic megawad (55 levels), this leaks 13200 bytes of memory. Since it's rare to generate more than one wad file each time one invokes ObHack (following the above steps to repeatably invoke ObHack with a script restarts ObHack every time we make a .wad), so we only leak up to 13200 bytes, this isn't a serious enough bug for me to make a new release of ObHack to fix.

ObHack 005a can be downloaded at samiam.org/slump. Here is the Doomworld thread I use to announce new releases of Obhack there.

Sunday, December 28, 2008

samiam.org and blog comments update

I'm just letting people know I am doing a year-end cleanup of samiam.org, getting rid of a lot of outdated software and what not. As a general rule, I am removed links to versions of programs that are not the last release of a given program. With ObHack, I have made sure the last 002 and 003 releases are available, in addition the the final 004 release, so people can check out the subtly different maps each version of ObHack makes.

I have also deleted all of the Chess Variant-related stuff from the site. I have decided that Chess Variants are simply a waste of time; I have better things to do with my time. People who want to see my work in this area can download my Schoolbook file from the Zillions of Games website (look in "free games", then look for "schoolbook").

In terms of support, the only geek project I have done over the years I still use today is Deadwood (code that will someday be MaraDNS' next recursive resolver). Other projects are not supported and blog comments asking for support for, say, ObHack, will probably not be posted.

MaraDNS, of course, is still supported, but the only changes I will make in 2009 are critical and security bug fixes. I do not support non-security issues in MaraDNS anywhere except on the MaraDNS mailing list. Again, blog comments asking for MaraDNS support in 2009 will not be posted.

Deadwood is the only project I still find useful and support. People are welcome to download and use any other open-source code I have, but please don't ask me to solve your problems for you. Be smart. Learn to troubleshoot and figure out issues on your own. It'll make you a more mature, responsible person.