Commit graph

580 commits

Author SHA1 Message Date
David Négrier 9f3577286d Merge branch 'develop' of github.com:thecodingmachine/workadventure into uws
# Conflicts:
#	back/src/Controller/AdminController.ts
#	back/src/Controller/AuthenticateController.ts
#	back/src/Controller/IoSocketController.ts
#	back/src/Controller/MapController.ts
#	benchmark/index.ts
#	front/src/Connexion/RoomConnection.ts
2020-09-29 17:12:28 +02:00
David Négrier 432b4a0e85 Linting app 2020-09-29 16:12:17 +02:00
David Négrier b485c9bf46 Switching WebRTC to protobuf + uws 2020-09-29 16:01:22 +02:00
David Négrier 6a4c0c8678 Migrating to uWS 2020-09-28 18:52:54 +02:00
arp 3f9659ef3c improvments 2020-09-28 15:40:34 +02:00
arp af4611ed29 rewrote the login workflow 2020-09-25 19:23:33 +02:00
David Négrier ac80850335 Switching SetViewport to protobuf 2020-09-24 17:36:10 +02:00
David Négrier 24a6cd7f8e Switched ITEM_EVENT to protobuf 2020-09-24 17:24:37 +02:00
David Négrier cd083a2090 Merge branch 'develop' of github.com:thecodingmachine/workadventure into protobuf
# Conflicts:
#	back/package.json
2020-09-24 16:22:16 +02:00
David Négrier 0c4c43f88c Adding USER_LEFT message to protobuf 2020-09-24 16:11:47 +02:00
David Négrier 2dad601311 Adding JOIN_ROOM message in protobuf 2020-09-24 14:50:28 +02:00
David Négrier d7209d8864 Migrating messages locally into back and front 2020-09-24 11:16:08 +02:00
David Négrier b4f971c501 Switched group position to protobuf 2020-09-24 10:05:16 +02:00
Gregoire Parant 7f4014cccf Fix CI 2020-09-23 19:07:45 +02:00
Gregoire Parant 7584c3a04d Fix CI 2020-09-23 18:44:24 +02:00
Gregoire Parant 3cb079c80c Fix CI 2020-09-23 18:37:54 +02:00
Gregoire Parant d5fdb9d857 Fix style 2020-09-23 18:07:31 +02:00
Gregoire Parant bcb126a146 Merge branch 'develop' into feature/global-message
# Conflicts:
#	back/src/App.ts
2020-09-23 17:26:00 +02:00
Gregoire Parant 942d2cbcef Refactor and remove prevent default keyboard 2020-09-23 17:22:00 +02:00
Gregoire Parant 8c43c67741 Create feature to send and read audio message 2020-09-21 15:00:39 +02:00
David Négrier 76d3779438 Moved GroupUpdateMessage to protobuf 2020-09-21 11:24:03 +02:00
arp a19f09bef2 improve the register workflow 2020-09-21 10:51:48 +02:00
Gregoire Parant 16b3e48711 Add menu to switch 2020-09-21 01:16:10 +02:00
Gregoire Parant 1829912c91 Fix remove last childnode 2020-09-21 00:42:39 +02:00
Gregoire Parant e0ae79eaf1 Fini quill box 2020-09-21 00:34:25 +02:00
Gregoire Parant 9b955ebd20 fix style quill box 2020-09-20 19:31:24 +02:00
Gregoire Parant 844bffa988 Create file controller to upload audio document 2020-09-20 19:01:21 +02:00
Gregoire Parant 45ad4bbb36 Send and play audio message 2020-09-20 17:12:27 +02:00
Gregoire Parant 4c7e458e52 create event and brodcast event in backend 2020-09-19 01:08:56 +02:00
David Négrier b148ca3708 Linting 2020-09-18 18:16:26 +02:00
David Négrier d2a5060ad2 Using multistage builds with protocol buffers 2020-09-18 18:00:03 +02:00
David Négrier d3116c7400 Building proto messages in CI 2020-09-18 17:51:12 +02:00
David Négrier 5c0a4e7c5a Fixing front Dockerfile 2020-09-18 17:39:59 +02:00
David Négrier 7826b2ea8d Fixing Docker build images to add new messages directory 2020-09-18 17:22:45 +02:00
David Négrier df0636c513 Migrating user position messages to protobuf 2020-09-18 15:51:15 +02:00
David Négrier e9ca8721a6 Migrating userId to "int32" to save some space and adding userMoves message in protobuf 2020-09-18 13:57:38 +02:00
arp ed9552b62b added a register route via token 2020-09-17 18:21:49 +02:00
David Négrier 4b55b54a07 Adding first protobuf message exchange 2020-09-17 17:14:47 +02:00
Gregoire Parant e59cbcfaa7 Create console global message
- Add style
- Create zone and button to show the admin console
2020-09-16 21:50:04 +02:00
Gregoire Parant 509196785b Initialise global message
- Create new class to manager global message. My idea is that this class permit to manage audio or text message.
 - Update html to have main content id and inject html in this.
 - Create front event to receive startMessage and stopMessage.
 - Delete impoted variable not used.
