Ludii Forum
Ludii in Remote - Printable Version

+- Ludii Forum (https://ludii.games/forums)
+-- Forum: Problems (https://ludii.games/forums/forumdisplay.php?fid=5)
+--- Forum: Ludii Player Problems (https://ludii.games/forums/forumdisplay.php?fid=6)
+--- Thread: Ludii in Remote (/showthread.php?tid=319)

Pages: 1 2 3 4 5 6 7


RE: Ludii in Remote - zxkyjimmy - 12-07-2020

Hi,

I think I found the problem.

If a spectator enters, the game will vanish.

Cheers,
Yen-Chi


RE: Ludii in Remote - MatthewStephenson - 12-07-2020

Hi Yen-Chi,

Thank you!!

That does indeed seem to be the cause of the problem.
I will fix this up and release a new version ASAP.

My apologies to anyone affected by this.

Cheers.
Matthew


RE: Ludii in Remote - MatthewStephenson - 12-07-2020

Hi,

We have updated our online server code to partially fix this problem.
Players joining a game as a spectator will now no longer cause the game to end.

However, players who attempt to join a game as a spectator will also not be able to see the game.

We will fix this soon and push out a new Ludii version, but for the time being you should not experience any issues with games randomly ending from Ludii v1.1.7.

If you are still experiencing issues, please let us know.

Cheers,
Matthew


RE: Ludii in Remote - MatthewStephenson - 12-07-2020

Hi,

We have just uploaded a new version of the Ludii v1.1.7 release which fixes the spectator issue.

This is not a full new release, but please re-download v1.1.7 if you wish to spectate a game.

Thank you all for your patience during this.

Cheers.
Matthew


RE: Ludii in Remote - Quentin Cohen-Solal - 12-08-2020

There is another bug (or the same without the message "Your local game state is out of sync with the server, please re-join this game from the remote dialog.").

In the game 452, which has vanished during the game after the move of johan de Koning. I play the move 24, then johan the moves 25 and 26. In my app, it is write in the Status tab "Game 452 is waiting for your move", which is normal. However, in the Moves tab, there are no the moves 25 and 26 and i cannot play.


RE: Ludii in Remote - MatthewStephenson - 12-08-2020

Hi Quentin,

Thanks for letting us know.

Our records indicate that this game was played using app version 1.1.5, can you confirm this is correct?

We advise you to use v1.1.7 from now on if possible.

I will also try and update our server code for handling older older app versions as well, to prevent this spectator bug in them as well.

Cheers,
Matthew


RE: Ludii in Remote - Quentin Cohen-Solal - 12-08-2020

We use 1.1.5 (i update my code, but my opponent could not use the latest version).

Going back to my previous idea to add flexibility to the online mode, it would be nice to have an option in the online game creator that instead allows one to choose a new game and start it from the beggining, launch a remote game from the current state of the board window. This would allow, I think most simply, to add the function of saving and loading of games for the online mode (in using the option of the offline mode). Thus in case of bug, it is enough to leave the online mode, to reconnect and start from the current state so that the current bugs are less penalizing). However, this option may be complicated to implement with your code.


RE: Ludii in Remote - MatthewStephenson - 12-08-2020

Hi Quentin,

Thanks for the suggestion.

This would be a complicated feature to implement correctly, especially for stochastic games. But I will discuss it with the rest of our team.

Games played using v1.1.5 should no longer end prematurely, but please let me know if it happens again.

Cheers,
Matthew


RE: Ludii in Remote - Quentin Cohen-Solal - 12-08-2020

With Ludii 1.1.7, in Game 461, there is the following bug message for my opponent: The subbitted player hashcode does not match that stored in the database. Quentin Cohen-Solal to move". But, in my app, i do not see its move (it is "zhangpei to move").

In the console: SuccessUPDATE mybb_users SET IncomingMessages = CONCAT(IncomingMessages,'Game 461 is waiting for your move',CHAR(10)) WHERE uid = '281'

Few moves before (just before or after move 26), the following error occurs in the terminal:
Exception in thread "AWT-EventQueue-0" java.util.NoSuchElementException: Vector Enumeration
at java.base/java.util.Vector$1.nextElement(Vector.java:375)
at java.desktop/javax.swing.plaf.basic.BasicTableHeaderUI.getPreferredSize(BasicTableHeaderUI.java:816)
at java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1680)
at java.desktop/javax.swing.table.JTableHeader.getPreferredSize(JTableHeader.java:447)
at java.desktop/javax.swing.ViewportLayout.preferredLayoutSize(ViewportLayout.java:98)
at java.desktop/java.awt.Container.preferredSize(Container.java:1823)
at java.desktop/java.awt.Container.getPreferredSize(Container.java:1807)
at java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1682)
at java.desktop/javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:728)
at java.desktop/java.awt.Container.layout(Container.java:1537)
at java.desktop/java.awt.Container.doLayout(Container.java:1526)
at java.desktop/java.awt.Container.validateTree(Container.java:1722)
at java.desktop/java.awt.Container.validate(Container.java:1657)
at java.desktop/javax.swing.RepaintManager$3.run(RepaintManager.java:745)
at java.desktop/javax.swing.RepaintManager$3.run(RepaintManager.java:743)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:742)
at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1889)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
at java.desktop/java.awt.Dialog.show(Dialog.java:1070)
at java.desktop/java.awt.Component.show(Component.java:1716)
at java.desktop/java.awt.Component.setVisible(Component.java:1663)
at java.desktop/java.awt.Window.setVisible(Window.java:1031)
at java.desktop/java.awt.Dialog.setVisible(Dialog.java:1005)
at app.display.dialogs.util.DialogUtil.sharedInitialisation(DialogUtil.java:85)
at app.display.dialogs.util.DialogUtil.initialiseSingletonDialog(DialogUtil.java:49)
at app.display.dialogs.remote.RemoteDialog.showDialog(RemoteDialog.java:109)
at app.menu.MainMenuFunctions.checkActionsPerformed(MainMenuFunctions.java:761)
at app.DesktopApp.actionPerformed(DesktopApp.java:294)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:369)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1020)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1064)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6635)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6400)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

I try to reconnect and in the consol, i have an infinite loop of "received move was not legal: [...]" and in the Status tab : "Your local game is out of sync with the server, please re-join this game from the remote dialog."


RE: Ludii in Remote - MatthewStephenson - 12-08-2020

Hi Quentin,

The issue seems to be that the hash of the players name that is stored when they log in is not the same as that being transmitted on their moves.

When you say that you try to reconnect, do you mean to the game?
And whenever you reconnect, do you get the "Your local game is out of sync with the server, please re-join this game from the remote dialog." message repeated?