Jump to content

  • Curse Sites
Become a Premium Member! Help
Latest News Article

Minecraft Transit Authority


  • Please log in to reply
209 replies to this topic

#1

Wervyn
    Wervyn

    Coal Miner

  • Members
  • 112 posts

Posted 18 August 2010 - 03:57 PM

This has been discussed before, and I threw out a proof of concept on how to design a modular minecart transit system, but here's my work in progress for the real deal.

ymKfBkDtvFI

This uses version 2 of my minecart detector loop, it's much more stable (haven't seen it break yet) at the expense of only working in one direction, so the connections have to be made more carefully.  It also oscillates slightly faster, meaning the detection circuit can take a little bit less room. The primary control room is 11x13x3, and I'm optimistic I can fit a second launch and return ramp in that space.

Also featured here is a very nifty trick (if I do say so myself) for detecting the presence of a player in a minecart, without disrupting the momentum of the cart or using too much vertical space. It uses a very short boost to get the cart over the gap in the track where the stone pressure plate has to sit, and works beautifully. There's another trick on the opposite side, which uses the fact that a cart will depress a wooden button when it's cornering around a bend.  Although there should never be a reason for a cart to start traveling the wrong way, this will turn it around by feeding it into the cart return system.

What needs to be finished now, apart from the dispatch rail for the southbound side of the track, is a call-ahead system that sends a signal to the next station up the line to release its cart, whenever a player is riding towards it. That way, the carts will trade places, and the whole system will be ready for the next passenger much more quickly. The real catch with this, and the reason I can't just send a couple of long signal lines back and forth, is that I need the unoccupied cart from that station to not get routed back to its own holding loop.  I'm pretty sure I have a way around this that won't take too much space, though.

On the subject of space, the station footprint right now looks like this:
    [*:1aeherww]Boarding Platform - 15x11x6 (counting the lights in the ceiling)
    [*:1aeherww]Control Room - 15x11x6 (including wiring in the ceiling and floor; directly below the Boarding Platform)
    [*:1aeherww]Access hallways - 5 spaces of padding on each side of the platform, 3 on top
    [*:1aeherww]Connector Track - 18 spaces on both sides of the platform leading out to the next station.
    [*:1aeherww]Total Area - 51x21x15 (Main station takes 15x21x15, each arrival/departure track takes around 18x15x7)
Practically speaking, this means that between each station platform there should be at least 50 blocks worth of space, since each travel track needs a rail booster to keep things moving as well. 50 is a pretty short distance, though, Only about a 15 second walk, so generally you'd place stations more like 100 to 200 blocks apart. Anything within 200 blocks should be close enough to remain loaded.

"Still working on the dismount."
Cynicism is the intellectual cripple's substitute for intelligence.

Register or log in to remove.

#2

Kris18
    Kris18

    Creeper Destroyer

  • Members
  • 5865 posts

Posted 18 August 2010 - 04:03 PM

Only one thing can be said about this:

Orz

#3

Iaoth
    Iaoth

    Carpenter

  • Members
  • 63 posts

Posted 18 August 2010 - 04:19 PM

This is really inspiring.  If the wiki were working right now I would try to tackle understanding the redstone circuits again... cause I have no idea how you did this.
Posted Image
Posted Image

#4

noppa354

Posted 18 August 2010 - 09:47 PM

yeah how did you make it shoot the cart at you when you press the pressure pad?

#5

Maxpm
    Maxpm

    Diamond Miner

  • Members
  • 755 posts
  • Location: Somewhere over the rainbow.

Posted 18 August 2010 - 09:56 PM

Now I'm sad, because I had this exact same Idea that worked on the same principles a while ago, but decided not to do anything with it.

Regardless, good job!  I'm not entirely sure I understand the whole cart return system, but I get the basic idea.
assert("Everything will be okay.");

#6

Cheeseyx
    Cheeseyx

    Diamond Miner

  • Members
  • 736 posts

Posted 18 August 2010 - 10:19 PM

I say, well done. I have an idea as to how the station change could work: A middle cart on a stone pressure pad. Right click teleport to it, activating the pressure pad, sending a cart your way. This could be used within a large city as public transit. An intercity line could be made, using a two-way slope booster, sending a cart back from a dock to replace the one that left the city. This cart would then trigger the cart in the receiving city to go to the intercity dock.

#7

Maxpm
    Maxpm

    Diamond Miner

  • Members
  • 755 posts
  • Location: Somewhere over the rainbow.

Posted 18 August 2010 - 10:25 PM

I think I understand what you're saying there.  That's actually quite brilliant!  With that system, minecarts can actually STOP at stations, rather than slowly roll by.

