SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
E Dá Para Desenvolver
Webgames com Django?
      Guilherme Medeiros
      http://frenetic.com.br
      @frenetic_br
TL;DR




Dá
Obrigado ;)
Dúvidas???
Entendendo
   Jogos
O Que É Um Jogo?
●   O jogo é um desafio
    –   Composto por um conjunto de regras
●   Pode ser multi-jogador
●   Pode ser em tempo real
●   Pode ser saudável
●   Pode precisar de objetos reais e
    imaginação
Paciência
●   Um único jogador
●   Regras simples
●   Baseado em turnos
●   Precisa do uso de um baralho ou de um
    computador
●   É mais divertido se jogado durante o
    expediente
Biziu-biziu
●   Jogo multiplayer
●   Só tem uma regra
    –   Para provar que jogos podem ser simples
●   Não precisa de objetos, basta ter pessoas
●   É um grande desafio ficar em silêncio
●   O perdedor vai ter um orifício explodido
    –   Olha a imaginação ai
●   Todo mundo se diverte ao gritar BOOOM
Sensou
Zenzou
Mancha
Cessou
 Parou
 Estilei
Regras nem sempre são regras
●   Alguns jogos possuem regras mutáveis
    –   Na verdade, isso é coisa de estilão
●   Nestes casos a maioria dos jogadores opta
    por aceitar ou não a “estilada”
Jogos nem sempre são divertidos
●   Bom, jogos são divertidos.
    –   Só quem perde é que não gosta
●   O jogo da “cumadi fulô”
Jogos nem sempre são saudáveis
●   FutePorrada
    –   Porradobol, lapadobol
●   Pedra-papel-tesoura-porrada
    –   O bom é ganhar com a pedra quando o n00b
        usa a tesoura
●   Xadres russo
    –   5 minutos de boxe, 1 gole de vodka e 5
        minutos de xadres. Repete até
Jogos e WEB
Tudo começou a um tempo atrás
●   Nerds queriam jogar Xadrez à distância
    –   Forum BBC
    –   Xadrez via email
    –   Xadrez via ICQ
    –   Xadrez via programas
    –   Xadrez via websites.
E ai a idéia cresceu
●   Damas na web (pros n00bs)
●   Jogo da velha
●   MUDs
    –   Parou sua evolução no Telnet, mas é o pais
        dos jogos de RPG
●   The Waving Hands (spellBinder)
E categorias de webgames se
              formaram
●   Jogos de estratégia
        ●   Ogame, Travian, Planetarion, Ikarian, GuerrasKhan
             –   No Brasil: Meteorus

●   Jogos de RPG
        ●   GreenDragon, MafiaWars, BaraFranca, F1Race
●   Jogo de 'ville'
        ●   Farmville, cityville, zooville
●   Tem mais, mas eu esqueci :D
Webgames e dispositivos
●   No navegador
    –   Html, CSS, Js, json
    –   Plugins do flash
●   No mobile
    –   App dedicado a plataforma
    –   Site adapdato para navegadores móveis
App mobile é webgame? WTF?!
●   Você quer o simples e funcional
     –   Requisições http estão na sdk de qualquer
         plataforma
     –   Todo mundo sabe como funciona http
     –   Não precisa escrever sockets e datagramas
     –   Fica mais fácil no lado do servidor. Afinal, um
         servidor http é MOLESA com Django
          ●   E no servidor você só se preocupa com a API
Jogos e o Tempo Real
●   Simulado
    –   Auto refresh da página
    –   Requisições AJAX de tempos em tempos
●   Tempo Real, mas bem real mesmo
    –   WebSockets
Que diabé websocket?
●   É um socket de internet
         ●   Uma conexão full duplex
●   Entre o navegador web e o servidor web
    –   Na verdade qualquer cliente que fale HTTP
●   Utiliza o protocolo HTTP para estabelecer a
    conexão
●   Após a conexão, a troca de dados é em
    tempo real
Browser Quest
●   Jogo open source desenvolvido pela
    Mozilla para demonstrar o uso de
    websockets + html5 no desenvolvimento de
    um RPG.
    –   http://browserquest.mozilla.org
    –   http://hacks.mozilla.org/2012/03/browserquest/
MAS CADE O DJANGO?
Django
●   Python
●   Um conjunto de bibliotecas e facilidades
●   Amplamente testado
●   Uma comunidade forte
●   Tem um monte de artigo no google
    –   E no StackOverFlow
