[INACTIVE][TP/FUN] NetherGate v0.56 - Just Like Single Player! [803]

Discussion in 'Inactive/Unsupported Plugins' started by NathanWolf, Feb 4, 2011.

  1. Offline

    NathanWolf

    NetherGate - A plugin that uses multi-world to create a completely automatic Nether experience.

    If you're using Essnetials, go no further.

    Essentials breaks NetherGate in strange and frustrating ways, I'm not going to support it anymore. I'll try and get this resolved by NG beta, at which point I'll remove this message.

    [​IMG]


    Use
    To use NetherGate, drop the required jars in your plugins folder.

    Then you can create and light a portal to travel to the nether!

    Downloads
    Grab elBukkit.zip to get all of my plugins- take out the ones you don't want.

    For more details on NetherGate, or for individual jar downloads, see the NetherGate entry on bukkit's wiki.

    Tip Jar
    If you really love my stuff, and you're feeling generous, I'd more than appreciate a donation.

    Go here if you're interested!

    Changelog
    View changelog on github
     
  2. Offline

    Filip Weiss

    seems cool, try it now.
     
  3. Offline

    JoeMaximum

    There would be also that ServerPort thing.
    You make 1 server a normal server with a gate to another server.
    The other server is a hell server :) that would be nice too.

    But still nice idea to recreate one in the current world.
     
  4. Offline

    Riot

    Grats on this, It might not seem EXTACTLY like the nether, but the lines of code needed to do this ouch. Nice work!
     
  5. Offline

    Raphfrk

    I think you should coat the walls with netherrack, and then have a backing of lava and then the bedrock.
     
  6. Offline

    Throk

    Another great plugin NathanWolf. You realy know what players need. We will use it for sure, but please make it more... or maybe less flat :D. It will be great if it will look more like official nether. (I know... I know.. it's still early version but I realy want to use it! :D)

    Good idea!
     
  7. Offline

    Eddiekins

    I may have jizzed in my pants when I saw this.
    But in the real Nether, goldstone doesn't spawn randomly all over the place - it sorta confines to the ceiling... Why does it on this game? I'm just intrigued as to why.
     
  8. Offline

    NathanWolf

    Wow, thanks for all the feedback, everyone!!! I forgot to click "Watch this Thread", so I actually had no idea!

    I have been hard at work on NetherGate, and was optimistic that I'd actually have it officially released this weekeend. Raphfrk clued me in to the fact that portals will actually get created automatically in multi-player, the same way as in single-player (using a flint+steel)...

    This was going to save me a tremendous amount of time! I really only have to detect when a player moves through a portal block- when they do, I queue up the portal on the other side for creation/update, and then tp the player. Once the block loads, I see if there's a matching portal structure where there should be- if not, I build one.

    Really simple!

    So, I decided to geek out on the Nether creation code a bit, it was starting to look pretty neat. However...

    I just updated the main post- I think this is all irrelevant now!

    It sounds like soon we may be able to create an actual (second) Nether world on the same server, and then (presumably) portal back and forth using the built-in portal system. This is, like, the best of both worlds- like NetherGate meets ServerPort, but built into Bukkit.

    I'll be so happy if it works out that way- and I'll happily declare NetherGate dead.

    If, for whatever reason, there is continued interest I'd have no problem finishing it up, either- it was/is a fun little project. I just feel like now I can get back to work on Spells instead, which is where people really want me :)
    --- merged: Feb 6, 2011 5:26 AM ---
    This is weird- did you quote a post that got deleted? Confusing! @Killie01- it is in Java, but the code for NetherGate itself is actually minimal, it makes a lot of use of an underlying framework, Persistence.

    Anyway, yah, the photo up there is definitely a rough draft :)

    Actually, the code is fairly clean thanks to the underlying framework. Each Nether starts with an area, a BoundingBox (or cuboid, whatever you want to call it). Then I can do things like this:

    Code:
            // Create bedrock box
            BlockFace[] box = {BlockFace.NORTH, BlockFace.SOUTH, BlockFace.EAST, BlockFace.WEST, BlockFace.DOWN, BlockFace.UP};
            for (BlockFace face : box)
            {
                BoundingBox faceArea = netherArea.getFace(face, bedrockPadding, 1);
                faceArea.fill(world, Material.BEDROCK, destructable);
            }
    
    That's really as simple as it looks, that's the code to create the entire bedrock box. In theory, you could then just fill it with air and be done. (The rest is, as they say where I'm from, lagniappe!)

    BoundingBox.getFace take a face, a thickness, and an offset- and returns you a new BoundingBox that represents that "face" of the first bounding box. So, basically, if you specify a thickness of 1 and an offset of 0, if gives you the wall of that box. In this case, I ask for an offset of 1 because I want an outer wall.

    You can then using BoundingBox.fill to fill it with whatever you want.

    The new code to generate the floor and ceiling is more complex, it uses a heightmap to try to maintain some semblance of consistency, but I never really got it working right (yet?)

    If anyone's interested, all of my source code is always available in my github repo. Enjoy! :)
    --- merged: Feb 6, 2011 5:32 AM ---
    Great minds... :) The new code has lava-covered walls, with bedrock behind. That way you know when you're near the edge of the Nether, and also you are... persuaded to not try to break out.

    The new code starts with a box of bedrock, then makes the lava walls- then random Netherrack floor and ceiling (heightmap-based). When the ceiling drops below a certain height (within 3 or 4 blocks of its max "depth") I make it lightstone, in an attempt to replicate the random blobs you see in the nether.

    Then, there's the pooling code to "catch" lava falls (I don't delete any lava blocks I find).

    Anyway, it's all very cool- but it was never gonna be as cool as Notch's, so if I can use that without having to run two servers, I'm done playing! :)
    --- merged: Feb 6, 2011 5:33 AM ---
    Man, you guys are so great! Gosh!

    Well, like I said, I'll definitely finish it up if there's in interest, I have to say I was getting pretty "into" the Nether creation code! But, really, I think Dinnerbone is gonna take care of it all :) I've asked him if he needs/wants help with any part of it, so we'll see if I can get my 2c in!
    --- merged: Feb 6, 2011 5:40 AM ---
    Ha! :) Glad you like the idea!

    I actually wanted to share that the floating lightstone thing was a "happy accident". I copy+pasted some code from Spells that uses a default list of materials not to destroy- since the spell was meant for mining, it left all the ore blocks behind :)

    I kind of liked the insane look of all these random clusters of blocks floating- and I thought it would look neat if they were all lightstone.

    So, that's how that happened... I wasn't planning on keeping it that way, I just thought it was a fun touch because without it, it was basically just a big empty box!

    While I'm sharing funny stories (I feel like I'm at a NetherGate wake here!), the lava pooling was also... well, whatever the opposite of a happy accident is!

    The first time I tested NetherGate, I had it TP me into the Nether area when it was done creating it. OMG, it was completely insane- it became a game of "run like mad from the ridiculous falling lava that is quickly filling up the giant impenetrable box you just TP'd yourself into". Needless to say, I died pretty quick :)

    Again, the lava was the same deal- the mining spells aren't set up to destroy lava, because I like the entropic effects this has when using them- so it left all of the lava blocks behind. Which then fell, and pooled, and... well, yeah.

    It occurred to me that I liked all the dripping lava, and the inherent randomness of it, and if I just created a little hole underneath it would probably pool up safely, for the most part.

    So, anyway... yeah :) Time to go seriously re-arrange my priority list!
    --- merged: Feb 6, 2011 1:28 PM ---
    News! News! News!

    I just had a great conversation with Dinnerbone regarding multiworld support, and it actually sounds like NetherGate could really play very nicely with it.

    The core functionality is just multi-world support, so they're not really adding any portalling functionality to core Bukkit... enter NetherGate!

    See the OP update for more details....
     
  9. Offline

    Filip Weiss

    give me an download-link .. i don't wanna build it myself :D
     
  10. Offline

    NathanWolf

    Ha! :)

    Well, the problem is I need to get Persistence stable first. (NetherGate relies on it, and I jumped the gun a bit using a very pre-beta API!)

    Also, the portals don't actually work yet- so really, it's a terraforming plugin at the moment :)

    I'm hoping to have something usable soon, but I haven't gotten much time weekend, unfortunately.
    --- merged: Feb 7, 2011 3:04 AM ---
    Dinnerbone just informed me that multiworld support is in! There was a branch for it previously, so I assume he means, like, in, in.

    I've got a lot of catchup to do now!

    Multi-world NetherGate hopefully coming soon... This means the terraforming code probably won't get much love for a while, I didn't think he'd be so quick!
     
  11. Offline

    Kane

  12. Offline

    NathanWolf

    I'll respond there! I think may cover most of it, definitely some of it.
    --- merged: Feb 7, 2011 3:51 AM ---
    Briefly, while that is my main goal, the system will actually be pretty flexible.

    Really, the main goal is not necessarily to exactly replicate the single-player experience, just the parts of it that I like.

    And those are that it's an entirely in-game mechanic (no console commands, signs, or buttons), and that it can be used as a fast-travel mechanism.

    As long as NetherGate stays simple, and accomplishes those two main goals, I have no problem extending its functionality in the future.
     
  13. Offline

    Kane

  14. Offline

    Riot

    Haha. My signature is a quote. Sorry.
     
  15. Offline

    hansudo

    So is there yet an update? :D I really want to use a Portal to a Netherworld. ;) Or Other worlds or other points on the server.
     
  16. Offline

    NathanWolf

    LOLz- ok, well, it confused this old man ;)
    --- merged: Feb 7, 2011 3:38 PM ---
    Unfortunately, I got a bit mired in technical details over the weekend, and didn't have a whole lot of time.

    If I can, I'll just shove out something useable later today- it may not auto-create the portals on the other end yet, but if you can wait for that, I can probably get you to the nether with zero configuration :)
     
  17. Offline

    hansudo

    I really do not need a "auto-create the portals"-mode. I want to build them myself out of obsidian or whatever. What would make me really happy is this: Portals to a real-netherworld, Portal to another normal world and Portal to portal in the same world. Would be cool if Portals can be used with game mechanics only. Built by hand with resources (activation can go by command or like you want). And aktivation/porting while going throught it. :)
    Is this realistic? :D
     
  18. Offline

    NathanWolf

    That's exactly the idea with NetherGate! That's the kind of experience I'm trying to make, totally in-game.

    The "auto creation" I spoke of is on the other side- that's the way single-player works by default. That way, you can get back (in case you forgot to bring some obsidian with you!)

    But for now, I'm hoping to release soon without that feature- you can use /nether kit to give yourself some obsidian to get home :)
    --- merged: Feb 7, 2011 6:15 PM ---
    I have arrived!!!
    [​IMG]
    --- merged: Feb 7, 2011 6:18 PM ---
    I'm sure that screenshot isn't too exciting to anyone running a multi-world server, but I think it's crazy-cool!

    The TP was just as instant as an in-world TP- it's so awesome.

    There are still some kinks to work out- sometimes I don't quite "make it over"- a couple of us are looking at some strange console messages we get when switching worlds.

    Also, disclaimer- the portalling tech is not here yet! Should be fairly easy to get going, I'm very nearly there...

    I added a few helpful admin commands that will probably stay around, but for now that's how I got here "/nether create world testing" and then "/go" (which takes you to the next world in the chain.

    You could also do "create world testing2 normal" to get a non-nether world.

    In theory, you can make as many as you want- I'm not sure what the engine performance ramifications are for doing that, though.

    If anyone is feeling really brave, and is really itching to try this out, I can put a zip file up. But I'm going to wait until it's much more stable and has some real functionality before I put an "official" release out there.

    Stay tuned!
     
  19. Offline

    hansudo

    I still can wait a bit. ;) But sounds great! What are we able to do in your first release? Will the portals work like the single-player ones? Or are you planning different?
     
  20. Offline

    Greedish

    Nathan, just letting you know your plugins are great and you're probably my favorite plugin dev. Keep on trucking!
     
  21. Offline

    Spooner

    Sounds absolutely awesome, can't wait, what would it take to do the red haze though? I know Dinnerbone said he couldn't get it but any clue as to what causes the lack of red haze?
     
  22. Offline

    Afforess

    It's a client issue. Nothing any server mod can fix.
     
  23. Offline

    Spooner

    Thank you very much, especially for the timely answer. :D
     
  24. Offline

    NathanWolf

    Thanks so much!!
    --- merged: Feb 7, 2011 8:30 PM ---
    It should be exactly like single-player, I'm super happy to say! No one, not even an admin, will ever have to issue a single console command- just drop in the plugin and go.

    There will be some admin commands for setting up custom world linkages, but you won't have to touch it if you're fine with daisy-chaining. I may do something interesting with the world scales when I set them up- maybe each one will be "bigger" than the previous one, I don't know.

    So, here's the way it's going to work, from a technical standpoint:
    • The first time a player ever enters a portal, I'll create a Nether world (unless ad admin has already set up at least one additional world)
    • This default second world will be named "nether" and be a hellworld. I'll probably scale it by 1/16 by default- I'm going to play with it, though.
    • Portals from one world will automatically portal to the other world, creating a portal structure on the other end if one does not already exist.
    • Portal locations (when creating new ones automatically) will be determined based on the same sort of scaling algorithm used in single player, using the relative scale ratios of each world.
    I also do still plan on supporting the original functionality of NetherGate- creating secondary in-world "sub-worlds". It will actually fit in really nicely, allowing you to create some really cool and complex fast travel hub worlds by linking a bunch of PortalAreas within a single world together.

    That functionality is backburned until I've got the multi-world portalling working, though- since I'm way super excited about it :)
    --- merged: Feb 7, 2011 8:36 PM ---
    Thanks! I hadn't even noticed yet... I was actually just super happy to see ghasts flying around :)

    Agreed, amazingly quick response- it's awesome how fast some devs get to explore this code... I love this community! [sheep]
     
  25. Offline

    OkinKun

    heh, I can't wait to have this on my server. Sounds like it's gonna turn out perfect.
     
  26. Offline

    Spooner

    I know I'm antsy, and so are my players, but how's it going? Don't feel pressured, just curious and excited. :D
     
  27. Offline

    ursa_arcadius


    Will there be a way to create more worlds that are linked by specific portals? For example

    1 portal that links world(0) <--> world(1)
    multiple portals that link world(0) <-->world(2)


    I would also like the be able to restrict who can create a portal. Some people on my server already created normal portals that right now do nothing, but I would like to make sure that they continue to do nothing and only the official ones will actually transport you.

    Let me know if these ideas seem to fit in with your development plans.
     
  28. Offline

    NathanWolf

    Going well! I've been having a lot of "core" issues setting up all the data models to hold everything.... but otherwise I think I'm getting very close!
    --- merged: Feb 8, 2011 3:20 AM ---
    Yes, definitely! At first, you'd have to edit the data to do this- which actually isn't that hard. I'm going to have a nice suite of console commands eventually for managing portals and portal areas.

    This one, not as much- but it is something I'm hoping to do eventually.

    I don't really want to affect the default functionality - so it might still create a visible portal, but I could make it non-functional until an admin uses a command on it, or something.
    --- merged: Feb 8, 2011 4:37 AM ---
    RELEASED!!!

    Can you tell I'm psyched?

    Ok, it's very wet behind the ears, but I've been testing for a bit and I think it's working well! I know some of you are very anxious, so I wanted to make a release tonight. Should be more to come, hopefully soon.

    If you are able to, you may want to test on a private server. But, really, it should all be really safe- as safe as the built-in bukkit multi-world is inherently, anyway, I'm not doing anything "crazy" :)

    Let me know what you all think!
    --- merged: Feb 8, 2011 4:42 AM ---
    Yikes- if you're a Spells user, be careful using ascend in the nether! I think there's a bug I need to fix, it tries to pop you above the ceiling if there's "nothing" above you...
    --- merged: Feb 8, 2011 4:43 AM ---
    One crazy thing that's different here than single-player is that when you die, you're automatically returned to the "safety" of he home world.

    I'd be interested to hear people's thoughts- I kind of like each world being its own place with its own spawn.
     
  29. Offline

    Spooner

    AAAAAAAwwwwwwwsome, gonna test it out asap and report back any issues.
     
  30. Offline

    NathanWolf

    Thanks!
    --- merged: Feb 8, 2011 5:33 AM ---
    I'm testing now on my public server- woooo! Using bucket#267, it all seems to work great so far.

    I think I brought over the Nether map that went with my server's map- it's all originally from when I first started Minecraft single-player... that world has been with me for a long time, and it's been missing it's Nether!

    Sadly, since I don't have the location mapping algorithm working yet, and dynmap isn't working either, I have no idea if it is actually my old nether- I'm pretty much totally lost in there :)
     

Share This Page