$30 off During Our Annual Pro Sale. View Details »

Backend de jogos multiplayer

Backend de jogos multiplayer

Rodrigo Delduca

August 15, 2017
Tweet

More Decks by Rodrigo Delduca

Other Decks in Programming

Transcript

  1. Backend de jogos multiplayer
    Rodrigo Delduca (@skhaz)
    https://skhaz.io
    https://nullonerror.org
    https://ultratech.software
    PUC PR - 2017

    View Slide

  2. Brace yourself. Sopa de letrinhas is coming!

    View Slide

  3. Formas de comunicação
    ● TCP
    ● UDP
    ● RawSocket
    ● WebSockets
    ● SocketIO
    ● WebRTC

    View Slide

  4. Arquitetura

    View Slide

  5. Otimizando o tamanho do payload

    View Slide

  6. Otimizando o tamanho do payload
    payload = {
    "UpPressed": true,
    "downPressed": false,
    "attackPressed": true
    }
    // 76 bytes

    View Slide

  7. Otimizando o tamanho do payload
    payload = {
    "u": true,
    "d": false,
    "a": true
    }
    // 46 bytes

    View Slide

  8. Escovando os bits

    View Slide

  9. Escovando os bits

    View Slide

  10. Escovando os bits

    View Slide

  11. Escovando os bits

    View Slide

  12. Escovando os bits

    View Slide

  13. Tecnologias
    ● C/C++
    ● Python
    ● Elixir
    ● Java
    ● NodeJS
    ● Swift
    ● Erlang
    ● … Ou qualquer outra linguagem que permita abrir uma conexão.

    View Slide

  14. Qual tecnologia é melhor?

    View Slide

  15. Qual tecnologia é melhor?
    A que você dominar melhor*

    View Slide

  16. Qual tecnologia é melhor?
    A que você dominar melhor*
    só não vale usar Visual Basic :)

    View Slide

  17. E onde hospedar?
    ● Google Cloud
    ● Heroku
    ● Digital Ocean
    ● Amazon Web Services (AWS)
    ● Scaleway
    ● Rackspace
    ● Azure
    ● IBM Bluemix

    View Slide

  18. Banco de dados
    ● PostgreSQL, MySQL, Oracle e SQLite (relacional)
    ● MongoDB, CouchBase e RethinkDB (orientado a documento)
    ● Redis, memcached e Cassandra (chave-valor)
    ● Neo4J e ArangoDB (banco de dados de grafos)

    View Slide

  19. Outras alternativas
    … Que podem ser ideias para hackathon e gamejams

    View Slide

  20. Exemplo usando Socket.IO

    View Slide

  21. Demo
    http://bit.ly/pucpr-mmo

    View Slide

  22. ● https://davidwalsh.name/websocket
    ● http://blog.soom.la/2016/02/top-10-parse-alternatives-game-backend.html
    ● https://realm.io/docs/realm-object-server/
    ● https://firebase.google.com/
    ● http://heroku.com/
    ● https://www.meteor.com/
    ● https://phaser.io
    ● https://socket.io/
    ● https://cloud.google.com/
    ● http://choongsoo.info/docs/starcraft2.netgames12.pdf
    ● https://blog.heroku.com/introducing_session_affinity

    View Slide

  23. Perguntas?

    View Slide

  24. Muito obrigado :)
    Scorpion wins
    Flawless victory
    Fatality!

    View Slide