2020-09-16 18:38:50 +02:00
David Négrier f5f9dcac04 Making groups part of zones 2020-09-16 16:06:43 +02:00
David Négrier 3a9196fb82 Merge 2020-09-16 11:41:03 +02:00
David Négrier d24ec0bd75 Plugin PositionNotifier into the main application. 2020-09-15 16:21:41 +02:00
David Négrier f8d462b0d7 Fixing "any" type 2020-09-15 10:10:35 +02:00
David Négrier 9b702c75e3 Adding batched messages + the notion of notifier / zones (not plugged in the system yet) 2020-09-15 10:06:11 +02:00
David Négrier e418e8fd09 Setting the depth of the chat mode / presentation mode to 99999 to avoid melting buttons with map. 2020-09-10 09:31:53 +02:00
David Négrier f70ba1411a Hiding cam details when entering a Jisti room 2020-09-01 14:43:21 +02:00
David Négrier 9516f6615c Centering character based on game div
Previously, character was centered based on window size, but when doing CoWebsite browsing, window size != game size, leading to poorly centered characters
2020-08-31 17:56:11 +02:00
David Négrier 8655aef629 Fixing URL passing in WebRtc setup 2020-08-31 15:34:21 +02:00
David Négrier 3875c0afe8 Fixing environment variable passing in Webpack 2020-08-31 15:34:21 +02:00
David Négrier ed116cf2a3 Switching on our very own turn server 2020-08-31 15:33:50 +02:00
David Négrier 6f6873e870
Merge pull request #251 from thecodingmachine/fix_camera_stop
Camera was not properly closed in EnableCameraScene
2020-08-31 15:31:33 +02:00
David Négrier 634eecd42a Fixing issue when both mic and cam are stopped 2020-08-31 15:21:05 +02:00
David Négrier c739037bc4 Camera was not properly closed in EnableCameraScene 2020-08-31 14:54:52 +02:00
David Négrier 9351719873 Adding the notion of silent zone 2020-08-31 14:10:01 +02:00
David Négrier df7b5cc2e3 Adding a "silent" notion (triggered in Jitsi meets) 2020-08-31 14:03:40 +02:00
David Négrier 0a8ba37049 Adding Jitsi meet support 2020-08-31 12:18:00 +02:00
David Négrier a128ff117b code style 2020-08-30 17:40:04 +02:00
David Négrier 01319b50ca Adding a "openWebsite" property that opens websites when we walk over the zone. 2020-08-30 17:37:38 +02:00
David Négrier 168697eb46 Adding a GameMap class that helps tracking when the properties of the tiles the user is changes (when the user moves) 2020-08-30 15:44:22 +02:00
David Négrier 13272968cf Clicking on a video puts it in presentation mode
Adding the ability to put a video in presentation mode by clicking on it.
Also, adding small CSS animations on hover.
2020-08-27 10:16:34 +02:00
David Négrier 7dc9e32b84 Merge branch 'screenshare2' into outline 2020-08-24 18:24:47 +02:00
David Négrier 7f5f802b86 Avoiding flickering when entering presentation mode with no presentation 2020-08-24 18:23:02 +02:00
David Négrier fca93663b4 Merge branch 'develop' of github.com:thecodingmachine/workadventure into outline 2020-08-24 18:15:44 +02:00
David Négrier 044495cf05 Centering character in free space
This commit adds the ability to put the character where there is free space when a discussion is hapening (either in presentation or chat mode)
2020-08-24 14:19:36 +02:00
David Négrier b7c2f8be7b Adding colors for cam/mic/screen share button
Microphone and camera are now red when disabled.
Screen-share is green when enabled.
Also, they are now always partially visible (they were completely hidden previously until hovering in the lower right corner)
2020-08-22 15:26:40 +02:00
David Négrier 91f422d0c3 Fixing stop of stream in bi-directional screen sharing. 2020-08-21 22:53:17 +02:00
David Négrier f60b02f1dc Putting a wider onhover surface when clicking on one of the buttons to manage screen sharing or video/mic 2020-08-20 22:57:34 +02:00
David Négrier c442d6ce67 Lint 2020-08-20 22:29:14 +02:00
David Négrier dc36af19bc Detecting press on "stop screen sharing" 2020-08-20 22:23:38 +02:00
David Négrier 1162439479 Overloading destroy method instead of having a separate method to remove video. 2020-08-20 22:23:22 +02:00
David Négrier 27ffb6b13d Refactoring SimplePeer code: splitting Peer instantiation into 2 subclasses (VideoPeer and ScreenSharingPeer). This leads to way leaner code. 2020-08-20 16:56:10 +02:00
David Négrier 894f7c8009 Removing useless roomID parameter in WebRtcSignal message 2020-08-20 15:21:07 +02:00
David Négrier 0119534283 First version of screen-sharing that works when a user is joining a group after screen sharing begun. 2020-08-20 00:05:00 +02:00
David Négrier cc1cb2f671 Fixing linting 2020-08-18 14:59:50 +02:00
David Négrier 2e61c2ef62 Getting back code in compilable fashion after huge rebase 2020-08-18 00:12:38 +02:00
Gregoire Parant 4b72958193 Fix peer connexion for two player with screen sharing 2020-08-17 23:56:46 +02:00
Gregoire Parant a8f27e6084 Create event to start webrtc screen charing 2020-08-17 23:54:26 +02:00
Gregoire Parant a4f42111d7 Update screen sharing feature 2020-08-17 23:47:17 +02:00
Gregoire Parant 0bbed7717a Continue screen sharing 2020-08-17 23:39:50 +02:00
Gregoire Parant 3e2c5049f2 Fix to add special screen sharing 2020-08-17 23:36:02 +02:00
Gregoire Parant 209057e3fc New fictive user screen sharing
- Create new fictive user
 - Add new fictive user in WebRtc group
 - Add screen sharing video on left side
