Linux/Firefox: Paddle doesn't move and the paddle popup doesn't bounce the ball.
Linux/Chrome: Paddle doesn't move but the paddle popup does bounce the ball.
Linux/Firefox: Paddle doesn't move and the paddle popup doesn't bounce the ball.
Linux/Chrome: Paddle doesn't move but the paddle popup does bounce the ball.
Have we completely decided as a culture that "inception", which once meant "beginning", now means "recursion"?
I liked to think that words had meaning.
If language never evolved, then most of us would be "instructors of the sentient hunks of distilled sand."
Doesn't that sound so much cooler than software engineer or programmer though?
It does have a meaning. It's a pop culture reference.
No, we haven’t decided that inception is synonymous with recursion, but even if we had, lots and lots of words have always had multiple meanings, and meanings that come and go, and meanings that change over time. Language is fluid and is defined by its usage and not by static prescription, which is one of the fun aspects of language. Embrace it and enjoy the ride! ;)
Doesn't work here (Firefox 115.2)
Paddle doesn't move.
I think it might be a Xorg vs. Wayland thing rather than browser version. IIRC Wayland does not report coordinates of the window relative to screenspace.
The inner browser top(acting like a paddle) is not detecting collision with the ball
Firefox Version 120.0
Same here. On Linux with KDE, if it matters.
Works fine for me on firefox 120 on windows
Completely broken with my i3 setup
It works with my sway setup [1], but only on Chromium, not Librewolf. I'm pretty sure it's just a Librewolf/FF issue, since it seems to open pop-ups in new tabs, not as windows.
[1] https://git.askiiart.net/askiiart/dotfiles/src/branch/main/s...
same but I didn't expect anything different from a TWM for a game that relies on floating windows
I opened the link, and laughed at how dumb I am to think this would work in i3
Make it a two-player game by making the paddle of each player the brick wall of the other player. This is also easily extended to N > 2 players.
This could just be crazy, given that brick walls may be composed of various types of bricks that break with various numbers of hits and also given that the walls will have various shapes depending on which bricks you break first.
This drastically changes the game in the sense that as a player, you can't decide precisely which bricks of the opponent you break (as opponents move their walls): you have some influence on which one of your bricks you break and you most fundamental goal is to make sure that the ball just bounces against your own paddle/wall to send it back and not lose a life.
And the more you touch the ball with your paddle, the more the paddle's size shrinks (because of all the broken bricks), which contributes to make the game harder for you and might give your adversary some chance to come back.
That's a terrific idea, even without the brickception (just a simple brick-wall-paddle).
Might as well just include everyone's games inside of everyone else's game as nested entities whose microstates determine the above games macrostates.
This is very similar to Reflective Towers Of Interpreters: https://blog.sigplan.org/2021/08/12/reflective-towers-of-int...
Very original, can't wait to play this at work
Just make it Excel themed!
Very original
It's a copy of someone else doing exactly the same thing (2 layers of breakout played by moving window) but in C++ (which the author credits) both years before the following. Although the general concept of having games creatively use windows is probably much older. I assume it showed up now because of recent trend of people rediscovering that this concept works in (some) browsers and making various non breakout variations of it of it https://news.ycombinator.com/item?id=38413660
Wildly annoying that this isn't called 'Brickursion'.
If you've missed the reference to Inception, then that's on you. I think it is aptly named.
Don't worry, I get it. I just think it's a bit daft that the title is now so thoroughly associated with a fairly mechanical part of how the film functions, when it's not only a pre-existing word but also refers to a much more significant idea within the film itself. Plus, the 'rick' of 'brick' sounds a bit like the 'rec' of 'recursion'.
But I think I was a bit harsh in this case, the way the two parts of the game interact is more reminiscent of the dream layers in the film than is often the case with such Inception references.
Unfortunately doesn't work on the Arc browser and presumably Orion, or any other browsers which put pop-up windows into a new tab instead.
Doesn't work on Edge 119.0.2151.93 either.
Initially it doesn't open the pop-up. Once I allow it, it opens correctly in a new window, but the smaller window doesn't move with the mouse.
Reminds me of Gettier Problems in Epistemology :
A desert traveller is searching for water. He sees, in the valley ahead, a shimmering blue expanse. Unfortunately, it’s a mirage. But fortunately, when he reaches the spot where there appeared to be water, there actually is water, hidden under a rock. Did the traveller know, as he stood on the hilltop hallucinating, that there was water ahead?
Here's a real world example :
https://www.instagram.com/p/CzWlxkbp0vT/
Imagine a video feedback loop version of gettier problem where the problem is resolved only at the Nth nested level.
Sort of like this short story : https://qntm.org/responsibility
Once I changed half my working code ( and wasted an Hour of time ) before realising that I was testing different code. On the other hand, now newer code had 10 times more testing points.
This reminds me of an old PC game called DX-Ball that my uncle and I used to play back in the late 90s/early 2000s.
Super cool project, OP!
DX-Ball was really great! The block breaking animations and overall polish are very memorable for me.
You sent me searching for it with your comment, and it's still around: https://gamesnostalgia.com/game/dx-ball
File size: 380k. I miss those days.
I love it, OP. Really creative take on the original game and this is a totally unique use of windows as an input. It's smart on many levels.
I wonder if this game could be used as a benchmark for alternating attention (switching between tasks.) People with disorders like ADHD and others that effect executive function are supposed to have difficulty with this. So it would be interesting to see if ones score increased off medication vs on medication. Or even if a healthy person saw an increase with stimulants.
Psychologists love games like this because it lets them study isolated aspects of cognition in a standardized way. It's honestly a cool project.
It's smart on many levels.
Two levels. ;-)
Neat! I didn't know this was possible!
I absolutely don't want to play it all the way through but that is irrelevant, love it
This is beautiful.
This is soooooo gooooood! Love it! :D:D
Only one level deep?
Does time go faster in the smaller one?
It is rather difficult with a tiling window manager
Wow, this is clever. And for once, it's cleverly weird in a way that is interesting to play.
Not only do you have to deal with playing two games of breakout at once, but the same mouse controls two paddles simultaneously, but at different scales.
The interesting challenge is when the two balls are briefly in sync but you can't hit them at once. You have to move the window paddle up so you hit its ball earlier, then go and get the tiny ball. Easier said than done though...
Very clever. Well done!
This game is so silly it makes me laugh. It works great on Windows 10. I don't have that fancy trimmed chrome titlebar just the regular box style.
It reminds me of a program my brother wrote in high school that would spawn invading spaceships (Java Triangles) onto your desktop and they would bonk your mouse around.
Meanwhile, I was in the corner of the lab playing Starcraft.
I would like to see additional windows spawned after a certain point for a true 'brickception' experience.
This is absolutely wonderful! I didn't think it would work with my setup (bspwm and Firefox 115), but it did. I consider myself pretty good with these kinds of games, but this really does take Breakout to a new dimension, with a difficulty to match!
Reminds me of one of my favorite games of all time: The Mountain and the Motorcycle: https://achewood.com/2004/07/13/title.html
Hard crashes Chrome for me (all windows instantly disappear on pressing 'LAUNCH GAME') - Chrome beta (120.0.6099.35) on Wayland (not using X) on Ubuntu 23.04. I wasn't expecting it to work due to Wayland, but the crash was impressive!
Reminds me of reYal, a game with "recursive" controls a friend of mine created: https://store.steampowered.com/app/1080780/reYal/
Why stop at depth 2? ;-)
Somewhat related game: https://store.steampowered.com/app/1533050/Press_Ctrl/
Great idea!
(It doesn't seem to allow 'steering' of the ball by varying where it hits the bat, though?)
Reminds me of a thread on HN from 2013 that turned tic-tac-toe into something much more interesting and in a same way meta [1]
I made a simple online playable game of it back then: http://mck-.github.io/T3/
This is simultaneously, amazing and terrible. Congratulations!
Hitting the last brick was the worst. Instead of pausing the top maybe swap the playing fields so I have more control over the paddle/ball? It took over 2 minutes just to hit one brick in the smaller one
If this gives you an appetite for more block-breaking, check out Pippin Barr's BREAKSOUT, a collection of 36 wacky variants of Breakout: https://pippinbarr.com/breaksout/info/
See also: https://news.ycombinator.com/from?site=pippinbarr.com https://news.ycombinator.com/from?site=pippinbarr.github.io
The amount of anxiety that imagining playing this game gives me is considerable. Very cool idea though.
I had a similar idea using two windows for a game. One large window with an overview map and a popup window you can move around as a magnifying lens that shows details and lets you interact.
However, I never tried implementing it.
Frustratingly difficult: I love it! The cleverness here is excellent. Well done!
The paddle seems buggy.
It seems like the "right" side of a paddle always increases the speed, while the "left" side of the paddle always decreases the speed.
This behavior should be direction dependent: ie: the left-side of the paddle should push the ball to the left, while the right-side of the paddle should push the ball to the right. Classic breakout controls.
For the first 2 or 3 games, I thought you couldn't control the speed. I was wrong, its just that the speed-control in this game is very small (it requires about 6 or 7 bounces to go from minimum speed to max speed), while also having a very non-intuitive speed/direction control scheme for the paddle.
The ball in the lower window only bounces off the browser's chrome and not the title bar. This is making the game harder than it could be (and possibly an unfixable problem?).
Also I have wobbly windows and that makes the game hard too.
Can someone write an RL bot to play this game?
This idea is amazing yet completely evil at the same time.
Reminded me of this pong inside a sprite tutorial for the c64:
I tried changing the size of the smaller window, and it worked briefly to allow the ball to bounce off the now-larger size, before the game snapped the window size back to the original.
It made me think that changing the window could be part of the game somehow. Perhaps as you drag it bigger the playing field of the smaller game increases in width, so that game becomes harder (and also you can't move the paddle as far because your new window is too big to drag).
Or maybe you should be able to capture the ball in the big window into the smaller window, and the size and position of the smaller window determines its entry point.
Hahaha genius. Doesn't work on safari/mac os for me for some reason (console says "maximum stack size exceeded") but works fine on chrome
(2019)
Blast from the past, the author had a Show HN: https://news.ycombinator.com/item?id=20126142
Same Linux/Firefox experience here, and I'm on Wayland, which I have a feeling might be relevant.
Edit: also GNOME 45
To add another data point, it works for on me on Linux/Firefox/X. So the Wayland theory might be correct.
Which makes me glad I am using wayland. I am not comfortable with the idea that one browser window could be aware of things like the position of another browser window on my desktop.
Are you really that worried that firefox is aware of the desktop coordinates of 2 of its own windows?
Firefox knows where all its windows are, of course, but that’s not the potential issue being raised. The problem is allowing untrusted javascript access to that info. Luckily, Firefox doesn’t do that, it only allows you (JavaScript author) window information for the windows you’ve directly opened in code.
Actually I don't think Firefox knows the position of the window in Wayland. I thought that coordinates of windows were considered as a compositor concern and not shared with the client.
Not on Wayland it doesn't. Nor does it know if either window is visible, nor if it has been damaged since the last render.
Better even: the parent window knows the position of it's child window. So firefox only knows the one window. And that in a situation where you actively had to allow the permission for the parent to spawn the child in the first place.
Sounds nothing but reasonable to me.
The browser doesn’t communicate such things between unrelated clients, say, on different domains. The browser does allow a site to communicate with the popup that it opened, which is what this game is doing, and is not problematic.
Are you aware of the window.screenX property? It does not really seem to have any restriction. Does it?
https://developer.mozilla.org/en-US/docs/Web/API/Window/scre...
Yes, you can access window.screenX for your own window, but not for other windows. If you’re writing code for an iframe embedded into a domain that’s not yours, your code does not have access to the parent’s windows.screenX.
Same with sway. It also tiles the windows for you, which doesn't help.
works fine for me on:
upper bound of the inner window is not perfect thoughso you have KDE on top of Qt on top of Wayland on top of Firefox -> are you running wayland in Firefox? if yes, you might run Firefox in Wayland instead of xorg to have some further *ception
Game is working fine for me.
Linux/Chrome on gnome with enabled wayland ozone.
Linux/Firefox: Works fine here. KDE Neon 5.27
Only issue is the low resolution screen on my old Thinkpad makes it difficult to see the entire game area.
Super cool game! Plays great on higher res screens, just wanted to test on Linux.
Linux/Xorg/Firefox/KDE Paddle coordinate gets updated only when I release the paddle window.
Linux/Wayland/Firefox: it doesn't interact with the window since wayland probably doesn't provide location data.
Linux/Wayland/Chromium: chromium crashes as soon as I click "launch game" :))