●   Plugins e bibliotecas feitas pela
    comunidade
●   É fácil pra [insert palavrão aqui]
É bom mesmo?
●   O objetivo do Django é fazer com que o
    programador se preocupe em desenvolver a
    lógica do código e não as classes básicas
    –   Urls amigáveis
    –   Multi banco de dados (sem escrever sql)
    –   Controle de sessão
    –   Painel de administração
    –   Formulários inteligentes
    –   E muito mais!!!1!!111!umonzeonzeum!
Django-Wars
●   O principal objetivo desta palestra
    –   Um clone do jogo Mafia Wars
●   Feito em Django
●   Desenvolvido para ser um tutorial de como
    desenvolver um webgame em Django
    –   Ensinando a pensar cada etapa
    –   Ensinando a programar cada etapa
Django Wars
●   Tutoriais em:
    –   http://blog.frenetic.com.br/django-wars/
●   Código fonte em:
    –   https://github.com/frenetic/django-wars
●   Ainda não foi concluído
    –   Mas falta pouco!
●   Precisa de feedback!!!!
    –   Que tal entrar no grupo do PUG-PE no google
        e discutir comigo?
OUTROS CASOS DE JOGOS
●   Quero desenvolver um jogo para aprender
    –   Django
    –   Como desenvolver um jogo
    –   Aprender a ficar rico :D
●   Que tal desenvolver um jogo da velha
    multiplayer???
    –   É um jogo simples
    –   As regras são faceis de implementar
    –   É fácil encontrar alguém que queira testar
        (jogar) com você
    –   -DJANGO DA VELHA!
AJUDA NUNCA É DEMAIS
Um social webgame
●   Django faz!
    –   Com uma pequena mãozinha
         ●   Django-social-auth
         ●   Django-social-registration
         ●   Django-facebook-connect
         ●   Django-facebook-oauth
         ●   Tem mais bibliotecas, só escolher uma
Websocket de Forma Fácil
●   Pusher
    –   http://pusher.com/
    –   Para quem quer se preocupar apenas com a
        lógica da aplicação
    –   É de confiança
         ●   Getglue usa
         ●   SlideShare usa
         ●   Codr.cc usa
Websocket vs Pusher
Websocket vs Pusher
É SÓ ISSO =/
●   Mas a gente pode conversar mais AGORA!
    –   Perguntem!!!!!
●   A gente pode conversar mais já já
    –   No coffee-break a gente troca idéias
         ●   Podemos pensar em algo juntos
         ●   Vocês podem me ajudar com o Django-wars
             (designer needed)
●   Podemos conversar mais tarde
    –   PUG-PE no google groups
Eu, eu mesmo, e o Django
●   O Django-wars:
    –   https://github.com/frenetic/django-wars
    –   http://blog.frenetic.com.br/django-wars/
    –   Feedback, preciso!
         ●   Ajuda também :D
●   Bjo do gordo o/

Mais conteúdo relacionado

Mais procurados

велика географска открића
велика географска открићавелика географска открића
велика географска открићаUcionica istorije
 
Modyul 02 mga unang tao
Modyul 02   mga unang taoModyul 02   mga unang tao
Modyul 02 mga unang taodionesioable
 
2 conquista america espanhola
2 conquista america espanhola2 conquista america espanhola
2 conquista america espanholaPaulo Alexandre
 
Tragom pisane baštine BiH - Hronologija bosanskih rukopisa 12-15 vijeka
Tragom pisane baštine BiH - Hronologija bosanskih rukopisa 12-15 vijekaTragom pisane baštine BiH - Hronologija bosanskih rukopisa 12-15 vijeka
Tragom pisane baštine BiH - Hronologija bosanskih rukopisa 12-15 vijekaVaska Sotirov-Djukic
 
Jezicke grupe naroda u Evropi
Jezicke grupe naroda u EvropiJezicke grupe naroda u Evropi
Jezicke grupe naroda u EvropiPetra
 
1 stanovništvo svijeta
1 stanovništvo svijeta1 stanovništvo svijeta
1 stanovništvo svijetaOsJob
 
Drzava nemanjica
Drzava nemanjicaDrzava nemanjica
Drzava nemanjicaTozaNS
 