2020-08-17 23:32:39 +02:00
Gregoire Parant 6c1b8122ef Fix CI 2020-08-17 23:19:31 +02:00
Gregoire Parant eed5333d69 Stability simple peer 2020-08-17 23:18:38 +02:00
Gregoire Parant 208b91e52a Feature screen sharing
- Send stream of screen sharing in peer connexion
 - Add button for share your screen
2020-08-17 23:17:00 +02:00
David Négrier 6b970adc6c Merge branch 'develop' of github.com:thecodingmachine/workadventure into outline
# Conflicts:
#	front/src/Phaser/Game/GameScene.ts
#	front/src/Phaser/Player/Player.ts
#	front/src/index.ts
#	front/yarn.lock
2020-08-17 22:51:37 +02:00
David Négrier fc78249eae Code cleanup 2020-08-17 22:03:08 +02:00
David Négrier 0f305b0c12 CSS cleanup 2020-08-17 21:59:26 +02:00
David Négrier beb0d1ef0a Linter fix 2020-08-17 16:18:39 +02:00
David Négrier 6516e621b0 Adding display / hide of layout buttons when a meet start / ends 2020-08-17 16:12:53 +02:00
David Négrier 7fe2cc19c3 Adding buttons to switch mode 2020-08-17 15:20:03 +02:00
David Négrier 05ca8c813e Fixing chat mode canceling flex display 2020-08-16 23:49:31 +02:00
David Négrier 1509777945 Improving video CSS (work on overlay) 2020-08-16 23:45:03 +02:00
David Négrier 88c099fc13 Improving layout
Fixing left-right switch on all cameras (except current player camera)
2020-08-16 23:19:04 +02:00
David Négrier 0041e088a4 Fixing position of self webcam in CoWebsite mode 2020-08-13 18:28:22 +02:00
David Négrier 9f6c6e0ce1 Adding CoWebsiteManager + first working version of flex video 2020-08-13 18:21:48 +02:00
David Négrier 83fe024c45 Adjusting class in chat mode based on number of divs displayed. 2020-08-11 22:40:54 +02:00
David Négrier 7232bbaef9 Adding LayoutManager to position videos as cleverly as possible 2020-08-11 22:32:55 +02:00
David Négrier 24fb605f50 Switching to definitely assigned parameters
This allows us to go in "full strict mode" (yeah!)
See https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#strict-class-initialization
2020-08-07 23:39:06 +02:00
David Négrier bc929615d1 Fixing problem when switching scenes with container 2020-07-29 11:42:18 +02:00
David Négrier dcbe8d35db Upgrading dependencies 2020-07-29 11:35:59 +02:00
David Négrier 84529d6e99 Propagating customized sprites all over the game 2020-07-28 17:45:55 +02:00
David Négrier 6d0bccc0e1 Making a nice "customize" button 2020-07-28 15:53:44 +02:00
David Perez 866985326b Fixing merge issue 2020-07-28 11:35:30 +02:00
David Perez 90c56ca683 merge 2020-07-28 11:29:21 +02:00
David Perez 25abcfe202 png files 2020-07-28 11:25:19 +02:00
David Perez 21d2a7939b custome characters 2020-07-28 11:24:34 +02:00
David Négrier 2d818ec79d Fixing broken Jasmine test due to module config 2020-07-27 22:48:04 +02:00
David Négrier ee612f6585 Adding event support to items 2020-07-27 22:36:58 +02:00
David Négrier d48d5b0285 Fix CS 2020-07-23 18:47:28 +02:00
David Négrier 2484e4f1df Moving maps to their own container 2020-07-23 18:43:51 +02:00
David Négrier ed146226cf Adding Outline capabilities and a ActionableItem notion. 2020-07-23 18:09:24 +02:00
David Négrier f7466994c5 Playing with pipeline to display outline 2020-07-15 23:44:01 +02:00
David Négrier 6879418098 Adding a 404 page when resources loading fails 2020-07-07 22:52:22 +02:00
David Négrier 55767f2c78 Fixing image tileset key
If 2 maps share the same tileset name (even if they use 2 different URLs for the tileset), the tileset image will be reused wrongly.

