SlideShare uma empresa Scribd logo
Desenvolvimento de Jogos com Corona SDK
UniversidadeCruzeiro do Sul -WICA 2013
Bruno Cicanci
Conteúdo
 Por onde começar
 Protótipos
 Programação
 Corona SDK
 Bonus Level
Por onde começar
Do conceito...
... ao jogo!
Game Design
http://catavento.art.br/ppt/15semcomp.pdf
Gameplay jogando
Programação sem ter a arte final
Art Of Game Design (Aplicativo)
https://play.google.com/store/apps/details?id=com.schellgames.deckoflenses
Protótipos
Objetivo do protótipo:Validar a mecânica do jogo
Protótipo de papel
Protótipo Digital
Playground
Bioshock Infinity: http://www.youtube.com/watch?v=5OAj5JBMvBo
Programação
Jogue fora o protótipo!
Controle de versão
Boas práticas de programação
 Variáveis:
 mVariavel (private)
 sVariavel (static)
 pVariavel (param)
 VARIAVEL (constant)
 Funções:
 Get()
 Set(Param pParam)
 Comentários:
 No início da classe com exemplo de utilização e autor
 Explicações em partes complexas
 Justificativas de código temporário
Game Loop
Toda LÓGICA do jogo é
processada de acordo com o
INPUT do jogador, e o
resultado é exibido
GRAFICAMENTE na tela
Game Loop - Exemplo
Finite State Machine (FSM)
Corona SDK
Corona SDK
Programação com script Lua
Plataformas: iOS, Android, Kindle e
Nook
Desenvolvimento mais rápido de
jogos 2D e aplicativos
Diversos plugins
Gratuito (para Android e iOS)!
Jogos em 2D
Storyboard
local storyboard = require "storyboard”
storyboard.gotoScene( ”menu" )
…
storyboard.removeScene( ”intro" )
Scene
local storyboard = require( "storyboard" )
local scene = storyboard.newScene()
scene:addEventListener( "createScene", scene )
scene:addEventListener( "enterScene", scene )
scene:addEventListener( "exitScene", scene )
scene:addEventListener( "destroyScene", scene )
Scene
function scene:createScene( event )
end
function scene:enterScene( event )
end
function scene:exitScene( event )
end
function scene:destroyScene( event )
end
return scene
Display
localWIDTH = display.contentWidth
local HEIGHT = display.contentHeight
Image
local player = display.newImage( ”player.png" )
player:setReferencePoint( display.BottomLeftReferencePoint )
player.x = 0
player.y = 0
Text
local scoreText = display.newText(”SCORE: ".. score, 0, 0,
native.systemFontBold, 16)
scoreText:setTextColor(0, 255, 255)
…
scoreText:removeSelf()
Group
function scene:createScene( event )
group = self.view
...
group:insert( background )
group:insert( forest )
group:insert( collider )
group:insert( scoreText )
end
Touch
function onTouch(event)
if(event.phase == "began") then
elseif (event.phase == "moved") then
elseif (event.phase == "ended") then
end
return true
end
Events
player:addEventListener("touch", onTouch)
…
Runtime:addEventListener("accelerometer", onTilt)
Runtime:addEventListener( "system", onSystemEvent)
Physics
local physics = require "physics"
physics.start();
physics.setGravity(0, 9.8)
local leftside = display.newImage("img/side.png")
physics.addBody(leftside, {friction=0.5})
leftside.bodyType = "static”
Sound
local backgroundMusic = audio.loadStream("backgroundMusic.m4a")
local narrationSpeech = audio.loadStream("narrationSpeech.wav")
local backgroundMusicChannel = audio.play( backgroundMusic, {
channel=1, loops=-1, fadein=5000 } )
local narrationChannel = audio.play( narrationSpeech, {
duration=30000, onComplete=NarrationFinished } )
Tiled (Editor de nível)
Tiled (Implementação com Lime)
lime = require("lime.lime”)
local map = lime.loadMap("mapa.tmx”)
local visual = lime.createVisual(map)
TexturePacker (Sprite sheet)
TexturePacker (Implementação)
local sheetInfo = require("player”)
local myImageSheet = graphics.newImageSheet( "player.png",
sheetInfo:getSheet() )
local player = display.newSprite( myImageSheet ,
sheetInfo:getSequenceData() )
player:setSequence( "walk" )
player:play()
Fórum, documentação, wiki, tutoriais
http://www.coronalabs.com/
Bonus Level
Modelos de Negócio
 Funciona bem com jogos de iOS,
porém desde que tenha uma
versão de demonstração para o
jogador testar
 Jogos indie geralmente tem
preços entre $0.99 e $2.99
 A versão de demonstração pode
ser limitada ou uma versão do
jogo usando o modelo de
negócio gratuito
 Funciona bem com jogos de
Android, pois a pirataria neste OS
é maior
 Anúncios, quando colocados em
locais corretos e com uma
freqüência adequada, podem dar
um bom retorno
 Jogos Freemium são muito
comuns no Android OS e iOS
Pago Gratuito
Arte 2D para programadores
http://2dgameartforprogrammers.blogspot.com.br/
Concursos
Social
Publicidade no Jogo
Links interessantes
Mecânicas de jogo
http://www.squidi.net/three/index.php
Então, você quer ser um game designer?
http://www.youtube.com/watch?v=zQvWMdWhFCc
Então, você quer trabalhar na indústria de games?
http://www.youtube.com/watch?v=u_fr8tEQSGE
Gerador de personages em 2D (pixelart)
http://charas-project.net/charas2/index.php
Artigos sobre gamefication
http://www.gamification.co/2013/01/04/top-articles-by-gamification-experts-in-2012/
10 livros sobre games que você precisa ler
http://arena.ig.com.br/2012-06-28/dez-livros-de-games-que-voce-precisa-ler.html
Livros
 Desenvolvimento de Jogos e Programação:
 Code Complete - http://amzn.to/oqrBeP
 Effective C++ - http://amzn.to/NJ2ed2
 More Effective C++ - http://amzn.to/qQSksw
 Desenvolvimento de Jogos Eletrônicos - http://novatec.com.br/livros/jogos2/
 Software Engineering for Game Developers - http://amzn.to/qrY571
 Game Engine Architecture - http://amzn.to/pgnZFR
 Game Coding Complete - http://amzn.to/qA0Nz4
 Programming Game AI by Example - http://amzn.to/nQ5SdY
 Real-time Rendering - http://amzn.to/pbHDTp
 Game Programming All in One - http://amzn.to/p2S05M
 Beginning C++ through Game Programming - http://amzn.to/q0X1fV
 XNA Game Studio Creators Guide - http://amzn.to/nmSlFf
 iPhone Programming The Big Nerd Ranch Guide - http://amzn.to/p6kUkJ
 Head First iPhone and iPad Development - http://amzn.to/p0qXOo
 Agile Game Development with Scrum - http://amzn.to/nfp3T3
 Game Design:
 Game Design Workshop - http://amzn.to/pVvJE0
 Rules of Play: Game Design Fundamentals -
http://amzn.to/oHmOZ8
 The Game Design Reader: A Rules of Play Anthology -
http://amzn.to/pTjOd7
 Half-Real: Video Games between Real Rules and Fictional
Worlds - http://amzn.to/qA7yd6
 A Theory of Fun for Game Design - http://amzn.to/nmR1Ya
 The Art of Game Design: A book of lenses -
http://amzn.to/p0Z5xr
Sites e revistas
 Sites:
 Gamasutra - http://www.gamasutra.com/
 Gamesindustry - http://www.gamesindustry.biz/
 AppData - http://www.appdata.com/
 Ars Technica - http://arstechnica.com/gaming/
 GameCareerGuide -
http://www.gamecareerguide.com/
 Fóruns
 GameDev - http://www.gamedev.com.br/
 PDJ - http://www.programadoresdejogos.com/
 UniDev - http://www.unidev.com.br/
 Blogs:
 AltDevBlogADay - http://altdevblogaday.com/
 Game Developer – http://gamedeveloper.com.br
 Game Producer - http://www.gameproducer.net/
 Indie Games - http://indiegames.com/index.html
 Revistas:
 Casual Connect - http://casualconnect.org/magazine-
archive/
 Develop - http://www.develop-online.net/
 EDGE - http://www.next-gen.biz/
 Game Developer Magazine -
http://www.gdmag.com/homepage.htm
 Game Sauce - http://gamesauce.org/news/
 Wired - http://www.wired.com/gaming
Obrigado!
http://gamedeveloper.com.br
bruno@gamedeveloper.com.br

Mais conteúdo relacionado

Mais procurados

WRVA 2015
WRVA 2015WRVA 2015
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Flávio Ribeiro
 
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
Luiz Nörnberg
 
Projeto de Jogos
Projeto de JogosProjeto de Jogos
Projeto de Jogos
Mauricio Mallet Duprat
 
Programação de jogos eletrônicos
Programação de jogos eletrônicosProgramação de jogos eletrônicos
Programação de jogos eletrônicos
guest8ff100
 
Criando jogos com python e pygame 1 aula
Criando jogos com python e pygame 1 aulaCriando jogos com python e pygame 1 aula
Criando jogos com python e pygame 1 aula
Diego Lopes
 
Webinar 2 - Classes TotalCross
Webinar 2 - Classes TotalCrossWebinar 2 - Classes TotalCross
Webinar 2 - Classes TotalCross
TotalCross Global Mobile Platform
 
Jogos em Python utilizando PyGame
Jogos em Python utilizando PyGameJogos em Python utilizando PyGame
Jogos em Python utilizando PyGame
Mayron Cachina
 
TotalCross Mini Curso
TotalCross Mini Curso TotalCross Mini Curso
TotalCross Mini Curso
TotalCross Global Mobile Platform
 
Projecto intercalar
Projecto intercalarProjecto intercalar
Projecto intercalar
jorgebessamiranda
 
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
Bruno Campagnolo
 
Apresentação pygame
Apresentação pygameApresentação pygame
Apresentação pygame
Danilo Costa
 
JavaScript Robotics: Nodebots, JavaScript Além das telas
JavaScript Robotics: Nodebots, JavaScript Além das telasJavaScript Robotics: Nodebots, JavaScript Além das telas
JavaScript Robotics: Nodebots, JavaScript Além das telas
Felipe de Albuquerque
 
[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012
Douglas Drumond
 

Mais procurados (14)

WRVA 2015
WRVA 2015WRVA 2015
WRVA 2015
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6Implementação de Aplicações Móveis e Jogos com Python - Aula 6
Implementação de Aplicações Móveis e Jogos com Python - Aula 6
 
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
 
Projeto de Jogos
Projeto de JogosProjeto de Jogos
Projeto de Jogos
 
Programação de jogos eletrônicos
Programação de jogos eletrônicosProgramação de jogos eletrônicos
Programação de jogos eletrônicos
 
Criando jogos com python e pygame 1 aula
Criando jogos com python e pygame 1 aulaCriando jogos com python e pygame 1 aula
Criando jogos com python e pygame 1 aula
 
Webinar 2 - Classes TotalCross
Webinar 2 - Classes TotalCrossWebinar 2 - Classes TotalCross
Webinar 2 - Classes TotalCross
 
Jogos em Python utilizando PyGame
Jogos em Python utilizando PyGameJogos em Python utilizando PyGame
Jogos em Python utilizando PyGame
 
TotalCross Mini Curso
TotalCross Mini Curso TotalCross Mini Curso
TotalCross Mini Curso
 
Projecto intercalar
Projecto intercalarProjecto intercalar
Projecto intercalar
 
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
 
Apresentação pygame
Apresentação pygameApresentação pygame
Apresentação pygame
 
JavaScript Robotics: Nodebots, JavaScript Além das telas
JavaScript Robotics: Nodebots, JavaScript Além das telasJavaScript Robotics: Nodebots, JavaScript Além das telas
JavaScript Robotics: Nodebots, JavaScript Além das telas
 
[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012
 

Semelhante a Desenvolvimento de Jogos com Corona SDK

IntroduçãO Ao Xna Campus Party
IntroduçãO Ao Xna  Campus PartyIntroduçãO Ao Xna  Campus Party
IntroduçãO Ao Xna Campus Party
José Farias
 
Advanced topics for game developers
Advanced topics for game developersAdvanced topics for game developers
Advanced topics for game developers
juliocoopergames
 
Júlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game DevelopersJúlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game Developers
iMasters
 
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - MackenzieIntrodução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
jonathanblacknight
 
Minicurso pygame
Minicurso pygameMinicurso pygame
Minicurso pygame
Demontiê Junior
 
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
Willian Molinari
 
Semcomp
SemcompSemcomp
Semcomp
iMAX Games
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
Campus Party Brasil
 
Oficina Android - Games com AndEngine - Dia 2
Oficina Android - Games com AndEngine - Dia 2Oficina Android - Games com AndEngine - Dia 2
Oficina Android - Games com AndEngine - Dia 2
Odair Bonin Borges
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Flávio Ribeiro
 
Guia xna
Guia xnaGuia xna
Guia xna
Sérgio Barbosa
 
Kinect e Natural Users Interfaces
Kinect e Natural Users InterfacesKinect e Natural Users Interfaces
Kinect e Natural Users Interfaces
Mauricio Alegretti
 
Apresentação 29 06-11
Apresentação 29 06-11Apresentação 29 06-11
Apresentação 29 06-11
Renan Nespolo
 
Arduino genius com display lcd 16x2 usando i2 c
Arduino  genius com display lcd 16x2 usando i2 cArduino  genius com display lcd 16x2 usando i2 c
Arduino genius com display lcd 16x2 usando i2 c
Thiago Pereira
 
Game programming
Game programmingGame programming
Game programming
Fabio Fonseca
 
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGameFLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
Lucas Mousinho
 
Computação no Desenvolvimento de Jogos Digitais
Computação no Desenvolvimento de Jogos DigitaisComputação no Desenvolvimento de Jogos Digitais
Computação no Desenvolvimento de Jogos Digitais
Universidade Federal de Alfenas - Campus Varginha
 
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
Eloi Júnior
 
Diversão Séria: oficina de prototipação
Diversão Séria: oficina de prototipaçãoDiversão Séria: oficina de prototipação
Diversão Séria: oficina de prototipação
Rafaela Vilela da Rocha
 
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
Diego Lopes
 

Semelhante a Desenvolvimento de Jogos com Corona SDK (20)

IntroduçãO Ao Xna Campus Party
IntroduçãO Ao Xna  Campus PartyIntroduçãO Ao Xna  Campus Party
IntroduçãO Ao Xna Campus Party
 
Advanced topics for game developers
Advanced topics for game developersAdvanced topics for game developers
Advanced topics for game developers
 
Júlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game DevelopersJúlio Pescuite - Advanced Topics for Game Developers
Júlio Pescuite - Advanced Topics for Game Developers
 
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - MackenzieIntrodução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
Introdução ao desenvolvimento de jogos em OGRE 3D - Mackenzie
 
Minicurso pygame
Minicurso pygameMinicurso pygame
Minicurso pygame
 
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
 
Semcomp
SemcompSemcomp
Semcomp
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
 
Oficina Android - Games com AndEngine - Dia 2
Oficina Android - Games com AndEngine - Dia 2Oficina Android - Games com AndEngine - Dia 2
Oficina Android - Games com AndEngine - Dia 2
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
 
Guia xna
Guia xnaGuia xna
Guia xna
 
Kinect e Natural Users Interfaces
Kinect e Natural Users InterfacesKinect e Natural Users Interfaces
Kinect e Natural Users Interfaces
 
Apresentação 29 06-11
Apresentação 29 06-11Apresentação 29 06-11
Apresentação 29 06-11
 
Arduino genius com display lcd 16x2 usando i2 c
Arduino  genius com display lcd 16x2 usando i2 cArduino  genius com display lcd 16x2 usando i2 c
Arduino genius com display lcd 16x2 usando i2 c
 
Game programming
Game programmingGame programming
Game programming
 
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGameFLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
FLISOL 2015 - Desenvolvimento de jogos para Linux com MonoGame
 
Computação no Desenvolvimento de Jogos Digitais
Computação no Desenvolvimento de Jogos DigitaisComputação no Desenvolvimento de Jogos Digitais
Computação no Desenvolvimento de Jogos Digitais
 
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
 
Diversão Séria: oficina de prototipação
Diversão Séria: oficina de prototipaçãoDiversão Séria: oficina de prototipação
Diversão Séria: oficina de prototipação
 
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
 

Mais de Bruno Cicanci

Design Patterns in Game Programming
Design Patterns in Game ProgrammingDesign Patterns in Game Programming
Design Patterns in Game Programming
Bruno Cicanci
 
Optimizing Unity games for mobile devices
Optimizing Unity games for mobile devicesOptimizing Unity games for mobile devices
Optimizing Unity games for mobile devices
Bruno Cicanci
 
It's all about the game
It's all about the gameIt's all about the game
It's all about the game
Bruno Cicanci
 
Game Jams - Como fazer um jogo em 48 horas
Game Jams - Como fazer um jogo em 48 horasGame Jams - Como fazer um jogo em 48 horas
Game Jams - Como fazer um jogo em 48 horas
Bruno Cicanci
 
Design Patterns na Programação de Jogo
Design Patterns na Programação de JogoDesign Patterns na Programação de Jogo
Design Patterns na Programação de Jogo
Bruno Cicanci
 
Programação de Jogos - Design Patterns
Programação de Jogos - Design PatternsProgramação de Jogos - Design Patterns
Programação de Jogos - Design Patterns
Bruno Cicanci
 
TDC 2012 - Desenvolvimento de Jogos Mobile
TDC 2012 - Desenvolvimento de Jogos MobileTDC 2012 - Desenvolvimento de Jogos Mobile
TDC 2012 - Desenvolvimento de Jogos Mobile
Bruno Cicanci
 
Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011
Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011
Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011
Bruno Cicanci
 

Mais de Bruno Cicanci (8)

Design Patterns in Game Programming
Design Patterns in Game ProgrammingDesign Patterns in Game Programming
Design Patterns in Game Programming
 
Optimizing Unity games for mobile devices
Optimizing Unity games for mobile devicesOptimizing Unity games for mobile devices
Optimizing Unity games for mobile devices
 
It's all about the game
It's all about the gameIt's all about the game
It's all about the game
 
Game Jams - Como fazer um jogo em 48 horas
Game Jams - Como fazer um jogo em 48 horasGame Jams - Como fazer um jogo em 48 horas
Game Jams - Como fazer um jogo em 48 horas
 
Design Patterns na Programação de Jogo
Design Patterns na Programação de JogoDesign Patterns na Programação de Jogo
Design Patterns na Programação de Jogo
 
Programação de Jogos - Design Patterns
Programação de Jogos - Design PatternsProgramação de Jogos - Design Patterns
Programação de Jogos - Design Patterns
 
TDC 2012 - Desenvolvimento de Jogos Mobile
TDC 2012 - Desenvolvimento de Jogos MobileTDC 2012 - Desenvolvimento de Jogos Mobile
TDC 2012 - Desenvolvimento de Jogos Mobile
 
Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011
Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011
Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011
 

Desenvolvimento de Jogos com Corona SDK

  • 1. Desenvolvimento de Jogos com Corona SDK UniversidadeCruzeiro do Sul -WICA 2013 Bruno Cicanci
  • 2. Conteúdo  Por onde começar  Protótipos  Programação  Corona SDK  Bonus Level
  • 8. Programação sem ter a arte final
  • 9. Art Of Game Design (Aplicativo) https://play.google.com/store/apps/details?id=com.schellgames.deckoflenses
  • 11. Objetivo do protótipo:Validar a mecânica do jogo
  • 16. Jogue fora o protótipo!
  • 18. Boas práticas de programação  Variáveis:  mVariavel (private)  sVariavel (static)  pVariavel (param)  VARIAVEL (constant)  Funções:  Get()  Set(Param pParam)  Comentários:  No início da classe com exemplo de utilização e autor  Explicações em partes complexas  Justificativas de código temporário
  • 19. Game Loop Toda LÓGICA do jogo é processada de acordo com o INPUT do jogador, e o resultado é exibido GRAFICAMENTE na tela
  • 20. Game Loop - Exemplo
  • 23. Corona SDK Programação com script Lua Plataformas: iOS, Android, Kindle e Nook Desenvolvimento mais rápido de jogos 2D e aplicativos Diversos plugins Gratuito (para Android e iOS)!
  • 25. Storyboard local storyboard = require "storyboard” storyboard.gotoScene( ”menu" ) … storyboard.removeScene( ”intro" )
  • 26. Scene local storyboard = require( "storyboard" ) local scene = storyboard.newScene() scene:addEventListener( "createScene", scene ) scene:addEventListener( "enterScene", scene ) scene:addEventListener( "exitScene", scene ) scene:addEventListener( "destroyScene", scene )
  • 27. Scene function scene:createScene( event ) end function scene:enterScene( event ) end function scene:exitScene( event ) end function scene:destroyScene( event ) end return scene
  • 28. Display localWIDTH = display.contentWidth local HEIGHT = display.contentHeight
  • 29. Image local player = display.newImage( ”player.png" ) player:setReferencePoint( display.BottomLeftReferencePoint ) player.x = 0 player.y = 0
  • 30. Text local scoreText = display.newText(”SCORE: ".. score, 0, 0, native.systemFontBold, 16) scoreText:setTextColor(0, 255, 255) … scoreText:removeSelf()
  • 31. Group function scene:createScene( event ) group = self.view ... group:insert( background ) group:insert( forest ) group:insert( collider ) group:insert( scoreText ) end
  • 32. Touch function onTouch(event) if(event.phase == "began") then elseif (event.phase == "moved") then elseif (event.phase == "ended") then end return true end
  • 34. Physics local physics = require "physics" physics.start(); physics.setGravity(0, 9.8) local leftside = display.newImage("img/side.png") physics.addBody(leftside, {friction=0.5}) leftside.bodyType = "static”
  • 35. Sound local backgroundMusic = audio.loadStream("backgroundMusic.m4a") local narrationSpeech = audio.loadStream("narrationSpeech.wav") local backgroundMusicChannel = audio.play( backgroundMusic, { channel=1, loops=-1, fadein=5000 } ) local narrationChannel = audio.play( narrationSpeech, { duration=30000, onComplete=NarrationFinished } )
  • 36. Tiled (Editor de nível)
  • 37. Tiled (Implementação com Lime) lime = require("lime.lime”) local map = lime.loadMap("mapa.tmx”) local visual = lime.createVisual(map)
  • 39. TexturePacker (Implementação) local sheetInfo = require("player”) local myImageSheet = graphics.newImageSheet( "player.png", sheetInfo:getSheet() ) local player = display.newSprite( myImageSheet , sheetInfo:getSequenceData() ) player:setSequence( "walk" ) player:play()
  • 40. Fórum, documentação, wiki, tutoriais http://www.coronalabs.com/
  • 42. Modelos de Negócio  Funciona bem com jogos de iOS, porém desde que tenha uma versão de demonstração para o jogador testar  Jogos indie geralmente tem preços entre $0.99 e $2.99  A versão de demonstração pode ser limitada ou uma versão do jogo usando o modelo de negócio gratuito  Funciona bem com jogos de Android, pois a pirataria neste OS é maior  Anúncios, quando colocados em locais corretos e com uma freqüência adequada, podem dar um bom retorno  Jogos Freemium são muito comuns no Android OS e iOS Pago Gratuito
  • 43. Arte 2D para programadores http://2dgameartforprogrammers.blogspot.com.br/
  • 47. Links interessantes Mecânicas de jogo http://www.squidi.net/three/index.php Então, você quer ser um game designer? http://www.youtube.com/watch?v=zQvWMdWhFCc Então, você quer trabalhar na indústria de games? http://www.youtube.com/watch?v=u_fr8tEQSGE Gerador de personages em 2D (pixelart) http://charas-project.net/charas2/index.php Artigos sobre gamefication http://www.gamification.co/2013/01/04/top-articles-by-gamification-experts-in-2012/ 10 livros sobre games que você precisa ler http://arena.ig.com.br/2012-06-28/dez-livros-de-games-que-voce-precisa-ler.html
  • 48. Livros  Desenvolvimento de Jogos e Programação:  Code Complete - http://amzn.to/oqrBeP  Effective C++ - http://amzn.to/NJ2ed2  More Effective C++ - http://amzn.to/qQSksw  Desenvolvimento de Jogos Eletrônicos - http://novatec.com.br/livros/jogos2/  Software Engineering for Game Developers - http://amzn.to/qrY571  Game Engine Architecture - http://amzn.to/pgnZFR  Game Coding Complete - http://amzn.to/qA0Nz4  Programming Game AI by Example - http://amzn.to/nQ5SdY  Real-time Rendering - http://amzn.to/pbHDTp  Game Programming All in One - http://amzn.to/p2S05M  Beginning C++ through Game Programming - http://amzn.to/q0X1fV  XNA Game Studio Creators Guide - http://amzn.to/nmSlFf  iPhone Programming The Big Nerd Ranch Guide - http://amzn.to/p6kUkJ  Head First iPhone and iPad Development - http://amzn.to/p0qXOo  Agile Game Development with Scrum - http://amzn.to/nfp3T3  Game Design:  Game Design Workshop - http://amzn.to/pVvJE0  Rules of Play: Game Design Fundamentals - http://amzn.to/oHmOZ8  The Game Design Reader: A Rules of Play Anthology - http://amzn.to/pTjOd7  Half-Real: Video Games between Real Rules and Fictional Worlds - http://amzn.to/qA7yd6  A Theory of Fun for Game Design - http://amzn.to/nmR1Ya  The Art of Game Design: A book of lenses - http://amzn.to/p0Z5xr
  • 49. Sites e revistas  Sites:  Gamasutra - http://www.gamasutra.com/  Gamesindustry - http://www.gamesindustry.biz/  AppData - http://www.appdata.com/  Ars Technica - http://arstechnica.com/gaming/  GameCareerGuide - http://www.gamecareerguide.com/  Fóruns  GameDev - http://www.gamedev.com.br/  PDJ - http://www.programadoresdejogos.com/  UniDev - http://www.unidev.com.br/  Blogs:  AltDevBlogADay - http://altdevblogaday.com/  Game Developer – http://gamedeveloper.com.br  Game Producer - http://www.gameproducer.net/  Indie Games - http://indiegames.com/index.html  Revistas:  Casual Connect - http://casualconnect.org/magazine- archive/  Develop - http://www.develop-online.net/  EDGE - http://www.next-gen.biz/  Game Developer Magazine - http://www.gdmag.com/homepage.htm  Game Sauce - http://gamesauce.org/news/  Wired - http://www.wired.com/gaming