Limang tema ng heograpi ya
Limang tema ng heograpi yaLimang tema ng heograpi ya
Limang tema ng heograpi yaWilson Padillon
 
српска средњовековна књижевност и типови књижевних језика код
српска средњовековна књижевност и типови књижевних језика кодсрпска средњовековна књижевност и типови књижевних језика код
српска средњовековна књижевност и типови књижевних језика кодВања Вулин
 
Pré história e história
Pré história e históriaPré história e história
Pré história e históriaAcessa Esterina
 

Mais procurados (20)

велика географска открића
велика географска открићавелика географска открића
велика географска открића
 
Portugal
PortugalPortugal
Portugal
 
Modyul 02 mga unang tao
Modyul 02   mga unang taoModyul 02   mga unang tao
Modyul 02 mga unang tao
 
Razvoj religije
Razvoj religijeRazvoj religije
Razvoj religije
 
2 conquista america espanhola
2 conquista america espanhola2 conquista america espanhola
2 conquista america espanhola
 
Tragom pisane baštine BiH - Hronologija bosanskih rukopisa 12-15 vijeka
Tragom pisane baštine BiH - Hronologija bosanskih rukopisa 12-15 vijekaTragom pisane baštine BiH - Hronologija bosanskih rukopisa 12-15 vijeka
Tragom pisane baštine BiH - Hronologija bosanskih rukopisa 12-15 vijeka
 
Jezicke grupe naroda u Evropi
Jezicke grupe naroda u EvropiJezicke grupe naroda u Evropi
Jezicke grupe naroda u Evropi
 
Republika Rumunija Tanja Notaroš Gagić
Republika Rumunija Tanja Notaroš GagićRepublika Rumunija Tanja Notaroš Gagić
Republika Rumunija Tanja Notaroš Gagić
 
Pré.história 03
Pré.história 03Pré.história 03
Pré.história 03
 
1 stanovništvo svijeta
1 stanovništvo svijeta1 stanovništvo svijeta
1 stanovništvo svijeta
 
Drzava nemanjica
Drzava nemanjicaDrzava nemanjica
Drzava nemanjica
 
Oriente médio prof chris
Oriente médio  prof chrisOriente médio  prof chris
Oriente médio prof chris
 
Indija i pakistan
Indija i pakistanIndija i pakistan
Indija i pakistan
 
Severna Amerika gradovi - Saša Stojanović
Severna Amerika gradovi - Saša StojanovićSeverna Amerika gradovi - Saša Stojanović
Severna Amerika gradovi - Saša Stojanović
 
As Grandes Navegações
As Grandes NavegaçõesAs Grandes Navegações
As Grandes Navegações
 
Limang tema ng heograpi ya
Limang tema ng heograpi yaLimang tema ng heograpi ya
Limang tema ng heograpi ya
 
српска средњовековна књижевност и типови књижевних језика код
српска средњовековна књижевност и типови књижевних језика кодсрпска средњовековна књижевност и типови књижевних језика код
српска средњовековна књижевност и типови књижевних језика код
 
O judaismo
O judaismoO judaismo
O judaismo
 
Voda
Voda Voda
Voda
 
Pré história e história
Pré história e históriaPré história e história
Pré história e história
 

Destaque

[2012] XIX PUGPE - Projeto Amadeus
[2012] XIX PUGPE -  Projeto Amadeus[2012] XIX PUGPE -  Projeto Amadeus
[2012] XIX PUGPE - Projeto AmadeusThiago
 
E o que danado é o PUG-PE?
E o que danado é o PUG-PE?E o que danado é o PUG-PE?
E o que danado é o PUG-PE?pugpe
 
XIX PUG-PE - Pygame game development
XIX PUG-PE - Pygame game developmentXIX PUG-PE - Pygame game development
XIX PUG-PE - Pygame game developmentmatheuscmpm
 
Lp script pug-pe
Lp script pug-peLp script pug-pe
Lp script pug-pehugoesb
 
Palestra Institucional PUG-PE
Palestra Institucional PUG-PEPalestra Institucional PUG-PE
Palestra Institucional PUG-PEMarcel Caraciolo
 
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPEMini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPEMarcel Caraciolo
 
Suporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellSuporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellIgor Abade
 
Acelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidosAcelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidosIgor Abade
 