This commit fixes the tileset key to make it equal to the image URL.
2020-07-07 18:22:10 +02:00
David Négrier 67e07c04f8 Fixing loading of tilesets with margin or padding 2020-07-05 17:10:08 +02:00
David Négrier 2b5d3e0017 Sending the source map out of the main JS file to reduce size 2020-07-02 10:38:36 +02:00
David Négrier 63e2e176d3 Fixing tests 2020-06-25 11:56:11 +02:00
David Négrier bfec2317c9 Fixing default value 2020-06-25 11:39:38 +02:00
David Négrier bb6b07536e Fixing Jasmine tests 2020-06-25 11:39:18 +02:00
David Négrier 1978c1a324 Lint 2020-06-25 11:35:20 +02:00
David Négrier 5f5cec93ea Audio device => exact mode 2020-06-25 11:26:55 +02:00
David Négrier e3e7b92c6a Fixing errors when arrows touched and no cam 2020-06-25 10:43:42 +02:00
David Négrier c322de4412 Moving to async/await 2020-06-25 10:43:27 +02:00
David Négrier 8db615551a Fixing device switching in Firefox 2020-06-25 10:33:26 +02:00
David Négrier d18abaf067 Enabling optional https in development 2020-06-25 10:32:47 +02:00
David Négrier 371b4f0063 Fixing Firefox compatibility by remove references to InputDeviceInfo 2020-06-25 09:28:00 +02:00
David Négrier a52b1f612b Reorganizing on x axis too. 2020-06-24 18:09:59 +02:00
David Négrier b3c18702bb Adding borders, centering camera, fixing small bug on resize when no camera is enabled 2020-06-24 17:49:38 +02:00
David Négrier 253108eba0 - Making the EnableCameraScene responsive
- Enabling click on arrows
2020-06-24 17:29:23 +02:00
David Négrier 3de37bafed Adding a scene to configure the webcam 2020-06-24 15:35:07 +02:00
David Négrier d78006e106 Fixing memory leak with listeners
The listeners from MediaManager and SimplePeer were never removed, leading to a huge amount of listeners all over the applications when switching regularly of scene.
2020-06-23 15:02:35 +02:00
David Négrier 74af7d52c3 Improving error handling in MediaManager 2020-06-22 22:55:28 +02:00
David Négrier a5514ce78a Code cleanup and removing exception in favor of console error 2020-06-22 18:42:54 +02:00
David Négrier 407c6db070 Fixing difference between MapKey and scene key (prevented proper caching of resources) 2020-06-22 17:18:24 +02:00
David Négrier 3f927280a6 Lint 2020-06-22 16:11:48 +02:00
David Négrier 9b174836cd Making sure connection is established again EVEN if the tab is not displayed 2020-06-22 16:11:02 +02:00
David Négrier 1e4ffa20ab Cleaning GameManager 2020-06-22 16:10:34 +02:00
David Négrier 403ea223a8 Reconnecting also on socket error 2020-06-22 16:10:18 +02:00
David Négrier f88f28db3f Refactoring reconnection: putting it into the GameScene directly. 2020-06-22 15:00:23 +02:00
David Négrier d785a8a1bf Refactoring connection to be part of a GameScene
Most of the refactoring issues we are seeing are probably due to the fact that we are trying to manipulate a ScenePlugin out of a Scene (the GameManager is not a Scene and holds a reference to a ScenePlugin coming from a Scene that might get invalidated by Phaser 3).
Furthermore, if we want in the future to be able to scale, scenes could be hosted on different servers. Therefore, it makes no sense to have one connexion for the whole application.
Instead, we should have one connexion for each scene.
2020-06-22 11:58:07 +02:00
David Négrier 4496c49621 Fix linting 2020-06-19 18:51:58 +02:00
David Négrier 2b820c7d56 Adding an event queue in the GameScene.
Events are processed only in the 'update' method.
We hope this will solve a number of null pointer errors. See #194
2020-06-19 18:18:43 +02:00
David Négrier e2be99490b Finishing removing any reference to "any" in the front. 2020-06-19 16:36:40 +02:00
David Négrier 39928b46f9 Removing any in the front 2020-06-19 14:30:34 +02:00
David Négrier 8348d13bfe Fixing use const instead of let 2020-06-19 14:30:34 +02:00
David Négrier 54f2518b5e Enabling stricter lint on front 2020-06-19 14:29:29 +02:00
David Négrier 817b25b0be Fixing reconnect issue
In the case the reconnect event was triggered on "wake-up", the disconnect event was not sent. But because of a bug in the way we handle the setTimeout, the reconnection to the GameScene never happened after we forced the disconnect scene.
This fixes the issue.
2020-06-17 16:06:02 +02:00
David Négrier b8f9e25b26
Merge pull request #184 from thecodingmachine/debugreconnect
Adding console log when trying to reconnect
2020-06-17 15:43:20 +02:00
David Négrier b14524625c Adding console log when trying to reconnect 2020-06-17 15:37:02 +02:00
David Négrier b1d39c4690 More logs 2020-06-11 14:13:13 +02:00
David Négrier ea30a02762 Fixing reconnect issues 2020-06-11 14:12:03 +02:00
David Négrier 473c5aa052 Fixing events fired multiple times
Callbacks for socket.io events were registered each time a disconnect was called, leading to message being dispatched plenty of times if there was several disconnections.
2020-06-11 13:34:25 +02:00
David Négrier e50a4fd88b Fixing setTimeout being called several times 2020-06-11 11:34:22 +02:00
David Négrier f7265c213e Patch 2020-06-11 10:40:43 +02:00
David Négrier 43c7c9ad07 Fixing null initialization 2020-06-11 10:29:11 +02:00
David Négrier 77167c28a6 Making sure that even is a user did not move, the reconnection can happen without issues and resume at the old position 2020-06-11 10:04:23 +02:00
David Négrier ce7b4092a6 Fixing suspend/resume
In case we suspend a laptop and resume it, the RECONNECT event is called by socket.io without any error being thrown (so without us being redirected to the Reconnect Scene).
This fix makes sure we go to the reconnect scene before going back to the main scene.
2020-06-11 09:37:33 +02:00
David Négrier 80fddb3c69 Removing dead code 2020-06-10 16:01:01 +02:00
David Négrier f518830073 Minor change to make sure the scene starts even if in background (does this really work?) 2020-06-10 16:00:54 +02:00
David Négrier 500dc83a85 Completely resetting GameScene on disconnect 2020-06-10 15:43:22 +02:00
David Négrier 43e4489d4d Fixing start position on disconnect 2020-06-10 14:57:32 +02:00
David Négrier 91ce318848 Changing license to AGPL + Commons Clause
This is an important change.
So far, the project was labelled as licensed under the "AGPL" (improperly since no version of the AGPL was specified)

