Commit graph

203 commits

Author SHA1 Message Date
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