Boulder Dash Forum Forum Index Boulder Dash Forum
The only Boulder Dash discussion board in English language!
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

A perfect Open Border implementation does it exist?
Goto page Previous  1, 2
 
Post new topic   Reply to topic    Boulder Dash Forum Forum Index -> Tools, Fanstuff
View previous topic :: View next topic  
Author Message
LogicDeLuxe
Member


Joined: 15 Jul 2007
Posts: 613

PostPosted: Fri Jan 03, 2020 10:40 am    Post subject: Reply with quote

Arno wrote:
Just one thing about this issue
Well, the scanning has to start somewhere. Which gives me the idea that the exact starting position could be specified as a cave parameter. In your example, you would just specify the space between your Fireflies as the starting point, and they will never turn.
On the other hand, a starting point parameter is not really necessary, if the cave's author just take the given starting point into account. In your example, you just would place the Space at the top instead of the middle of the Fireflies. It doesn't really matter where the Space is, since it will be always at the scanning position after the current Firefly moved anyway, thus you would only really see it when the scanning takes a break waiting for the cave delay.
Back to top
View user's profile Send private message Visit poster's website
Arno
Site Admin


Joined: 17 Mar 2007
Posts: 2181
Location: netherlands

PostPosted: Sun Jan 05, 2020 8:42 pm    Post subject: Reply with quote

Hmmm... setting the empty space equal to the starting point of the cavescan solves this issue for the first frame, but does it also arrange that the 6 fireflies keep moving upward "forever"? I think not, unless for each frame, a custom starting point for the cavescan is used, namely the current position of the empty space. But how does the algorithm know that it must start at that position?

Thinking about this issue I came up with another extended example (6x6):

LUwUwU
wUwUww
wxwULU
wUwwwU
wULUwU
wwwUwU

This is a sort of infinite tunnel filled with a "snake" of fireflies and one piece of empty space.
Now the dependency chain runs 2 times over the cave width/heigth. Intuitively (thinking about an infinitely repeating world) it is clear for me what should happen: all fflies should move up or left, so the whole "snake" of fflies should move 1 position through the tunnel each frame, and so the empty space moves 1 position in the opposite direction.

But how to design an algorithm that does exactly that? Parallel Universes does not work in this case unless you extend it to 5x5 copies instead of 3x3. But then you can construct a similar/bigger example where 5x5 does not work either...

Perhaps the problem is just that infinite worlds can exist in a human mind, but not in a computer's storage...? Wink
_________________
---- Boulder Dash Fansite ----
Back to top
View user's profile Send private message Send e-mail Visit poster's website
LogicDeLuxe
Member


Joined: 15 Jul 2007
Posts: 613

PostPosted: Mon Jan 06, 2020 3:03 pm    Post subject: Reply with quote

Arno wrote:
all fflies should move up or left, so the whole "snake" of fflies should move 1 position through the tunnel each frame
That is broken by design. You should know that's not how Fireflies work. They turn in place from left to up and blocking the following Flies by that. Try a formation like this on a regular world without wrapping, and you'll see.
And even if that design would work, you would need two spaces, since you're wrapping twice.
Arno wrote:
and so the empty space moves 1 position in the opposite direction.
The Space would not "move" 1 position, but it would rapidly go with the cave scan. You would see it where the scanning takes a break waiting for the cave delay, ie. at the bottom of the cave. You shouldn't think of empty space as "moving". It may look like it in certain situation, but it doesn't do anything on its own. Also, in an endless world, there is only once a starting point, not per frame, since the scanning is continues. Naturally, you're always one step ahead from the last scan, doesn't matter if it is on the border or in the middle of the cave. This lag has to be taken into account during design and it is easy to forget.

It's like in "Around the World in 80 Days" where they gained an extra day. Similarly, in Boulder Dash, if you're going down, you're gaining extra cycles, ie. the items scanned between intervals is the size of the cave plus the distance your moved. Those sum up to a complete scanning interval when you did an entire round eventually.
While there is an imaginary international date line, it is nothing physical. Think of a scanning interval as a day cycle. In Boulder Dash, this international date line is between the bottom and the top of the cave.
A day cycle doesn't really have a starting location. It's just continues around the world, yet not every place is at the same day simultaneously. It is certainly an effect flight schedules have to take into account, and so have cave authors.

Maybe it's a better exercise to examine how dancing fly formations would pass the borders.
Back to top
View user's profile Send private message Visit poster's website
Arno
Site Admin


Joined: 17 Mar 2007
Posts: 2181
Location: netherlands

PostPosted: Tue Jan 07, 2020 8:56 am    Post subject: Reply with quote

LogicDeLuxe wrote:
That is broken by design. You should know that's not how Fireflies work. They turn in place from left to up and blocking the following Flies by that.

Oh sure, you're right. I forgot about the fireflies turning right at the same position in a bend to their right. So my expectation holds only for the single next frame.
If a certain frame looks like this:

LUwUwU
wUwUww
wxwULU
wUwwwU
wULUwU
wwwUwU

then, I would expect the result of the next frame to be:

LUwUwL
wxwUww
wUwLLU
wUwwwU
wLLUwU
wwwUwU

So all flies have moved one position. This because in an infinitely repeating world, there would be infinitely many "snakes" of 17 connected fireflies, which together move 1 position. Also, I see that it would work like that when "Parallel Universes" is applied with 5x5 copies (instead of 3x3).

LogicDeLuxe wrote:
It's like in "Around the World in 80 Days" where they gained an extra day. Similarly, in Boulder Dash, if you're going down, you're gaining extra cycles, ie. the items scanned between intervals is the size of the cave plus the distance your moved. Those sum up to a complete scanning interval when you did an entire round eventually.
While there is an imaginary international date line, it is nothing physical. Think of a scanning interval as a day cycle. In Boulder Dash, this international date line is between the bottom and the top of the cave.
A day cycle doesn't really have a starting location. It's just continues around the world, yet not every place is at the same day simultaneously. It is certainly an effect flight schedules have to take into account, and so have cave authors.

I think I got your points about the continuous scanning. I'm just wondering, would this method also work correctly when there are both vertical and horizontal open borders (like at Krissz' site)? I see how it works with C64-style of open borders, where the end of a line continues at the next line, so effectively there are only borders at the top/bottom of a cave (which could be "eliminated" by a continuous scanning). But I'd guess it won't work when there are vertical borders too, because of the jump to the next line at the end of each line...

LogicDeLuxe wrote:
Maybe it's a better exercise to examine how dancing fly formations would pass the borders.

Since dancing fly formations are usually small sized, I would expect that a method like "Parallel Univeses" would arrange that a formation just passes a border without side effects. (At least when the cave is bigger than the formation itself.) Do you see any scenario that might give issues?
_________________
---- Boulder Dash Fansite ----
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Boulder Dash Forum Forum Index -> Tools, Fanstuff All times are GMT + 1 Hour
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group