This commit changes the license to "AGPL + Commons Clause"

The [common clause](https://commonsclause.com/) is an additional restriction forbidding companies from taking WorkAdventure of the shelf, and reselling WorkAdventure.

This license does not forbid anyone from installing and using WorkAdventure, it only targets resellers (so SAAS exploitation of WorkAdventure is limited to TheCodingMachine).

This effectively makes WorkAdventure non open-source, but the source-code remains available for anyone to see and modify.
2020-06-09 10:17:21 +02:00
David Négrier dcc78786a9 Porting favicon to the "front" container 2020-06-09 09:21:24 +02:00
David Négrier bd3be2a138
Merge pull request #157 from thecodingmachine/fixing_long_disconnect
Adding connecting spinner and blinking error to webrtc display
2020-06-08 18:09:12 +02:00
David Négrier 5042f2f82c Lint 2020-06-07 23:00:05 +02:00
David Négrier c0809e28db Adding support for putting the hash in a map referenced in an exit scene. 2020-06-07 22:57:32 +02:00
David Négrier db3ef81842 Adding the ability to add several entry points
We can now have several start layers and choose an entry point using a # in the URL
2020-06-07 13:23:32 +02:00
David Négrier f2c9647882 Adding connecting spinner and blinking error to webrtc display
I put a connecting spinner around the user name when the user is connecting.
Also, if an error occurs, we will see a blinking red circle around the player name.
2020-06-06 22:49:55 +02:00
David Négrier 96c5d92c46 Fixing disconnection taking ~15 seconds
Most of the time, sending a disconnect event to one of the players is enough (the player will close the connection
which will be shut for the other player).
However! In the rare case where the WebRTC connection is not yet established, if we close the connection on one of the player,
the other player will try connecting until a timeout happens (during this time, the circle with the name is displayed for nothing).

So now, we send disconnection event to every body (not only the people in the group, but also to the person leaving the group)
2020-06-05 13:07:18 +02:00
David Négrier b82b13e351 Finalizing strict mode fixes 2020-06-04 18:56:59 +02:00
David Négrier 6f69a62d4d More strict fixes 2020-06-04 18:56:59 +02:00
David Négrier 082a11b0cd Allowing ill defined initializers (because of the way Phaser 3 is designed) 2020-06-04 18:56:59 +02:00
David Négrier 7292bc3cab More strict fixes 2020-06-04 18:56:22 +02:00
David Négrier 111bfcfe8c More strict typecheck fixes 2020-06-04 18:56:22 +02:00
David Négrier a231024502 Fixing strict type checks 2020-06-04 18:56:22 +02:00
David Négrier a3ac782f17 Enabling Typescript strict mode on the front
This is very important otherwise, a number of useful checks (like nullable objects not propertly checked) are not performed.

See https://dev.to/briwa/how-strict-is-typescript-s-strict-mode-311a
2020-06-04 18:56:22 +02:00
David Négrier b6d8b8fb49
Merge pull request #139 from thecodingmachine/landingpage
first landingpage release
2020-06-04 15:34:57 +02:00
David Négrier 17250d810f Fixing front title 2020-06-04 15:23:54 +02:00
David Négrier 82e2c0d985
Merge pull request #149 from thecodingmachine/multiple_start_positions_in_layer
Allowing several start positions in a given start layer
2020-06-03 11:20:57 +02:00
David Négrier 69d2fa6944 Allowing several start positions in a given start layer
If more than one tile was set in the "start" layer, the last tile would be selected.
Now, the tile is selected at random among available tiles.

Also, a message is issued if no tiles have been put on the "start" layer.
2020-06-03 11:14:04 +02:00
David Négrier 9ddf22d36b Removing GameScene from the list of known GameScene when leaving
This is important because when we come back to the GameScene later, some properties of the GameScene object might be initialized with the values of the previous GameScene.
Like the position if the user previously disconnected.

Closes #146
2020-06-03 10:45:25 +02:00
David Négrier 2dc682ea72 Fixing warning on character selection 2020-06-02 15:57:11 +02:00
David Négrier d72e60610e Adding PlayersPositionInterpolator to interpolate/extrapolate players positions 2020-06-02 13:44:42 +02:00
David Négrier d69ce8a6a6 Adding PlayerMovement class to interpolate/extrapolate position along tests (installing Jasmine) 2020-06-02 10:48:04 +02:00
David Négrier 077b29bfbd Sending position only every 200ms while moving 2020-06-01 22:42:18 +02:00
Gregoire Parant b931a8f117 Fix animation player 2020-06-01 13:20:45 +02:00
Gregoire Parant 244f87196e Update strategy caching bundle front js files with webpack
- Add HtmlWebpackPlugin to use template index html
2020-06-01 11:53:12 +02:00
David Négrier f69f99f449 Adding localStorage for selected user 2020-05-26 22:26:50 +02:00
David Négrier 52e3b47cc1 Storing user name in local storage 2020-05-26 22:17:00 +02:00
David Négrier f36bd240a7 Fix lint 2020-05-26 17:43:25 +02:00
David Négrier 0492dfdf3a Fixing import 2020-05-26 17:37:26 +02:00
David Négrier 04a1f90ed5 Adding communication between LoginScene and SelectCharacterScene 2020-05-26 17:25:29 +02:00
David Négrier 5806e379c8 Fixing selection on keyboard after selection using mouse 2020-05-26 17:02:04 +02:00
David Négrier da0d9fed87 Adding a new SelectCharacterScene
Taking what was done in the LoginScene regarding character selection and putting it in its own scene.
Also, making character selection possible via the keyboard.
2020-05-25 23:26:27 +02:00
David Négrier 21576946f0 Commenting out the notion of status in the GameManager
It seems to be useless
2020-05-25 22:37:07 +02:00
David Négrier 62cb8cca87 Also removing dead class 2020-05-25 22:36:44 +02:00
David Négrier 17e7f1b37a Removing dead code from previous messaging system
Remvoing messages that were no more used in the new messaging system (the code used to handle the message that sent the position of all users on the front side)
2020-05-25 22:36:44 +02:00
David Négrier 1fa39b0781 Fixing typos.
Replaced connexion with connection and LogincScene with LoginScene
2020-05-24 23:14:12 +02:00
David Négrier cd586a9e0c Renaming /maps to /start-map
Closes #90
2020-05-24 22:53:10 +02:00
David Négrier 2448fef53a Adding a notion of instances per mapAdding a notion of instances to room
The URL signature becomes:

https://workadventu.re/_/[instance]/[path_to_map.json]

This allows us to create many instances of the same map (and therefore to create several different worlds for different people)

An exit on a map can target another "instance" by passing the "exitInstance" property.
2020-05-23 17:45:49 +02:00
David Négrier 080e08eeef
Merge pull request #122 from thecodingmachine/reconnecting_scene
Adding a special scene to wait for server reconnection
2020-05-23 17:12:36 +02:00
Gregoire Parant f4ed2e52bf Fix CI 2020-05-23 16:50:17 +02:00
David Négrier e41eda9979 Prettifying lost connection screen 2020-05-23 16:13:37 +02:00
David Négrier 36858f8747 Adding a special scene to wait for server reconnection 2020-05-23 15:43:26 +02:00
Gregoire Parant ab32021fc0 Fix mediam stream manage and server back down 2020-05-23 14:00:36 +02:00
David Négrier ab798b1c09 Changing the "Point" notion to add a notion of "moving" in addition to the notion of direction.
Also, refactoring JOIN_ROOM event to add complete position.
2020-05-22 23:04:45 +02:00
David Négrier f44a44c109 Removing logs 2020-05-20 12:30:17 +02:00
David Négrier 125a4d11af Refactored and optimized messages
Now, when a user moves, only his/her position is sent back to the other users. The position of all users is not sent each time.

The messages sent to the browser are now:

- the list of all users as a return to the join_room event (you can send responses to events in socket.io)
- a "join_room" event sent when a new user joins the room
- a "user_moved" event when a user moved
- a "user_left" event when a user left the room

The GameScene tracks all these events and reacts accordingly.

Also, I made a number of refactoring in the classes and removed the GameSceneInterface that was useless (it was implemented by the LogincScene for no reason at all)
2020-05-19 19:11:12 +02:00
David Négrier 1bbd0866cb Code cleaning 2020-05-16 16:07:57 +02:00
David Négrier 3b6ace03fa Getting rid of roomId in Message class (this is not needed since all messages sent are for the room we are currently in) 2020-05-16 00:19:27 +02:00
David Négrier 4d1c3517ec When sharing user position, only position is sent now! 2020-05-15 23:47:00 +02:00
David Négrier cdfa9acf01 JoinRoom now ONLY sends the roomId. 2020-05-15 23:24:04 +02:00
David Négrier b80e3e07d8 Sending player details (name + character selected) on connection 2020-05-15 22:49:50 +02:00
David Négrier 5a3668a12e Refactoring messages
Socket.io can stringify JSON messages itself, so there is no need to pass a string to "emit". You can pass a serializable object!

This commit removes all the useless toJson() methods, JSON.serialize and JSON.parse!

Woot!
2020-05-15 22:04:49 +02:00
David Négrier 4de552437d Completely getting rid of "userid"
Previously, userid was generated by the "/login" route and passed along.
This commit completely removes the uuid "userid" (and disables the LoginController too and any Jwt check).

"userid" is replaced by the "socket id" of the connection.
So a user is now identified using a socket id, which is unique for a given connection.
2020-05-14 23:20:43 +02:00
David Négrier 34d3a292db
Removing log trace 2020-05-14 22:00:31 +02:00
gparant 182882fded Fix border view 2020-05-14 20:54:34 +02:00
gparant 787e1c463c Media webrtcA
- Update peerConnexion manage
 - Add muted microphone logo
 - Add icon user
 - Sound when user enter in room webrtc
2020-05-14 20:39:30 +02:00
David Négrier 6e71d7f28a
Merge pull request #109 from thecodingmachine/Auto-reconnect
Auto-reconnect
2020-05-13 22:03:56 +02:00
gparant ec297e3912 Auto-reconnect 2020-05-13 20:22:42 +02:00
kharhamel e2531343d1 fixed a game crash on firefox on http 2020-05-13 16:56:22 +02:00
David Négrier dd5a0c9933 Fixing domain name 2020-05-13 16:17:58 +02:00
David Négrier a2123c092c Fixing htaccess redirect 2020-05-13 09:29:18 +02:00
David Négrier faadacddb6 Redirecting to the correct map after login screen based on URL provided 2020-05-13 00:06:58 +02:00
David Négrier daa559738b Adding history support
Arriving on a new map now changes the URL.
All URLs starting with _ are automatically redirected to index.html by the web server
2020-05-12 22:38:44 +02:00
David Négrier 9417e4a4d2 Refactoring/centralizing map loading in GameManager 2020-05-12 22:38:44 +02:00
David Négrier 256fa51e24 Catching errors in socket callbacks
Catching errors in socket callbacks to avoid having the server crashing when an error occurs.
2020-05-12 11:49:55 +02:00
gparant d3ff717f9e Minor Fix overflow css style 2020-05-12 00:22:55 +02:00
David Négrier 0daddb3669
Merge pull request #93 from thecodingmachine/fix-recette-grp
Fix recette GRP
2020-05-11 22:59:22 +02:00
David Négrier 7ded674cc4
Merge pull request #95 from thecodingmachine/lyon_map
Refactoring "exit" to allow multiple maps
2020-05-11 22:56:47 +02:00
David Négrier d51462abd4 Fixing typo 2020-05-11 19:19:42 +02:00
David Négrier 39f1952f94 Putting player names depth at a high depth to have them always visible 2020-05-11 19:16:36 +02:00
David Négrier 98628957a4 Refactoring "exit" to allow multiple maps
Adding several layers named "exit" causes issues with Phaser 3.
This PR makes any possible layer being an exit layer (it only depends on the exitUrl property)

Also, fixing start position (it takes into account the layer width now)
2020-05-11 18:49:20 +02:00
gparant e35c188854 Fix update world back end and deleting group in front end 2020-05-11 13:17:02 +02:00
gparant 141280e691 Fix url to get the next map in GameScene 2020-05-11 00:25:06 +02:00
gparant f4af824cf9 Fix error mapping refresh in back & the end of this feature development 2020-05-10 23:49:08 +02:00
gparant 58b65030bd Fix feedback @moufmouf strategy of maps managing by back. 2020-05-10 18:34:55 +02:00
gparant 68ac145882 Fix feedback @moufmouf on circle texture 2020-05-10 17:55:30 +02:00
gparant 69777ad1cb Remove middleware to secure access API. 2020-05-10 17:31:27 +02:00
gparant 029a7a9a64 Correct feedback @moufmouf 2020-05-10 14:49:49 +02:00
gparant 5f11b065e1 Permit to dissociate data by room
- Update share room id.
 - Join room when a scene is loaded.
 - Add a room in constant variable.
2020-05-10 13:58:32 +02:00
gparant 27c6034661 Manage multi scene
- Create position and check if user is in position to switch in the next scene.
 - When scene is load, we load all scene in the layer of name "exit".
 - Layer "exit" of map.json have a parametter "exitSceneKey" to identify next scene.
 - Add layer "start", the player could start in the scene on the object present in the layer of name "start".
2020-05-09 21:28:50 +02:00
gparant fb8d9bf9a8 Multi Scene in back end
- Change maps url to get maps
 - Change GameScene to create scene with file since back end
 - Change LoginScene to upload scene and start game
2020-05-09 19:41:21 +02:00
gparant 4157a12f5d Update name map
- Change name in game scene and login scene
2020-05-09 16:47:55 +02:00
gparant b983fff076 Add map 1st floor
Rename map to floor 0
2020-05-09 16:38:13 +02:00
gparant 59127534ac Fix User depth
- Update strategy layers depth
 - Add depth to manager layers positions between all users
2020-05-08 17:35:40 +02:00
David Négrier c59d693f6e
Merge pull request #83 from thecodingmachine/cleanup_rename_frame
Cleanup: renaming "frame" to "character"
2020-05-08 16:21:16 +02:00
David Négrier e4824fe34d
Merge pull request #81 from thecodingmachine/display_groups
Adding the display of a circle around the group
2020-05-08 16:20:56 +02:00
David Négrier 25b7fc5e36
Merge pull request #82 from thecodingmachine/fix/webrtc
Fix webrtc
2020-05-08 16:14:49 +02:00