* Server update with new dev changes (#305)
* merge widgets with development
* readd previous game thread code
* Revert "readd previous game thread code"
This reverts commit d24feef73e.
* Revert "Merge remote-tracking branch 'origin/Development' into Development"
This reverts commit 59d46cb73c, reversing
changes made to 38681c5db0.
* Revert "merge widgets with development"
This reverts commit 38681c5db0.
* Merge 292 into development (#293)
Applied template method pattern to abstract player
* Added documentation to player classes and improved method names (#295)
* mcts v1
* bitboard optimization
* bitboard fix & mcts v2 & mcts v3. v3 still in progress and v4 coming soon
* main
---------
Co-authored-by: ramollia <>
Co-authored-by: Stef <stbuwalda@gmail.com>
Co-authored-by: Stef <48526421+StefBuwalda@users.noreply.github.com>
* Hotfix for stuff
* Logging and fixed user input getting stuck
* Fixed merge mistakes
* Working tournament
* GlobalEventBus is now async instead
* Shuffle now changeable, host can now switch tournament gametype
* Tournament results are now send back to the clients connected to the server
* Tournament now returns result to clients
* Refactored tournament to use interfaces and builders
* Removed unnecessary imports
* Tournament refactor for better naming and easier to understand code
* Starting a tournament now requires to be admin
* Request admin list
* Added admins to games
* Tournament is now without admins
* Added result comeback with a draw
* Async tournament runner
* Added back ability to shuffle matchmaker
* Moved scoring calculation into scoring system
* Tournament now uses propper builder pattern
* Null handling
* Removed input mistake, removed print
* Refactored Tournament to use matchExecutor and ResultBroadcaster. Added turnTime and players are now added through Tournament creation instead of on MatchMaker/ScoreSystem creation
* Added shuffle to builder
* Removed unnecessary throw
* More adaptable scoring system
* Moved async runner to virtual thread
* Timeout added
* AI player given time change
---------
Co-authored-by: Stef <stbuwalda@gmail.com>
Co-authored-by: Stef <48526421+StefBuwalda@users.noreply.github.com>
* Server update with new dev changes (#305)
* merge widgets with development
* readd previous game thread code
* Revert "readd previous game thread code"
This reverts commit d24feef73e.
* Revert "Merge remote-tracking branch 'origin/Development' into Development"
This reverts commit 59d46cb73c, reversing
changes made to 38681c5db0.
* Revert "merge widgets with development"
This reverts commit 38681c5db0.
* Merge 292 into development (#293)
Applied template method pattern to abstract player
* Added documentation to player classes and improved method names (#295)
* mcts v1
* bitboard optimization
* bitboard fix & mcts v2 & mcts v3. v3 still in progress and v4 coming soon
* main
* Hotfix for stuff
* Logging and fixed user input getting stuck
* Fixed merge mistakes
* added new classes for the games that use bitboards instead. also combined game with turnbasedgame
* (DOES NOT COMPILE) In-between commit
* turn updates
* smalle fixes aan turn updates
* Bitboard implemented with scuffed TicTacToe translation done by game. This should be done by the view.
* Almost done with implementing bitboards. Reversi is broken and artifical players don't work yet.
* better human/ai selector with bot selection and depth on TicTacToeAIR
* fixed getLegalMoves
* depth + thinktime back to AIs, along with a a specific TicTacToeAIRSleep
* fixed overlapping back and disconnect buttons
* Changed to debug instead of info
* changed the transitionNextCustom to be easier to use
* added getAllWidgets to WidgetContainer
* Correct back view
* added replacePrevious in ViewWidget
* added removeIndexFromPreviousChain
* fixed incorrect index counting
* Fixt wrong view order
* fixed? getLegalMoves
* Everything is broken
* Removed todo
* fixed getLegalMoves & getFlips
* Challenge popups "Fixed"
* Fixed local and online play for both games
* Popups now remove themselves
* Removed souts for debugging
* localize the ChallengePopup text
* made the game text a header instead
* made more classes deepClonable.
* fixed getAllWidgets
* Added comment
* Escape popup
* fixed redundant container
* Made all network events async again
* Escape remove popup
* Working escape menu
* Removed old AI and old files. Added a new generic random AI. game no longer deals with translation.
* Drawing of board on canvas is now done from bitboards rather than translating.
* Added a method getWinner() to game interface.Controller now tells gameThreads how to deal with drawing UI and sending a move to server.
* Added find functionality
* Added a ChatGPT generated MiniMaxAI based on the old MiniMaxAI but with alpha-beta pruning and heuristics for Reversi
* Removed System-Outs to clean up console
* Update BitGameCanvas.java
* Merge fixes
* Removed unused imports
---------
Co-authored-by: ramollia <>
Co-authored-by: michiel301b <m.brands.3@st.hanze.nl>
Co-authored-by: lieght <49651652+BAFGdeJong@users.noreply.github.com>
* turn updates
* smalle fixes aan turn updates
* better human/ai selector with bot selection and depth on TicTacToeAIR
* depth + thinktime back to AIs, along with a a specific TicTacToeAIRSleep
* fixed overlapping back and disconnect buttons
* Changed to debug instead of info
* changed the transitionNextCustom to be easier to use
* added getAllWidgets to WidgetContainer
* Correct back view
* added replacePrevious in ViewWidget
* added removeIndexFromPreviousChain
* fixed incorrect index counting
* Fixt wrong view order
* Removed todo
* Challenge popups "Fixed"
* Popups now remove themselves
* localize the ChallengePopup text
* made the game text a header instead
* fixed getAllWidgets
* Escape popup
* fixed redundant container
* Escape remove popup
* Working escape menu
* Added find functionality
* Tutorials moved to escape menu
* Escape can't be opened in mainview now
* Can now test the event bus, created testable interfaces
* Logging errors
* Made events and handlers more generic
* Suppress
* Managers now have changeable eventbus
* Tutorials fixed
* Removed import
* Single threaded eventbus
* Fixed wrong eventbus
* Removed get
* Removed old code
* Renaming
* Optimization
* Removed useless comment
* Removed unnecessary imports
* Rename
* Renaming, refactor and type safety
* Rename
* Removed import
---------
Co-authored-by: michiel301b <m.brands.3@st.hanze.nl>
Co-authored-by: ramollia <>
* Cleaned up a lot of old files and renamed/remade interfaces to better suit the framework
* Broken commit
* Fixed online play
* Better file structure and closer to MVC
* Added unsubscribe to EventFlow. ListenerHandler now functional. GlobalEventbus now user listenerHandler
* getAllListeners
* Removed nulls
* Fixed stress tests
* Added docs, no more list creation when adding events to the bus.
* Fixed unsubscribe not working.
* Moved away from deprecated functions
* moved from wildcard to typed
* Moved away from deprecated function
* Added debugging to GlobalEventBus
* Fixed cleaning flow
* Fixed unsubscribe all
* Fixed unsubscribe all
* Removed unused import
* Added LoadingWidget.java for server feedback
* Imports
* fixed loadingwidget
* Workable LoadingWidget and trying to connect to server
* Removed output
* Small bug temp fix
---------
Co-authored-by: ramollia <>
* Created a somewhat generic TurnBasedGame thread. Temporary UI that only works for TicTacToe rn. Added a LocalPlayer with the intent to add more players
* (RANDOM COMMIT) Hope it works
* Changes by bas
* Fixed dependency issues
* Fixed major issue in game deepcopy
* Merge conflict fix
* Removed unused import
* Update GTBGT branch from dev branch (#263)
* started a basis for the tutorials, tic tac toe is almost done with some general stuff still to do.
* rest van de tutorials toegevoegd
* Removed views
* Merge conflict fix
* Removed unused import
---------
Co-authored-by: michiel301b <m.brands.3@st.hanze.nl>
Co-authored-by: ramollia <>
Co-authored-by: Bas Antonius de Jong <49651652+BAFGdeJong@users.noreply.github.com>
* Revert "Update GTBGT branch from dev branch (#263)"
This reverts commit 9134d7e343.
* Fixed frontend not using GameController because of spaghetti code.
* Removed unused imports
* GameCanvas not implements a DrawPlayerMove that can be overridden for specific implementations
* Created an event that will request the controller to refresh the UI.
* ADDED DEPENDENCY. Renamed GameControllers to GameManagers, gameThread is not game controller.
* Attempt at adding an online player. I think it doesn't work because of unsubscriben after success not working
* Multiplayer is functional through OnlineThreadBehaviour. Empty slots are currently represented by -1 in the GUI.
* Removed sout spam, added logger than I can't get to work.
* Idek what these changes are
* Te lang geen commit, sorry
* Multiplayer seems to work pretty well now, hopefully I can add the other games soon.
* Added unsubscribe to EventFlow. ListenerHandler now functional. GlobalEventbus now user listenerHandler
* getAllListeners
* Removed nulls
* Inbetween commit of adding Reversi. This is a lot of spaghetti.
* Fixed stress tests
* Fixed typo in NetworkingGameClientHandler that prevented losses from being received
* Missed 2nd typo. Fixed
* Added docs, no more list creation when adding events to the bus.
* Fixed unsubscribe not working.
* Moved away from deprecated functions
* moved from wildcard to typed
* Moved away from deprecated function
* Added debugging to GlobalEventBus
* Fixed cleaning flow
* Fixed unsubscribe all
* Fixed unsubscribe all
* Removed unused import
* Works now with updated EventFlow(). Unsubscribing works. ReversiAIR has an issue where a forced move returns -1 and local play back button doesn't work properly. To be fixed
* Fixed ReversiR issue that caused skip turn desync
* Fixed color mismatch with server and online main player is now correct.
* Added a bunch of java doc and small changes
* Small changes
* Added a new Thread Behaviour to test framework.
* Fixed human error I made in TicTacToeR logic...
* Fixed broken event and wrong player being presented as winner.
* Idk changes
* Fixed PR conflicts
---------
Co-authored-by: michiel301b <m.brands.3@st.hanze.nl>
Co-authored-by: Bas Antonius de Jong <49651652+BAFGdeJong@users.noreply.github.com>
* Added unsubscribe to EventFlow. ListenerHandler now functional. GlobalEventbus now user listenerHandler
* getAllListeners
* Removed nulls
* Fixed stress tests
* Added docs, no more list creation when adding events to the bus.
* Fixed unsubscribe not working.
* Moved away from deprecated functions
* moved from wildcard to typed
* Moved away from deprecated function
* Added debugging to GlobalEventBus
* Fixed cleaning flow
* Fixed unsubscribe all
* Fixed unsubscribe all
* Removed unused import
* Added LoadingWidget.java for server feedback
* Replace deprecated with correct function
* Added unsubscribe to EventFlow. ListenerHandler now functional. GlobalEventbus now user listenerHandler
* getAllListeners
* Removed nulls
* Fixed stress tests
* Added docs, no more list creation when adding events to the bus.
* Fixed unsubscribe not working.
* Moved away from deprecated functions
* moved from wildcard to typed
* Moved away from deprecated function
* Added debugging to GlobalEventBus
* Fixed cleaning flow
* Fixed unsubscribe all
* Fixed unsubscribe all
* Removed unused import
* Added unsubscribe to EventFlow. ListenerHandler now functional. GlobalEventbus now user listenerHandler
* getAllListeners
* Removed nulls
* Fixed stress tests
* Added docs, no more list creation when adding events to the bus.
* Fixed unsubscribe not working.
* Moved away from deprecated functions
* moved from wildcard to typed
* Moved away from deprecated function
commit a517f2f302baa89f8ef59946a31c7bb59c56770f
Author: Stef <stbuwalda@gmail.com>
Date: Thu Nov 27 15:43:43 2025 +0100
Make it so the game shows "Waiting on ... to make their move". Styling isn't done but it is easier to see who's turn it is. There is a lot of structuring to do in the previous code...
-Play Button + CSS + Events
-Previous Button + CSS + Events
-Changed interface for AudioResource to include a pause button which works really well with mediaplayer, however now SoundEffectAsset has an unnessescary pause
Fixed SnowflakeGenerator not making unique ids.
Changed naming for event implementation.
Automated id getter for events.
Added Error-Prone to all modules.
Added parents to all modules.
Added processors module.
Clips no longer create a new clip instance each time they are played. A singular clip is made for each resource and is opened/closed when loaded/unloaded. When a clip is played that is already playing it'll stop playback and start again. Clip volume handling isn't done very well.