Tdd not sure if testing or developing
Tdd  not sure if testing or developingTdd  not sure if testing or developing
Tdd not sure if testing or developingRenato Oliveira
 
TDC2016SP - Flask para Web
TDC2016SP - Flask para WebTDC2016SP - Flask para Web
TDC2016SP - Flask para Webtdc-globalcode
 
TDC2016SP - Luiza Labs - Migrando .NET p/ Python
TDC2016SP - Luiza Labs - Migrando .NET p/ PythonTDC2016SP - Luiza Labs - Migrando .NET p/ Python
TDC2016SP - Luiza Labs - Migrando .NET p/ Pythontdc-globalcode
 
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Igor Abade
 
Python, A pílula Azul da programação
Python, A pílula Azul da programaçãoPython, A pílula Azul da programação
Python, A pílula Azul da programaçãoMarcel Caraciolo
 
Devcommerce 2016: Migração plataforma Magazine Luiza e seu laboratório de in...
Devcommerce 2016: Migração plataforma Magazine Luiza e seu  laboratório de in...Devcommerce 2016: Migração plataforma Magazine Luiza e seu  laboratório de in...
Devcommerce 2016: Migração plataforma Magazine Luiza e seu laboratório de in...André Fatala
 
NoSQL com Cassandra e Python
NoSQL com Cassandra e PythonNoSQL com Cassandra e Python
NoSQL com Cassandra e Pythonpugpe
 
Peça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDDPeça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDDRafael Carício
 
Python e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMMPython e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMMpugpe
 

Destaque (20)

[2012] XIX PUGPE - Projeto Amadeus
[2012] XIX PUGPE -  Projeto Amadeus[2012] XIX PUGPE -  Projeto Amadeus
[2012] XIX PUGPE - Projeto Amadeus
 
E o que danado é o PUG-PE?
E o que danado é o PUG-PE?E o que danado é o PUG-PE?
E o que danado é o PUG-PE?
 
XIX PUG-PE - Pygame game development
XIX PUG-PE - Pygame game developmentXIX PUG-PE - Pygame game development
XIX PUG-PE - Pygame game development
 
Lp script pug-pe
Lp script pug-peLp script pug-pe
Lp script pug-pe
 
Palestra Institucional PUG-PE
Palestra Institucional PUG-PEPalestra Institucional PUG-PE
Palestra Institucional PUG-PE
 
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPEMini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
Mini-Curso de Python dia 21/03 (Segunda-Feira) no II Workshop de SL do CIN/UFPE
 
Suporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellSuporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShell
 
Acelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidosAcelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidos
 
Com vocês, Django!
Com vocês, Django!Com vocês, Django!
Com vocês, Django!
 
Tdd not sure if testing or developing
Tdd  not sure if testing or developingTdd  not sure if testing or developing
Tdd not sure if testing or developing
 
W2py pyconpe
W2py pyconpeW2py pyconpe
W2py pyconpe
 
TDC2016SP - Flask para Web
TDC2016SP - Flask para WebTDC2016SP - Flask para Web
TDC2016SP - Flask para Web
 
TDC2016SP - Luiza Labs - Migrando .NET p/ Python
TDC2016SP - Luiza Labs - Migrando .NET p/ PythonTDC2016SP - Luiza Labs - Migrando .NET p/ Python
TDC2016SP - Luiza Labs - Migrando .NET p/ Python
 
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
 
Python, A pílula Azul da programação
Python, A pílula Azul da programaçãoPython, A pílula Azul da programação
Python, A pílula Azul da programação
 
Devcommerce 2016: Migração plataforma Magazine Luiza e seu laboratório de in...
Devcommerce 2016: Migração plataforma Magazine Luiza e seu  laboratório de in...Devcommerce 2016: Migração plataforma Magazine Luiza e seu  laboratório de in...
Devcommerce 2016: Migração plataforma Magazine Luiza e seu laboratório de in...
 
NoSQL com Cassandra e Python
NoSQL com Cassandra e PythonNoSQL com Cassandra e Python
NoSQL com Cassandra e Python
 
Peça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDDPeça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDD
 
Python e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMMPython e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMM
 
Pug
PugPug
Pug
 

Semelhante a E dá para desenvolver webgames com Django?

Aquecimento Global Game Jam Curitiba 2014
Aquecimento Global Game Jam Curitiba 2014Aquecimento Global Game Jam Curitiba 2014
Aquecimento Global Game Jam Curitiba 2014Bruno Campagnolo
 