The problem with that is when multiple carts queue behind each other behind the button, the other stations may be without carts and other riders might become stuck until someone else comes along and wants to ride the cart on the button.  As far as I can figure out, there's no way to fix that.
assert("Everything will be okay.");

#8

Maxpm
    Maxpm

    Diamond Miner

  • Members
  • 755 posts
  • Location: Somewhere over the rainbow.

Posted 19 August 2010 - 01:58 AM

I also just had a thought.  What if the chunk becomes unloaded?  The minecarts will cease to exist and break down the entire system, won't they?
assert("Everything will be okay.");

#9

Wervyn
    Wervyn

    Coal Miner

  • Members
  • 112 posts

Posted 19 August 2010 - 04:40 AM

Cease to exist? They just get unloaded with the chunk is all. Experimental testing seems to suggest that the holding loop will continue to work just fine, since I wandered about 600 blocks away and came back and it was still humming along as I'd left it. This needs repeated testing to be sure, though, I could have just gotten lucky. But if it does work out, the big idea is that carts will never be traveling long stretches without a passenger along the way, the farthest they'll ever travel automatically is from the nearest station towards you.

In other news, the southbound side of the first station is complete, carts can now depart and arrive from both directions.  The wiring and tracklaying is really something, too, once all of this is done I'll definitely be providing a schematic of some sort. I've also added more aesthetics to the surface, so there's a stylish roadside entrance to each of the stations now (or they would be roadside if I bothered to build a road). The downside to this is that the animals can get in; I'll have to see about building a turnstile of some sort.

"No pets allowed."
Cynicism is the intellectual cripple's substitute for intelligence.

#10

urpwnned
  • Location: AZ, USA

Posted 19 August 2010 - 04:44 AM

pretty crazy cool
[simg]http://farm5.static...._696ecc0b2d.jpg[/simg]

Flowzor said:

You play Minecraft with your clothes on? What kind of weirdo are you?

TheZombie said:

Are you swimming in the flowing water? If so, your "lag" may just be you swimming upstream.  [Sheep]

#11

Maxpm
    Maxpm

    Diamond Miner

  • Members
  • 755 posts
  • Location: Somewhere over the rainbow.

Posted 19 August 2010 - 04:44 AM

You could probably just have iron doors connected to buttons.  Or, if you want, you could even have a ticket booth with levers to control all the doors.  You only let someone in once they've paid for the ride.
assert("Everything will be okay.");

#12

prophet19
  • Location: Oshawa-ontario

Posted 19 August 2010 - 05:30 AM

I do have to say. i am impressed, wait no. i am preparing to use a term i dont often.
Completly and utterly ingenius
Posted Image

#13

Ialdbaoloth

Posted 19 August 2010 - 06:13 AM

Wervyn said:

Cease to exist? They just get unloaded with the chunk is all. Experimental testing seems to suggest that the holding loop will continue to work just fine, since I wandered about 600 blocks away and came back and it was still humming along as I'd left it. This needs repeated testing to be sure, though, I could have just gotten lucky. But if it does work out, the big idea is that carts will never be traveling long stretches without a passenger along the way, the farthest they'll ever travel automatically is from the nearest station towards you.

Is the holding loop contained in a single chunk? I would only expect problems if it crossed a chunk boundary. Unfortunately, I don't know of any way to locate them in-game.
for a jallon, louk JALLON

#14

fr0stbyte124
  • Location: (0,64,0)

Posted 22 August 2010 - 07:00 AM

After being inspired Wervyn's transit system, I've set out to make my own.  This one, though, is designed for a multiplayer hub and can hold multiple minecarts.

Posted Image
8 containment loops merged together.  Each loop is a self-contained module, and is only 4 blocks wide at any point, allowing them to fit together nicely.  There are four on either side in this arrangement.
The booster on the front is just to make sure carts can get all the way to the end.

Posted Image
Closeup of the module hookup.  The bottom track connects to the module entrances, and the top track the exits.  When a module is occupied, the entrance switch is reversed, bypassing that module.  This is easily the most convoluted thing I've ever made in minecraft.

Posted Image
Closeup of my occupation detector.  Rather than using timing circuits, I have a secondary cart sit on a pressure plate.  The active cart passes though here exactly twice: once upon entering the idle loop and once while exiting.  Each occupation sensor is tied directly to its respective bypass switch.

Posted Image
Closeup of the idle loop.  A variation of Vagrant0's booster.  Very stable, even without wings.  No idea why it works so well.

Automatic cart collection works great, assuming there is at least 1 sec between carts.  Retrieval is another story.  In order to grab just one minecart at a time, I need an array of flip-flops.  Unfortunately, there is no way to run redstone wires through the modules without it altering all the meticulously arranged tracks it passes by.

