SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Batalha Naval

         Autores: Andressa Moraes
                 Pedro Menezes
                 Rodrigo Marques
         Orientador: Sérgio Rodas
Como se Joga Batalha Naval
Como São Feitos a Maioria dos Softwares
O objetivo do projeto é atrair jogadores casuais
e ter uma interface simples para o jogador se
divertir com pessoas aleatórias.
Queremos divertir as pessoas

        sem avisos e cadastros desnecessários
E queremos fazer isso com
    as mais novas e poderosas tecnologias
Como Fazer um Jogo de Batalha Naval para a Web
Vamos por partes
2 Problemas
HTTP é limitado para envio e
recebimento de várias mensagens...
… e um jogo online envia e recebe
       várias mensagens
Como Poderíamos Fazer a Troca de Mensagens via HTTP e JavaScript
Comet (AJAX Long Polling)
Como Nós faremos
WebSockets!




              Com NodeJS
Outro problema é a interface
HTML + CSS + JavaScript?
Teríamos problemas com incompatibilidade
de CSS e JavaScript em certos navegadores
<Canvas> vai nos ajudar!
Renderizaremos formas 2D e
 bitmaps no navegador o/
Como Armazenaremos Dados de
       Partidas Antigas
MongoDB, um banco de dados orientado a documentos
         ●   Open Source
         ●   Alta Performance
         ●   Schema flexível

> use batalha_naval
switched to db batalha_naval
> db.jogadores.save({nome: "Pedro"})
> db.jogadores.save({nome: "Sééérgio", sobrenome: "Rodas"})
> db.jogadores.find()
{ "_id" : ObjectId("4c257838759ccb394897496e"), "nome" : "Pedro" }
{ "_id" : ObjectId("4c25784d759ccb394897496f"), "nome" : "Sééérgio", "sobrenome" : "Rodas" }
> db.jogadores.update({nome: "Pedro"}, {$set: {idade: 21}})
> db.jogadores.update({nome: "Pedro"}, {$push: {objetos: "Celular"}})
> db.jogadores.find({nome: "Pedro"})
{ "_id" : ObjectId("4c257838759ccb394897496e"), "nome" : "Pedro", "idade" : 21, "objetos" :
[ "Celular" ] }
Onde Hospedaremos o Servidor do Jogo
Como Implantaremos o Sistema na RackSpace
O Chef Solo configurará o servidor automaticamente através de receitas
Através das receitas, o Chef Solo:

●   instalará os pacotes do sistema necessários
●   definirá permissões em arquivos e pastas
●   criará um usuário no sistema
●   configurará sudo para esse usuário e autorizará sua chave pública local
E automatizaremos tarefas no servidor com o Capistrano
Ele será usado para automatizar deploys de novas versões

e roll back para a última versão em produção caso ocorra

algum problema.
Como seria a arquitetura de servidores
Como escalar
Árvore de Decisão
Como vai ficar o jogo (tchã nã nã nã)
Concluímos (finalmente) que desenvolver um
jogo multiplayer para a web é mais complicado do
que para desktops, pois envolve...
Envolve a interpretação de código no navegador,
    logo temos que ter cuidado com o que enviamos ao jogador
E que nada se divulga sozinho
Investiremos em sites com conteúdo
    relacionado a jogos na Internet
Obrigado (mesmo) por nos escutar. :-)

Mais conteúdo relacionado

Mais procurados

Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...Big Data Week São Paulo
 
Aula 11 - Controle de sessão em PHP - Programação Web
Aula 11  - Controle de sessão em PHP - Programação WebAula 11  - Controle de sessão em PHP - Programação Web
Aula 11 - Controle de sessão em PHP - Programação WebDalton Martins
 
Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Luis Gustavo Almeida
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDBLelyBarros
 
Php 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosPhp 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosRegis Magalhães
 
TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...
TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...
TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...tdc-globalcode
 
MongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberMongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberChristiano Anderson
 

Mais procurados (12)

Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
Hands-on Workshop: Como configurar e utilizar uma estrutura MongoDB para Big ...
 
Aula 11 - Controle de sessão em PHP - Programação Web
Aula 11  - Controle de sessão em PHP - Programação WebAula 11  - Controle de sessão em PHP - Programação Web
Aula 11 - Controle de sessão em PHP - Programação Web
 
MongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e ConhecendoMongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e Conhecendo
 
Pdo do PHP Palestra
Pdo do PHP PalestraPdo do PHP Palestra
Pdo do PHP Palestra
 
HTML5 - Web storage
HTML5 - Web storageHTML5 - Web storage
HTML5 - Web storage
 
Mongopesl
MongopeslMongopesl
Mongopesl
 
Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
 
Php 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosPhp 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies Cabecalhos
 
TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...
TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...
TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...
 
Palestra MongoDB
Palestra MongoDBPalestra MongoDB
Palestra MongoDB
 
MongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberMongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saber
 

