50
Desenvolvimento de Jogos com Corona SDK Universidade Cruzeiro do Sul - WICA 2013 Bruno Cicanci

Desenvolvimento de Jogos com Corona SDK

Embed Size (px)

DESCRIPTION

Palestra apresentada no evento WICA na Universidade Cruzeiro do Sul (Unicsul), no campus Anália Franco, em 18/06/2013.

Citation preview

Page 1: Desenvolvimento de Jogos com Corona SDK

Desenvolvimento de Jogos com Corona SDK

Universidade Cruzeiro do Sul - WICA 2013

Bruno Cicanci

Page 2: Desenvolvimento de Jogos com Corona SDK

Conteúdo

Por onde começar

Protótipos

Programação

Corona SDK

Bonus Level

Page 3: Desenvolvimento de Jogos com Corona SDK

Por onde começar

Page 4: Desenvolvimento de Jogos com Corona SDK

Do conceito...

Page 5: Desenvolvimento de Jogos com Corona SDK

... ao jogo!

Page 6: Desenvolvimento de Jogos com Corona SDK

Game Design

http://catavento.art.br/ppt/15semcomp.pdf

Page 7: Desenvolvimento de Jogos com Corona SDK

Gameplay jogando

Page 8: Desenvolvimento de Jogos com Corona SDK

Programação sem ter a arte final

Page 9: Desenvolvimento de Jogos com Corona SDK

Art Of Game Design (Aplicativo)

https://play.google.com/store/apps/details?id=com.schellgames.deckoflenses

Page 10: Desenvolvimento de Jogos com Corona SDK

Protótipos

Page 11: Desenvolvimento de Jogos com Corona SDK

Objetivo do protótipo: Validar a mecânica do jogo

Page 12: Desenvolvimento de Jogos com Corona SDK

Protótipo de papel

Page 13: Desenvolvimento de Jogos com Corona SDK

Protótipo Digital

Page 14: Desenvolvimento de Jogos com Corona SDK

Playground

Bioshock Infinity: http://www.youtube.com/watch?v=5OAj5JBMvBo

Page 15: Desenvolvimento de Jogos com Corona SDK

Programação

Page 16: Desenvolvimento de Jogos com Corona SDK

Jogue fora o protótipo!

Page 17: Desenvolvimento de Jogos com Corona SDK

Controle de versão

Page 18: Desenvolvimento de Jogos com Corona SDK

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

Page 19: Desenvolvimento de Jogos com Corona SDK

Game Loop

Toda LÓGICA do jogo é processada de acordo com o INPUT do jogador, e o resultado é exibido GRAFICAMENTE na tela

Page 20: Desenvolvimento de Jogos com Corona SDK

Game Loop - Exemplo

Page 21: Desenvolvimento de Jogos com Corona SDK

Finite State Machine (FSM)

Page 22: Desenvolvimento de Jogos com Corona SDK

Corona SDK

Page 23: Desenvolvimento de Jogos com 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)!

Page 24: Desenvolvimento de Jogos com Corona SDK

Jogos em 2D

Page 25: Desenvolvimento de Jogos com Corona SDK

Storyboard

local storyboard = require "storyboard”

storyboard.gotoScene( ”menu" )

storyboard.removeScene( ”intro" )

Page 26: Desenvolvimento de Jogos com Corona SDK

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 )

Page 27: Desenvolvimento de Jogos com Corona SDK

Scene

function scene:createScene( event )

end

function scene:enterScene( event )

end

function scene:exitScene( event )

end

function scene:destroyScene( event )

end

return scene

Page 28: Desenvolvimento de Jogos com Corona SDK

Display

local WIDTH = display.contentWidth

local HEIGHT = display.contentHeight

Page 29: Desenvolvimento de Jogos com Corona SDK

Image

local player = display.newImage( ”player.png" )

player:setReferencePoint( display.BottomLeftReferencePoint )

player.x = 0

player.y = 0

Page 30: Desenvolvimento de Jogos com Corona SDK

Text

local scoreText = display.newText(”SCORE: ".. score, 0, 0, native.systemFontBold, 16)

scoreText:setTextColor(0, 255, 255)

scoreText:removeSelf()

Page 31: Desenvolvimento de Jogos com Corona SDK

Group

function scene:createScene( event )

group = self.view

...

group:insert( background )

group:insert( forest )

group:insert( collider )

group:insert( scoreText )

end

Page 32: Desenvolvimento de Jogos com Corona SDK

Touch

function onTouch(event)

if(event.phase == "began") then

elseif (event.phase == "moved") then

elseif (event.phase == "ended") then

end

return true

end

Page 33: Desenvolvimento de Jogos com Corona SDK

Events

player:addEventListener("touch", onTouch)

Runtime:addEventListener("accelerometer", onTilt)

Runtime:addEventListener( "system", onSystemEvent)

Page 34: Desenvolvimento de Jogos com Corona SDK

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”

Page 35: Desenvolvimento de Jogos com Corona SDK

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 } )

Page 36: Desenvolvimento de Jogos com Corona SDK

Tiled (Editor de nível)

Page 37: Desenvolvimento de Jogos com Corona SDK

Tiled (Implementação com Lime)

lime = require("lime.lime”)

local map = lime.loadMap("mapa.tmx”)

local visual = lime.createVisual(map)

Page 38: Desenvolvimento de Jogos com Corona SDK

TexturePacker (Sprite sheet)

Page 39: Desenvolvimento de Jogos com Corona SDK

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()

Page 40: Desenvolvimento de Jogos com Corona SDK

Fórum, documentação, wiki, tutoriais

http://www.coronalabs.com/

Page 41: Desenvolvimento de Jogos com Corona SDK

Bonus Level

Page 42: Desenvolvimento de Jogos com Corona SDK

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

Page 43: Desenvolvimento de Jogos com Corona SDK

Arte 2D para programadores

http://2dgameartforprogrammers.blogspot.com.br/

Page 44: Desenvolvimento de Jogos com Corona SDK

Concursos

Page 45: Desenvolvimento de Jogos com Corona SDK

Social

Page 46: Desenvolvimento de Jogos com Corona SDK

Publicidade no Jogo

Page 47: Desenvolvimento de Jogos com Corona SDK

Links interessantes

Mecânicas de jogohttp://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 gameficationhttp://www.gamification.co/2013/01/04/top-articles-by-gamification-experts-in-2012/

10 livros sobre games que você precisa lerhttp://arena.ig.com.br/2012-06-28/dez-livros-de-games-que-voce-precisa-ler.html

Page 48: Desenvolvimento de Jogos com Corona SDK

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

Page 49: Desenvolvimento de Jogos com Corona SDK

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

Page 50: Desenvolvimento de Jogos com Corona SDK

Obrigado!

http://gamedeveloper.com.br

[email protected]