http://www.hexara.com/game.htmlTakes about 3 minutes to load. 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.

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!

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.

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! 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.

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.

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!)

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.)

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.)

I was doing pretty much as you suggested up to Level 41) Count the number of squares2) Count the number of unique shapes and determine whether one or more must be repeated.3) Look for repeated shapes on the scrolls and note which shapes are repeated(You can't use the same shape twice in a sequence, as the score doesn't illuminate)4) Look for repeated shapes on the board and note them as well5) Count the number of times each shape appears on a scroll6) Count the number of neighbours and then determine how many unique neighbours7) Sort the resulting list by number of unique neighbours Any shape having more unique neighbours than the most connected cell on the board must have at least two occurrences9) Shapes with a lot of neighbours are constrained to cells with at least that number of linkages9) Starting at each shape already placed on the grid, place its unique neighbours on adjacent cells.10) Look at the grid and rearrange those shapes so as to facilitate linking them up with other islands of shapes so as to complete a scroll11) Do what-if's particularly when you don't know which shapes appear multiple times. While duplicate shapes with lots of occurences and linkages are more likely, don't discount the less obvious sneaky choices.12) Don't use 9) twice when writing lists.

Another clue to possible duplicate shapes, is where two shapes are adjacent on a scroll, but other scrolls have them adjacent to shapes prefixed on the board. At least one shape must be a duplicate.

Excellent! Another friend was asking for a scratch pad for building sub-structures. That got me thinking of maybe a popup where one could place the entire substructure into the puzzle. I want to spend some time considering how to do this. Or maybe find some screen real estate where a substructure could be staged. I think there are a couple higher priorities first, though, like the hex switching/rotating and of course, solving the sound/download time situation.

Another general issue to consider: how many of the clues or strategies should be presented. Some might prefer a discovery process. Thinking, too, how wide is the gap between beginning and advanced sudoku players? How wide will the gap be with easy and hard Hexara puzzles? I suppose someone who considers themselves a "Friday" player won't normally do a "Monday" puzzle and vice versa, and this sorts itself out. (I'm thinking, to eventually make and present a puzzle a day, like with the NYTimes crosswords--Monday is easiest, Friday hardest.) But I get ahead of myself. First make a working, presentable program.

I tried out the game and liked it a lot Nice concept and nice designing too..

I am not sure if work is still in progress for this game, but would like to point out a problem nevertheless : - After I complete one level, everything glows and disappears. After everything disappears completely and then I click 'Load' from 'File', it works fine. But when I click 'Load' while the disappearing act is still in progress, the new level is not loaded properly !! (the main structure in the middle does not appear).

Thanks for the compliment and thanks for the suggestion! Yes, it's "in progress" but maybe "in stasis" makes more sense. Am working on a lot of background learning & projects that should ultimately be very useful for this and a couple other ideas for games I have designed.

I agree the way the puzzles come up is lame, and plan to entirely redo that on the next iteration. I wasn't aware of the bug you caught though. Thanks for pointing it out, though I will probably chuck the entire design for something else. Definitely open to suggestions. I'm thinking of having a screen with icons representing the puzzles and their status (solved or not). I'd also like to set up something where I can add a new puzzle a day, Monday puzzles being easiest, Saturday being the hardest, and Sundays have actual words on the scrolls instead of icon strings.

The scrolls could use some texture and animation for when they get "activated" via completion on the center grid. (Part of what I want to learn, like how to make them swing a bit like a real hanging cloth thing, with tassels.) Other ideas welcome.

Thanks! I will look into this. I've never used OGG, and will have to figure out how to convert the WAV to OGG.

even if that post is old, I use Oggenc http://www.rarewares.org/ogg.phpwhich just converts raw pcm wav to ogg at a quality you desire. I only use ogg for sound after switching from FMOD to slick audio

btw FMOD is free and as long and your game is free aswell / not commercial in any kind, you can use it. FMOD being an industry standard obviously can play many formats and very nicely, like mp3 and so on.NativeFMODEx is what you would want then

otherwise Slick uses JOrbis/Jogg, which you can of course also use by yourself

Yes, I plan to make the designer available. One of the slick things in it is a tree-search algorithm that I use to show all solutions to a given puzzle. I use it to make sure the puzzles I make only have one solution.

It would be nice to have a way for people to share the puzzles that they make. I'm also thinking about ways to allow folks to use their own icons.

Grand plans...

Yes, the last puzzle is very difficult. I was envisioning making top-level puzzles about "Friday" Sudoku level difficulty, as in taking an hour or so to solve, and requiring a lot of precision in the process, having developed something of a skill set with the patterns, tricks and dependencies. (Curiously, the symbols of the last puzzle also work as a cypher--you can substitute letters and get 6 words on the six scrolls that are thematically related. But I didn't want to get into that as a standard feature as those puzzles are significantly harder to design.)

@cero: I hadn't heard of rarewares. I'll take a look. I've been using Audacity to convert .wav to .ogg. My goal is to stay within core Java, and the various ogg players I've found give me grief with things like memory leaks and lots of cpu consumption. To push the sound like I want to, I need as close to raw PCM as I can get away with. Just a design decision/goal. But thanks for the suggestions!

The sound adds a lot to the atmosphere of the game. It will defenitely be a lot better with ogg support as the load time is a considerably excessive.That said with all the graphic effects, I didnt notice any lag or flickers.

Actually, I've decided to abandon OGG entirely. No more "Vorbis, the fearsome OggMonster" to battle. I've been making really good progress with coding for FM generation on the fly, which I am going to do, instead.

All the sounds you hear in the game were made by a 1980's Yamaha DX7. Well, actually, the patches were ported to a softsynth (FM7) and recorded from there as wav files. So, since they are FM, and I know FM pretty well, it made sense to try and make a Java version.

Anyway, I've got the "windchime" chime patch pretty well nailed this week, and aspects of the drone working as well. The bigger gongs are yet to do. The drone will need a flanger, but I think that will be doable. I'm told flangers are not much more complicated than an echo with a very short delay time (that varies), and I managed an echo on the Theremin project.

But, yeah, now that I have a mixer and FM happening, I think I'll be able to recreate the audio that took 15 MB of sound files with less than 150 KB of pure Java. (100:1 savings.) So I am psyched. Looking forward to solving that and getting back to finishing the game!

Side issue, I'm hoping (perhaps in vain) that I can use some of this sound programming expertise in android. But I haven't really looked closely enough at Android yet. Most of the books and tutorials I've come across just cover some simple ways to do sound, nothing low level.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org