Play Spelunky in a GIANT randomly generated labyrinth (maze) of caverns. (64-256-512 rooms per level instead of 16)

There is a full save game system and some additions for balence such as 8 maximum life to start and 10 bombs/ 12 rope. Also, mushrooms (by picking up and pressing up + attack) give you +1 life (up to your max). Plus many other things...

The Size?The default size is 24 by 24 rooms for the total space the maze can occupy and 256 rooms that create the maze. That size, on my computer, takes ~ 20 seconds but to play the whole level takes ~ 15min to 1 hour depending on my luck. The lag is reduced, dramaticaly, by constantly saving anything not near the player to the hard drive and loading from the hard drive things near the player. This takes alot of strain from the ram and is hardly noticible. Without this it would be imposible to have such large levels. It is theoreticaly posible to make infinantly large levels. I'll post smaller and larger sized levels for your preferance and computer speed, but it's not hard to edit this to your own liking if you have GM. I will add option to change this in game soon.

LIMITATIONSBeside the long load times, you are currently restricted to an infinite dose of the first 'world'. Also, the balence is to very dificult right now. I hope to have some help adjusting that in the future. This should be considered an ALPHA demonstration of the engine additions and not a fully game, yet. New worlds will be re-added as soon as I'm able to sucsessfully write the new way of linking the worlds. (that was actualy a big reason why the was soo long coming, REALLY strange bugs with door linking)

Like it? HELP!I'd love to have a hand with making more for this game! If anyone feels like helping, or adding your own mods to mine, please write here. I am willing to teach anyone how to program if they are willing to add abit to my game. You can work on anything you want to or, if you prefer, what I feel needs the most attention and is within your skill level. In exchange, I'll teach you how to add the things you want to add. And, of coarse, you'll get full credits in the intro and ending scenes.

FUTUREI'd love to see many mods that are allready made incorperated into my mod. The ones that imedatly jump out to me are the XP mod, the mushroom/potion mods, the new Mage mod, ANY new monster/item/weapon mods (shields, swords, even small changes to enemys..) I haven't had time to incorperate them myself...

The lag is reduced, dramaticaly, by constantly saving and loading from the hard drive and not from ram.

Let's see, low grade DDR2-RAM clocked in at 200 MHZ, peaks out at about 6400 mb/s. WD VelociRaptor WD4500HLHX (pretty high end hard disk), peaks out at about 120mb/s. Avoiding constant saving and loading from the hard drive also keeps increases it's longevity! I really hope you typed the opposite of what you meant!

Bad performance decisions aside, I think it would be fun to see more random room patterns that are on a grander scale like you've thought about. There's all these cool mods for Spelunky adding enemies and items, but as far as I can tell there are none that do much about adding to the structure of levels.

The way vanilla does it is to load the whole level into ram memory. That made levels bigger than 4X lag like mad. Thats why I did the load/save stuff. It's similar to how games like Oblivion deal with huge worlds.. But on a smaller scale obviously.

Was the game playable or smooth on your computer? You could try the old Spelunky Explorer if you wanna see what 4X levels are like, in your ram. I'm no pro programmer but I think I made a real good choise for how I set that up. Levels are now 16X the origonal size and still very playable.

-Cavemen die in one hit-Once I wanted to buy a shotgun, but the shoppy wanted 50000.-If you bomb into what appears to be a huge area of solid rock with no gold, a ton of gold appears through it.-Once you finish the first level(I did it once by dumb luck), you get an empty room.-There seems to be less treasure outside of the walls and more treasure in the walls than normal.

-the 'solid rock' rooms are there to reduce lag.. there was no getting around it without adding some smoke and mirrors.. I might make it better eventualy.

-level end bug is now fixed... SO SORRY for your luck wasted!!(btw.. you can backup your save game by backing up files in your 'explorer' folder. You could do that before you finish levels to make sure the level loads ok)

-there is alot of treasure 'in' the walls. Makes bombs more worth it. And in LOS mod.. specs..

-yes, I do love big snake pits!!

-There are now ALOT less monkeys. sorry again.

-MUSHROOMS can be used by pressing up and attack while holding it.

THANKS for the bug reports and questions!

Please keep in mind that this is a alpha 'demo' of the engine and not ment to be a 'full' game... But do tell me about bugs and anoyances and I'll try to fix it up asap. Thanks again...

Oh, and if you have compliments, please don't hold back! I can use all the encouragement I can get to help me stick with programming this REALLY hard to program mod. Hours spent so far... uncountable.

HEY KEG! you still come by here eh? Thanks for props! I've been real stoked on working this lately.I found out today that it runs pretty slow in LOS on old computers.. and kinda slow no my laptop. I hope to improve the formula soon.

Patrick: yeah the dificulty is too much still for the length of game I hope for.. I donno how best to solve that. any ideas? More mushrooms I guess... Inventory would really help. The compass is supose to be really hard to get but it lasts the whole game. It's broken in current release tho. I can fix it np I think. SPOILERS ALERT!! in small text:

maps can be found in bags. Pretty rarely tho.. Pause (escape) to view it.

So I still need to do alot of balencing. And, yes, big spiders are bad.

I'm torn about this mod. The problem is: I like the idea very much. Great levels = very good. But this mod gets me so frustrated that it's starting to get annoying. It used to be worse with all the monkeys hidden in chest, but still, I've got quite a bit of issues with this otherwise epic mod.

- after some sort of improper closing of spelunky, I get this message if I want to start again. Spelunky will close afterwards, so now I cannot play, probably untill I download the file again.___________________________________________ERROR inaction number 1of Create Eventfor object oLevel:

File is not opened for reading.

- I also get an error while esc-f10 quitting in the main room.- what's up with the near invincible vampire? The full weight of a spelunky does nothing, yet the impact of a single thrown (not exploding) bomb knocks him out?- chest standing in front of spikes are really annoying (same square is filled with both chest and spikes). - the stairs seem underdeveloped as you cannot fully climb them.- playing for 45 minutes without getting the impression of making any progress is a bit annoying sometimes.- are gnomes actually of any use? I hardly feel compelled to carry around that little guy all the time, just in the hopes of finding an exit, and probably healing 1 health.- Refilling traps are evil. Especially if they fired at a monster before, which makes timing them really hard.

On the other end, I do like the falling blocks when detonating a bomb. That really caught me by surprise the first time. And big levels are simply amazing. I really love them, and I really love some of your future ideas as well. The mod struck a few insipre-snares in me as well, so here's a few suggestions:

- an ice level in which every detonation of a bomb has the same effect as the howl from a yeti king. The passages should be a bit less clogged though, as falling ice is a substantial risk.- an entire level underwater. Some homing fish should become fish that just swim sideways? bombs should not work/work like rushing water level?- Chest + key makes lasting compass, ordinary compass is usable for only one level?

more to come soon, I'll download the mod again and play it some more for a bit of inspiration.

A small note: playing spelunky in a smaller box greatly reduces the lag. It does suck a bit looking at spelunky in x1 though...

F

edit: crap, net even the new .exe can get it to work... sorry, no inspiration just yet...

I tried it, and to be honest I can't stand it. There's noticeable jarring interruptions whenever you move between the separately loaded cells in the game.

If you properly buffered several cells around the player and had each cell's file data being read in a separate thread that doesn't pause the main process, there wouldn't be near as much interruption from hard drive seeking (not all of us are using solid state drives yet!).

Hard drives will never be able to match the speed of RAM though, so if you really wanted this thing to run decently, there are third party dlls you can use for allocating memory/writing the level information to memory if you don't want to deal with GameMaker object management.

If you want to, I can give you a dll and give you an example on how to write the way your currently handling level data directly to the memory. Actually, you wouldn't even really need a cell buffer if you do use RAM because loading cells will be near instantaneous.

Point being, writing to the hard drive instead of using the bajigillion times faster RAM is a terrible decision. Games like Oblivion have to read from files instead of loading everything into the RAM because of how large the data for the whole world's data is, and being so much more complex there are large amounts of data they already have to always have stored in the RAM. They could have everything loaded into the RAM ahead of time, considering that now days mid-range desktops ship with 6 gigs of RAM, but then not everyone would be able to run it. Your stored level data on the hard drive, only 186kb (though it is quite a bit larger stored on a hard disk because of file cluster sizes). Plus, their engines are built on an lower level then GameMaker, and thus they can optimize the way they load data more; Additionally large areas around the player are always buffered to make movement smooth.

TOC: Thank you for the more specific information!! I'm really a novice programmer and this has been my most difficult project to date. I know very little about how computers alocate information... and I don't really know how to buffer in a different 'thread' but I'm very stoked to learn how now.

I think I get the idea... (have a process that is constantly loading / unloading while you play instead of only doing it all at once when a player moves into a new 'area') is that close??

I would be willing to drop everything right now and try to learn this, as well as trying the third party dll idea.

Will you please try and help me learn this? An example of the dll would help alot. An expanded explanation of buffering with GM would help too. I'd owe you a BIG favor for your help... and big credits in the game if you like.

I will start reading on these topics online right now! Thanks again!

EDIT: I haven't read up yet as I'm not sure where to start and yoyo's forum isn't working... But, I just thought of an idea to maybe try:

I could load oRooms (or some new equivilate) around the player, or for the whole level, and then have a step event in each oRoom that loads the saved cells, only one object at a time. I still need to figure out the best way to keep the file data in ram.. maybe I'm overthinking and keeping them in an array/grid of strings form would be fine. Whatcha think? I go try.

Pteri and Funky: AH! I'm soo absentminded sometimes... To fix your error problem, delete all the files from the folder "explorer" in your spelunky folder. This is a dumb error that has buged me for a long time. so long I forgot to mention it. ;P

