Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
groworld_multiplayer_prototype [2009-03-12 11:53] – davegriffiths | groworld_multiplayer_prototype [2009-03-13 12:42] – davegriffiths | ||
---|---|---|---|
Line 10: | Line 10: | ||
Use [[pluggable plants]] | Use [[pluggable plants]] | ||
+ | |||
+ | ====Network protocol==== | ||
+ | |||
+ | ===OSC version=== | ||
+ | |||
+ | The osc version works in a peer to peer manner in that there is no central server, and clients need to pass information around to each other. This has only been tested with 2 clients... Each client has a notion of the plant it ' | ||
+ | |||
+ | ^ Message ^ Data ^ Send when ^ Action on receive ^ | ||
+ | | /join-game | None | Joining game | Broadcast your plant back with /plant | | ||
+ | | /plant | Plant ID, postion, colour and structure | When starting game, your plant changes or /register recieved | If it's the first time you've seen this plant id, add plant to world, otherwise update plant | | ||
+ | | /flower | Plant ID, Flower ID, Colour | Sucking pollen has changed a flower colour | Update colour for this plant/ | ||
+ | | /spray | Plant ID, pollen type | Pollen release button pressed | Add pollen from plant into atmosphere | | ||
+ | | /leave-game | Plant ID | Leaving game | Remove plant from world | | ||
+ | |||
+ | When joining a game, you need to create a unique id for your plant. With no central server, this currently works in the following ad-hoc manner: | ||
+ | |||
+ | - Broadcast /join-game | ||
+ | - Wait for 2 seconds, deal with all incoming /plant messages | ||
+ | - Count the number of plants, give yourself an id based on that | ||
+ | - Broadcast your new plant back with /plant | ||
+ | |||
+ | ===Structure information=== | ||
+ | |||
+ | Currently an sexpr as this is what the pluggable plants system uses rather than l-systems. I need to have a think about this... | ||
+ | |||
+ | Each component looks like this: | ||
+ | < | ||
+ | |||
+ | A real example: | ||
+ | < | ||
+ | |||
+ | The numbers refer to the texture naming convention for [[pluggable plants]]. |