9 ms·
Show HN: Huewords, a Word and Logic Puzzle
This is a game I wrote over the last month and a bit.
The effort allocation was pretty different from what I've done in the past.
The game design snapped together very quickly: I had the initial idea, played a couple of games on a spreadsheet to get a feel for the idea, and made one change based on those plays. After that everything felt just right through multiple rounds of playtesting. Likewise the puzzle generation is nowhere near as elaborate as in my previous game, fairly simple methods worked well and provided good variety.
Instead I ended up spending silly amounts of time on curating the word list (including using LLMs to guide the curation) and on iterating on the UI. The basic UI concept never changed, but the details basically never survived for very long after starting a new playtest round.
- tantalor 2y agoTook re-reading the tutorial to realize TAB key was required to switch groups.
- jsnell 2y agoThanks. Is there something you tried doing instead for switching groups, or was it more that you didn't expect to need to do it?
- nilstycho 2y agoTripped me up too. I didn't expect the need. Then I thought maybe there was some restriction of which blocks could go where, or which blocks needed to be placed first. The first letters I placed, by coincidence, worked fine, so that contributed to my confusion. I thought color would be assigned automatically as soon as possible. So if there was an ABCD block and a ABEF block, then you could place an uncolored B, and as soon as you placed an F in the same block that block would get ABEF color.
- jsnell 2y agoThanks for the explanation! Wanting to just type and have the game do the right thing is a very reasonable expectation, and auto-assignment is an interesting idea. It might need to be a one-way street to avoid unpredictable cascades though, such that you can go from "any letter A" to a "concrete letter A in that specific group" automatically, but not from a "concrete A" to "any A".
- unholiness 2y agoAnother approach (what I assumed would happen) is to have each group's logic independent, and not cascade. So it doesn't matter if I've already assigned the ABC group, typing a single A keeps the ADE group white, up to uniqueness. I think the biggest issue with group assignment is the fact that you just can't type while the wrong group is selected. I don't care what tools you have for narrowing down letters, if I see a solution in my mind, I should be able to type it out like I could on a piece of paper. Assignment feels more like adding flags in minesweeper (optional, helpful) than part of the solution.
- mock-possum 2y agoOh this is fun - takes a second to wrap your head around, but the way the groups of letters fit into the grouped slots is a neat way to lead the player along into guessing the correct placement
- deleted 2y ago[deleted]
- rockostrich 2y agoVery fun. It definitely gives the crossword muscles a little workout once the logic for the given word is figured out. I guess I'll have to add it to the daily rotation of brain games to play daily...
- smeej 2y agoThe biggest thing I need is the ability to delete a letter from a square without having to undo all the way back to when I thought the letter went there. Replacing the letter with a different one doesn't help. I need to be able to get it back to just listing the unused options for that color group, and I couldn't figure out how to do that.
- jsnell 2y agoOn keyboard, backspace or delete. On mouse, right-click or drag it off the board. On touch, drag it off the board. (I've updated the instructions.)
- smeej 2y agoAh, thank you! It wasn't clear to me that dragging was part of the touch UI at all. I thought it was "tap square, tap letter to put in square." And then I couldn't find anything to tap to remove a letter from a square.
- bpm140 2y agoHas a lot of similarities to Knotwords (https://playknotwords.com/ https://playknotwords.com/). I like both implementations. Well done!
- bitsinthesky 2y agoIm surprised there are more word games out there that are legitimately fun! Good job with it. I like the design choices of the site as well.
- gothink 2y agoThis is a really fun and novel word game! Thanks for sharing it. I did find one small bug while playing: if you drag a letter off the grid, it doesn't properly update the squares on the grid for that group. The space where you removed the letter stays blank, and the remaining places don't show the recently removed letter as a possibility. I noticed that it works as expected when right-clicking to remove the letter, however.
- jsnell 2y agoThanks for the report, and the kind words! I couldn't reproduce the bug on three different browsers, so there's probably some kind of an additional constraint for just what triggers the bug. Based on the description there should be an exception printed in the the JS console. If this happens again, I'd appreciate seeing the top of the stacktrace. (And in the meanwhile, this is is an object lesson that exception reporting to the server has to be included even in an MVP. Anything that one player reports, dozens of others must have seen and not reported.)
- gothink 2y agoI had left the tab open, so I checked the console and there weren't any exceptions, just the output generated from the game being set up. I refreshed the page to test again, and selecting "small" brought up the same puzzle that I previously confirmed the bug with. This time, everything worked as expected though! I'm using Firefox on Linux which could very well be the culprit here -- I recall an issue with drag and drop that was fixed in a recent changelog. I'll reach out if I run into the issue again.
- murphyslab 2y agoFun game, although it would be helpful to have the "How to Play" instructions ( https://huewords.snellman.net/help.html https://huewords.snellman.net/help.html ) explicitly state that shorter letter sequences (2,3,4 letters) do not need to form words. That's an expectation built up from many other crossword games, so it would be good to nullify it through a clear statement that the usual crossword rules do not apply here.
- jsnell 2y agoThanks, I've added an explicit statement to that effect. The instructions were very terse to start with, due to a misguided attempt to keep them to one page even on tiny screens for aesthetic reasons. I gave up on that, but maybe didn't take enough advantage of the now infinite available space.
- llamaz 2y agoExcellent game. I also suggest adding instructions that words can only be top down or left-to-right. I was trying to fit right-to-left in some cases initially.
- digging 2y agoReally great controls. All the mouse interactions are very intuitive. Keyboard slightly less so, but they work well once they're understood.
- kybernetikos 2y agoI found it very addictive. Is it guaranteed that there is always enough information to solve it with just one given word?
- jsnell 2y agoIt kind of depends on what you mean by there being enough information to solve it. There's a guarantee that at least one solution exists, but not that it's unique. There's no guarantee on exactly what kind of process you can use to find that solution. Sometimes it leans more into logic, sometimes into pattern matching, sometimes into reasoning about what kind of n-grams appear in English, and some times playing the odds a little bit. I've played hundreds of levels of this, and not yet seen a level that felt like brute force was the only option. This is the kind of thing I meant when saying in the description that the puzzle generation isn't as elaborate as normal. It'd be easy enough to for example guarantee unique solutions (assuming the dictionary is static), or to make guarantees about exactly how many positions the first word can be in, but that also reduces the variety, and I don't know for sure yet what kind of levels end up being the most fun. The hints are really there to allow players to self-balance the difficulty, and to allow for an escape valve if the puzzle is/feels unfair.
- zharknado 2y agoVery fun! I like the sudoku/crossword mashup it creates in my mind.
- jstanley 2y agoReally cool puzzle, thanks for making this. I noticed a small bug: I asked for a hint, when I went back to the menu and then visited the large puzzle again, the hint was gone, but when I clicked "hint" again, it appeared twice.
- lukemerrick 2y agoJust spent two hours on this. Would happily spend the time again (and probably will soon!). Awesome work.
- gramakri2 2y agoNice game! Finished a small one now - https://huewords.snellman.net/share/44s0 https://huewords.snellman.net/share/44s0 . Let me try something harder.
- gramakri2 2y agoand here is today's but if I copy I don't get a link . Just "Huewords Daily #44 solved in 06:17 with no hints! https://huewords.snellman.net/ https://huewords.snellman.net/"
- jsnell 2y agoHi. The difference intentional, but I could easily be convinced that it's the wrong decision. Here's the thinking: Basically if you allow deep-linking into the daily, they kind of stop being a daily puzzle. They'll also confuse new players following the link, because they'll be thrown into a more complex puzzle than most are prepared to tackle without doing the tutorial and a small puzzle or two. Hence the link to the main menu. While for the non-daily puzzles, playtesters from were requesting the ability to deep-link into specific puzzles to share them from very early on. And it makes sense for those links to be long-lived, because those puzzles are not being presented as being time-limited unlike the dailies. So the link has a fairly different use case.
- gramakri2 2y agoyeah, that's fair. Maybe just remove the share link for daily puzzles? Great puzzle btw.
- nvln 2y agoFiddleBrix[1] is similar. [1]: https://www.fiddlebrix.com/ https://www.fiddlebrix.com/
- abbm 2y agoNice work! I particularly appreciated it telling me what the potential letters were for each remaining square after I’d started filling out a particular colour. Well done!
- throw46365 2y agoGood stuff. One of the words I had to solve was a plural ending in S. Wordle-type games don’t use these words, generally, and I have played so many of those that I found this oddly jarring, perhaps because your grid is 5x5.
- cubefox 2y agoAn interesting game idea! However, currently it does lack tension. There doesn't yet seem to be a limited number of "moves" and guesses, so there is no danger of failing, and therefore less of a sense of satisfaction when you win compared to, e.g., wordle.
- jsnell 2y agoThat's fair! This is intended to be a game more in the style of crosswords and Sudoku than Wordle.
- chris_st 2y agoFun game! Have you checked to see if the colors are safe for colorblind folks? There are great resources on the web for color sets that are good for everyone.
- quibono 2y agoNice game! I played it yesterday and came back to it today as well. One question, and I think you partly already answered it - are the boards generated manually?
- jsnell 2y agoGlad to hear you came back to it. The underlying board layouts were generated manually, and are reused. They can get flipped for more variety though. Everything else about a puzzle (splitting the chosen board to areas, placement of words on the board, choosing the hints) is automated.
- quuxplusone 2y agoVery nice game! I'm very surprised that (IIUC) you say you managed to automate the generation of such lively fills. I've gotten words such as SIGMA and ANGST in helpful and surprising positions. On the other hand, automation might explain how I got one grid involving BHAJI (a food I'm not familiar with — I thought maybe you expected it to be familiar to your readers, but now I suspect it was put in by an uncaring computer). The word list knows BHAJI but not KEFIR. I also got a grid involving TEATS, which doesn't pass the breakfast test. That made the grid somewhat unfair: I've internalized that I can prune search branches involving e.g. STOAS in favor of STOAT, and I expect to be able to prune branches involving e.g. PENIS in favor of PERIL. If it turns out that the only viable solution depends on exploring one of those seemingly-signposted-as-prunable branches, well, that's frustrating. So you may want to take another pass over the word list. Kudos on a very well-crafted game! Again, it's really impressive that you managed to create so many rewarding puzzles — and even more so (basically incredible) that you managed to come up with an algorithm to auto-generate them!
- jsnell 2y agoThanks! It's just the word layout that's automated. The word list (about 4k words) is entirely hand-curated. I had some tooling to make it easier, but every word was selected by me rather than automation. But obviously it's impossible for any single person to be propely calibrated, mistakes can happen, and I'm not a native speaker so there are some odd blind spots in my vocabulary. "Bhaji" was a word I personally thought was fairly common. If I had to name three Indian dishes, it'd be one of the three. But it might be too regional; when it was brought up in a playtest group, a person from UK thought it was basically in daily use while continental Europeans insisted they had never heard of it. So it'll probably go the next time I revisit the word list. Re: "breakfast test", I'd not heard it phrased that way before, but immediately know what you mean :) My intended policy was no slurs, genitals, or sexual violence, and no vulgar words for bodily functions or body parts. This doesn't match the classic exclusion list exactly, but is at least similar in spirit. I expected "teats" to be fine, since to my mind it's only used for animals and human constructs (like baby bottles), not humans. But removing borderline words is cheap, offending some players is expensive :) Note that the game does make a distinction between words that are accepted and words that can appear in puzzles. I mostly move words from the latter to the former rather than remove them entirely, so if you go probing for controversial words, you might find a handful of other examples. But the intent is definitely for there to be a "voice" in the word selection, such that entire categories of words are predictably in or predictably out in a way that the player can get an intuition for. I'll definitely make another pass once I've internalized the player expectations better.
- polivier 2y agoI wrote a constraint programming model to solve this game. For those interested: https://github.com/PhilippeOlivier/huewords-solver https://github.com/PhilippeOlivier/huewords-solver
- valhalladev 2y agoOh wow... this is infuriatingly hard lol
- gnramires 2y agoIt wasn't clear to me you can place colors/groups arbitrarily -- maybe add "Each group can be assigned different colors based on location." to instructions. Maybe color each group background instead of individual letters. Perhaps when you type a letter that comes from multiple possible groups, open a dialogue for choosing the group. Bhaji is a bit of an unexpected word (or, I learned a new word :) ). Nice game :)