Gaming with JavaFX - jazoon.com · 2 AGENDA > Challenges > Advantages and Opportunities > Pixel art...

Post on 07-Dec-2018

230 views 1 download

Transcript of Gaming with JavaFX - jazoon.com · 2 AGENDA > Challenges > Advantages and Opportunities > Pixel art...

Gaming with JavaFXDeveloping the Next Generation of Casual Games

Silveira Neto, José Maria

Sun Microsystems

9044

2

AGENDA

> Challenges

> Advantages and Opportunities> Pixel art> JavaFX game development

– Opening resources– Sprite composition/animation

– Tile composition– Collision detection– Game Cloud

3

Common game developers challenges

> Loading resources

– Libraries for handling different image formats

– also for video and sound codecs

> Proprietary platforms

– leads to proprietary libraries and expensive engines

– same for tools and plugins

– Independent game developers?

> Network is hard

– More libraries, sockets, protocols

> Finding resources

4

JavaFX advantages and opportunities

> Java advantages

– JVM, libraries, speed, etc.

> One application, multiples screens (Desktop/Mobile/Tv).

> Performance

– Hardware advantages

> JavaFX Language and API

– Easy to program

– Skinnable UI with CSS

– Graphical entities like geometry and animations

– Profiles

> Java Store

5

A few words on art

pixel pixel art

6

Open and display resources made easy

var tree = ImageView { image: Image { url: "{__DIR__}tree.png" }}

7

External resources transparent

var bed = ImageView { image: Image { url: "http://example.com/bed.png" }}

8

Sprite composition

var layers = [ dress, hair, crown, shoes];

9

Avatar Combinations

10

For four directions

11

Sprite animation

Ref.: http://silveiraneto.net/?p=1861

Sprite { img: “princess.png” frames: 4 (...)}

12

Tile Composition

Tilemap { tiles: myTileSet Map: [5,1,12,63 (...)}

13

Putting all togheter

14

Putting all togheter

15

Putting all togheter

16

Putting all togheter

17

Putting all togheter

18

Feel free

> Those arts are free

– Creative Commons Attribution Share-Alike

– http://silveiraneto.net/pixelart

> Use it, put one more pixel.

> Get them in my blog

19

Colision detection (by bouding boxes)

ay

by

ax cx dxbx

dy

cy

return ((ax>dx)|| (bx<cx)|| (ay>dy)|| (by<cy));

or just use the new API...

20

Colision detection

for(obt in obstacles){ if(obt.boundsInLocal.intersects(x, y, w, h)){ return false; }}

21

Demo

> Simple rpg like game

22

Game Cloud

JavaFX App

resources

services> multi player> updates

> chat

> high scores

> graphics

> sounds

> maps

> resources

23

Demo

> High score demo

– JavaFX

– Remote data at Zembly

24

Questions?

José Maria Silveira Neto http://silveiraneto.net

Sun Microsystems me@silveiraneto.net