This is an old revision of the document!
Groworld multiplayer prototype
An initial version of the groworld game in order to have something to focus on and develop ideas further. The main priority is to demonstrate some of the techniques we want to explore in the simplest possible form.
- Network communication protocols/transport
- Multiplayer gameplay
- Basic plant communication (via pollen)
- Exchange of simple properties/behaviours
- Plant ownership/point of view
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 'owns'.
Message | Data | Send when | Action on receive |
---|---|---|---|
/register | 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 |
/spray | Plant ID, pollen type | Pollen release button pressed | Add pollen from plant into atmosphere |
/unregister | Plant ID | Leaving game | Remove plant from world |
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:
(texture-id list-of-children)
A real example:
((1-1 ((3-1 ((1-1 ((1-1 ((11 ()))))) (2-1 ((2-1 ((11 ()) (11 ()))) (1-1 ((11 ()))))) (2-1 ((2-1 ((11 ()) (11 ()))) (1-1 ((11 ()))))))))))
The numbers refer to the texture naming convention for pluggable plants.