The harder I try to get it to get everything to fit, the more trouble pops up.
I think I'll abandon this particular method in favor of a simpler LIFO stack.  However, in order to make this new idea work, I need to find a way to synchronize all the active carts, to avoid collisions.  Any ideas for how I could do that?

#15

Maxpm
    Maxpm

    Diamond Miner

  • Members
  • 755 posts
  • Location: Somewhere over the rainbow.

Posted 22 August 2010 - 05:37 PM

Not sure.  I have, however, made a significantly more simple transit system.

The carts continuously travel the length of the circuit, stopping at each station, just like a real subway system.

Each platform has a wooden button, which serves both to stop the minecart and detect its presence, occupied or not.  When triggered, it redirects a cart in a holding loop adjacent to the platform to serve as the second cart in a booster, thereby propelling the cart to the next station.  The resulting effect is that each minecart stops at every station for a few seconds before speeding onto the next to repeat the process.

It's quite easy to construct, and the built-in booster is enough to propel the cart quite a distance before it rolls to a stop on its own.  The wait between carts also isn't too bad, depending on how close your stations are.  

I have, however, experienced some reliability issues with the booster.  Sometimes I come back to a station to see the holding loop "frozen."  I believe the cause to be animals on the button continuously calling the booster cart, but I'm not certain.

The standard station can also be modified to have seperate inbound and outbound platforms, with a cart always standing by on the outbound track.
assert("Everything will be okay.");

#16

darkensign

Posted 22 August 2010 - 05:47 PM

This is pretty awesome!

But I am competing with Wervyn as I too want to do something like this!  Though my system isn't really for underground use - it's intended to be a large scale transit system for several people - ultimately become a long range commuting system in SMP.

Right now I've got a few depot system for handling anywhere from 5 to 50 (or more) carts, depending on which system I go for - each has its strengths and its flaws.  One is quite similar to fr0st's, but the carts remain stationary and rely on a drive cart to pull them to the platform for a passenger to use.  However, as he noted, worming in all the required redstone circuitry AND a drive cart system would be a total nightmare so I doubt I'd go down this route - maybe for very small stations.

Now, here's why I don't like holding loops.

This holding system though doesn't rely on an infinite loop like Wervyn's video.  It takes advantages of redstone, sensors, logic gates and various types of boosters etc but holding loops have 2 main flaws that I've been trying to work around.

1) If a holding loop is left idle for too long, the program variable holding its speed will overflow, resetting it to zero.  This means the simplest holding loops are doomed to fail should the system be left alone for too long.  This can be overcome, however and still won't take up too much space.

2) This one will really get on your nerves before long.  Any system, no matter how reliable will fail at some point.  All we can do is try to work with a system that is reliable as possible until we find a better option.  Now, the critical problem with a holding loop is that while reliable, they do fail.  Which means, even ignoring the variable overflow issue, given enough time the system will fail, whether people are using it or not.

So I came to the conclusion that the best holding system is one when not in use, will idle in some sort of rest position.

I came up with several ideas.  The simplest and smallest is a "splash pool" concept.  Here's a very basic version that shows how it works.

DnCSFMR85IE

The beauty of this system is that you can dump something like 5-10 carts in that one tiny pool and it'll handle them all without issue.  And yes, you guessed it - this is the basis of my favoured train depot system.

As for a holding system?  Well, last night I had a flash of inspiration and came up with this.

jtTLYSPkLYg

Extremely reliable and best of all: will fidget awkwardly in that idle position forever thanks to the game mechanics.

Now to just try and get a proper working system together!
SPLODE!  "In the last 24 hours, 21933 people registered, and 11337 people bought the game."

#17

Maxpm
    Maxpm

    Diamond Miner

  • Members
  • 755 posts
  • Location: Somewhere over the rainbow.

Posted 22 August 2010 - 06:01 PM

That splash pool concept is quite brilliant.  Do you mind if I incorperate it into the next iteration of my system?
assert("Everything will be okay.");

#18

darkensign

Posted 22 August 2010 - 06:04 PM

Yeah, I know.  I was just being a dunce and forgot.

Thanks, anyway.
SPLODE!  "In the last 24 hours, 21933 people registered, and 11337 people bought the game."

#19

darkensign

Posted 22 August 2010 - 06:35 PM

Maxpm said:

That splash pool concept is quite brilliant.  Do you mind if I incorperate it into the next iteration of my system?

Be my guest!
SPLODE!  "In the last 24 hours, 21933 people registered, and 11337 people bought the game."

#20

godhand1942
  • Location: Your mom

Posted 22 August 2010 - 06:51 PM

i was thinking. what if you combined a mob spawner with the splash pool concept. the mob spawner would spawn a pig that would walk over pressur e pad releasing the minecart. it would make for a regular release of minecarts that way making the system autonomous
Posted Image