[HN Gopher] Show HN: I wrote a symmetry game with a daily puzzle
___________________________________________________________________
Show HN: I wrote a symmetry game with a daily puzzle
I've been working on a puzzle game for a few years as a side
project. The game is based on a small region of tiles in a grid
that is mirrored, modified, and mirrored again. It's based on a
novel phenomenon I noticed where, once these mutations happen a few
times, the original region can be hard to recognize. You have a
feeling there are symmetries in the image, but they are just out of
grasp. Going further, if only part of the region is visible, such
as mirroring off the edge of the board, it adds to the feeling and
it becomes a satisfying puzzle to solve. I originally published
this on the app stores, but after spending some money on marketing,
I didn't have line of sight to something people would pay for. I
had built it around a hosted level API to tweak levels between
version releases, making it prone to software rot over a few years.
SSL certs would expire, credit cards would expire, App Store
agreements need to be renewed, etc.. Without a continual drip of
effort I wasn't motivated to put in, it defaulted to broken. With
that software rot in mind, and hoping to make something that would
be around for a while for my friends and family to play, I started
making a web-only, client-side only version. Still prone to rot,
but not nearly as many moving pieces. It's missing some of the
polish of the original and the puzzles aren't hand curated with a
graduating difficulty, but it's playable on many modern devices.
The generated puzzles are good ~75% of the time. I'm still working
out how to detect the dud puzzles- they are playable, but not fun.
I've got ideas on what defines a "good" puzzle, but haven't
formalized them into a fitness function yet. One other note- while
there are almost definitely UI bugs (please report!), if it says
the puzzle can be solved in X taps & flips, it can. Those numbers
are derived from how the puzzle itself renders, so it's
(thankfully) not prone to producing impossible to solve puzzles.
Merely ones that may appear so at first-- hence the name. Today's
puzzle is a good difficulty to start with, a new one generates
daily at midnight EST. There's no cookie or tracking, so let me
know if you're playing!
Author : james_marks
Score : 74 points
Date : 2024-05-15 15:11 UTC (7 hours ago)
(HTM) web link (www.hidden-mirrors.com)
(TXT) w3m dump (www.hidden-mirrors.com)
| wonger_ wrote:
| I like it! The tutorial levels were quick and effective. It's a
| new game mechanic I haven't seen before. And today's puzzle is a
| nice intermediate difficulty. Some other thoughts:
|
| - I always wish daily puzzle games like this had an archive of
| past puzzles.
|
| - The scroll down section felt odd. Maybe an HTML #anchor tag
| could jump the user to the game screen
|
| - Settings button wasn't working for me. Not a big deal tho
|
| - some extra UX polish always feels nice. Like animations, sound
| effects. Maybe some color and spacing tweaks. Maybe making the
| taps/flips numbers more noticeable.
| james_marks wrote:
| I... forgot to implement or remove the Settings button, it's
| literally just a piece of text. Sorry!
|
| There's a nice 3D animation where you can see the region come
| towards you as it "flips" in the original, I'll look at
| bringing it back at some point.
|
| Archive of past puzzles is a good idea.
| carom wrote:
| On Safari iOS this somewhat trapped me on the game screen. I had
| to close the tab.
| ballenf wrote:
| Is this only for mobile devices? On safari, I can't scroll down
| to the game and in a chromium browser I can't get a swipe gesture
| to register. MacOS.
|
| On phone it works perfectly and is very cool! Nice work.
| anonu wrote:
| Works on desktop
| anonu wrote:
| I like it. Took me a good moment to figure out the controls and
| concept but it's fun. Nice work.
|
| The midnight puzzle feels like Wordle style. I'm not sure that's
| going to pickup in this case. I would just open up all the
| puzzles. My 2 cents
| james_marks wrote:
| Definitely some Worlde influence!
| lovegrenoble wrote:
| I like minimalist puzzles, especially addictive ones, like this
| https://brainteaser.top/knot/
| dave333 wrote:
| Got stuck on the first swipe diagonal example - tried about 25
| swipes but not the correct one. Need a hint or even solve button
| until I get how these work. Then after I went to the daily puzzle
| I couldn't get back to the training examples.
| SamBam wrote:
| I simply can't trigger a downward diagonal swipe on my phone.
| It starts immediately as a horizontal swipe, and then the
| downward component scrolls the whole game area downward, while
| not affecting the swipe angle.
|
| Even if I start with a downward swipe, it treats that as a
| scroll action, not a swipe action.
|
| This is in the tutorial. FF on Android.
|
| OP, have you considered making each level a non-scrollable
| page?
| aradox66 wrote:
| Having this problem also, swipes with a vertical component
| are simultaneously scrolls, which messes up the angle. FF on
| android.
| james_marks wrote:
| Have not tested the FF x android edge, thanks for the heads
| up.
| james_marks wrote:
| Sorry, that sounds awful. I'd prefer non-scrollable but so
| far have optimized for causing the address bar to retract.
| Obviously haven't nailed it yet across all devices.
| munchler wrote:
| Fun game. Here's a small bug report: If you reset the puzzle
| while a flip is active (but incomplete), the flip UI remains
| active after the board is cleared. (Desktop user.)
| james_marks wrote:
| That's a good one, thank you.
| pimlottc wrote:
| Took me a while to figure out how to swipe on desktop, it doesn't
| work unless you both the start and the end of the swipe lie
| within the grid. So it's sort of less of a fast "swipe" and more
| of a "click-and-drag".
| jpeggtulsa wrote:
| How do you do the "Swipe out of bounds" one on desktop?
| pimlottc wrote:
| The swipe itself doesn't need to end out of bounds, it just
| needs to be in the right direction.
| james_marks wrote:
| Click and drag. You have to start and end within the grid,
| which is probably what's throwing you off (and kinda dumb... on
| the list to fix).
| untech wrote:
| I've definitely enjoyed working out today's puzzle. Thanks!
|
| However, I am not sure about the daily aspect. I doubt I'll
| remember about the puzzle tomorrow, and in any case, I like to do
| puzzles in larger batches, like for one hour in the evening.
|
| Re: visual design: I think showing the actual line of mirroring
| would be nice. Also, the numbers of taps and swipes were too
| small for me to notice, I've discovered them quite late.
| james_marks wrote:
| Thanks- Good idea re: batches & line of mirroring.
| carlsverre wrote:
| This was fun to figure out! Nice job!
|
| For today's daily puzzle, there are two solutions that give
| different rankings but are effectively the same in terms of
| moves. You can solve it with 3 taps 4 flips or 2 taps 5 filps.
| It's not clear why one solution is more efficient than the other
| since the first two taps or the first tap+flip cover the same
| amount of the board.
|
| Perhaps a scoring system that was based more on how efficiently
| you cover the board would allow for different solutions to be
| equally valid?
| james_marks wrote:
| The scoring system gives 2 points for taps 1 for flips. Lowest
| score wins.
|
| Generally, the only time you'd be penalized for an "alternate"
| solution is when a flip adds a single tile, like you're
| describing. Any other scenario the flip _is_ the most efficient
| way to solve the puzzle.
|
| One fun thing- because of this edge, you can occasionally
| "beat" the generator and solve a puzzle with a tap left over.
| bubblebeard wrote:
| Very nice work! I really enjoyed playing it. One little thing I
| noticed, at one point I wanted to exit the page and doing so on
| my Iphone was a little tricky, maybe adding an exit btn would
| help. Really fun game though, great effort!
| james_marks wrote:
| Exit button to release the UI controls is a good idea. Thanks!
| aaroninsf wrote:
| Very clean. Great effort to crack the Wordle daily-game space.
| Has potential.
|
| Suggestion:
|
| - make it very explicit that interactions have a mandatory
| ordering
|
| - make it very explicit that you cannot un-select pre-selected
| tiles
|
| - make it very explicit that you cannot select "background" tiles
|
| - differentiate phases, "prep / setup" vs "reflection"
|
| Bonus ideas for v1.1:
|
| - track "interactions" accumulating, and provide a mechanism for
| replaying them (eg "scrub the timeline back and forth").
|
| - help mode: as you "consider" a swipes and the "compass" is
| shown, have an assistance mode which indicates provisionally the
| impact of a swipe in each direction as they are selected (but not
| executed)
|
| Re: differentiating "phases," AFAICT you must always FIRST do any
| "selection tapping"; and then you must do ONLY one or more
| "reflection swipes." This was confounding to my way of thinking.
| I found myself repeatedly making the "wrong" move because while I
| saw the solution, I was attempting to execute it in a different
| order.
|
| Or thought I did; because "tapping to fill" ("that's one way...")
| is allowed, the fact that it is a degenerate solution is not
| clearly expressed; nor is the fact that there is (I assume)
| always an "optimal" solution which always involves "prep"
| followed by one or more reflections.
| james_marks wrote:
| There are many correct sequences and often (not always) more
| than one solution. The sequence matters only matters when:
|
| - It changes the region that reproduces - If a Tap and a Flip
| produce the same result, scoring prefers the Flip
|
| If you feel like a sequence is being forced that doesn't fit
| one of those, I'd be curious to see what it is.
| ejang0 wrote:
| I enjoyed this a lot. Thank you.
|
| Feedback: Desktop with trackpad, I swiped and my pointed ended
| out of the grid and it doesn't let this swipe occur.
|
| Echoing others: - "the numbers of taps and swipes were too small
| for me to notice, I've discovered them quite late" - "The scroll
| down section felt odd." - on desktop I couldn't figure out what
| "swipe" meant for a bit (just click-and-drag)
|
| Thank you again for this gift.
| james_marks wrote:
| Glad you're enjoying it, thanks for playing.
|
| Great comments and some new bugs on my list.
|
| The "scroll down" is definitely odd, I haven't quite decided
| how to handle that.
|
| The reason for it is the floating address bar on mobile
| browsers- the only way I can find to minimize them is an
| authentic scroll of the page body. window.scroll() methods or
| anything I try to do that doesn't literally display an
| overflowing body requiring a scroll, and it won't retract.
|
| To have the address bar full height while I'm trying to play
| just kills it for me. I've got some great animations from the
| original version I haven't brought in yet; the scroll down
| might "reveal" the puzzle with an animation that feels more
| natural.
| wonger_ wrote:
| The fullscreen API might help you rid the address bar. Or as
| another comment said, implementing as a PWA.
| MourYother wrote:
| Mobile Firefox Bug: I cannot swipe down, it scrolls.
| james_marks wrote:
| Added to the list, thank you.
| tarentel wrote:
| This doesn't appear to be working on Safari desktop either.
| closetkantian wrote:
| I liked it, but I found it too easy.
| ThomW wrote:
| Safari in MacOS just shows a screen full of "Scroll down" after
| the initial "Let's Go" is clicked. :/
| LudwigNagasena wrote:
| Yeah, you have to scroll down using your arrow keys. The swipe
| aid in the game is still bugged though.
| james_marks wrote:
| I think it's specifically scroll-wheel on a mouse that
| doesn't work in Safari, which I can't readily explain.
|
| Adding to the list.
|
| Can you elaborate on the swipe aid being buggy?
| acheron wrote:
| This is good. Worked fine in desktop Firefox once I got the hang
| of it.
| lilyball wrote:
| I think my feedback has already been captured by others, but I'll
| say it anyway just to help you get a sense of how widespread this
| feedback is.
|
| I first opened this on my laptop with a trackpad and was confused
| at how scrolling did not work on the "scroll down" section. I
| ended up reopening it on my iPhone in order to try it. I see from
| a comment here that you're using this in order to get rid of the
| floating address bar. Your solution does not work, because if I
| tap to bring up the address bar once I'm in the game, there's no
| way to make it go away again and it covers up the bottom bar. So
| either you need to just live with the idea that the address bar
| will be visible, or you need to find another solution. [Edit:
| trying again, bringing up the address bar reverts it back to the
| "scroll down" screen. The first time it didn't though, so
| whatever you're doing here isn't reliable].
|
| I also notice that if I add it to my home screen, the icon just
| opens it in Safari again. You don't have the metadata set up that
| allows it to be a PWA. Even without taking advantages of any of
| the extra capabilities of a PWA, it's still nice to support so
| that way I can have a home screen icon that opens it as its own
| thing (and this also gets rid of the bottom bar entirely). Every
| other daily puzzle I play is either in its own app (like NYT
| Games) or is a PWA.
|
| The tutorial sequence should have some indication of how far
| along I am. I was starting to wonder if it was going to go on
| forever when it finally dropped me in the real game. It also
| should have a step telling me that I'm done with the tutorial and
| that I'm about to play the real game. This step would be a good
| place to point out the bottom bar with the tap/swipe counter
| because I completely missed that until I came back to read the
| comments.
|
| The "Copy Stats" button should probably be a "Share" button
| instead that triggers the share sheet (at least on mobile; I
| don't know what other daily puzzle games do on desktop, maybe
| they still use the share action there too?).
|
| Overall it's a fun game though! I can see myself adding this to
| my daily puzzles.
| james_marks wrote:
| This is great- I didn't realize PWAs could launch without the
| address bar. That changes my whole approach to the layout and
| can likely solve many of the bugs being described.
| lilyball wrote:
| I don't know what the experience is like on Android but on
| iOS a PWA opens in a completely separate process, without any
| browser chrome at all. It feels exactly like a native app
| that renders to a fullscreen webview.
| TheGRS wrote:
| Pretty fun! I would recommend looking up "juice" in gaming and
| adding some spicier animations just to make it a little more
| satisfying to play. The idea is pretty fun though!
| james_marks wrote:
| New vocab for me, perhaps not surprising :)
___________________________________________________________________
(page generated 2024-05-15 23:02 UTC)