Hexara -- work in progress

Unlocked and moved.
Wonder if smf will provide a way to merge through url, though. Took a while to find this post :stuck_out_tongue:

[A long time ago, I started making a puzzle game called Hexara. That thread is now locked and I don’t have the admin rights to unlock it. Would it be possible to have it unlocked? This post could be moved to that thread.]

http://www.java-gaming.org/user-generated-content/members/27722/hexaragamesoundtester.jar

There’s going to be a seminar on composing music for games at the SF Conservatory of Music and I’m hoping to have a working jar with the game and score for their Nov. 16th deadline (seminar is a week after that). The sound here is all procedural, no wav or ogg files involved.

This “tester” was made for profiling a newly upgraded procedural sound engine. My goal is to keep the cpu usage under 5% even when the sound is most active.

OPERATION:
The “in/out” tells the audio mixer whether or not to even bother reading the track.
The subtracks of the chimes synth (its polyphony–the number of chimes that can play at the same time), can also be tweaked. Changing that number (have to hit enter to complete) requires the mixer be programmatically stopped and restarted which results in an audible pause.

The “Tension Level” is going to be linked to the number of “scrolls” that are completed in the puzzle. Completion of a scroll triggers a gong. When all the scrolls are solved the “gong completion” cue plays.

An increase in “tension” (as more scrolls complete) has the following effects:
(1) increases the density of the chimes,
(2) makes their volume/timbre a little brighter,
(3) makes the flanger modulation on the drone tone sweep more quickly.

Am considering other things to change (e.g., add new or slightly more discordant pitches to be played by the windchime).

This stuff hasn’t been fully implemented in Hexara itself yet. First tests show that it can still stutter, but only very occasionally. The Java2D graphics badly need a rewrite and I suspect doing so will reduce cpu enough to clear that up.

I think it might be worthwhile putting a bunch of volume/pan/timbre controls in this “tester” to help with the design and with making sure the volumes don’t overload (currently possible). But my first priority was to just make sure I had a way of testing the cpu usage.

RESULTS OF PROFILING / QUESTIONS:
Profiling, using JVisualVM, or even just using Windows Task Manager, gives somewhat inconsistent cpu % readings. This morning, I ran it full out (at Tension 5, all tracks on, completion cue playing) and it stayed below 5% the entire time. ;D But while running the same file at other times, the cpu sometimes spikes at 15-20%, . These spikes are weird though in that they don’t consistently follow the duration of the ‘completion cue’. For example, it can hit a high and drop back down below 5% for a majority of the time the cue is playing, and the spike can come in the middle or the end of the cue (as the notes are fading away).

Is the cpu usage a reasonable gauge? I finally figured out that some usage is caused by my cursor interacting with the Swing controls (about 5-6%). Also, it seems if FASTFIND or some other program starts running in the background, that increases the likelihood of the program’s tendency to spike. What is that about? Can it be dealt with?

My computer is circa 2004, so maybe this is all moot for new computers. However, I do want this engine to be able to run on Android, so keeping the cpu usage low is important.

Unlocked and moved.
Wonder if smf will provide a way to merge through url, though. Took a while to find this post :stuck_out_tongue:

I got a nice little opening animation working. Goal–have something minimal going on while resources are being manufactured in the background. Am pleased: the graphics are being cued off of the sound starts (using a Listener), and an envelope I wrote for the synths also works for the alpha control of the glow.

I think it is okay that the same Perlin graphic animation is being reused. It might be nicer if each was unique, but it would be significantly costlier. The graphic is a 64 x 128 image and stretched to 96 x 288 (another dodge to reduce cpu).

Run this jar to see/hear in action: http://www.java-gaming.org/user-generated-content/members/27722/hexaraopening.jar

Could be improved, but I’m trying to get a simple version of the game done for a “Demo Derby” on game audio, deadline Sunday midnight. Next step, (cross-fade?) to the main screen which should have had time to finish building all its resources.

I got a nice little opening animation working. Goal–have something minimal going on while resources are being manufactured in the background. Am pleased: the graphics are being cued off of the sound starts (using a Listener), and an envelope I wrote for the synths also works for the alpha control of the glow.

I think it is okay that the same Perlin graphic animation is being reused. It might be nicer if each was unique, but it would be significantly costlier. The graphic is a 64 x 128 image and stretched to 96 x 288 (another dodge to reduce cpu).

