For the record, as the developer of two multiplayer plugins (MultiPlayer and PhotonClient), I'll just set out here what my angle is on awarmenhoven's proposal:
My aim has been to produce plugins/behaviors that operate at a much higher level of abstraction, to make it as easy as possible for those who want to get into multiplayer gaming but have limited experience of low-level networking - or simply prefer to work with higher level operations. So, here's the very different basic set of ACEs in my C2 plugins/behaviors:
- Condition: New web player has joined
- Condition: Web player has been updated
- Condition: On collision with another player
- Condition: Web player/s to be created
- Condition: On my player moved
- Condition: Web player has left (use this to destroy the associated sprite)
- Condition: Game server is ready
- Action: Set the web player's ID (from the C2-allocated UID)
- Action: Initialise data of web player to create (from the server-allocated client ID and its current x/y coordinates)
- Expression: Get current X co-ordinate of web player
- Expression: Get current Y co-ordinate of web player
- Expression: Get web player's C2 UID
- Expression: Get number of web players to make (on joining game)
- Expression: Get the player's server-allocated UID
- Expression: Get the player's name
- Expression: Get the player's current score
- Expression: Get the player's current health
I'll continue on this development line, but follow awarmenhoven's work with great interest <img src="smileys/smiley20.gif" border="0" align="middle">