Waternet - first impressions

Posted on
  • Hi @joyrider3774

    Thank you for all your work in Waternet. Its a fantastic effort.
    https://espruino.github.io/BangleApps/?i­d=waternet

    I gave it a spin and really struggling to play it though. I am finding the size of the puzzle area really small and wondering if a better user experience could be gained by:

    • Using the whole of the screen, hide widgets, no point in having them on when in a game.
    • move all the settings and options out to a settings app that can be called via the Bangle 2 menu.
    • maybe a little video to show how to play each game using the different controls.

    Hope this helps.

  • High Hugh,

    I'm aware of the small puzzle area but the game is port of my arduboy version of the game which in itself was a port of the gameboy version i initially made. The game screen (including text / menu's) all use the same system for drawing. Basically the screen is divided into 10 by 10 grids (arduboy was 8x8) and i don't give screen positions in my functions but provide grid positions (to that set_xy function). If i increase the size of the tiles for the puzzle area, the size of the text increases as well and i would have less space to "write" something on the screen in for example menu's or so.

    Also the game is a port, which means i basically copied original C Code inside the espruino ide and i adapted all (mostly graphics) functions to work with the bangle 2js, i did only minor adaptions to gameplay and so but i did not reposition anything or so. You can see here its basically the same game as my arduboy port but just way more tiny. The arduboy had a 128x64 resolution screen and i did adapt the game for the bangle js2 to use bigger tilesizes so that about 176 pixels in width can be used, but the arduboy had a bigger (physical) screen also so things where more visibly on it.

    One way i see i could go around the above mentioned issues is to potentially use separate images for text and puzzle tiles and reorder the puzzle area so that the text on the sides is displayed below the puzzles. I could give that a try eventually but initially i wanted to just do a port that more or less worked :)

    I'll probably try to improve it sometime later once i have the rubido game finished at least that game does not have these issues about small area's. I'm also working on another playdate game so not sure when i'll come to it but i will give it a look. I kinda hop from one project to another and sometimes doing multiple projects at once :)
    regarding your points

    Using the whole of the screen, hide widgets, no point in having them on when in a game.

    there already is an option to hide the widgets but it does not affect the drawing of the puzzles, it does affect the input rects of where you have to "touch" to simulate the directional movement

    move all the settings and options out to a settings app that can be called via the Bangle 2 menu.

    That should be possible was not sure this was needed, so i kept it inside the game as thats how the original game mostly had it but i did add extra options for the bangle. I'd have to make sure if i change this that people don't loose their progress though, as the options and level unlocks are all saved in the same file, so i'd probably would need to split it up.

    maybe a little video to show how to play each game using the different controls.

    have you checked the readme on the app loader page or the ingame help, it contained some information about game rules. But I could try todo a video also but it would probably be recorded using the emulator as i have no easy way to record the watch, i'll see what i can do about this

  • I created the little help video for waternet and put it on youtube

  • Great video. Very helpful. Also intresting to hear about the journey that the game has made between platforms. It is probably easier to play in the emulator, but on the watch it is quite hard to touch the right regions and to see what is actually selected. I think for the Bangle keeping the text and gane play seperate would be better but I understand this would mean a rewrite and you have ported from other code.

    I look forward to your next games. Is this your Rubido game ?
    https://www.youtube.com/watch?v=syi4r6Wy­tgs

    I have thought that Othello might make a useful game on the Bangle.

  • I look forward to your next games. Is this your Rubido game ?

    Yes thats the rubido game i'm porting. I made that game about 14-15 years ago, for the gp2x and dingoo handhelds, at the time there did not exist iphones or androids and so or at least i did not have one. The gp2x and dingoo were opensource handhelds and most were running linux and people could develop their own games for the machines. There was an active community around these handhelds with people developing games and emulators and users playing them . if you want something similar today the only thing that comes to mind is the playdate which i also own and made a few games for. I took the source code my old game and again ported it to javascript. It's not that hard to convert SDL c/cpp code to espruino but they do require a lot of changing as you can't constantly refresh the screen on the bangle. So i was checking my old games for games that basically only "acted" when input was done and rubido was another such game so i started porting that game also. I've created another thread in the projects page about it and there is a little gif showing the progress so far

  • I had a look at the code. Is that C code really running ?

    I think there is maybe a problem with the logic for the state machine
    for the movement / centre button. In the Emulator I can go up, up. left, left. Then Right or bottom wil rotate the tile. So it gets a bit confusing.

  • I had a look at the code. Is that C code really running ?

    Not sure i understand the question but in the emulator the C code is not running, but if it's not javascript code is used. The C code only compiles when uploading to the watch but not in the emulator. I only made specific parts in C all the rest is basically javascript code running. (see line 1023 for example) USECCODE is set to false when it could not compile the C Code (inside the emulator for example) and based on that boolean flag i either run the C Code or the Javascript version of the function

    I think there is maybe a problem with the logic for the state machine for the movement / centre button. In the simulator I can go up, up. left, left. Then Right or bottom wil rotate the tile. So it gets a bit confusing.

    I can not reproduce this not on my watch nor in the simulator, so when you play the game and you press the upper parts twice (so the selector moves 2 times up) and then you press the left part of the screen twice (so selector moves 2 times left) and then you press the bottom or Right direction it rotates the tile ? Are you certain you pressed the complete bottom or right parts ? Enabling the inputrect in the options will make sure you press in the correct parts as it shows where you are supposed to touche / click. On the bangle itself you need to touch the screen on the sides. Can you be more specific about what you did exactly so i can reproduce it

    Edit: not sure if it matters but i run the emulator in chrome on windows

  • btw @HughB i started working on my idea of using different size of tiles for the playfield and it's much more visible now on the watch. It seems it will work, but the downside is it will use some more ram. The menu's and help screen and text will remain same size though (otherwise i could not fit everything in the screen), but the playfield / puzzles will actually be bigger in size and easily viewable on the watch (i tried it already)

  • if you like to try the new changes you can grab the new (dev) version from here https://joyrider3774.github.io/BangleApp­s/

  • I have tried in the emulator. Much bigger now easier to see. I have not been very sucessful at solving even on a very easy one setting. Not sure what OPEN/MUS means on the display ? The touch areas's are quite narrow. You have to be very careful to ensure you are always at the edge to make sure the selected movement occurs. Very ingenious game. Is the design yours or is this a copy of a classic game ?

  • I have not been very sucessful at solving even on a very easy one setting.

    try rotate mode, thats very easy, the other modes involving sliding are really hard as it requires you to visualize how the water pipes would end up after your move.

    Not sure what OPEN/MUS means on the display ?

    Open is displayed in the level selector, before you start a game you are in the level selector. By default only the very first level (of 25) is unlocked (open) in any game difficulty (except random). When you are in level selector you can touch on the left or right side of the screen to select the level and there you'll see the open message or locked message if the level is not unlocked yet (and you can not play it then). MUS is actually MVS shorthand for MOVES it just shows you how many slides and rotates you had done.

    The touch areas's are quite narrow. You have to be very careful to ensure you are always at
    the edge to make sure the selected movement occurs.

    yeah they are indeed, but if i make them bigger there is more place for error on touching in the middle for the extra button simulation. On the watch i just press the sides of the screen and works ok.

    Very ingenious game. Is the design yours or is this a copy of a classic game ?

    No i did not invent the game concept, it is based on the Net and Netslide game from the Simon Tatham's Portable Puzzle Collection, but all the code is my own re-implementation of these two game concepts mixed into one game

  • ok, why did prefer the touch areas over up/down/left/right swipes?

  • ok, why did prefer the touch areas over up/down/left/right swipes?

    The game uses a selector which you need to move to the a pipe which you want to rotate or to move over an arrow on sides in case of slide mode. If you need to move the selector 3 times left and 4 times down before reaching the waterpipe you want todo your action on it can be done much quicker by quickly touching the screen 3 times near left edge and then 4 times near bottom edge than when having to swipe 3 times left then swipe 4 times down its faster and feels more natural to me than swiping. Also with swiping you obscure in a lot of case the complete playfield on your screen with your finger, while touching on the sides you can still see a bit of the middle. Touching just feels more natural than swiping to me, i did not want to constantly swipe on the screen to move the selector

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

Waternet - first impressions

Posted by Avatar for HughB @HughB

Actions