Puzzle Dots - Test release

You could also consider limiting the crayon capacity depending on the level.
Less crayon => less physics

When I click “become a tester” on the link you provided, then click download on google play, it redirects me to a webpage that says the url cannot be found.

1 Like

Never mind, it started working.

1 Like

i made a new exception today, though this is still the version from the 11 September. Cannot reproduce it unfortunately.

SEVERE Exception thrown in Thread[GLThread 6187,5,main]

 	at za.co.bruynhuis.puzzledots.game.Game.addDrawingToPhysics(Game.java:729)
 	at za.co.bruynhuis.puzzledots.game.Game.endDrawing(Game.java:697)
 	at za.co.bruynhuis.puzzledots.screens.PlayScreen.picked(PlayScreen.java:253)
 	at com.bruynhuis.galago.listener.TouchPickListener.onAction(TouchPickListener.java:142)
 	at com.jme3.input.InputManager.invokeActions(InputManager.java:169)
 	at com.jme3.input.InputManager.onMouseButtonEventQueued(InputManager.java:433)
 	at com.jme3.input.InputManager.processQueue(InputManager.java:833)
 	at com.jme3.input.InputManager.update(InputManager.java:883)
 	at com.jme3.app.Application.update(Application.java:604)
 	at com.jme3.app.SimpleApplication.update(SimpleApplication.java:231)
 	at com.jme3.app.AndroidHarness.update(AndroidHarness.java:467)
 	at com.jme3.system.android.OGLESContext.onDrawFrame(OGLESContext.java:349)
 	at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1525)
 	at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1242)

Additionally i found that the particles from the crayon are not cleared when you stop drawing. They are merely disabled, this way the old particles reappear when you start drawing again.

This one is addictive! only to level 16, must ration myself. Feedback:


  • I like the art style. Not everything in the universe needs to be shiny and crisp.
  • Love that there is often more than one solution that works.
  • Some of these levels are sort of diabolical. Not as simple as they appear. I Like that, makes me stretch my brain.

Things that could use work:

  • As others have noted, “next” should take you directly to the next level.
  • Skipping levels should not mark the in-between levels as done.
  • Also noted before: drawing out of bounds, the line is often clipped back too far.
  • The app only works in landscape mode. That’s fine, but it only works one way in landscape mode, and that way is upside-down from how I prefer to hold my phone. Really, the back button must be in the upper left corner when holding the phone horizontally!
  • Noted a slight visual glitch when transitioning between level list screens. You have a beautiful swipe-out of the existing level list stickies, but then the app pauses and reloads the chalkboard background before filling out the new stickies.


First off, let me admit that I have a sort of wussy phone. Its an LG L39C, and if you’ve never heard of it, that’s because it was custom made for use with certain prepaid plans, where the major carrier refused to sell 4G service to the re-seller. This phone was intentionally built as a cheap, emasculated, entry level smart phone & the general performance reflects that.

JellyBean (4.1.2)

  • On most of the levels I have played so far, things run smoothly.
  • I have noticed that when I have to create a more complex chalk line, such as when I need a counter-weight, things do start slowing a bit. Definite frame drops.
  • When I get lower framerates, the physics seems to remain internally consistent, so that much is good. No dots falling through lines, or anything like that. Note that I have not made it to any of the later levels with extra features, etc.
  • As I play longer, transitions/loading starts to take more time. I suspect that this is something with my phone/android version, because many apps do this to me, including chrome, which should be pretty good about letting go of stuff its no longer using.

Thoughts for the future:

Might be nice to eventually add some extra accomplishments to various levels, in addition to “Completed.” This could increase replay value. As appropriate, you could add:

  • Finished under a certain time.
  • Finished with total draw length < a certain amount.
  • Finished with just one draw swipe.

Not all of these would make sense on every level, but just a couple of ideas.

Thanks @sailsman63, this is very good feedback for me.

Thanks for liking the style and I think I am agreeing with you on that and I might stick to the style for now.

Regarding the rewards per level, that is definitely on my todo list and I will surely award more than one trophy per level.

Interesting, most games rotate it so that my Android Buttons are on the right side.
I cannot remember any game that rotated it the way you mentioned.

Sure, it would make sense to have “back” in the top left,
but for me it would feel upside-down xD

It is also very hard to single-handedly flip it the way you mentioned as a right handed person.

Well, that would be part of the issue… I’m a lefty. I’m just surprised that landscape-only apps don’t automatically work both ways. But then, I’ve never developed for android. Perhaps this is built in at the OS level…

I have downloaded the game and completed it. It was awesome. Here’s what I would say:

  1. Introduce the different features earlier on, I got up to about level 20 with just lines, blocks and the two balls, keep it interesting by adding more components earlier
  2. Some of the later levels were alot easier than the early ones. I’d keep it consistent
  3. I think someone has already mentioned but the pencil could be more intuitive. When you move it into wall/ground and it turns red, you should be able to move it back and it turns yellow again, and it should maybe draw smoother curves instead of many lines
  4. I love the graphics and the menus
  5. It is quite choppy on my phone, my phone is old but other games (like mine) are quite a bit faster. I’d maybe try to look at improving performance
  6. I unplugged my phone when I got up this morning from the charger and it was on 100%. After less than 3 hours the battery was 14% and I had barely even used it. This is incredibly unusual behaviour. When I checked which apps were open in the multitasker, yours was the only one that wouldn’t normally be there, so I guess it was that.
  7. Next button go to next level
  8. Everything else is awesome
  9. I love it
1 Like

Good morning community.
Today I am very proud to announce the updated Alpha Test version of Puzzle Dots.

