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

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
Dalton Martins
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
LelyBarros
 
Php 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies CabecalhosPhp 03 Sessoes Cookies Cabecalhos
Php 03 Sessoes Cookies Cabecalhos
Regis Magalhães
 

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)

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 ENSOL
Allisson Azevedo
 
Desenvolvendo com mongodb
Desenvolvendo com mongodbDesenvolvendo com mongodb
Desenvolvendo com mongodb
Thiago Avelino
 
Drupal 7 Direto das Trincheiras
Drupal 7  Direto das TrincheirasDrupal 7  Direto das Trincheiras
Drupal 7 Direto das Trincheiras
Rafael Caceres
 

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
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

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