Unite 2014 - Usando a Unity em Game Jams
Unite 2014 - Usando a Unity em Game JamsUnite 2014 - Usando a Unity em Game Jams
Unite 2014 - Usando a Unity em Game JamsBruno Campagnolo
 
graoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS frameworkgraoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS frameworkMarcelo Fleury
 
It's all about the game
It's all about the gameIt's all about the game
It's all about the gameBruno Cicanci
 
Platinum Arts Sandbox - Game Maker
Platinum Arts Sandbox - Game MakerPlatinum Arts Sandbox - Game Maker
Platinum Arts Sandbox - Game Makerflisolmaringa
 
Desenvolvimento Web Ágil com Python e Django
Desenvolvimento Web Ágil com Python e DjangoDesenvolvimento Web Ágil com Python e Django
Desenvolvimento Web Ágil com Python e DjangoBruno Barbosa
 
Yo! Geradores modernos com Yeoman!
Yo! Geradores modernos com Yeoman!Yo! Geradores modernos com Yeoman!
Yo! Geradores modernos com Yeoman!Sidharta Noleto
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoCarlos Santos
 
Design Thinking nos Jogos Digitais: Conceitos enxutos e ágeis
Design Thinking nos Jogos Digitais: Conceitos enxutos e ágeisDesign Thinking nos Jogos Digitais: Conceitos enxutos e ágeis
Design Thinking nos Jogos Digitais: Conceitos enxutos e ágeisJoão Ricardo Bittencourt
 
1ª madrugada de testes net coders coding dojo
1ª madrugada de testes net coders   coding dojo1ª madrugada de testes net coders   coding dojo
1ª madrugada de testes net coders coding dojoPriscila Mayumi
 
Conversa com alunos da computação da UFPel (Abril 2015)
Conversa com alunos da computação da UFPel (Abril 2015)Conversa com alunos da computação da UFPel (Abril 2015)
Conversa com alunos da computação da UFPel (Abril 2015)Luiz Nörnberg
 
LabMM 3: Documentação de planificação
LabMM 3: Documentação de planificaçãoLabMM 3: Documentação de planificação
LabMM 3: Documentação de planificaçãoCarlos Santos
 
Html5, gamedev e o skeleton jigsaw
Html5, gamedev e o skeleton jigsawHtml5, gamedev e o skeleton jigsaw
Html5, gamedev e o skeleton jigsawWillian Molinari
 