Update or download it here: https://play.google.com/apps/testing/com.bruynhuis.puzzledots

You are all in for surprise with this version, there are so many bug fixes and enhancements:

  1. Win Dialog Remake
  2. Should be able to keep on drawing when red line
  3. Create reward system
  4. Level recording (All levels are now recorded by default and review-able).
  5. Drawing too fast, the line does not get recognized
  6. Intro Tutorial when playing first level
  7. Timer start when drawing
  8. …and many many more

Thanks to everyone here that helped so far with testing.

Enjoy it and any other feedback will be awesome.


Looks like you uploaded a new version just a couple of days ago. Good job, this is getting smooth enough that it might be almost ready for a real release. I’ve not updated since Sept 15, so this is practically a new game to me. I’ve also gotten a new Android device (nexus 10) so I can do a little comparing.


  • performance on my lite device seems substantially improved.
  • thanks for updating the win menu
  • interstitial ads flow well, can resume the game with no trouble

Enhancement requests:

  • would be nice to be able to pause the playback, or at least view the final state without the win menu in the way.
  • level 6, the accomplishment requirement for getting the draw length star seems too easy. This level can be won with a tiny little bit of drawing, but I get the star for a rather tall a-frame shape.

Just comments:

  • seems like performance is still rather sensitive to device capabilities, just not as much as before
  • ads only show on my tablet, not the phone. Is this intentional?
  • when starting the app, it seems that you can play a couple of levels straight through before ads start, and then they come closer together as you play more. Is this intentional? Seems like a decent trade off if it is.
  • why does the app need access to my media/photos? I get that WiFi status is probably used for serving ads, but what you doin’ with my pics?

Looking forward to seeing this one out in the wild. :slight_smile:

1 Like

Hi @sailsman63,
Thank you very much for the feedback. It is feedback like this that make me keep going with developing this game.

Some things to point out.

  1. I am really trying my best to squeeze out as much as possible out for performance. Maybe in the future I might have better performance for most of the devices but for now I am happy with what I got.
  2. The ads I show is internationalized and depends on the amount of games you played.
  3. The pause feature might be good, I will consider it.
  4. About level 6 and the drawing reward, it is not dependent on the length of the drawing but rather if you draw only one line and not 2 or more lines.
  5. About the permissions, the app is not accessing your photos or anything like that, it needed that permission for this property in the android-manifest android:installLocation=“auto” but seems like it is not needed anymore.
    I will investigate. I used that so that the app can be installed on the users SD card if he had insufficient space.

Anyways, thanks again for the awesome feedback and hope to hear from you soon.


Thanks for the info.

Not really trying to complain about performance - that particular device is marginal at best for anything beyond texting and checking email. That it works at all means you have done well with performance so far.

Permissions - did not know that. Thanks for the info. The ability to move to the SD card, though, I do use often.

1 Like

Good morning community,

Today I am very proud to announce lots of additions to Puzzle Dots.
This game is now very close to be released.

You can download it here: https://play.google.com/apps/testing/com.bruynhuis.puzzledots

Any feedback will be appreciated.

List of added features:

  • Now there are 96 levels
  • Google play services
  • Cloud storing of level progress
  • Updated the physics engine
  • Less android permissions
  • Google achievements has been added

Preview video of game:

This is a big release to the game.
Enjoy the changes!

Just updated and started the game, I got this exception right after the company logo screen.

Hey there @DannyJo
On what device are you testing this game?
Also, did it work before?

I’m using a One Plus Two. Not sure if it’s the kernel screwing things up. I need to do some testing and see what JME thinks the platform is.

Okay please check for me.

Sure, I will let you know.

1 Like

OK, here we go.

JmeSystem.getPlatform() = Android_Other
os.name = linux
os.arch = aarch64

Other info

11-11 12:00:23.273  25694-25694/com.kendanware.memory.android I/com.jme3.system.JmeSystem﹕ INFO Running on jMonkeyEngine 3.1-5288
    * Branch: master
    * Git Hash: edaf49c
    * Build Date: 2015-10-24
11-11 12:00:23.395  25694-25716/com.kendanware.memory.android I/Adreno﹕ QUALCOMM build                   : ef88d8e, I555dfb505a
    Build Date                       : 06/08/15
    OpenGL ES Shader Compiler Version: E031.25.03.09
    Local Branch                     :
    Remote Branch                    : quic/LA.BF64.1.2.1.c1_rb1.5
    Remote Branch                    : NONE
    Reconstruct Branch               : NOTHING
11-11 12:00:23.427  25694-25716/com.kendanware.memory.android I/com.jme3.renderer.opengl.GLRenderer﹕ INFO OpenGL Renderer Information
    * Vendor: Qualcomm
    * Renderer: Adreno (TM) 430
    * OpenGL Version: OpenGL ES 3.1 V@103.0 (GIT@I555dfb505a)
    * GLSL Version: OpenGL ES GLSL ES 3.10
    * Profile: Compatibility

The reason for this stack trace is due to the JME 3.0.10 supported android platforms.


    public Platform getPlatform() {
        String arch = System.getProperty("os.arch").toLowerCase();
        if (arch.contains("arm")) {
            if (arch.contains("v5")) {
                return Platform.Android_ARM5;
            } else if (arch.contains("v6")) {
                return Platform.Android_ARM6;
            } else if (arch.contains("v7")) {
                return Platform.Android_ARM7;
            } else {
                return Platform.Android_ARM5; // unknown ARM
        } else {
            throw new UnsupportedOperationException("Unsupported Android Platform");

JME 3.1 returns Android_Other instead of throwing an exception. I suppose you might be able to handle this in your code by catching the exception instead.