<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:07:52] ⇦
Quits: xhhux (~xhhux@ip72-194-216-202.sb.sd.cox.net) (Quit: Textual
IRC Client: www.textualapp.com)
L2[00:11:15] <Amanda> %give MichiBot a hit
contract for a single, specific, speck of dust
L3[00:11:15] *
MichiBot accepts the hit contract for a single, specific, speck of
dust and adds it to her inventory
L4[00:11:31] ⇦
Quits: Hawk777 (~Hawk777@2607:c000:8293:d900:fa6c:74a4:2f0a:4ea3)
(Ping timeout: 190 seconds)
L5[00:41:05] ⇨
Joins: Hawk777
(~Hawk777@2607:c000:8293:d900:fa6c:74a4:2f0a:4ea3)
L6[00:46:05] <Amanda> %choose iced creams or
be good
L7[00:46:05] <MichiBot> Amanda: be good'os,
for a complete breakfast!
L8[00:46:15] <Amanda> But it's dinner
time
L9[00:46:22] <Amanda> So iced creams I
guess
L10[00:47:49] <CompanionCube>
%tonkout
L11[00:47:50] <MichiBot> Woooo!
CompanionCube! You beat your own previous record of 2 hours, 14
minutes and 37 seconds (By 14 minutes and 40 seconds)! I hope
you're happy!
L12[00:47:51] <MichiBot> CompanionCube has
tonked out! Tonk has been reset! They gained 0.002 tonk points!
plus 0.002 bonus points for consecutive hours! Current score:
0.37244, Position #2 Need 0.03342 more points to pass
Forecaster!
L13[00:50:33] <Amanda> %give MichiBot the
law book of the jungle
L14[00:50:34] *
MichiBot accepts the law book of the jungle and adds it to her
inventory
L15[00:50:50] <Amanda> %choose waves; em or
pressure
L16[00:50:50] <MichiBot> Amanda: pressure
waves
L17[01:06:51] ⇦
Quits: Vexatos (~Vexatos@pd9e21222.dip0.t-ipconnect.de) (Quit:
Insert quantum chemistry joke here)
L18[01:08:42] *
Amanda offers elfi a cat-ears headset to listen to her waves with
her
L19[01:09:24]
<ࡀࡀ>
Whee
L20[01:37:43] ⇨
Joins: ti85nab (~ti85nab@ns3036085.ip-193-70-81.eu)
L21[01:37:44] ⇦
Quits: ti85nab (~ti85nab@ns3036085.ip-193-70-81.eu) (Client
Quit)
L22[01:52:53] *
Amanda yawns a big toofy yawn, lays her head on Elfi, deciding to
take a zzzzmew early, maybe she can go back into the full dive
universe, where she can buy a scanner which looks like a
dilapidated truck half-buried in concrete, and scan for the angels
who are realigning the Sol system before it's to late and she has
to restart the universe again
L23[01:53:20] <Amanda> Night girls
L24[02:38:16] ⇨
Joins: lily (~lily@122-56-210-176.mobile.spark.co.nz)
L25[02:38:37] <lily> Izaya: permission to
port Minitel to ComputerCraft, while OC is stuck in 1.12
limbo?
L26[02:38:56] <Izaya> go for it
L27[02:39:07] <lily> thanks
L28[02:39:07] <Izaya> license says you can,
but also, hell yeah
L30[02:39:19] <lily> I always like to ask
for permission
L31[02:39:22] <lily> license or not
L32[02:39:30] <Izaya> a good policy
L33[02:39:47] <lily> because, sure, the
license can permit it but the developer might not want you to do
something
L34[02:39:59] <Izaya> might be something
else in the works or something
L36[02:40:12] <Izaya> if you don't ask you
wouldn't know
L37[02:40:18] <lily> ah, fair
L38[02:40:18] <Izaya> (there isn't in this
case, but-)
L39[02:40:28] <lily> there is now :P
L40[02:40:40] <Izaya> would be interesting
to see OC and CC interoperate over minitel though
L41[02:40:52] <lily> they *can* send data
together iirc
L42[02:40:55] <lily> using adapters
L43[02:41:03] <Izaya> yeah you can hook up
CC modems to OC computers too IIRC
L44[02:41:18] <lily> this is 1.19.3 though,
so no OC unfortunately
L45[02:41:21] <Izaya> might be interesting
to use CC computers as cheap terminals or something
L46[02:41:26] <lily> not sure if the name
SwitchCraft rings any bells?
L47[02:41:35] <lily> this is the third
iteration
L48[02:41:45] <Izaya> Not off the top of my
head
L49[02:42:02] <lily> it's a server focused
on computers
L50[02:42:06] <lily> SC2 had OC (was
1.12)
L51[02:42:15] <lily> SC3 is 1.19.3 and they
reimplemented 3D printers for CC
L52[02:42:24] <lily> and Plethora too
L53[02:43:54] <Izaya> sounds pretty
neat
L54[02:47:03] <lily> it is
L56[02:54:20] <Izaya> hmm a shame I'm not
very into CC; maybe eventually.
L57[02:56:19] <lily> yeah, OC supreme
L58[02:56:27] <lily> however, it is better
than nothing
L59[03:21:47]
<Michiyo>
%tonk
L60[03:21:47] <MichiBot> Eureka! Michiyo!
You beat CompanionCube's previous record of <0 (By 2 hours, 33
minutes and 57 seconds)! I hope you're happy!
L61[03:21:48] <MichiBot> Michiyo's new
record is 2 hours, 33 minutes and 57 seconds! Michiyo also gained
0.00257 tonk points for stealing the tonk. Position #3. Need
0.06019 more points to pass CompanionCube!
L62[04:10:39] ⇦
Quits: lily (~lily@122-56-210-176.mobile.spark.co.nz) (Ping
timeout: 186 seconds)
L63[04:15:28] ⇨
Joins: Josh_ (~Josh@2600:8806:9081:2030::29d)
L64[04:17:17] ⇦
Parts: Josh_ (~Josh@2600:8806:9081:2030::29d) ())
L65[04:18:47] ⇨
Joins: cat2002 (~Josh@2600:8806:9081:2030::29d)
L66[04:55:14]
<Forecaster> %sip
L67[04:55:15] <MichiBot> You drink a
diluted bombastium potion (New!). Forecaster suddenly forgets a
random piece of trivia.
L68[05:20:09] ⇦
Quits: cat2002 (~Josh@2600:8806:9081:2030::29d) (Read error:
Connection reset by peer)
L69[06:03:21]
<Vaur>
%tonk
L70[06:03:21] <MichiBot> Eureka! Vaur! You
beat Michiyo's previous record of 2 hours, 33 minutes and 57
seconds (By 7 minutes and 36 seconds)! I hope you're happy!
L71[06:03:22] <MichiBot> Vaur's new record
is 2 hours, 41 minutes and 33 seconds! Vaur also gained 0.00039
(0.00013 x 3) tonk points for stealing the tonk. Position #4. Need
0.14141 more points to pass Michiyo!
L72[06:28:32] ⇦
Quits: Aino (~nia@ayame.servers.aura.moe) (Ping timeout: 190
seconds)
L73[06:29:47] ⇨
Joins: Nia (~nia@ayame.servers.aura.moe)
L74[06:33:56]
<PwnagePineapple> Well my TIS-3D and
Create integration addon is coming along nicely. Got the content
observer working, and stressometer implemented
L75[06:34:16]
<PwnagePineapple> Next on the list is
testing the stressometer and then doing the speedometer
L77[08:16:51]
<noncog>
Feel free to build on all of this. Many of these details change
with implementation. I hope someone finds this to be an interesting
design problem to play with.
L78[08:19:07]
<Forecaster> This is very easy with
Railcraft + OC
L79[08:19:12] <Hawk777> Gonna get a lot of
different answers depending on lots of constraints you haven’t
explained. For example, is this vanilla Minecraft, or are there
mods involved (obviously, given the channel, OC)?
L80[08:19:14]
<noncog> If
you look up anything related to mine cart destination selection
you’ll find that people choose their destination at the start and
ride separate lines to it. The challenge here is to make universal
lines that automatically switch to send the player to their
selected destination.
L81[08:19:23]
<noncog>
Stipulation my bad no railcraft allowed.
L82[08:19:34] <Hawk777> I actually did
something similar in vanilla.
L83[08:19:54] <Hawk777> For a small
network.
L84[08:20:11]
<Forecaster> well I'm not gonna do it,
mostly because I'm busy
L85[08:20:11]
<noncog>
Mods can be involved but no railcraft. Many packs and servers I
would see using this on don’t have that.
L86[08:21:34] <Hawk777> When you depart,
your destination is encoded as a binary number and sent along
redstone wires. There are periodic detector rails which pass the
value from one track section to the next, allowing carts to follow
each other on the same line to different destinations with some
spacing. At a junction, the number is unpacked and switches are set
accordingly, as well as a new number calculated to send to the next
junction. I didn’t bother
L87[08:21:34] <Hawk777> ng junctions to 3×3
though, and I use a single track in both directions, not two
tracks.
L88[08:22:07]
<noncog>
>Forecaster: well I'm not gonna do it, mostly because I'm
busy
L89[08:22:07]
<noncog>
Lol same but I figured it’s a fun challenge even just for
ideas
L90[08:22:48] <Hawk777> The junctions
themselves look reasonably tidy (as making the track layout tidy
was something I wanted), but each one has quite a large circuitry
vault underneath it.
L91[08:23:13]
<noncog>
>Hawk777: When you depart, your destination is encoded as a
binary number and sent …
L92[08:23:13]
<noncog>
Part of the challenge of the above that I should have specified too
is that it should be capable of working over huge distances.
L93[08:23:20] <Hawk777> There is no
automatic route calculation, either; all the routes are
hardcoded.
L94[08:23:49] <Hawk777> Oh, this *DOES*
work over huge distances. See the part where “There are periodic
detector rails which pass the value from one track section to the
next”. That means no single signal needs to travel a long way;
instead, the destination information travels along with the player,
section by section.
L95[08:24:08] <Hawk777> You never need an
entire track to be loaded at once, because the number travels with
you.
L96[08:24:20] <Hawk777> Of course that only
works for carts occupied by players, not for unattended empty or
chest carts.
L97[08:24:55]
<noncog> Oh
okay, how many of these wires would need to be used? And would it
support duplex communications?
L98[08:25:09] <Hawk777> log_2 of the number
of destinations.
L99[08:25:16] <Hawk777> Double that for
bidirectional travel.
L100[08:25:34] <Hawk777> Just have
separate wires for the purpose.
L101[08:26:33] <Hawk777> If you have two
clusters with a long track between them, you can reduce the wiring
under the long track because you know, if you’re travelling along
that long track, you’re obviously not going to a destination behind
you.
L102[08:28:33] <Hawk777> Alternatively, if
your stations are mostly along a line, you can reduce wiring by a
similar argument, e.g. if you depart a station northbound, you
don’t need enough wiring to hold ID numbers for all the stations
south of you.
L103[08:29:37]
<noncog>
Ideally it shouldn’t have wires but that is a valid solution. I
didn’t really define a lot of constraints well because I wasn’t
thinking and the discord message size was maxed. The main thing
here is the idea of universal rails and automatic destination
switching and the communication for that between all of these nodes
to be handled automatically over huge distances with possible many
intersections. In my dream version there is no wire. Just
L104[08:29:37]
<noncog>
rails, smart intersections and smart stations. It just works like
magic. Where the user chooses a place and goes. And ideally users
should be able to hook into this system and have their station
automatically become a new consideration in the routing without
much knowledge about how it works.
L105[08:30:16]
<noncog>
And it should support multiple users traveling the same lines at
the same time in all directions. Which is where the whole dumb
tracks but smart intersection thing comes from.
L106[08:32:08]
<noncog> I
imagine that with wires there would be communications issues.
Especially considering a messy network of intersections and users
sending signals across the same wires. Which would require greater
and greater number of wires and what not to separate if not
developing some communication protocol or better method of
representation idk
L107[08:33:17]
<noncog>
Another issue is dead carts on the track. I should have stipulated
that the idea behind this whole thing is to be as robust as
possible but as simple as possible for the user leading it to be
ultimately hands free.
L108[08:33:53]
<noncog>
Which is why I figured open computers would be the dependent mod in
question. And you guys seem like you like a challenge lol
L109[08:34:00] <Hawk777> Ah. All easy with
OC of course. The conceptually easiest option is probably a central
control computer that knows the topology of the entire network, and
other computers (at the stations and junctions) that just act as
I/O devices. Communication can be done with linked cards, so wiring
over distance is not needed. Each time a player departs a station,
they choose their destination on a computer, which is sent to the
central controller.
L110[08:34:00] <Hawk777> t has to do is
remember the order in which carts are in each track section and
which destination each one has. A junction computer can be told
where to route each cart as it approaches, and reports back once
the cart has passed the junction, so the central controller then
knows to adjust the junction for following traffic. Automatic
routing is easy; once the central controller knows the topology
(e.g. when you build a new station, you
L111[08:34:00] <Hawk777> ell it how it’s
hooked onto an existing junction), it can just run a graph search
(e.g. Dijkstra) to figure out how to route carts.
L112[08:34:31] ⇦
Quits: Amanda (~m-yt727s@2601:46:c601:ef1:66f7:ffa3:4a93:a0d4)
(Ping timeout: 190 seconds)
L113[08:35:00]
⇨ Joins: Amanda
(~m-yt727s@2601:46:c601:ef1:b371:c4da:1ae1:5f42)
L114[08:36:02] <Hawk777> Dead carts might
not be a huge problem; if your boosters are close enough together,
even an empty cart should keep moving. If the chunk unloads because
the rider logs out, then the cart will stop moving, but I think it
will start up again when the next player comes up behind it, at
which point the routing logic still works, no?
L115[08:38:25]
<noncog>
>Hawk777: t has to do is remember the order in which carts are
in each track sectio…
L116[08:38:25]
<noncog>
Yeah I like this approach, it’s basically what I envision. Many
parts are simple or obvious implementation like doing shortest path
calculation but all the details of this would be the implementation
challenge. For this part, why go with remembering the ordering of
carts in each track? Primarily to avoid having a unique identifier
for the cart somehow? So that we can just use ordering and updating
of position to “know” rather than explicitly
L117[08:38:26]
<noncog>
identify?
L118[08:38:59] <Hawk777> Well, it’s
because actual cart identities don’t accomplish anything. The only
thing the system cares about regarding any particular cart is its
destination.
L119[08:39:17]
<noncog>
I’m not familiar with all of OC capabilities but can’t it get the
UUID of the player?
L120[08:39:45] <Hawk777> The username of
the player touching the screen, yes. The username of the player
shooting past in a minecart. I don’t think so?
L121[08:40:58]
<noncog>
Yeah I don’t know either that’s more of the unknown details that I
figured could be enlightened by the community, just like how you
showed you don’t need networking since the cards can be linked. I
forgot that.
L122[08:41:56] <Hawk777> If the server in
question has Computronics in addition to OC, it looks like you
might be able to use a radar to find player names as they pass
by.
L123[08:43:08] <Hawk777> Computronics also
has a “digital detector” which apparently generates a Lua event
when a minecart passes over it; unfortunately it appears to be
undocumented so I have no idea what information that event
contains.
L124[08:44:57]
<noncog>
Okay cool. So assuming we can detect a unique attribute identify a
player as they approach, that should eliminate much if it all of
the switch doing any form of tracking/updating or in general of
state duplication, and it should just enable a central computer to
maintain a routing table and each switch accesses it and acts
accordingly given some player at it?
L125[08:45:21] <Hawk777> *Maybe* the OC
motion detector? Its related signal <
https://ocdoc.cil.li/component:signals#motion_sensor_block>
has an “entity name” field, but it’s marked optional and I don’t
know if that means the actual player name, or if it would just be
something like “player” (e.g. to distinguish from “itemstack” or
whatever).
L126[08:47:12] <Hawk777> Sure, if you can
identify a player, the problem becomes quite easy. When a player
launches, the central computer can just tell each junction along
the route “when player X approaches, send them out exit direction
Y”, and then the central computer no longer needs to be involved,
the junctions can just follow orders to make the entire trip
work.
L127[08:47:24] <Hawk777> No state data
needs to be maintained at all.
L128[08:49:17]
<noncog>
Well somewhat, this issue with too simplistic of an implementation
like an if command is that will be put onto that switches stack but
then what if the player never makes it there and it remains there
and the next time they ride it and want to go elsewhere but
executed the old command for that player. There needs to be a
method to clear it. I know that’s all semantics and anyone would
catch that implementing it but just saying SOME state needs
L129[08:49:17]
<noncog>
maintained or at least reset.
L130[08:49:17] ⇦
Quits: Hawk777 (~Hawk777@2607:c000:8293:d900:fa6c:74a4:2f0a:4ea3)
(Quit: Leaving.)
L131[08:50:54]
⇨ Joins: Hawk777
(~Hawk777@2607:c000:8293:d900:9c1f:3547:388a:5925)
L132[08:51:37] <Hawk777> No no no, here’s
the thing.
L133[08:52:19] <Hawk777> On any given
route, from any starting point to any destination, a player will
only ever traverse a given junction at most once—if you ever pass
through a junction twice on the same trip, you’re doing something
wrong, and you must have a loop in your route.
L134[08:52:36] <Hawk777> So that means
every junction needs to hold just one output direction per player,
which is replaced whenever the player starts a trip.
L135[08:53:00] <Hawk777> There is no
stack, just a table mapping from player name to exit
direction.
L136[08:55:34]
<noncog>
Yeah so you’re updating that table for each switch involved for
each players ride every time. In contrast to the above if state is
managed centrally it can be more easily reset without doing it for
each intersection. And there would be no odd previous state issues
or something if for some reason the value was never reset like if
the player never made it or the server restarted. Then the switches
all have the same job/program and never do
L137[08:55:34]
<noncog>
anything different they just look up for a given player they see
which direction to send them in. And shouldn’t need to reset any
info or report anything or take any commands.
L138[08:55:57] <Hawk777> But why do you
*care* if the state is not reset, or if the player never makes it
there?
L139[08:56:13] <Hawk777> If the player
doesn’t make it there on a given trip, the state is not used, so
the state doesn’t matter.
L140[08:56:32] <Hawk777> It won’t affect
their next trip either, because at the start of the trip, every
junction along that trip’s route is configured appropriately.
L141[08:57:03]
<noncog> I
do see your point
L142[08:57:12] <Hawk777> And every
junction *can* run the same program.
L143[08:57:31] <Hawk777> It just has e.g.
a table of the form {"Hawk777": "north",
"noncog": "south", "someone_else":
"east"}.
L144[08:57:36] <Hawk777> That’s it.
L145[08:57:59] <Hawk777> Whenever anyone
starts their trip, the central computer sends a set of
(playername,direction) pairs to all the junctions that will be
involved in the trip.
L146[08:58:10] <Hawk777> They just update
their table using that data.
L147[08:58:22] <Hawk777> Whenever someone
approaches, they send them in the designated direction.
L148[08:58:41]
<noncog>
Which in this setup would reduce the number of communications sent
compared to what I said too since the intersections never look
anything up
L149[09:00:06] <Hawk777> A big benefit to
this system is this. When a cart is rolling towards a junction, the
junction needs an answer *fast*; if the central computer is too
busy to answer quickly, the cart might be misrouted. But each
junction computer is not doing much work, so if it already has the
answer in its local memory, that is no problem. On the other hand,
if the central computer is busy, it is fine if the cart doesn’t
launch from its starting poi
L150[09:00:07] <Hawk777> one or two
seconds, enough time for the central computer to get the full route
loaded.
L151[09:00:38]
<noncog>
Good point good point
L152[09:00:56] <Hawk777> You’ve moved the
computational bottleneck from real-time (needs to answer fast
enough for a rolling cart) to non-real-time (cart is held at its
starting point until the work is done).
L153[09:01:07]
⇨ Joins: Vexatos
(~Vexatos@pd9e21222.dip0.t-ipconnect.de)
L154[09:01:07]
zsh sets mode: +v on Vexatos
L155[09:02:50]
<noncog>
>Hawk777: You’ve moved the computational bottleneck from
real-time (needs to answer…
L156[09:02:51]
<noncog>
I’m a little confused by what you mean cart is held at starting
point until work is done. Calculating the route would require this
anyway unless you mean at each intersection
L157[09:03:39] <Hawk777> Ah, what I mean
is, the computational bottleneck is probably the central computer.
So by doing it this way, you don’t launch the cart until the
central computer has no more work to do at all.
L158[09:03:54] <Hawk777> And as long as
you haven’t launched the cart, the problem is not real-time
yet.
L159[09:04:35] <Hawk777> I was contrasting
preloading the route at all junctions, versus only sending routing
data to the junctions as a cart approaches them.
L160[09:07:07]
<noncog>
Okay so it seems we have the automatic intersections pretty much
fleshed out. What about the stations? I imagine them as pretty
simple and running the same program each. Where it just sends
reports itself to the central server to be considered a node on the
graph and a destination and identifier of the player to do the
route calculation. I think that would make it auto discoverable and
handle the routing and then get back a ready to start signal
L161[09:07:07]
<noncog>
from the central server and output a red stone signal to give you
the cart and send you off. Do you see any issues or improvements
with this?
L162[09:09:09]
<RedstoneParkour> Hawk777: do note that
wanting to send the route in advance requires all computers along
the route to be active, and therefore chunkloaded, which may not be
desired
L163[09:09:36]
<noncog>
Yeah that was also part of some of the unwritten considerations I
didn’t put in lol
L164[09:09:39] <Hawk777> Nope, that’s
about it. The central server can send a list of all the destination
names. The station computer displays the list and lets the user
choose their destination before getting into the cart, and sends
the choice to the central server. Once the central server has set
all the junction routing information, it tells the station computer
to launch, and off you go.
L165[09:09:43]
<noncog>
But no hard requirement on that one
L166[09:10:05] <Hawk777> Ah, true.
L167[09:10:43] <Hawk777> You will need
some way to inform the central computer of the network topology
(e.g. “if you go south from junction A, you get to junction B” or
“station C is connected to the north exit from junction A” or
whatever).
L168[09:10:50] <Hawk777> That could just
be programmed in by hand.
L169[09:10:58] <Hawk777> You’d only have
to do it in one place.
L170[09:12:21]
<noncog> So
we have the basic full system as follows: Central server. Which has
I/O of stations and intersections. Each of these has devices to
handle the rail and minecraft related stuff which we don’t
necessarily need to prototype here. Now let’s consider the more
advanced things.
L171[09:12:56]
<noncog>
First would be auto discoverable topology. How could a station and
intersection or two intersections realize they are connected?
L172[09:13:11]
<noncog>
Coordinate comparison? And how could that be done quickly
L173[09:13:31]
<RedstoneParkour> You send a minecart
along the rail and check if it arrives somewhere else
L174[09:13:56] <Hawk777> You’ll want to
think a bit about how to design a station so the cart doesn’t
launch before you sit down. That could be by having the destination
select screen accessible while sitting, or by having a separate
Ready button, or by having a detector to detect a sitting
player.
L175[09:14:22]
<noncog> I
imagine that the intersection should be set up to remove empty
carts from the system
L176[09:14:45]
<RedstoneParkour> I believe RailCraft has
a detector for checking if a player is in a minecart
L177[09:14:48] <Hawk777> Personally I
would just enter that information by hand—each time you build a new
piece of infrastructure, you tell it how it’s connected to the
existing network; that’s a pretty small amount of effort next to
actually building the stuff.
L178[09:15:01] <Hawk777> Yes it does, but
also Railcraft was likely unacceptable.
L179[09:15:26] <Hawk777> I am not certain
whether coordinate comparison could work, because I don’t think
computers know their own location.
L180[09:15:51]
<noncog>
Ideally dumb users should be able to just connect input and output
rails and load a new computer screen assuming their station
functioned as expected. That’s why I was questioning automatic
topology.
L181[09:17:13] <Hawk777> And in any case,
that doesn’t necessarily reveal topology—two junctions could be
northwest/southeast of each other, and say the east exit from the
NW junction goes to the north exit of the SE junction. But it could
equally be the case that the south exit from the NW junction goes
to the west exit of the SE junction. Or even something less
obvious. Tracks might follow non-straight-lines or
non-shortest-paths due to terrain or other
L182[09:17:15] <Hawk777> les.
L183[09:17:28] <Hawk777> I think the only
way you can discover is as RP said to send a cart along it.
L184[09:18:59] <Hawk777> But is it really
such a big problem, that when someone has spent all the effort to
build a station building and a bunch of track, when they boot up
their station computer for the first time, it asks them “what is
the name of this station?”, “what junction is this station
connected to?” (with a list, and they just have to pick the proper
answer; you could have a convention that every junction has a sign
with its name visible), a
L185[09:19:00] <Hawk777> which side of the
junction is it connected to?”.
L186[09:19:24] <Hawk777> Likewise when you
build a new junction.
L187[09:22:03]
<noncog>
Okay good point. Stipulating all inputs of each intersection are
polar opposites, meaning that north and south of two are linked,
etc. we could then assume topology a bit better but you brought up
the point that this also doesn’t necessarily tell us which route is
shortest in terms of distance or time traveled but instead the
least number of vertices/junctions to be made. Assuming we want the
true shortest time for a user to get to a location
L188[09:22:04]
<noncog>
wouldnt we need a cost value for the length of the edge/connection?
Again making this pretty impossible aside from actually measuring
using a cart. Unless we could just get the coordinates of each
computer automatically then we can just know the length of the
connection.
L189[09:23:05]
<noncog>
Yeah it might just take simple solution like for each computer
setup it asks a question for each n connections.
L190[09:23:26]
<RedstoneParkour> noncog: how about we
time how long the cart takes to arrive and use that as a cost
value?
L191[09:24:08] <Hawk777> Ah, I didn’t
think the polar-opposite assumption was reasonable. I thought you
could leave a junction southbound, take plainline track which
curves, and arrive at a location to the southeast travelling
eastward.
L192[09:24:40] <Hawk777> Note that you
only need costs if you expect the graph to be
non-tree-structured.
L193[09:24:44] <Hawk777> I.e. have
redundant links.
L194[09:24:53]
<noncog>
>RedstoneParkour: noncog: how about we time how long the cart
takes to arrive and use that …
L195[09:24:53]
<noncog>
Basically saying that for a new connection we don’t know it’s cost
yet but we will eventually and just record that? This is becoming
similar to how routers function at this point lol they can change
the routing table whenever a route becomes bad or unreachable by
getting its cost actively.
L196[09:24:54] <Hawk777> Otherwise there
is only one possible route, and the cost is irrelevant.
L197[09:26:55]
<noncog>
>Hawk777: Otherwise there is only one possible route, and the
cost is irrelevant.
L198[09:26:56]
<noncog> Im
not sure if I would have this structure or not. The idea of
automatic topology initially in my mind was related to a user
automatically connecting their station to the network and knowing
which intersection it goes to. But they could also just input that
value like you said.
L199[09:27:06]
<RedstoneParkour> I did indeed have the
idea of treating each minecart as a packet and using routing
algorithms to route the minecart the correct way
L200[09:28:15]
<noncog>
Okay let’s assume that topology is taken care of even if we haven’t
landed on a single solution. That aspect can be handled and we know
that. Other concern. I believe sometimes you lose your mine cart
when you log out or the server restarts. I don’t know if that is
true for all versions of the game. How could one handle the case
where a user is abandoned on the line?
L201[09:28:33] <Hawk777> Well, obviously
no computer system can handle that.
L202[09:28:39] <Hawk777> Someone has to
physically remove the lost cart.
L203[09:28:46] <Hawk777> Otherwise the
next traveller will just crash into it.
L204[09:29:03]
<noncog>
Assume that it will make it to the next intersection based on how
the line is made.
L205[09:29:06] <Hawk777> Your only choices
are to send the next traveller into the section anyway, letting
them crash, or to hold them back at a signal indefinitely.
L206[09:29:35]
<RedstoneParkour> Well space the powered
rails in such a way that the minecart automatically stops after
some distance if the player exits the minecart
L207[09:29:37]
<noncog>
The real issue is detecting that a player is stuck on the line, we
can get them a cart or something. But how can we tell if this
occurs?
L208[09:30:12] <Hawk777> Well, can’t they
walk to the closest station?
L209[09:30:20]
<Kristopher38> Cart dispenser on every
junction?
L210[09:30:22] <Hawk777> And if the answer
is no, maybe build more stations :D
L211[09:30:46]
<noncog>
Some other assumptions are that the player will travel at a
constant velocity on these lines. So if we can detect a player not
moving at that velocity it must mean they’re out of the cart.
L212[09:31:57] <Hawk777> Anyway, I’ll
leave with one other thing to consider. In addition to the fairly
well-known Dijkstra’s algorithm, there is another called
Floyd-Warshall. Dijkstra’s calculates the shortest path from *one*
starting point to every destination. F-W calculates the shortest
path from *every* starting point to every destination. It’s more
expensive to run, but given the answer it produces, you would only
have to run it when the network
L213[09:31:58] <Hawk777> ogy changes, not
each time a player wants to take a trip; the route for a trip could
just be looked up in the already-calculated answer.
L214[09:32:29]
<Kristopher38> Best effort detection could
just look at expected arrival time at a junction and if the player
doesn't get there in that time + some leeway then we assume the
cart stopped somewhere between last junction and the next
L215[09:32:31] <Hawk777> It’s only N³ in
the number of nodes, which is really not bad for what you
get.
L216[09:33:09] <Hawk777> And it’s actually
really easy to code too.
L217[09:33:19]
<noncog>
Idk about player detection using oc or other mods though. Another
idea is a form of a pressure plate or something that you can ride
over in a cart but can’t not activate it on foot. I believe
something like that exists but now we have wired signals to handle
again instead of fully wireless. Kristophers solution handles this
without having to handle signaling over these possibly huge line
distances.
L218[09:33:36] <Hawk777> And with that I’m
off, as it’s pretty late.
L219[09:33:49] <Hawk777> A fun
discussion!
L220[09:34:13]
<noncog>
Yeah it was good Hawk, thanks for the conversation!
L221[09:34:17]
<Kristopher38> A rare sight here these
days
L222[09:34:38] ⇦
Quits: Hawk777 (~Hawk777@2607:c000:8293:d900:9c1f:3547:388a:5925)
(Quit: Leaving.)
L223[09:36:44]
<noncog> I
find that design challenges get people involved and stimulated more
than a lot of things. So with your idea we could just resend carts
along the line in a given interval if the player never makes it.
Possible issues are that the player is not on the line any more. As
in they leave the line. Now we have empty carts being sent with no
player ever to continue along this journey. Of course it could time
out eventually. Or perhaps, another issue is
L224[09:36:44]
<noncog>
that this timing data is messed up somehow. Im not sure how well OC
handled server restarts and keeping that timing.
L225[09:37:05]
<noncog>
What if it restarts in the middle of a line, they lose the cart,
log in, and there’s no timer running.
L226[09:37:23]
<noncog> I
do like a solution like this though as it requires no sensor or
wiring.
L227[09:39:12]
<Kristopher38> Timekeeping is doable, even
if the server crashes and that makes all the OC computers
restart
L228[09:41:11]
<Kristopher38> I didn't say you should
resend carts to the player, just that this is a potential way to
detect this. It is a rare situation anyway so I'd just leave the
player to walk to the nearest station/junction
L229[09:42:31]
<noncog>
The best solution would be a cost free way of detecting when a
player is on the line on foot. I know weird minecraft detection
systems like this exist where it doesn’t cost anything to get and
send. Then we know for certain that a player truly is on the line
and will only do this cart resend or however we resolve the issue
when we know certainly that a player is there without having to any
more calculation and tracking. I don’t know what that
L230[09:42:31]
<noncog>
mechanism is though. Ideally I would like to see the system have
minimal intersections and minimal computers doing minimal
calculations. So that would mean that these gaps between
intersections might be very long. In the mean time if a player is
walking to the next one, won’t they be interrupting traffic flow
for people coming on the line behind them? Can’t remember if you
can stop someone else’s cart.
L231[09:43:05]
<noncog>
Under that idea we do need a way to get them back onto their route
and off the line as fast possible but only if we’re sure that is
what’s going on.
L232[09:43:35]
<noncog>
Ironically the non computer part of detecting this might be the
hardest part to solve lol
L233[09:45:46]
<noncog>
One potential mechanical solution is to make the floor of the
railways hollow so that if a player gets off somehow they just fall
out of the system.
L234[09:45:57]
<Kristopher38> You said there's one block
of space between the tracks going in both directions
L235[09:46:08]
<noncog>
Idk how you float rails though.
L236[09:46:09]
<Kristopher38> Let the player walk on
that
L237[09:46:47]
<Kristopher38> Perhaps dig a ditch there
so the player on foot doesn't interfere with rail traffic
L238[09:46:57]
<noncog>
>Kristopher38: Let the player walk on that
L239[09:46:57]
<noncog>
But will they? Maybe ideally they’re forced to or something. I
don’t want to leave it up to the choice of the player to disrupt it
or not. But that is a great idea to use this spaces
L240[09:47:21]
<noncog>
Perhaps modded solutions can do that
L241[09:47:52]
<noncog>
Pull the player in somehow. Ideally it also get them going onto
their destination sooner than later.
L242[09:48:27]
<Kristopher38> At the end of the day you
can have players destroy parts of the track and you can do nothing
about that unless the server provides some anti griefing
measure
L243[09:48:46]
<noncog>
Yeah it most likely would be protected
L244[09:49:38]
<Kristopher38> If someone will want to get
on the tracks, they will find a way to do it
L245[09:50:00]
<Kristopher38> Even with all the
protection in place
L246[09:50:06]
<noncog>
Yeah ender pearls can get you anywhere you can see lol
L247[09:50:23]
<Kristopher38> I'm not sure you can do
something about that either
L248[09:51:10]
<RedstoneParkour> Wait so who would add
tracks to the network? Would it be one central entity (so the owner
of the network) or would anyone be able to add tracks to the
system?
L249[09:52:03]
<noncog> I
imagined a few central lines and stations to start and at unused
intersections users could connect to that.
L250[09:52:48]
<RedstoneParkour> So that means that you
trust the users not to build malicious connections?
L251[09:52:58]
<noncog>
And just assume that the demographic this is for is not going to
misuse it or intentionally break it. It’s for iron man players who
have no other means of thoughtless and safe long distance
travel
L252[09:53:26]
<noncog>
Yeah something like gregtech new horizons where players spend
months on the pack.
L253[09:54:40]
<Kristopher38> There is teleportation in
gtnh though
L254[09:54:48]
<noncog>
Basically I can just choose to take a 10 minute train ride to
another person and let my game run while i do other things. And
dying in an iron man gtnh server is no fun. No teleport means
actual risk of death by traveling
L255[09:54:52]
<noncog>
It’s iron man that’s disabled
L256[09:54:55]
<noncog>
It’s made harder
L257[09:55:03]
<noncog>
Even more realistic
L258[09:55:09]
<Kristopher38> Huh
L259[09:55:42]
<noncog>
Iron man mode in most games is an even harder version of it with
limited capabilities to make it more challenging for good
players
L260[09:56:34]
<noncog> So
dying in iron man would become a real rescue mission to get your
stuff back thus the need for a safe and thoughtless traveling
system over huge distances.
L261[09:56:43]
<Kristopher38> Tell me about this server
of yours, surely you didn't come here to ask this without the
thought of implementing it somewhere very specific ;)
L262[09:58:39]
<noncog>
Lol Im actually currently not doing a play through but am gearing
up to. I’ve been strapped on time but I do have two groups of
servers I usually play on. One of those groups is the official Greg
tech new horizons servers and they have a few that you can enable
iron man on.
L263[09:59:35]
<noncog> I
would most likely build this there but I do also have a very
powerful dedicated server that I’ve ran modpack communities from
before. So I could also just do it on my own setup. Gregtech takes
months for a group of people let alone iron man mode.
L264[09:59:56]
<noncog> I
graduate soon and would like to start
L265[10:01:00]
<noncog>
And really handling a player without a cart on the line is the last
thing needed for this railway system.
L266[10:02:04]
<Forecaster> I've gotten some steam back
into my Tycoon project again
L267[10:02:13]
<Forecaster> though there's still plenty
left to do there
L268[10:02:55]
<Kristopher38> So the big question is, can
the junctions be viably constantly chunkloaded
L269[10:03:12]
<noncog>
Let’s just say yes for now
L270[10:03:54]
<RedstoneParkour> My idea for handling a
player without a cart on the line is to have the line not be able
to be used until the cart is off of the line
L271[10:04:13]
<RedstoneParkour> Then just have the cart
stop if it doesn't have a player in it
L272[10:04:48]
<Forecaster> I really hope this is the
last time I'm re-writing most of it...
L273[10:05:25]
<Kristopher38> We're good then, though the
distribution of linked cards for player made stations and junctions
will have to be handled by the central authority
L274[10:06:20]
<noncog>
>RedstoneParkour: My idea for handling a player without a cart
on the line is to have the l…
L275[10:06:20]
<noncog>
The problem remains of detecting when a player is on/off the line
and not in a cart
L276[10:06:45]
<noncog>
>Kristopher38: We're good then, though the distribution of
linked cards for player made …
L277[10:06:45]
<noncog>
Crap… good point. Any ideas on making it easy to distribute linked
cards?
L278[10:06:51]
<RedstoneParkour> Well minecarts behave
differently depending on if they have a player inside or not
L279[10:08:00]
<noncog> In
this setup it would continue on the line to the next intersection.
At that point what happens to it hasn’t been defined formally but I
would lean toward removing it but it also would have no effect
sending it to its destination unless it would get stuck in unloaded
chunks
L280[10:08:29]
<Kristopher38> This is really out there
but asking someone else through in-game chat or discord to send a
drone with the linked card to your location would be a viable
option :D
L281[10:08:33]
<noncog>
Idk if they self load or not
L282[10:08:52]
<noncog>
That’s not that wild
L283[10:09:34]
<noncog> It
could be put into the program that it requests a card if it’s being
run without one and how that is handled can be implemented in
whatever means possible
L284[10:10:47]
<noncog>
The chat is a universal messaging system though. Good free
communications method
L285[10:11:32]
<Kristopher38> Drones can hold a
chunkloader and have inventory so this should work, provided
they're not gated behind some ludicrous tier
L286[10:12:14]
<noncog> In
the pack I mentioned they for sure are lol
L287[10:12:18] <Izaya> Can you run
chunkloaders off a solar panel upgrade alone?
L288[10:12:48]
<Kristopher38> Other than that you'd
either have to have someone bring the card to the requesting player
or have the player go fetch it themselves
L289[10:13:34]
<Kristopher38> Izaya: lemme check my notes
on energy usage
L290[10:13:46]
<noncog>
>Izaya: Can you run chunkloaders off a solar panel upgrade
alone?
L291[10:13:46]
<noncog> I
asked chat gpt and it said yes lol
L292[10:13:56] <Izaya> If not you could
run it off coal I guess but...
L293[10:14:12] <Izaya> noncog: you'll
have to excuse my distrust of neural networks
L294[10:14:46]
<noncog> It
said that it should but the generation is dependent on sunlight
level. Also would need capacitor for at night. And yeah for sure
it’s said some incredibly dumb stuff to me
L295[10:16:41]
<noncog> In
the past I have been able to force it to correct itself though by
pointing out contradictions in stupid shit it says. It apologizes
for the error and then corrects itself pretty well but fact check
everything it makes a lot of convincing junk
L296[10:16:52]
<RedstoneParkour> Ok so did some testing
and i think you can safely repeat 1 powered rail - 24 normal
rails
L297[10:17:11]
<noncog>
Yeah that sounds right
L298[10:17:35]
<RedstoneParkour> Doing that would also
make non-occupied minecarts stop automatically, as they don't go as
far as occupied minecarts
L299[10:18:04]
<noncog>
Also right. My thought was to close that gap at the cost of more
resources to ensure it makes it
L300[10:19:24]
<Kristopher38> Annoyingly enough I didn't
write down how much solar panels produce but I think I've seen a
figure of 20% efficiency of a generator so that would mean 0,16
energy per tick, while chunkloader uses 0,6 energy per 10 ticks so
yeah, you should be able to run the chunkloader off of a solar
panel
L301[10:19:42]
<Kristopher38> Moving the drone would eat
up most of the energy anyway
L302[10:31:33]
<Kristopher38> Anyway i wish i had more
time to play
L303[10:31:53]
<Kristopher38> As my semester break
consists of 2 (two) whole days
L304[10:32:36]
<Kristopher38> The next time I engage in a
discussion here will probably be in 4 months
L305[10:34:28]
<noncog>
Same..
L306[10:34:50]
<noncog>
Thankfully it’s almost done but I might finish my other
degree…
L307[10:48:54]
<Forecaster> %tonk
L308[10:48:54] <MichiBot> Heckgosh!
Forecaster! You beat Vaur's previous record of 2 hours, 41
minutes and 33 seconds (By 2 hours, 3 minutes and 59 seconds)! I
hope you're happy!
L309[10:48:55] <MichiBot> Forecaster's new
record is 4 hours, 45 minutes and 33 seconds! Forecaster also
gained 0.00621 (0.00207 x 3) tonk points for stealing the tonk.
Position #1.
L310[12:36:17] *
Amanda meows and looks around
L311[12:36:23] <Amanda> %p
L312[12:36:24] <MichiBot> Ping reply from
Amanda 0.58s
L313[12:48:49]
<Sky>
%p
L314[12:48:49] <MichiBot> Sky: Sorry. You
can't get your ping from over a bridge. You can ping irc users by
passing one or more as arguments.
L315[12:48:52]
<Sky>
:(
L316[12:49:07]
<Sky> My
ping is beyond infinite it seems
L317[12:51:03] <Amanda> Because it'd be a
useless metric, it'd be a ping from michibot, to the discord bridge
bot, not to your client on discord
L318[12:51:22] <Amanda> %p Corded
L319[12:51:23] <MichiBot> Ping reply from
Corded 0.3s
L320[12:52:32] <Amanda> That just tells
you that MichiBot and corded have 0.3s of round trip
L321[13:05:47]
<Sky>
>Amanda: Because it'd be a useless metric, it'd be a ping from
michibot, to the…
L322[13:05:47]
<Sky> I
know
L323[13:06:08]
<Sky> Oh
that's a cursed idea
L324[13:06:22]
<Sky> Ping
various data centers and geolocate where michibot lives
L325[13:18:56]
<Forecaster> Previously it did just
that
L326[13:19:21]
<Forecaster> But a command can tell when
it's being used over a bridge now
L327[13:22:41]
<lunar_sam>
all i'm saying is
L328[13:22:47]
<lunar_sam>
i've got an ancient printer and a shotgun
L329[13:22:59]
<lunar_sam>
if the printer makes weird noises it's getting blasted
L330[13:35:41]
<Forecaster> what's wrong with ancient
printers
L331[14:49:54]
<Michiyo>
>Sky: Ping various data centers and geolocate where michibot
lives
L333[14:50:05]
<Sky> Oh
ok
L334[15:03:30]
<PouPeuu>
Is OC2 still being worked on?
L335[15:42:57]
<Forecaster> I dunno
L336[15:43:29]
<Forecaster> We have the same information
you do
L337[16:30:22]
⇨ Joins: cat2002
(~cat2002@2600:8806:9081:2030::29d)
L338[16:30:41]
<Michiyo>
%tonkout
L339[16:30:42] <MichiBot> Eh! Michiyo!
You beat Forecaster's previous record of 4 hours, 45 minutes and
33 seconds (By 56 minutes and 13 seconds)! I hope you're
happy!
L340[16:30:43] <MichiBot> Michiyo has
stolen the tonkout! Tonk has been reset! They gained 0.005 tonk
points! plus 0.004 bonus points for consecutive hours! (Reduced to
50% because stealing) Current score: 0.32325. Position #3 Need
0.04919 more points to pass CompanionCube!
L341[16:31:05]
<Michiyo>
damn, was off by 4 ._.
L342[16:35:10]
<Forecaster> 3-4
L343[16:52:09]
<AR2000>
anyone know a good lua minifier ?
L344[17:00:02]
<Forecaster> I can give you a great Lua
maximizer
L345[17:18:49]
<Ocawesome101> >AR2000: anyone know a
good lua minifier ?
L347[17:22:23] <SquidDev> It's interesting
how few (any?) minifiers handle changes like print("foo")
-> print"foo" or foo["bar"] ->
foo.bar.
L348[17:23:53] <SquidDev> I'd almost
suggest pairs(x) -> next,x, but I guess that one does
technically isn't correct in the presence of __pairs :D.
L349[17:25:38]
<AR2000> I
found this one for VS code `informagico.vscode-lua-minify` but I
don't know how good it is
L350[18:11:24]
<Forecaster> %sip
L351[18:11:24] <MichiBot> You drink a
fragrant spice potion (New!). Forecaster recovers some mana.
L352[18:11:42]
<Forecaster> I've forgotten all the spells
though
L353[18:59:35]
<Vaur>
%tonk
L354[18:59:35] <MichiBot> Potzblitz!
Vaur! You beat Michiyo's previous record of <0 (By 2 hours, 28
minutes and 53 seconds)! I hope you're happy!
L355[18:59:36] <MichiBot> Vaur's new
record is 2 hours, 28 minutes and 53 seconds! Vaur also gained
0.00248 tonk points for stealing the tonk. Position #4. Need
0.14993 more points to pass Michiyo!
L356[19:56:54]
<Vaur>
%sip
L357[19:56:54] <MichiBot> You drink a
sweet avesmingo potion (New!). Vaur feels much better!
L358[20:01:25]
⇨ Joins: TredBlox
(~TredBlox@host-80-41-117-45.as13285.net)
L359[20:02:02] ⇦
Quits: TredBlox (~TredBlox@host-80-41-117-45.as13285.net) (Client
Quit)
L360[20:13:34]
<Forecaster> %sip
L361[20:13:35] <MichiBot> You drink a
still aluminium potion (New!). Forecaster shrinks by a negligible
amount until they find a wand of awkward laughter.
L362[20:13:56]
<Forecaster> Aww man, where am I gonna
find one of those D:
L363[21:46:35]
⇨ Joins: A
(~A@c-73-142-114-87.hsd1.ma.comcast.net)
L365[21:46:57] ⇦
Quits: A (~A@c-73-142-114-87.hsd1.ma.comcast.net) (Client
Quit)
L366[22:38:34]
<Forecaster> %tonkout
L367[22:38:34] <MichiBot> Willikers!
Forecaster! You beat Vaur's previous record of 2 hours, 28
minutes and 53 seconds (By 1 hour, 10 minutes and 5 seconds)! I
hope you're happy!
L368[22:38:35] <MichiBot> Forecaster has
stolen the tonkout! Tonk has been reset! They gained 0.003 tonk
points! plus 0.002 bonus points for consecutive hours! (Reduced to
50% because stealing) Current score: 0.41807. Position #1
L369[22:39:27]
<Forecaster> Uh
L370[22:39:40]
<Forecaster> Weird
L371[23:16:20]
<Forecaster> %tonkout
L372[23:16:20] <MichiBot> Forecaster: You
gotta tonk before you can tonk out. For this transgression the
timer has been reset.
L373[23:16:34]
<Forecaster> Oh
L374[23:16:57]
<Forecaster> I guess it actually went
through but the reply got lost