I have an idea how to fix it and I'll post an update asap. There is also an occational error of the level not loading or player apears in a wall! :S I think I may have fixed that last night (finaly!) but it will take time to know for sure.

As for all the frustrating difficultys... everything needs alot of tweaking and has been very time consuming. But I will try to work out everything mentioned. I apreaciate your input and patients!! And I will prioritize fixes on how anoying things are..

-First step is to reduce lag though TOC's ideas and improve LOS lag

-Then make levels easier to find the end by.. ?? making more loops/ways to the finish... more work on room shapes to improve chance of 'stairs'... MUCH greater chance of SPOILER ALERT: Maps found in jars and crates and chests and shops I'll add that in next release, maybe today!

-Vampire could def use some work.. For now, bombs or arrows are the way to go. Any ideas to make him still REALLY hard but more options for attack? I think a shotgun would help alot... havn't tried it yet. Remeber that a machete can hit a knocked out person!

-SPOILER ALERT: Gnomes are actualy my GF's more masculine girl.. ;p if you get her to the end you get 1 extra life AND +1 to MAX life. again, could use much work

I like the temporary compass idea! But I'm not sure how to explain it's loss, unlike the *ap's. ?? And I have never seen a yeti king howl! Maybe I'll add a golden compass soon and make the regular one 'break' after level change. Having it in a big chest is a good idea.

THANKS for the window size tip! My buddy needs that to get it working on his laptop with LOS on... untill I get TOC's tips working.

Sorry about tempting you with all these things then making you wait, but I'm going to be really busy for the next couple of days. I'll get back to you as soon as I can! (And actually, I like the premise of this mod so much that I'll try to take your current source and integrate new loading/saving area functions myself, so that you only have to add code for any new objects or what not you start using later.)

If GameMaker was designed better you wouldn't have to go through all these extra steps, but the thing that causes lag if you loaded everything at once and then deactivated the instances like Spelunky does, is that GM was coded stupid and still uses a lot of processing power for each deactivated instance (I could probably pull better methods for generically disabling instance out of my ass, starting with making it to where the deactivate instance function doesn't iterate through already deactivated instances)!. The only way to get around that would be to code your functions for saving deactivated instances to the RAM yourself and then only load them when you need them, so that they won't use any additional processing power at all.Edit:If you want to try another possible method while I'm gone though, try to see if you can figure out how to use http://gmc.yoyogames.com/index.php?showtopic=390517 to load 2 (probably the best number, since it won't cause much a of speed issues and yet the player shouldn't be able to make it into an unloaded cell) cells in each direction around the player while the game is played.

I've so completely had it with this fantastic mod. Sounds odd, but is sums up my feelings nicely.

I've just died after playing level 1 fruitlessly for 45 minutes. I even managed to get the key and the chest together. I must have seen 50+ of both ropes and boms. And in the end I die from a stupid glitch already found in the original spelunky: grapping an edge with a slidable boulder on top of it, which somehow results in getting under the boulder. This glitch certainly isn't your fault. But after having played the mod for at least three hours, and only reaching the 2nd level twice, I'm now a very frustrated man. My god, this mod is hard. Not only is it hard, but the lack of a sense of progression is horrible.

However, I did got some suggestions for changes. - make (1-time use) compasses more available. It gives you a goal to strive to, which greatly reduces the sense of lack of progression. I've noticed that I actually do not really think a compass is all that great, for it only gives you a really broad idea of the location. Getting there is still quite hard. But having a goal makes it so much more manageable. - the map is amazing. it took some time to figure out where I actually was, but I think that's a good thing. Make these slighly less rare.- the refilling arrow traps got to go. Going in the wrong direction is bad enough. Having to cross those traps while having to make a hard jump and facing a potential fall for some 30 blocks is... ugh.- The invincible vampire is pretty nasty as well. I suggest giving it something like 20 health instead, and making it's KO time a bit shorter. The cape is amazing though, and is a huge gain (as a re climbing gloves and bouncy shoes, they make life quite a bit better).- I get the impression the exit is usually quite high up. As gravity is quite hard to defy, I think it would make this mod quite a bit more playable if you'd place the exit a good bit lower than the start.- ropes seem to be more important than bombs. Perhaps a starting inventory of 8 bombs and 12 ropes would be better?- kissing a gnome is really cheap. A tiny bit too cheap if you ask me.- every maze needs its minotaur(s)...- the 2nd level bat is pretty nasty. I hope it doesn't get any worse in level 3...-on the topic of level 3: I couldn't face three area 1 type levels in a row. These long things could certainly use some diversity. Even just adding some different coloured blocks might help.- Yeti king at 2:10(oh, one more thing: is the gift from the chest+key special in any way?)

I thought I had loads more to add, but I seem to have forgotten. I'll just let the rage drop a bit . perhaps I'll give it a spin again tomorrow.