(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias Web
(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias Web(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias Web
(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias WebCarlos Santos
 
Horizon chase: Design para multiplayer local
Horizon chase: Design para multiplayer localHorizon chase: Design para multiplayer local
Horizon chase: Design para multiplayer localBruno Ferreira
 
JavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com JasmineJavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com JasmineAndré Willik Valenti
 
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game StudioQuer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game StudioLuiz Nörnberg
 

Semelhante a E dá para desenvolver webgames com Django? (20)

Aquecimento Global Game Jam Curitiba 2014
Aquecimento Global Game Jam Curitiba 2014Aquecimento Global Game Jam Curitiba 2014
Aquecimento Global Game Jam Curitiba 2014
 
Unite 2014 - Usando a Unity em Game Jams
Unite 2014 - Usando a Unity em Game JamsUnite 2014 - Usando a Unity em Game Jams
Unite 2014 - Usando a Unity em Game Jams
 
graoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS frameworkgraoJS - A full stack MVC NodeJS framework
graoJS - A full stack MVC NodeJS framework
 
It's all about the game
It's all about the gameIt's all about the game
It's all about the game
 
Platinum Arts Sandbox - Game Maker
Platinum Arts Sandbox - Game MakerPlatinum Arts Sandbox - Game Maker
Platinum Arts Sandbox - Game Maker
 
Desenvolvimento Web Ágil com Python e Django
Desenvolvimento Web Ágil com Python e DjangoDesenvolvimento Web Ágil com Python e Django
Desenvolvimento Web Ágil com Python e Django
 
Yo! Geradores modernos com Yeoman!
Yo! Geradores modernos com Yeoman!Yo! Geradores modernos com Yeoman!
Yo! Geradores modernos com Yeoman!
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
 
Programação Orientada a Gambiarra
Programação Orientada a GambiarraProgramação Orientada a Gambiarra
Programação Orientada a Gambiarra
 
Design Thinking nos Jogos Digitais: Conceitos enxutos e ágeis
Design Thinking nos Jogos Digitais: Conceitos enxutos e ágeisDesign Thinking nos Jogos Digitais: Conceitos enxutos e ágeis
Design Thinking nos Jogos Digitais: Conceitos enxutos e ágeis
 
1ª madrugada de testes net coders coding dojo
1ª madrugada de testes net coders   coding dojo1ª madrugada de testes net coders   coding dojo
1ª madrugada de testes net coders coding dojo
 
Conversa com alunos da computação da UFPel (Abril 2015)
Conversa com alunos da computação da UFPel (Abril 2015)Conversa com alunos da computação da UFPel (Abril 2015)
Conversa com alunos da computação da UFPel (Abril 2015)
 
LabMM 3: Documentação de planificação
LabMM 3: Documentação de planificaçãoLabMM 3: Documentação de planificação
LabMM 3: Documentação de planificação
 
Unity3d dev in
Unity3d dev inUnity3d dev in
Unity3d dev in
 
Html5, gamedev e o skeleton jigsaw
Html5, gamedev e o skeleton jigsawHtml5, gamedev e o skeleton jigsaw
Html5, gamedev e o skeleton jigsaw
 
(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias Web
(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias Web(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias Web
(A17) LabMM3 - Planificação de projeto e tópicos avançados de tecnologias Web
 
Comparativo entre Engines de Jogos em 3d
Comparativo entre Engines de Jogos em 3dComparativo entre Engines de Jogos em 3d
Comparativo entre Engines de Jogos em 3d
 
Horizon chase: Design para multiplayer local
Horizon chase: Design para multiplayer localHorizon chase: Design para multiplayer local
Horizon chase: Design para multiplayer local
 
JavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com JasmineJavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com Jasmine
 
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game StudioQuer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
Quer fazer jogos? Conheça as tecnologias utilizadas pelo Izyplay Game Studio
 

E dá para desenvolver webgames com Django?

  • 1. E Dá Para Desenvolver Webgames com Django? Guilherme Medeiros http://frenetic.com.br @frenetic_br
  • 4. Entendendo Jogos
  • 5. O Que É Um Jogo? ● O jogo é um desafio – Composto por um conjunto de regras ● Pode ser multi-jogador ● Pode ser em tempo real ● Pode ser saudável ● Pode precisar de objetos reais e imaginação
  • 6. Paciência ● Um único jogador ● Regras simples ● Baseado em turnos ● Precisa do uso de um baralho ou de um computador ● É mais divertido se jogado durante o expediente
  • 7. Biziu-biziu ● Jogo multiplayer ● Só tem uma regra – Para provar que jogos podem ser simples ● Não precisa de objetos, basta ter pessoas ● É um grande desafio ficar em silêncio ● O perdedor vai ter um orifício explodido – Olha a imaginação ai ● Todo mundo se diverte ao gritar BOOOM
  • 9. Regras nem sempre são regras ● Alguns jogos possuem regras mutáveis – Na verdade, isso é coisa de estilão ● Nestes casos a maioria dos jogadores opta por aceitar ou não a “estilada”
  • 10. Jogos nem sempre são divertidos ● Bom, jogos são divertidos. – Só quem perde é que não gosta ● O jogo da “cumadi fulô”
  • 11. Jogos nem sempre são saudáveis ● FutePorrada – Porradobol, lapadobol ● Pedra-papel-tesoura-porrada – O bom é ganhar com a pedra quando o n00b usa a tesoura ● Xadres russo – 5 minutos de boxe, 1 gole de vodka e 5 minutos de xadres. Repete até
  • 13. Tudo começou a um tempo atrás ● Nerds queriam jogar Xadrez à distância – Forum BBC – Xadrez via email – Xadrez via ICQ – Xadrez via programas – Xadrez via websites.
  • 14. E ai a idéia cresceu ● Damas na web (pros n00bs) ● Jogo da velha ● MUDs – Parou sua evolução no Telnet, mas é o pais dos jogos de RPG ● The Waving Hands (spellBinder)
  • 15. E categorias de webgames se formaram ● Jogos de estratégia ● Ogame, Travian, Planetarion, Ikarian, GuerrasKhan – No Brasil: Meteorus ● Jogos de RPG ● GreenDragon, MafiaWars, BaraFranca, F1Race ● Jogo de 'ville' ● Farmville, cityville, zooville ● Tem mais, mas eu esqueci :D
  • 16. Webgames e dispositivos ● No navegador – Html, CSS, Js, json – Plugins do flash ● No mobile – App dedicado a plataforma – Site adapdato para navegadores móveis
  • 17. App mobile é webgame? WTF?! ● Você quer o simples e funcional – Requisições http estão na sdk de qualquer plataforma – Todo mundo sabe como funciona http – Não precisa escrever sockets e datagramas – Fica mais fácil no lado do servidor. Afinal, um servidor http é MOLESA com Django ● E no servidor você só se preocupa com a API
  • 18.
  • 19.
  • 20.
  • 21. Jogos e o Tempo Real ● Simulado – Auto refresh da página – Requisições AJAX de tempos em tempos ● Tempo Real, mas bem real mesmo – WebSockets
  • 22. Que diabé websocket? ● É um socket de internet ● Uma conexão full duplex ● Entre o navegador web e o servidor web – Na verdade qualquer cliente que fale HTTP ● Utiliza o protocolo HTTP para estabelecer a conexão ● Após a conexão, a troca de dados é em tempo real
  • 23. Browser Quest ● Jogo open source desenvolvido pela Mozilla para demonstrar o uso de websockets + html5 no desenvolvimento de um RPG. – http://browserquest.mozilla.org – http://hacks.mozilla.org/2012/03/browserquest/
  • 24. MAS CADE O DJANGO?
  • 25. Django ● Python ● Um conjunto de bibliotecas e facilidades ● Amplamente testado ● Uma comunidade forte ● Tem um monte de artigo no google – E no StackOverFlow ● Plugins e bibliotecas feitas pela comunidade ● É fácil pra [insert palavrão aqui]
  • 26. É bom mesmo? ● O objetivo do Django é fazer com que o programador se preocupe em desenvolver a lógica do código e não as classes básicas – Urls amigáveis – Multi banco de dados (sem escrever sql) – Controle de sessão – Painel de administração – Formulários inteligentes – E muito mais!!!1!!111!umonzeonzeum!
  • 27. Django-Wars ● O principal objetivo desta palestra – Um clone do jogo Mafia Wars ● Feito em Django ● Desenvolvido para ser um tutorial de como desenvolver um webgame em Django – Ensinando a pensar cada etapa – Ensinando a programar cada etapa
  • 28. Django Wars ● Tutoriais em: – http://blog.frenetic.com.br/django-wars/ ● Código fonte em: – https://github.com/frenetic/django-wars ● Ainda não foi concluído – Mas falta pouco! ● Precisa de feedback!!!! – Que tal entrar no grupo do PUG-PE no google e discutir comigo?
  • 30. Quero desenvolver um jogo para aprender – Django – Como desenvolver um jogo – Aprender a ficar rico :D ● Que tal desenvolver um jogo da velha multiplayer??? – É um jogo simples – As regras são faceis de implementar – É fácil encontrar alguém que queira testar (jogar) com você – -DJANGO DA VELHA!
  • 31. AJUDA NUNCA É DEMAIS
  • 32. Um social webgame ● Django faz! – Com uma pequena mãozinha ● Django-social-auth ● Django-social-registration ● Django-facebook-connect ● Django-facebook-oauth ● Tem mais bibliotecas, só escolher uma
  • 33. Websocket de Forma Fácil ● Pusher – http://pusher.com/ – Para quem quer se preocupar apenas com a lógica da aplicação – É de confiança ● Getglue usa ● SlideShare usa ● Codr.cc usa
  • 36.
  • 37. É SÓ ISSO =/ ● Mas a gente pode conversar mais AGORA! – Perguntem!!!!! ● A gente pode conversar mais já já – No coffee-break a gente troca idéias ● Podemos pensar em algo juntos ● Vocês podem me ajudar com o Django-wars (designer needed) ● Podemos conversar mais tarde – PUG-PE no google groups
  • 38. Eu, eu mesmo, e o Django ● O Django-wars: – https://github.com/frenetic/django-wars – http://blog.frenetic.com.br/django-wars/ – Feedback, preciso! ● Ajuda também :D ● Bjo do gordo o/