SlideShare uma empresa Scribd logo
1 de 40
Minicurso de Jogos
Multiplataforma com
Cocos2d-x
Pedro Kayatt
@pekayatt
Pilares do Desenvolvimento de Jogo
• Jogador
• Adversário (quebra-cabeças?)
• Interatividade
• Regras
• Objetivo
• Condição de Vitória, Empate e DERROTA!
• Ser uma forma de entretenimento
Elementos Classificatórios
• Ferramentas
• Materiais utilizados
• Regras
• Perícia (Skill), Estratégia e Sorte
• CS, SC2, Campo Minado :D
Tipos de Jogos
• Mesa
• Caneta e Papel
• Cartas
• Dados
• Tabuleiros
• Musicais
• Interativos
• Ações dos jogadores alteram regras do jogo (Bang)
Jogos Digitais
• Tradução direta dos jogos “reais”
• Diversos estilos “novos”
• Possibilidades infinitas
• Muitas simulações
Jogos Digitais - Papéis
• Produtor
• Editor (Publisher)
• Time de Desenvolvimento
• Designer (Game)
• Programadores
• Artista
• Designer de Fases*
• Engenheiro de Som
• Testadores
Jogos Digitais - Processo
• Pré-Produção
• Pitch + concepts
• GDD – Game Design Document (em desuso)
• Protótipo (POR FAVOR!)
• Produção
• Design
• Programação
• Criação
• Fases – arte – áudio
• Testes (e mais testes)
Ciclos de Desenvolvimento
WaterFall - Cascata
Desenvolvimento Ágil
Importante - Crunch
Preciso pra ontem, então vamos ficar um tempinho extra….
Chrono Trigger OST – Apenas um engenheiro de som…
hospitalizado por dormir diversas vezes no escritório
Mão na massa?
COCOS2D
• Cross Platform
• IOS
• Android
• Windows Phone
• Blackberry, Bada, Tizen, geladeira da minha avó….
• Open Source
• Rápida
• Comprovada
• 25% de todos jogos mobiles (muito forte na Ásia)
Coco2D – Qual?
• Cocos2D-X
• C++
• Com maior suporte a diferentes plataformas
• Rápida e leve
• CocosSharp
• Windows Phone
• Nuget (suporte do Xamarin)
• Cocos2D-JS
• Rápido desenvolvimento (Javascript)
• Multi plataforma (em navegadores)
• Javascript Binding
Cocos2D-X - Arquitetura
Cocos2D-JS - Arquitetura
Javascript binding what?
• Performance até 20x melhor do que no mobile browser
• Como? Mágica? Não! É tecnologia (e um pouco de magia negra)
• Mozilla Spidermonkey – Roda o javascript
como código nativo (C++)
The magic
Preparando o Ambiente
http://www.cocos2d-x.org/download
Instalando Web-Service
• XAMPP : for windows, Mac, Linux.
• WAMP : for windows
• MAMP : for mac
Testando
Javascript IDE
• Notepad ++
• Aptana
• Jetbraind Webstorm
• Visual Studio 2012+
• Cocos Code IDE
Estrutura
Hierárquica
Exemplos
• MoonWarriors – um jogo no melhor estilo “shooter” onde o jogador
controla uma nave espacial
• WatermelonWithMe – utiliza um simulador de física 2D (chipmunk) e
desafia o jogador a dirigir uma caminhonete sem deixar melancias
caírem de sua caçamba.
• CrystalCraze – um jogo no estilo Puzzle elaborado com uma
ferramenta chamada CocosBuilder
• CocosDragonJS – jogo plataforma parecido com sucessos como
Doogle Jump e Mega Jump, utiliza uma mescla de CocosBuilder com
edição de Javascript
Moonwarriors
Exemplo – project.json
{
"project_type": "javascript",
"debugMode": 1,
"showFPS": true,
"frameRate": 60,
"id": "gameCanvas",
"renderMode": 0,
"engineDir": "frameworks/cocos2d-html5",
"modules": [
"cocos2d"
],
"jsList": [
"src/resource.js",
"src/app.js"
]
}
Exemplo – src/resource.js
var res = {
HelloWorld_png : "res/HelloWorld.png",
CloseNormal_png : "res/CloseNormal.png",
CloseSelected_png : "res/CloseSelected.png"
};
var g_resources = [];
for (var i in res) {
g_resources.push(res[i]);
}
Exemplo – src/app.js
var HelloWorldLayer = cc.Layer.extend({
sprite:null,
ctor:function () {
/1. super init first
this._super();
…
Adicionando Sprites
// adicionando o sprite ao HelloWorldLayer, centralizado e usando o arquivo
.png como fonte (setado no arquivo resource.js)
this.sprite = new cc.Sprite(res.HelloWorld_png);
this.sprite.attr({
x: size.width / 2, //pos X e Y do sprite
y: size.height / 2,
scale: 0.5, //escalona o Sprite para ter metade de seu tamanho nominal
rotation: 180 // gira o Sprite em 180 graus.
});
this.addChild(this.sprite, 0);
Actions
var rotateToA = cc.RotateTo.create(2, 0);
var scaleToA = cc.ScaleTo.create(2, 1, 1);
// executa uma sequência de ações diretamente no sprite
this.sprite.runAction(cc.Sequence.create(rotateToA, scaleToA));
Entrada - Touch
// ao tocar na tela
onTouchesBegan:function (touches, event) {
this.isMouseDown = true;
},
// ao mover o toque na tela
onTouchesMoved:function (touches, event) {
if (this.isMouseDown) {
if (touches) {
this.circle.setPosition(cc.p(touches[0].getLocation().x,
touches[0].getLocation().y));
}
}
},
// ao remover o toque da tela
onTouchesEnded:function (touches, event) {
this.isMouseDown = false;
}
Entrada - Teclado
this.setKeyboardEnabled(true);
onKeyUp:function (e){
// intercepta quando uma tecla é solta
},
onKeyDown:function (e){
// intercepta quando uma tecla é pressionada
Testando no Navegador
(lembrar de usar WAMP)
USANDO A COCOS CODE IDE
• Na realidade a Cocos IDE é apenas um Eclipse alterado com o único
propósito de rodar a Cocos JS (ou Lua).
• Ela é ótima, dado que auto-completes funcionam perfeitamente e
você ainda pode adicionar outros plugins “eclipse” nela.
• A GRANDE vantagem, porém vem do fato de você poder utilizar um
JSB “prebuilt” como um simulador em tempo real, inclusive
debugando tudo.
• A última versão adicionou o profiling DS5 de Android como
funcionalidade nativa
USANDO A COCOS CODE IDE (2)
Interface manjada com Simulador de quebra!
EXECUTANDO O PROJETO NO ANDROID
• Android SDK
• http://developer.android.com/sdk/index.html
• Eclipse ADT Bundle
• Baixar Emulador Intel, HAXM e tudo que quiser no Android Manager
• Android NDK
• http://developer.android.com/tools/sdk/ndk/index.html
• CygWin
• Procure Mirrors mais amigaveis… (o default é um inferno)
Setando variáveis de ambiente
• c:cygwinhomeuser.bashprofile, abra este arquivo com o
Notepad++ e adicione:
• NDK_ROOT=/cygdrive/c/android-ndk-r8e
• Export NDK_ROOT
• Faça pelo Opções Avançadas do Windows
• Utilize o “setup.py” na raiz do diretório da Cocos2d-x (ou JS)
Rodando em outras plataformas
• Jeito oficial: cocos console (acredite é muito melhor)
Criando seu projeto
• Usando Cocos Console
(http://www.cocos2d-x.org/wiki/How_to_Start_A_New_Cocos2D-X_Game)
Depois rode o comando na pasta desejada:
“cocos new MyGame -p com.MyCompany.MyGame -l cpp ”
Vamos ao código?
• Ideias:
• Ninjas atiradores
• Naves
• Plataforma runners
• Puzzles
Obrigado!
• Pedro Kayatt
• @pekayatt
• Naked Monkey Games
• @nakedmonkeyG
• www.nakedmonkey.com.br

Mais conteúdo relacionado

Mais procurados

Desenvolvendo jogos multiplataforma usando cocos2d-js
Desenvolvendo jogos multiplataforma usando cocos2d-jsDesenvolvendo jogos multiplataforma usando cocos2d-js
Desenvolvendo jogos multiplataforma usando cocos2d-jsVinicius Vecchi
 
Introdução ao Desenvolvimemto de Jogos com Unity
Introdução ao Desenvolvimemto de Jogos com UnityIntrodução ao Desenvolvimemto de Jogos com Unity
Introdução ao Desenvolvimemto de Jogos com UnityWandreson Souza
 
Advanced topics for game developers
Advanced topics for game developersAdvanced topics for game developers
Advanced topics for game developersjuliocoopergames
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Minecraft - A História
Minecraft - A HistóriaMinecraft - A História
Minecraft - A HistóriaJoão Santos
 
Desenvolvimento de Jogos em Java
Desenvolvimento de Jogos em JavaDesenvolvimento de Jogos em Java
Desenvolvimento de Jogos em JavaBruno Croci
 
Introdução ao cocos sharp
Introdução ao cocos sharpIntrodução ao cocos sharp
Introdução ao cocos sharpJosé Farias
 
Desenvolvendo jogos com unity
Desenvolvendo jogos com unityDesenvolvendo jogos com unity
Desenvolvendo jogos com unityErick Mendonça
 
Introdução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de JogosIntrodução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de JogosGabriel Giordano Medina
 
Aprendendo a Construir jogos com o Construct 2
Aprendendo a Construir jogos com o Construct 2 Aprendendo a Construir jogos com o Construct 2
Aprendendo a Construir jogos com o Construct 2 Diogo Padilha
 
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...INdT
 
Workshop kodu
Workshop kodu Workshop kodu
Workshop kodu ejml
 
Criação de jogos game maker - férias
Criação de jogos   game maker - fériasCriação de jogos   game maker - férias
Criação de jogos game maker - fériasInstituto Inovar
 
Desenvolvendo Jogos com Scratch
Desenvolvendo Jogos com ScratchDesenvolvendo Jogos com Scratch
Desenvolvendo Jogos com ScratchDiogo Padilha
 
Desenvolvendo Jogos 2D em HTML5 - Cocos2d-x
Desenvolvendo Jogos 2D em HTML5 - Cocos2d-xDesenvolvendo Jogos 2D em HTML5 - Cocos2d-x
Desenvolvendo Jogos 2D em HTML5 - Cocos2d-xPedro Kayatt
 
Interfaces de Games para Diferentes Telas
Interfaces de Games para Diferentes TelasInterfaces de Games para Diferentes Telas
Interfaces de Games para Diferentes TelasPedro Kayatt
 

Mais procurados (20)

Aula3 input
Aula3   inputAula3   input
Aula3 input
 
Desenvolvendo jogos multiplataforma usando cocos2d-js
Desenvolvendo jogos multiplataforma usando cocos2d-jsDesenvolvendo jogos multiplataforma usando cocos2d-js
Desenvolvendo jogos multiplataforma usando cocos2d-js
 
Introdução ao Desenvolvimemto de Jogos com Unity
Introdução ao Desenvolvimemto de Jogos com UnityIntrodução ao Desenvolvimemto de Jogos com Unity
Introdução ao Desenvolvimemto de Jogos com Unity
 
Advanced topics for game developers
Advanced topics for game developersAdvanced topics for game developers
Advanced topics for game developers
 
Curso Unity3D
Curso Unity3DCurso Unity3D
Curso Unity3D
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Aula menus
Aula menusAula menus
Aula menus
 
Minecraft - A História
Minecraft - A HistóriaMinecraft - A História
Minecraft - A História
 
Desenvolvimento de Jogos em Java
Desenvolvimento de Jogos em JavaDesenvolvimento de Jogos em Java
Desenvolvimento de Jogos em Java
 
Introdução ao cocos sharp
Introdução ao cocos sharpIntrodução ao cocos sharp
Introdução ao cocos sharp
 
Desenvolvendo jogos com unity
Desenvolvendo jogos com unityDesenvolvendo jogos com unity
Desenvolvendo jogos com unity
 
Introdução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de JogosIntrodução ao Desenvolvimento de Jogos
Introdução ao Desenvolvimento de Jogos
 
Aprendendo a Construir jogos com o Construct 2
Aprendendo a Construir jogos com o Construct 2 Aprendendo a Construir jogos com o Construct 2
Aprendendo a Construir jogos com o Construct 2
 
Minicurso - Introdução ao Blender
Minicurso - Introdução ao BlenderMinicurso - Introdução ao Blender
Minicurso - Introdução ao Blender
 
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
Thiago Valle e Heitor Repolho - Utilizando sparta para para desenvolvimento d...
 
Workshop kodu
Workshop kodu Workshop kodu
Workshop kodu
 
Criação de jogos game maker - férias
Criação de jogos   game maker - fériasCriação de jogos   game maker - férias
Criação de jogos game maker - férias
 
Desenvolvendo Jogos com Scratch
Desenvolvendo Jogos com ScratchDesenvolvendo Jogos com Scratch
Desenvolvendo Jogos com Scratch
 
Desenvolvendo Jogos 2D em HTML5 - Cocos2d-x
Desenvolvendo Jogos 2D em HTML5 - Cocos2d-xDesenvolvendo Jogos 2D em HTML5 - Cocos2d-x
Desenvolvendo Jogos 2D em HTML5 - Cocos2d-x
 
Interfaces de Games para Diferentes Telas
Interfaces de Games para Diferentes TelasInterfaces de Games para Diferentes Telas
Interfaces de Games para Diferentes Telas
 

Semelhante a Cocos2d-x Minicurso Multiplataforma

Construção de jogos com o motor unity3 d
Construção de jogos com o motor unity3 dConstrução de jogos com o motor unity3 d
Construção de jogos com o motor unity3 dEduardo Bonfandini
 
Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.Tchelinux
 
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr JamDesenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr JamAndré Espeiorin
 
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5Willian Molinari
 
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphereEloi Júnior
 
INdT Mobile Labs - Sparta
INdT Mobile Labs - SpartaINdT Mobile Labs - Sparta
INdT Mobile Labs - SpartaHeitor Carlos
 
Desenvolvendo Games para Nokia Asha
Desenvolvendo Games para Nokia AshaDesenvolvendo Games para Nokia Asha
Desenvolvendo Games para Nokia AshaMarlon Luz
 
Desenvolvimento de Jogos em Python
Desenvolvimento de Jogos em PythonDesenvolvimento de Jogos em Python
Desenvolvimento de Jogos em PythonAndrews Medina
 
Criação do jogo telyn
Criação do jogo telynCriação do jogo telyn
Criação do jogo telynAndré Martins
 
Desenvolvimento de jogos para android com andengine
Desenvolvimento de jogos para android com andengineDesenvolvimento de jogos para android com andengine
Desenvolvimento de jogos para android com andengineDiego Lopes
 
Desenvolvendo jogos com PyGame - Rafael Jeffman
Desenvolvendo jogos com PyGame - Rafael JeffmanDesenvolvendo jogos com PyGame - Rafael Jeffman
Desenvolvendo jogos com PyGame - Rafael JeffmanTchelinux
 
Desenvolvendo Jogos com PyGame - Rafael Guterres Jeffman - Tchelinux Pelotas ...
Desenvolvendo Jogos com PyGame - Rafael Guterres Jeffman - Tchelinux Pelotas ...Desenvolvendo Jogos com PyGame - Rafael Guterres Jeffman - Tchelinux Pelotas ...
Desenvolvendo Jogos com PyGame - Rafael Guterres Jeffman - Tchelinux Pelotas ...Tchelinux
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygameTchelinux
 
Desenvolvendo Jogos com pygame - Rafael Guterres Jeffman - Tchelinux Caxias d...
Desenvolvendo Jogos com pygame - Rafael Guterres Jeffman - Tchelinux Caxias d...Desenvolvendo Jogos com pygame - Rafael Guterres Jeffman - Tchelinux Caxias d...
Desenvolvendo Jogos com pygame - Rafael Guterres Jeffman - Tchelinux Caxias d...Tchelinux
 

Semelhante a Cocos2d-x Minicurso Multiplataforma (20)

Construção de jogos com o motor unity3 d
Construção de jogos com o motor unity3 dConstrução de jogos com o motor unity3 d
Construção de jogos com o motor unity3 d
 
Projeto de Jogos
Projeto de JogosProjeto de Jogos
Projeto de Jogos
 
Intel Perceptual Computing SDK
Intel Perceptual Computing SDKIntel Perceptual Computing SDK
Intel Perceptual Computing SDK
 
Aula maps
Aula mapsAula maps
Aula maps
 
Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.
 
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr JamDesenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
 
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
TDC2011 - Desenvolvimento de jogos com Javascript e HTML5
 
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
 
Inteligência Artificial em Jogos
Inteligência Artificial em JogosInteligência Artificial em Jogos
Inteligência Artificial em Jogos
 
Cocos 2d
Cocos 2dCocos 2d
Cocos 2d
 
INdT Mobile Labs - Sparta
INdT Mobile Labs - SpartaINdT Mobile Labs - Sparta
INdT Mobile Labs - Sparta
 
Desenvolvendo Games para Nokia Asha
Desenvolvendo Games para Nokia AshaDesenvolvendo Games para Nokia Asha
Desenvolvendo Games para Nokia Asha
 
Desenvolvimento de Jogos em Python
Desenvolvimento de Jogos em PythonDesenvolvimento de Jogos em Python
Desenvolvimento de Jogos em Python
 
Criação do jogo telyn
Criação do jogo telynCriação do jogo telyn
Criação do jogo telyn
 
Desenvolvimento de jogos para android com andengine
Desenvolvimento de jogos para android com andengineDesenvolvimento de jogos para android com andengine
Desenvolvimento de jogos para android com andengine
 
Desenvolvendo jogos com PyGame - Rafael Jeffman
Desenvolvendo jogos com PyGame - Rafael JeffmanDesenvolvendo jogos com PyGame - Rafael Jeffman
Desenvolvendo jogos com PyGame - Rafael Jeffman
 
Desenvolvendo Jogos com PyGame - Rafael Guterres Jeffman - Tchelinux Pelotas ...
Desenvolvendo Jogos com PyGame - Rafael Guterres Jeffman - Tchelinux Pelotas ...Desenvolvendo Jogos com PyGame - Rafael Guterres Jeffman - Tchelinux Pelotas ...
Desenvolvendo Jogos com PyGame - Rafael Guterres Jeffman - Tchelinux Pelotas ...
 
Unity3d dev in
Unity3d dev inUnity3d dev in
Unity3d dev in
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygame
 
Desenvolvendo Jogos com pygame - Rafael Guterres Jeffman - Tchelinux Caxias d...
Desenvolvendo Jogos com pygame - Rafael Guterres Jeffman - Tchelinux Caxias d...Desenvolvendo Jogos com pygame - Rafael Guterres Jeffman - Tchelinux Caxias d...
Desenvolvendo Jogos com pygame - Rafael Guterres Jeffman - Tchelinux Caxias d...
 

Mais de Pedro Kayatt

Realidade Virtual/Aumentada e Mixed Reality. Estamos no Futuro?
Realidade Virtual/Aumentada e Mixed Reality. Estamos no Futuro?Realidade Virtual/Aumentada e Mixed Reality. Estamos no Futuro?
Realidade Virtual/Aumentada e Mixed Reality. Estamos no Futuro?Pedro Kayatt
 
Utilizando recursos de realidade aumentada em aplicações
Utilizando recursos de realidade aumentada em aplicaçõesUtilizando recursos de realidade aumentada em aplicações
Utilizando recursos de realidade aumentada em aplicaçõesPedro Kayatt
 
SPRV #3 - Videos 360 - Audio VR e Templates de UE4
SPRV #3 - Videos 360 - Audio VR e Templates de UE4SPRV #3 - Videos 360 - Audio VR e Templates de UE4
SPRV #3 - Videos 360 - Audio VR e Templates de UE4Pedro Kayatt
 
SPRV #2 - São Paulo Realidade Virtual - Boas práticas
SPRV #2 - São Paulo Realidade Virtual - Boas práticasSPRV #2 - São Paulo Realidade Virtual - Boas práticas
SPRV #2 - São Paulo Realidade Virtual - Boas práticasPedro Kayatt
 
SPRV #1- São Paulo Realidade Virtual - Introdução
SPRV #1- São Paulo Realidade Virtual - IntroduçãoSPRV #1- São Paulo Realidade Virtual - Introdução
SPRV #1- São Paulo Realidade Virtual - IntroduçãoPedro Kayatt
 
ISA15 - Influence of a HMD on UX and performance in a VR-based sports applica...
ISA15 - Influence of a HMD on UX and performance in a VR-based sports applica...ISA15 - Influence of a HMD on UX and performance in a VR-based sports applica...
ISA15 - Influence of a HMD on UX and performance in a VR-based sports applica...Pedro Kayatt
 
VRMonkey - Uma nova realidade
VRMonkey - Uma nova realidadeVRMonkey - Uma nova realidade
VRMonkey - Uma nova realidadePedro Kayatt
 
Seguindo seu sonho - Fundação da Naked Monkey
Seguindo seu sonho - Fundação da Naked MonkeySeguindo seu sonho - Fundação da Naked Monkey
Seguindo seu sonho - Fundação da Naked MonkeyPedro Kayatt
 
TDC2014 - Desenvolvendo com CocoSharp e Intel Perceptual
TDC2014 - Desenvolvendo com CocoSharp e Intel PerceptualTDC2014 - Desenvolvendo com CocoSharp e Intel Perceptual
TDC2014 - Desenvolvendo com CocoSharp e Intel PerceptualPedro Kayatt
 
AppCircus - Badaboom A Dino's Rhythm Game
AppCircus - Badaboom A Dino's Rhythm GameAppCircus - Badaboom A Dino's Rhythm Game
AppCircus - Badaboom A Dino's Rhythm GamePedro Kayatt
 
Realidade Virtual - O Futuro é agora!
Realidade Virtual - O Futuro é agora!Realidade Virtual - O Futuro é agora!
Realidade Virtual - O Futuro é agora!Pedro Kayatt
 
ISD 2015 - Interfaces de Games para Diferentes Telas
ISD 2015 - Interfaces de Games para Diferentes TelasISD 2015 - Interfaces de Games para Diferentes Telas
ISD 2015 - Interfaces de Games para Diferentes TelasPedro Kayatt
 
SP DevFest 2014 - Interfaces de Games para Diferentes Telas
SP DevFest 2014 - Interfaces de Games para Diferentes TelasSP DevFest 2014 - Interfaces de Games para Diferentes Telas
SP DevFest 2014 - Interfaces de Games para Diferentes TelasPedro Kayatt
 

Mais de Pedro Kayatt (13)

Realidade Virtual/Aumentada e Mixed Reality. Estamos no Futuro?
Realidade Virtual/Aumentada e Mixed Reality. Estamos no Futuro?Realidade Virtual/Aumentada e Mixed Reality. Estamos no Futuro?
Realidade Virtual/Aumentada e Mixed Reality. Estamos no Futuro?
 
Utilizando recursos de realidade aumentada em aplicações
Utilizando recursos de realidade aumentada em aplicaçõesUtilizando recursos de realidade aumentada em aplicações
Utilizando recursos de realidade aumentada em aplicações
 
SPRV #3 - Videos 360 - Audio VR e Templates de UE4
SPRV #3 - Videos 360 - Audio VR e Templates de UE4SPRV #3 - Videos 360 - Audio VR e Templates de UE4
SPRV #3 - Videos 360 - Audio VR e Templates de UE4
 
SPRV #2 - São Paulo Realidade Virtual - Boas práticas
SPRV #2 - São Paulo Realidade Virtual - Boas práticasSPRV #2 - São Paulo Realidade Virtual - Boas práticas
SPRV #2 - São Paulo Realidade Virtual - Boas práticas
 
SPRV #1- São Paulo Realidade Virtual - Introdução
SPRV #1- São Paulo Realidade Virtual - IntroduçãoSPRV #1- São Paulo Realidade Virtual - Introdução
SPRV #1- São Paulo Realidade Virtual - Introdução
 
ISA15 - Influence of a HMD on UX and performance in a VR-based sports applica...
ISA15 - Influence of a HMD on UX and performance in a VR-based sports applica...ISA15 - Influence of a HMD on UX and performance in a VR-based sports applica...
ISA15 - Influence of a HMD on UX and performance in a VR-based sports applica...
 
VRMonkey - Uma nova realidade
VRMonkey - Uma nova realidadeVRMonkey - Uma nova realidade
VRMonkey - Uma nova realidade
 
Seguindo seu sonho - Fundação da Naked Monkey
Seguindo seu sonho - Fundação da Naked MonkeySeguindo seu sonho - Fundação da Naked Monkey
Seguindo seu sonho - Fundação da Naked Monkey
 
TDC2014 - Desenvolvendo com CocoSharp e Intel Perceptual
TDC2014 - Desenvolvendo com CocoSharp e Intel PerceptualTDC2014 - Desenvolvendo com CocoSharp e Intel Perceptual
TDC2014 - Desenvolvendo com CocoSharp e Intel Perceptual
 
AppCircus - Badaboom A Dino's Rhythm Game
AppCircus - Badaboom A Dino's Rhythm GameAppCircus - Badaboom A Dino's Rhythm Game
AppCircus - Badaboom A Dino's Rhythm Game
 
Realidade Virtual - O Futuro é agora!
Realidade Virtual - O Futuro é agora!Realidade Virtual - O Futuro é agora!
Realidade Virtual - O Futuro é agora!
 
ISD 2015 - Interfaces de Games para Diferentes Telas
ISD 2015 - Interfaces de Games para Diferentes TelasISD 2015 - Interfaces de Games para Diferentes Telas
ISD 2015 - Interfaces de Games para Diferentes Telas
 
SP DevFest 2014 - Interfaces de Games para Diferentes Telas
SP DevFest 2014 - Interfaces de Games para Diferentes TelasSP DevFest 2014 - Interfaces de Games para Diferentes Telas
SP DevFest 2014 - Interfaces de Games para Diferentes Telas
 

Último

apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaWilliamCruz402522
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp txrafaelacushman21
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06AndressaTenreiro
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 

Último (7)

apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aula
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp tx
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 

Cocos2d-x Minicurso Multiplataforma

  • 1. Minicurso de Jogos Multiplataforma com Cocos2d-x Pedro Kayatt @pekayatt
  • 2. Pilares do Desenvolvimento de Jogo • Jogador • Adversário (quebra-cabeças?) • Interatividade • Regras • Objetivo • Condição de Vitória, Empate e DERROTA! • Ser uma forma de entretenimento
  • 3. Elementos Classificatórios • Ferramentas • Materiais utilizados • Regras • Perícia (Skill), Estratégia e Sorte • CS, SC2, Campo Minado :D
  • 4. Tipos de Jogos • Mesa • Caneta e Papel • Cartas • Dados • Tabuleiros • Musicais • Interativos • Ações dos jogadores alteram regras do jogo (Bang)
  • 5. Jogos Digitais • Tradução direta dos jogos “reais” • Diversos estilos “novos” • Possibilidades infinitas • Muitas simulações
  • 6. Jogos Digitais - Papéis • Produtor • Editor (Publisher) • Time de Desenvolvimento • Designer (Game) • Programadores • Artista • Designer de Fases* • Engenheiro de Som • Testadores
  • 7. Jogos Digitais - Processo • Pré-Produção • Pitch + concepts • GDD – Game Design Document (em desuso) • Protótipo (POR FAVOR!) • Produção • Design • Programação • Criação • Fases – arte – áudio • Testes (e mais testes)
  • 8. Ciclos de Desenvolvimento WaterFall - Cascata Desenvolvimento Ágil
  • 9. Importante - Crunch Preciso pra ontem, então vamos ficar um tempinho extra…. Chrono Trigger OST – Apenas um engenheiro de som… hospitalizado por dormir diversas vezes no escritório
  • 11. COCOS2D • Cross Platform • IOS • Android • Windows Phone • Blackberry, Bada, Tizen, geladeira da minha avó…. • Open Source • Rápida • Comprovada • 25% de todos jogos mobiles (muito forte na Ásia)
  • 12. Coco2D – Qual? • Cocos2D-X • C++ • Com maior suporte a diferentes plataformas • Rápida e leve • CocosSharp • Windows Phone • Nuget (suporte do Xamarin) • Cocos2D-JS • Rápido desenvolvimento (Javascript) • Multi plataforma (em navegadores) • Javascript Binding
  • 15. Javascript binding what? • Performance até 20x melhor do que no mobile browser • Como? Mágica? Não! É tecnologia (e um pouco de magia negra) • Mozilla Spidermonkey – Roda o javascript como código nativo (C++)
  • 18. Instalando Web-Service • XAMPP : for windows, Mac, Linux. • WAMP : for windows • MAMP : for mac
  • 20. Javascript IDE • Notepad ++ • Aptana • Jetbraind Webstorm • Visual Studio 2012+ • Cocos Code IDE
  • 23. Exemplos • MoonWarriors – um jogo no melhor estilo “shooter” onde o jogador controla uma nave espacial • WatermelonWithMe – utiliza um simulador de física 2D (chipmunk) e desafia o jogador a dirigir uma caminhonete sem deixar melancias caírem de sua caçamba. • CrystalCraze – um jogo no estilo Puzzle elaborado com uma ferramenta chamada CocosBuilder • CocosDragonJS – jogo plataforma parecido com sucessos como Doogle Jump e Mega Jump, utiliza uma mescla de CocosBuilder com edição de Javascript
  • 25. Exemplo – project.json { "project_type": "javascript", "debugMode": 1, "showFPS": true, "frameRate": 60, "id": "gameCanvas", "renderMode": 0, "engineDir": "frameworks/cocos2d-html5", "modules": [ "cocos2d" ], "jsList": [ "src/resource.js", "src/app.js" ] }
  • 26. Exemplo – src/resource.js var res = { HelloWorld_png : "res/HelloWorld.png", CloseNormal_png : "res/CloseNormal.png", CloseSelected_png : "res/CloseSelected.png" }; var g_resources = []; for (var i in res) { g_resources.push(res[i]); }
  • 27. Exemplo – src/app.js var HelloWorldLayer = cc.Layer.extend({ sprite:null, ctor:function () { /1. super init first this._super(); …
  • 28. Adicionando Sprites // adicionando o sprite ao HelloWorldLayer, centralizado e usando o arquivo .png como fonte (setado no arquivo resource.js) this.sprite = new cc.Sprite(res.HelloWorld_png); this.sprite.attr({ x: size.width / 2, //pos X e Y do sprite y: size.height / 2, scale: 0.5, //escalona o Sprite para ter metade de seu tamanho nominal rotation: 180 // gira o Sprite em 180 graus. }); this.addChild(this.sprite, 0);
  • 29. Actions var rotateToA = cc.RotateTo.create(2, 0); var scaleToA = cc.ScaleTo.create(2, 1, 1); // executa uma sequência de ações diretamente no sprite this.sprite.runAction(cc.Sequence.create(rotateToA, scaleToA));
  • 30. Entrada - Touch // ao tocar na tela onTouchesBegan:function (touches, event) { this.isMouseDown = true; }, // ao mover o toque na tela onTouchesMoved:function (touches, event) { if (this.isMouseDown) { if (touches) { this.circle.setPosition(cc.p(touches[0].getLocation().x, touches[0].getLocation().y)); } } }, // ao remover o toque da tela onTouchesEnded:function (touches, event) { this.isMouseDown = false; }
  • 31. Entrada - Teclado this.setKeyboardEnabled(true); onKeyUp:function (e){ // intercepta quando uma tecla é solta }, onKeyDown:function (e){ // intercepta quando uma tecla é pressionada
  • 33. USANDO A COCOS CODE IDE • Na realidade a Cocos IDE é apenas um Eclipse alterado com o único propósito de rodar a Cocos JS (ou Lua). • Ela é ótima, dado que auto-completes funcionam perfeitamente e você ainda pode adicionar outros plugins “eclipse” nela. • A GRANDE vantagem, porém vem do fato de você poder utilizar um JSB “prebuilt” como um simulador em tempo real, inclusive debugando tudo. • A última versão adicionou o profiling DS5 de Android como funcionalidade nativa
  • 34. USANDO A COCOS CODE IDE (2) Interface manjada com Simulador de quebra!
  • 35. EXECUTANDO O PROJETO NO ANDROID • Android SDK • http://developer.android.com/sdk/index.html • Eclipse ADT Bundle • Baixar Emulador Intel, HAXM e tudo que quiser no Android Manager • Android NDK • http://developer.android.com/tools/sdk/ndk/index.html • CygWin • Procure Mirrors mais amigaveis… (o default é um inferno)
  • 36. Setando variáveis de ambiente • c:cygwinhomeuser.bashprofile, abra este arquivo com o Notepad++ e adicione: • NDK_ROOT=/cygdrive/c/android-ndk-r8e • Export NDK_ROOT • Faça pelo Opções Avançadas do Windows • Utilize o “setup.py” na raiz do diretório da Cocos2d-x (ou JS)
  • 37. Rodando em outras plataformas • Jeito oficial: cocos console (acredite é muito melhor)
  • 38. Criando seu projeto • Usando Cocos Console (http://www.cocos2d-x.org/wiki/How_to_Start_A_New_Cocos2D-X_Game) Depois rode o comando na pasta desejada: “cocos new MyGame -p com.MyCompany.MyGame -l cpp ”
  • 39. Vamos ao código? • Ideias: • Ninjas atiradores • Naves • Plataforma runners • Puzzles
  • 40. Obrigado! • Pedro Kayatt • @pekayatt • Naked Monkey Games • @nakedmonkeyG • www.nakedmonkey.com.br