Desenvolvimento de Jogos com Corona SDK

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

description

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

Transcript of Desenvolvimento de Jogos com Corona SDK

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]