Semelhante a Apresentação do Projeto Semi-Final (Batalha Naval)

Aplicações Realtime em Android | Fisl 15 | GuMobileRS
Aplicações Realtime em Android | Fisl 15 | GuMobileRSAplicações Realtime em Android | Fisl 15 | GuMobileRS
Aplicações Realtime em Android | Fisl 15 | GuMobileRSJackson F. de A. Mafra
 
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )João Moura
 
Palestra CouchDB III ENSOL
Palestra CouchDB III ENSOLPalestra CouchDB III ENSOL
Palestra CouchDB III ENSOLAllisson Azevedo
 
JavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a ObjetosJavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a ObjetosEduardo Mendes
 
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasAula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasCJR, UnB
 
Fazendo uma aplicação cliente/servidor (e algumas dicas...)
Fazendo uma aplicação cliente/servidor (e algumas dicas...)Fazendo uma aplicação cliente/servidor (e algumas dicas...)
Fazendo uma aplicação cliente/servidor (e algumas dicas...)Makoto Miyagawa
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Tornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSTornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSMatheus Donizete
 
Desenvolvendo com mongodb
Desenvolvendo com mongodbDesenvolvendo com mongodb
Desenvolvendo com mongodbThiago Avelino
 
NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBRodrigo Hjort
 
MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014Christiano Anderson
 
Drupal 7 Direto das Trincheiras
Drupal 7  Direto das TrincheirasDrupal 7  Direto das Trincheiras
Drupal 7 Direto das TrincheirasRafael Caceres
 
Desenvolvendo soluções com banco de dados não relacional - MongoDB
Desenvolvendo soluções com banco de dados não relacional - MongoDBDesenvolvendo soluções com banco de dados não relacional - MongoDB
Desenvolvendo soluções com banco de dados não relacional - MongoDBiMasters
 
MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014Christiano Anderson
 
Computer on the Beach 2015 - Minicurso de Jogos Multiplataforma com Cocos2d-x
Computer on the Beach 2015 - Minicurso de Jogos Multiplataforma com Cocos2d-xComputer on the Beach 2015 - Minicurso de Jogos Multiplataforma com Cocos2d-x
Computer on the Beach 2015 - Minicurso de Jogos Multiplataforma com Cocos2d-xPedro Kayatt
 

Semelhante a Apresentação do Projeto Semi-Final (Batalha Naval) (20)

Programação Web com jQuery
Programação Web com jQueryProgramação Web com jQuery
Programação Web com jQuery
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
Aplicações Realtime em Android | Fisl 15 | GuMobileRS
Aplicações Realtime em Android | Fisl 15 | GuMobileRSAplicações Realtime em Android | Fisl 15 | GuMobileRS
Aplicações Realtime em Android | Fisl 15 | GuMobileRS
 
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
 
Palestra CouchDB III ENSOL
Palestra CouchDB III ENSOLPalestra CouchDB III ENSOL
Palestra CouchDB III ENSOL
 
JavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a ObjetosJavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a Objetos
 
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias RelacionadasAula 1 - Curso de PHP/CI e Tecnologias Relacionadas
Aula 1 - Curso de PHP/CI e Tecnologias Relacionadas
 
Fazendo uma aplicação cliente/servidor (e algumas dicas...)
Fazendo uma aplicação cliente/servidor (e algumas dicas...)Fazendo uma aplicação cliente/servidor (e algumas dicas...)
Fazendo uma aplicação cliente/servidor (e algumas dicas...)
 
Meetup MUG-RS KingHost
Meetup MUG-RS KingHostMeetup MUG-RS KingHost
Meetup MUG-RS KingHost
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDB
 
Tornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSTornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JS
 
Desenvolvendo com mongodb
Desenvolvendo com mongodbDesenvolvendo com mongodb
Desenvolvendo com mongodb
 
NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDB
 
MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014
 
Ajax em java
Ajax em javaAjax em java
Ajax em java
 
Drupal 7 Direto das Trincheiras
Drupal 7  Direto das TrincheirasDrupal 7  Direto das Trincheiras
Drupal 7 Direto das Trincheiras
 
Desenvolvendo soluções com banco de dados não relacional - MongoDB
Desenvolvendo soluções com banco de dados não relacional - MongoDBDesenvolvendo soluções com banco de dados não relacional - MongoDB
Desenvolvendo soluções com banco de dados não relacional - MongoDB
 
MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014
 
Computer on the Beach 2015 - Minicurso de Jogos Multiplataforma com Cocos2d-x
Computer on the Beach 2015 - Minicurso de Jogos Multiplataforma com Cocos2d-xComputer on the Beach 2015 - Minicurso de Jogos Multiplataforma com Cocos2d-x
Computer on the Beach 2015 - Minicurso de Jogos Multiplataforma com Cocos2d-x
 

Apresentação do Projeto Semi-Final (Batalha Naval)