Run this jar to see/hear in action: http://www.java-gaming.org/user-generated-content/members/27722/hexaraopening.jar

Could be improved, but I’m trying to get a simple version of the game done for a “Demo Derby” on game audio, deadline Sunday midnight. Next step, (cross-fade?) to the main screen which should have had time to finish building all its resources.

http://www.java-gaming.org/user-generated-content/members/27722/hexara141124.jar

http://www.java-gaming.org/user-generated-content/members/27722/hexara141130.jar

Some new sounds (shimmer for new puzzle, dinks for mouse-overs, stereo chorus added to this and that) and graphic effects added, as well as some cleanup of transitions.

Two concerns:

(1) I’ve loaded up too much sound processing and the audio will start experiencing dropouts. If you try the game and this does or doesn’t occur, I’d appreciate finding out! My PC is so old that I don’t know if the dropouts that I hear are going to occur for others. I’m puzzled by a lack of consistency in the profiling.

(2) It started crash on Macs for reasons that I have been unable to figure out. Last night a friend reported a screen freeze just as a puzzle is completed, but the audio continued. Weird! I generally don’t have access to Macs. I did add a few more console lines to help with diagnostics. If you have a crash, a screen shot of the console out would be helpful and appreciated.

BASIC RULES: Light up a panel by placing icons in the center so that the neighbor relations are maintained. Light up all the panels at the same time to solve the puzzle.

I’m trying to come up with ways to have a ‘tension level’ that changes while working on the puzzle. Tension level is defined as the number of panels that are solved (0 to 5, 6 is a win).

What happens/changes with the tension level?

  • the panels light up
  • smoke now gets more active
  • chimes get more insistent
  • sweep on flanger of the drone speeds up and becomes more prominent.

Other ideas? Thx.

Hey, just d/l and played your game, still going actually, my crit is that at first I had no idea what I was doing. It wasn’t until I did a medium level puzzle that I started to understand how to play the game, the first three puzzles I did didn’t teach me how to play, I just put random things in and it worked. I didn’t feel it was complex enough to register what was going on.

Just my two cents…

anyway now that I get it I’m really digging the game. Also, the music is awesome, nice ambiance.

edit: just played the 5th bronze puzzle, from the left, and that was a good easy one. I think I would’ve understood what was going on there, but idk

http://www.java-gaming.org/user-generated-content/members/27722/hexara141124.jar

http://www.java-gaming.org/user-generated-content/members/27722/hexara141130.jar

Some new sounds (shimmer for new puzzle, dinks for mouse-overs, stereo chorus added to this and that) and graphic effects added, as well as some cleanup of transitions.

Two concerns:

(1) I’ve loaded up too much sound processing and the audio will start experiencing dropouts. If you try the game and this does or doesn’t occur, I’d appreciate finding out! My PC is so old that I don’t know if the dropouts that I hear are going to occur for others. I’m puzzled by a lack of consistency in the profiling.

(2) It started crash on Macs for reasons that I have been unable to figure out. Last night a friend reported a screen freeze just as a puzzle is completed, but the audio continued. Weird! I generally don’t have access to Macs. I did add a few more console lines to help with diagnostics. If you have a crash, a screen shot of the console out would be helpful and appreciated.

BASIC RULES: Light up a panel by placing icons in the center so that the neighbor relations are maintained. Light up all the panels at the same time to solve the puzzle.

I’m trying to come up with ways to have a ‘tension level’ that changes while working on the puzzle. Tension level is defined as the number of panels that are solved (0 to 5, 6 is a win).

What happens/changes with the tension level?

  • the panels light up
  • smoke now gets more active
  • chimes get more insistent
  • sweep on flanger of the drone speeds up and becomes more prominent.

Other ideas? Thx.

Hey, just d/l and played your game, still going actually, my crit is that at first I had no idea what I was doing. It wasn’t until I did a medium level puzzle that I started to understand how to play the game, the first three puzzles I did didn’t teach me how to play, I just put random things in and it worked. I didn’t feel it was complex enough to register what was going on.

Just my two cents…

anyway now that I get it I’m really digging the game. Also, the music is awesome, nice ambiance.

edit: just played the 5th bronze puzzle, from the left, and that was a good easy one. I think I would’ve understood what was going on there, but idk

