|
1 |
| -Unity3D-DDP-Client |
| 1 | +# Unity3D-DDP-Client |
2 | 2 |
|
3 |
| -[A lightweight DDP client for Unity3D](https://github.com/green-coder/unity3d-ddp-client). |
| 3 | +[A lightweight DDP client for Unity3D](https://github.com/green-coder/unity3d-ddp-client). In other words, a library for Unity3D to communicate in realtime with [Meteor](https://www.meteor.com) servers. |
| 4 | + |
| 5 | +I can be used for many things, like account registration, score board, match-making, chat, turn-based games, cooperative tools, etc ... |
| 6 | + |
| 7 | +It may not be a fit for game interactions which require a lot of network data update per second (in which case you may want to use something like UNet instead). |
| 8 | + |
| 9 | +## Feature list |
| 10 | + |
| 11 | +* DDP-client: |
| 12 | + * Implementation of the [DDP-client protocol](https://github.com/meteor/meteor/blob/master/packages/ddp/DDP.md) version 1. |
| 13 | + * data subscription / notification. |
| 14 | + * method call / response. |
| 15 | + * Uses websocket protocoles `ws://` and `wss://` to communicate with the server. |
| 16 | + * Does not make assumptions about how to reconnect in case of disconnection. Let the user do it. Example provided. |
| 17 | +* Accounts: |
| 18 | + * Login with username and password, logout. |
| 19 | + * Resume previous session by login using a token. |
| 20 | + * Does not make assumption about how the credentials and loaded and saved, let the user do it instead. |
| 21 | +* Local Database: |
| 22 | + * Is optional. |
| 23 | + * Listens to the `DdpConnection` and creates collections on demand. |
| 24 | + * Let the user instantiate the database's collection via a callback. |
| 25 | + * Database collections can keep the documents as JSON objects or as custom classes, in which case it let the user provide serialization / deserialization callbacks. |
| 26 | + * Collections can be iterated over, and the user can register to their content's changes. |
| 27 | + |
| 28 | +## Getting started |
| 29 | + |
| 30 | +### Start the Meteor server |
| 31 | + |
| 32 | +* Install [Meteor](https://www.meteor.com/install). |
| 33 | + |
| 34 | +``` |
| 35 | +$ curl https://install.meteor.com/ | sh |
| 36 | +``` |
| 37 | + |
| 38 | +* Launch the server: |
| 39 | + |
| 40 | +``` |
| 41 | +$ cd example-server |
| 42 | +$ meteor |
| 43 | +``` |
| 44 | + |
| 45 | +### Start one of the Unity3D examples |
| 46 | + |
| 47 | +Read the source code to see how it works and which keys to press. |
| 48 | + |
| 49 | +The code is fairly simple and easy to read, both in the examples and in the library classes. |
| 50 | + |
| 51 | +## Stability |
| 52 | + |
| 53 | +The source code is freshly typed and was not fully tested yet. If you find a bug, please file an issue on Github and I will be happy to fix it asap. |
| 54 | + |
| 55 | +The source code is fairly simple, so may you find a bug, a fix should not take very long to implement. |
| 56 | + |
| 57 | +## Roadmap |
| 58 | + |
| 59 | +Features to add later: |
| 60 | + |
| 61 | +* Additional ways to login, maybe using Facebook and Google+. |
| 62 | +* A bigger and complete example project. |
| 63 | + |
| 64 | +## Contribute |
| 65 | + |
| 66 | +Contributions are welcome on this project. |
| 67 | + |
| 68 | +Pull requests will be reviewed and may be modified to fit the coding style (i.e. to keep it easy to read). |
| 69 | + |
| 70 | +## License |
| 71 | + |
| 72 | +This project is distributed under the MIT license. |
0 commit comments