Hexara -- work in progress

http://www.java-gaming.org/user-generated-content/members/27722/hexara141130.jar
[Updated 11/30/2014]

http://www.hexara.com/game.html
[s]Takes about 3 minutes to load. :frowning: There’s so much to do, starting with streamlining the sound load (about 1 minute, 30 seconds of .wav data comprises 15MB and there is less than 200KB code and 15 tiny pngs). And much to add to the visual design & sequencing, but some basic playability is there.

To play: first select LOAD from the top left menu button. It loads, in sequence, five sample puzzles of increasing difficulty. Other choices on the Menu button are disabled or not written yet. The goal of the puzzle is to make all six symbol sequences (on the six green “hanging scrolls”) exist within the hex grid as neighboring-hex sequences. One can click and drag the tiles.

This is all core java, javax.sound, and uses passive rendering. The images are mostly built via BufferedImage, not counting the .png symbol set that displays inside the gels.[/s]

Thanks for any feedback and encouragement.

http://www.adonax.com/Images/HexaraShot.JPG

This shows a partially completed puzzle. The first scroll on the right (light green with red border) has all it’s tiles in the Hex grid as neighbors. The spokey thing doesn’t have to be next to the eye. What counts is the sequence, eye-nextto-moon-nextto-spokey.

Screeny looks nice, but seriously, you’ll lose 99% of potential players unless you can drop the load time. I gave up after 30 secs :-
For 3 mins load time people will expect a bit more than a puzzle game… Are the sounds really that vital? Can’t you use midi or something instead?
Put up a 200K ‘no sounds’ version & I’ll try it!

You are absolutely right.
I’ll work on the “no sound” version, shouldn’t be too hard. [Edit: Silent version, loads in about 10 seconds, is now up. Link is on first post of this thread.]

Any suggestions for playing back .mp3 or some other compressed format instead of .wav?

As a person with audio background, it is hard to let go of trying to make the sound quality really high.

I love the sound… quite peaceful and adds to the mood.

Dragging symbols is a pain… imagine playing on a touchpad or ipad. Should be able to click source and dest separately too.

If both source and dest are already placed then they should switch positions instead of clearing the source.

The shades of green are too subtle and hard to see. Same with the circle to hex surround.

I find the puzzles quite hard actually. Took me probably 15-20 minutes to finish the first.

Thank you! Much appreciated. I was thinking that when a “scroll” gets completed in the Hex grid–it becomes “energized” somehow. The lighter green is a placeholder measure. I’m thinking I’d like to make the scroll surface itself have some animation. Not sure how I’ll implement this yet. Perhaps make a series of patterned paints that get cycled? Also looking at crazy notions like creating a voronoi-type skin and have it start vibrating around when the scroll is completed.

I really like the idea of switching the tiles. Hadn’t gotten to it yet. [Edit: added 1/24/11] Was hoping to get feedback, such as yours, that this really would be helpful. I’m also considering ways of doing three-or-four-way switching, taking a block of hexes and kind of rotating them in place. The click-source-destination, that I hadn’t considered in a long while, but will think about again. This is what I get for not having a handheld. Clicking and dragging is not easy to do in that context?

I like the idea of a peaceful atmosphere, as it can help concentration, and as such, an important part of the overall concept. It IS a difficult puzzle, like the last half of a good hard sudoku. I was envisioning it being something where one would only tackle one a day, and it would take a pleasant part of an hour to solve.

Am now looking into a suggestion that sound resources can be obtained from the server rather than from the jar. Maybe the best of both worlds is possible (fast load, high quality sound)?