Really valuable observation! I’ve been struggling with how to present the puzzles. Earlier, I was told they were too hard, but I have now seen a couple people do the random thing and not learn anything from the ones that are too easy. (Originally the first silver one was my “easiest”.)

Making the puzzles is tricky. I do have a utility that allows me to test to verify the solution, and shows if there are multiple solutions–a couple of the easy ones are that way.

This is the biggest challenge of this puzzle game: communicating how the puzzle works.

I take it the sound is not breaking up. That would be good. It might also be possible if things got too busy for the volume to get too loud, which makes a nasty noise, rather than a hiccup.

Yeah the first silver was was pretty difficult, cause I didn’t understand how to play the game, but there was a distinct change from random to meaningful so it’s a good puzzle. I actually continued playing and solved all the silver and bronze ones before I fell asleep so I think you’re on the right track.

and yeah no sound problems to report from my end.

I tried to run the game, but all I got was the splash screen. Then, I was left with the “perlin animations” for over ten minutes until I closed it.

Really valuable observation! I’ve been struggling with how to present the puzzles. Earlier, I was told they were too hard, but I have now seen a couple people do the random thing and not learn anything from the ones that are too easy. (Originally the first silver one was my “easiest”.)

Making the puzzles is tricky. I do have a utility that allows me to test to verify the solution, and shows if there are multiple solutions–a couple of the easy ones are that way.

This is the biggest challenge of this puzzle game: communicating how the puzzle works.

I take it the sound is not breaking up. That would be good. It might also be possible if things got too busy for the volume to get too loud, which makes a nasty noise, rather than a hiccup.

Yeah the first silver was was pretty difficult, cause I didn’t understand how to play the game, but there was a distinct change from random to meaningful so it’s a good puzzle. I actually continued playing and solved all the silver and bronze ones before I fell asleep so I think you’re on the right track.

and yeah no sound problems to report from my end.

I tried to run the game, but all I got was the splash screen. Then, I was left with the “perlin animations” for over ten minutes until I closed it.

Are you on Mac or PC or Linux? Any error messages on the console?

This sounds similar to SHC’s crash: http://www.java-gaming.org/topics/java-jar-file-rejected-by-folks-at-need-mov-asap/34855/msg/329380/view.html#msg329380. I visited a friend with a Mac and he was able to get past the splash screen, but crashed when a puzzle was completed.

I have to arrange for Mac access for testing. I’m totally mystified what is going on, and am wondering what I’m doing in Java 7 that is making Macs bug out. I don’t think I’m pushing things that hard, but who knows.

Are you on Mac or PC or Linux? Any error messages on the console?

This sounds similar to SHC’s crash: http://www.java-gaming.org/topics/java-jar-file-rejected-by-folks-at-need-mov-asap/34855/msg/329380/view.html#msg329380. I visited a friend with a Mac and he was able to get past the splash screen, but crashed when a puzzle was completed.

I have to arrange for Mac access for testing. I’m totally mystified what is going on, and am wondering what I’m doing in Java 7 that is making Macs bug out. I don’t think I’m pushing things that hard, but who knows.

Windows 7 64-bit
There aren’t any messages in the console.
I think that I should again point out that the animation still plays, so it doesn’t crash.

Windows 7 64-bit
There aren’t any messages in the console.
I think that I should again point out that the animation still plays, so it doesn’t crash.

I concur. The clicking on a line thing isn’t something I discovered by just playing the game.

I’ve solved all but a couple of gold ones in 20 minutes.

That’s always a problem with puzzle game development. (And with most game development, in fact).

Instructions are a good first step until you have time to work on a detailed walk-the-player-through-the-level tutorial. I would say something like:

Each vertical banner contains a sequence of tiles which must be present somewhere on the board. The sequence may be present in a straight line, or bend all over the place. Arrange the tiles so that all six sequences are present.

I haven’t had problems with sound dropping out. One feature that I would prioritise is a way to give up on a level and go back to the list of levels. I’d also add the text “Choose a level” to the level selection screen, because it’s not immediately obvious that it’s a level selection screen. I thought at first that it was just a splashscreen. And I would find it helpful to be able to hover over a tile on a banner and see the other instances of that tile, rather than just getting that highlight when I hover over a tile on the board.