tgoossens / htttp-peno Goto Github PK
View Code? Open in Web Editor NEWHet Team Treasure Trek Protocol (HTTTP) protocol over rabbitmq for P&O4 2013
Het Team Treasure Trek Protocol (HTTTP) protocol over rabbitmq for P&O4 2013
found
message on demand.
playerID
found
messages for logging purposes.Team members should be aware of their partner's position so they can meet up.
PlayerClient.PublicConsumer
should also handle update
.PlayerHandler.teamPosition(x, y, angle)
.foo
.foo
.Expected result:
playerLeft
as no valid player left the game.Actual result:
playerLeft
for foo
, effectively unregistering himself.Update JavaDoc to clarify that angles should be interpreted in degrees.
StackTrace: https://gist.github.com/stevenroose/174572f692b7605ab2d7
I get this error when one of my players finds his object and tries to broadcast that.
The position
topic still needs a handler. Simply parsing and calling the handler method should suffice.
Clients should listen to ready
broadcasts and update their PlayerInfo
s accordingly.
The robots controlled by the players have all different dimension. To allow for proper collision detection, this needs to be communicated to all parties.
position
update to listening simulators.paused
(or waiting
) state and notify handlers.waiting
or paused
state.start
message to notify other players.heartbeat
periodically while connected.
playerID
PlayerInfo
to include lastHeartbeat
leave
message.Currently, the ready state is redundant. As soon as you joined the game, you're in fact ready to roll for player numbers. It is much more useful to report a ready state after getting a player number, since this is the stage where robots need to be moved to their correct starting positions and may need some time to do so.
The following updated scenario is proposed:
This replaces the redundant "wait until ready to roll" with the more important "wait until ready to start" check. This should be fairly simple to implement, but all implementations will need to adjust their handling.
give a short overview in the readme and link to the complete specification documents
Completely separate from the currently implemented game communication, players have to broadcast their positions. This information should not be communicated by the current Handler interface, because Players should not know this information.
Proposal:
This would imply that the current playerPosition method should be moved.
-- fixed
This occurs because the first reconnected player no longer knows that the second player used to be in the game. He assumes that the second player is trying to join a game in progress in which he didn't start. The other connected players correctly accept the second player's request, but the rejection from the first player causes the second player to bail out.
Do we really need all players to accept a join request? All players in the game keep their game state synchronized, so theoretically one acceptation should suffice.
Is it possible to let the handler also have a method that is called when a player in the game changes its ready status?
long
instead of double
.double
s.accept
or reject
.Question: When can/should a merge be accepted or rejected?
Hoe moeten we de positie van onze robot doorsturen? (Voor een spectator die dus alle 4 de robots ziet bewegen) Ik had een thread gemaakt die PlayerClient.updatePosition(...) gebruikt om elke seconde de positie door te sturen. Dit lukt ook maar dan krijg ik geen andere berichten meer binnen. Bijvoorbeeld bij een disconnect van een andere client wordt de handler niet opgeroepen.
Enig idee waar dit aan ligt/hoe ik het anders moet aanpakken?
How else can we scan for physical robots only in the physical world and for virtual robots only in the virtual world.
Differently put:
If no distinction can be made between these two types of robots, why would we scan in the real world? We can just scan the virtual world and get all the information we need there.
win
.Because initially players were assumed to broadcast their position periodically.
Currently, players only do so when entering a new tile. This means that players can stay on a tile for a long time without communicating, having themselves kicked out.
Proposed fix: When a player stays idle for a long time, ping it and wait for a heartbeat before kicking him out.
I don't know if it is meant to be like this, but the GameHandler.gameStarted()
method is called 4 times when I run the game. Probably every player sends a gameStarted
signal to the others.
gameStarted
signal from one player takes about a second to reach the others and in the meantime other players feel responsible to start the game themselves. In this case there should be something to prevent the client from calling the Handler method multiple times.https://gist.github.com/stevenroose/bad701fda65f2adeb6e1
All our method GameCommunicationManager.joinTeam
only calls the PlayerClient.joinTeam
method.
accept
or reject
.Question: When can/should a meeting point be accepted or rejected?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.