[Edit: so far, no luck. Any suggestions as to whether this is a viable path or not?]
[Edit #2: more discussion on this in post #10.]

You could open a URLConnection to the server your applet is hosted, load your sound effects as ogg into a ByteBuffer while showing some intro-screen and play them in the game via jorbis.

haven’t you tried OGG sound instead of wav ? I believe WAV is the worst alternative possible .

Quite interesting, but I really miss beeing able to swap two pieces. Also, I want to be able to rotate them three and three. Place the mouse in the center of three pieces and right click to rotate them. Or something.
Technically, it works good.

Thanks! I will look into this. I’ve never used OGG, and will have to figure out how to convert the WAV to OGG. I’ve been doing my music work in Sonar Homestudio, and they don’t have an export to OGG as far as I know. Will look into this.

The idea of playing the sounds from the server is of course (now that I tried to do it) a non-starter. The game loads quickly, but the repeated calls to the server for the sound files are ludicrously inefficient, especially since I was trying to allow overlapping sounds. Imagine trying to stream four or five audio files at the same time.

As long as the audio files end up on the client side, a background loading thread is a plausible strategy. Thanks for pointing me at OGG. I suppose I should look at MP3 playback as well. I just really prefer avoiding its lossiness, and want to be stubborn and see how far I can push audio quality for that significant minority of people who are as much or more sound-oriented than visually oriented.

[Edit: I’ve just run across FLAC, a free lossless audio compression! They are claiming 30%-50% lossless compression on audio files. AND, it is supported by OGG.]

Thank you Markus! I’m wondering how to do this without requiring keyboard keys, such as shift-click or alt-click, or s (for swap) click, or c-for chain rotate?

There could be a baseboard button that swaps the mode between click&drag vs click source, click destination. But that could be a bit annoying.

I was considering some sort of scooping of multiples tiles. But clicking in the vertice would be a lot friendlier.

Ooohh! ;D Inspiration: clicking on the line (space) between two hex grids causes a swap! [Edit: added 1/24/1] Rotate of three could be in the vertice. Rotating a block of four–would require a vertice and a single swap. Very doable.

What is implication of dropping a tile into a vertice or edge…pondering.

It works fine for me… I just cant beat it :-X

Some strategies follow: (I plan on including a hints page, so these are some notes to that end.)

One idea is to count the number of unique symbols and the number of hexes they must occupy. If they are the same, you know that each symbol will only appear in one spot. From that you can make further deductions.

Second idea is to count the number of neighbors a given symbol has. If a symbol has four neighbors (according to its placement in the hanging scrolls), and a given hex, like a corner or edge, only has two, three or a fourth occupied by a non-neighbor, then you know that tile can’t possibly go in that spot. That can be helpful as a process of elimination strategy.

If a sequence on a single scroll contains two “fixed” (purple) tiles, then you know something about where the intermediate tiles must go. This can be extended to apply to two scroll sequences with a common symbol.

Some of the above must be modified when there are fewer tile symbols than there are hexes! The last two puzzle examples are of this ilk. The fifth puzzle is quite difficult. It can easily take an hour or more. (My exhaustive tree analysis proved that there was only 1 solution in something like 5,400,000+ branches. The analysis tree in the first puzzle had 1 solution in 6640 branches.) But there are things that can be deduced, and solution “paths” that can be proven to be dead ends much quicker than the exhaustive tree can.

Still, it seems I should make some more examples that are easier to solve, to give folks some practice and a leg up. Having been at this a while, my perspective on difficulty is skewed.

Loading for a minute, then nothing happened, just froze on a white screen.

I’m really enjoying this. Currently on Level 4, which is proving quite hard going.

That was fiendish!

On the Last Level (5)…

I can’t quite formulate enough constraints to make this solveable. :’(

Success! ;D

Tried it, and this is just not my kind of thing ::slight_smile:
It worked great though (non-sound version).

Thanks for trying! May I ask what browser/system?

I know one friend with a Mac is also having trouble. One thing I don’t understand in his case, I’m using the Javascript code example provided in the tutorials that is supposed to insist on version 1.6 (if I understand it correctly), but his system still insists on loading 1.5. Been too busy to focus on this though, as i got a flurry of work out of the blue. (Thankfully!)

Thanks for giving it a go!

Music to my ears! I’m really glad to hear you enjoyed the puzzle. (There’s hope for this project.) I’m curious how long the various puzzles took for you to solve, and if you have solving strategies to share. (No guarantee I won’t use the info to try and make even harder puzzles.)