Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LFG

Avatar for Paul Collingwood Paul Collingwood
September 23, 2015
21

 LFG

Avatar for Paul Collingwood

Paul Collingwood

September 23, 2015

Transcript

  1. LFG

  2. The problem being solved • Matchmaking is deliberately poor in

    Destiny • People don't seem to like that and want services like this.
  3. Unique Selling Point • An automatic way to join groups

    • Don't have to scan posts or chat • Direct notifications
  4. Application Flow 10. Log in with your game name, platform

    and role 20. Select activities that you are interested in 30. The backend creates groups from interested players 40. Players can accept or decline group invite (decline GOTO 20) 50. Declining players are replaced, continues until all accept 60. The group is created in game by players
  5. Components • Google App Engine & Compute hosting • MySQL

    database • Python Django • REST API • Java Spring Websocket Server • Javascript Angular Front End
  6. Why Google App Engine? • Very low or zero starting

    cost • On demand automatic scaling with options • Zero direct infrastructure costs. • Zero hassle backups. • No server admin • Many other services available as APIs.
  7. Why Django • Built in authentication • Built in session

    handling • Built in admin • Easy to test • Validation of user submitted data • Very customisable REST API • Writing a service out of clearly defined applications is good
  8. Making it Consistent • Everything runs inside Docker containers •

    Improves reproducibility and distribution • Docker-Compose allows orchestration of multiple connected docker containers • Only the Java Socket Server is deployed in a container • They are used for all components during development
  9. Supporting Technology - Behave • Multi-User interaction is complicated and

    hard to test • Some of the logic in LFG depends on multiple people interacting • Behave is used to test these use cases and allows the tests to be clear and comprehensive