Connect your device to application GAME ENGINE ON ANDROID Julian - - PowerPoint PPT Presentation

connect your device to application game engine on android
SMART_READER_LITE
LIVE PREVIEW

Connect your device to application GAME ENGINE ON ANDROID Julian - - PowerPoint PPT Presentation

Connect your device to application GAME ENGINE ON ANDROID Julian Chu Agenda We Love Game Why need Game Engine What is Game Engine How many Game Engine Get one for You Implementation We Love Game Do You Love Playing Game? I DO


slide-1
SLIDE 1

Connect your device to application

slide-2
SLIDE 2

GAME ENGINE ON ANDROID Julian Chu

slide-3
SLIDE 3

Agenda

We Love Game Why need Game Engine What is Game Engine How many Game Engine Get one for You Implementation

slide-4
SLIDE 4

We Love Game

slide-5
SLIDE 5

Do You Love Playing Game? I DO

slide-6
SLIDE 6

Everybody Love Playing Game

My Father plays Solitaire My Sister plays Labyrinth My Colleague plays AngryBird I play Dracula X, Super Mario

III, Final Fantasy III, Tetris, Frozen Bubbles, ZooKeeper, Dragon Ball Z2 Z3, DDR...blah blah

slide-7
SLIDE 7

Why Do We Love a Game

Art

It looks awesome

Story

It is realistic

Social

We may make friends via game

By exchanging information By sharing common experience

Fun

The most important part of a game

slide-8
SLIDE 8

GAME EVERYWHERE

slide-9
SLIDE 9

Playing Game Everywhere

FC MD, SFC SS, PS ....... NOW ?

Long time ago we use GameBoy in toilet. Now we use mobile phone.

slide-10
SLIDE 10

Why need Game Engine

slide-11
SLIDE 11

Create a Game

Everyone has creativity We might want to clone a existing game We have a good idea for game Writing Game is COOL, and We are COOL!!

slide-12
SLIDE 12

Game Engine helps us

Faster Developement Easier Developement

You might don't know OpenGL...

Abstract Layer

You might need to port your game to another platform....

Focus on FUN

If you spend more time on fighting with code, you has less time to think about your game, especially most of us are independent programmer.

slide-13
SLIDE 13

What is Game Engine

slide-14
SLIDE 14

Game Engine might has

Sprite, Scene, Animation Modifier Particle System Event Handling Game Thread Renderer Physics Engine Collision Detection Script Language

slide-15
SLIDE 15

Normal Android application

An Activity contains some Views. We interactive with some activities

slide-16
SLIDE 16

In a Game

An Activity holds one GLSurfaceView. Game Engine switch one of scenes to display

slide-17
SLIDE 17

Sprite

slide-18
SLIDE 18

Collision Detection

slide-19
SLIDE 19

How many Game Engine on Android

slide-20
SLIDE 20

Lots of Game Engines

If you search "android game" at Google Code, you will see lots

  • f game engines.

Some of them are Graphics Engine Age Angle Candroidengine Catcake Cloak Cocos2d Forget3d JMonkeyEngine ReplicaIsland Rokon AndEngine .........more

slide-21
SLIDE 21

Target

There are too many good game engines, I can only choose some of them.

Rokon Cocos2D AndEngine

Important: I believe there should be some great game engine but I missed

slide-22
SLIDE 22

Rokon

Rokon 2.0.3

http://rokonandroid.com/tutorials http://code.google.com/p/rokon/

Useful staffs

Sprite, Modifier, Audio, Sprite Animation, Polygon Collision...blah You can see Particle System at Rokon 1, but nothing about Particle System at Rokon2 yet.

slide-23
SLIDE 23

Rokon

slide-24
SLIDE 24

Rokon

images borrows from Replica Island

slide-25
SLIDE 25

Rokon

Layer accepts GameObject. You can extends GameObject and create your own class then add to Layer

slide-26
SLIDE 26

Rokon (touchable sprite)

TextureAtlas atlas = new TextureAtlas(); Texture textureDoll = new Texture("doll.png"); Sprite mDoll; mDoll = new Sprite(X, Y, Width, Height); mDoll.setTexture(textureDoll); mDoll.setTouchable(); add(0, mDoll); @Override public void onTouchDown(Drawable object, float x, float y, MotionEvent event, int pointerCount, int pointerId) { if (object == mDoll) { android.util.Log.i("Hi", "touch down doll"); } }

slide-27
SLIDE 27

Rokon (Audio)

/* Longer audio file */ RokonMusic.play("audio/music.mp3", true); //true means loop /* Shorter sound effects */ RokonAudio mAudio = new RokonAudio(); SoundFile mSound = mAudio.createSoundFile(sMenuTap); mSound.play();

slide-28
SLIDE 28

Rokon(Animation)

Sprite explosion = new Sprite(x, y, width, height); Texture texture = new Texture("explosion.png", 5, 5) explosion.setTextureTile(texture, 25); // 25 is the lastest one /* tile 1 to tile 25, one frame spends 35ms, repeat once */ explosion.animate(1, 25, 35, 1, false); 1 25

slide-29
SLIDE 29

Rokon(Physical)

http://code.google.com/p/rokon/source/browse /examples/donate_app/src/com/stickycoding /rokondonatefree/DonateScene.java

slide-30
SLIDE 30

Cocos2D

Python Cocos2d → iPhone Cocos2d → Android Cocos2d

http://code.google.com/p/cocos2d-android/

Android cocos2d matches version 0.8 of cocos2d for iPhone

0.9 is still in development

slide-31
SLIDE 31

Cocos2D

slide-32
SLIDE 32

Cocos2D

CocosNode accepts Action Most classes extends CocosNode

Sprite Label Scene Layer ColorLayer Menu MenuItem

Action rotate = RotateBy.action(2, 360); Sprite sprite = Sprite.sprite("ball.png"); sprite.runAction(rotate);

slide-33
SLIDE 33

Cocos2D

  • 1. addChild: every CocosNode may has child CocosNode
  • 2. action: every CocosNode may has Action
slide-34
SLIDE 34

Cocos2D

CocosNode.runAction(action);

slide-35
SLIDE 35

Cocos2D

CocosNode + Action

slide-36
SLIDE 36

Cocos2D(Physical)

slide-37
SLIDE 37

Cocos2D

Some problems

Particle System Example SceneTest Example Transition Example

Particle System

slide-38
SLIDE 38

AndEngine

Fast Development

http://www.andengine.org/

Extension

Box2d Multiplayer MultiTouch ......etc

Amazing examples

http://code.google.com/p/andengineexamples/ You can download the example at Market.

slide-39
SLIDE 39

AndEngine

slide-40
SLIDE 40

AndEngine(Camera)

See Example

TMXTiledMapExample

setChaseShape(IShape);

slide-41
SLIDE 41

AndEngine

slide-42
SLIDE 42

AndEngine

Custom Font Touch and Multi Touch

slide-43
SLIDE 43

AndEngine

slide-44
SLIDE 44

AndEngine

Particle System

slide-45
SLIDE 45

Replica Island

Well designed game Open Source

http://replicaisland.net/ It is very possible to split engine from the game

http://code.google.com/events/io/2009/sessions/WritingReal TimeGamesAndroid.html (it is worth reading)

Mailing list

https://groups.google.com/group/replica-island-coding- community/topics Highly activity!!

slide-46
SLIDE 46

Compare

Rokon2 Cocos2d AndEngine

FPS (one sprite)

52(*1) 60(*2) 58(*3)

FPS (50 physics)

46(*4) 18(*5) 60(*6)

FPS (100 physics)

42 8 36

Physics Engine

box2d box2d box2d

Particle System

No ? Yes

License

BSD BSD LGPL

Examples

?(*7) Yes(*8) Yes(*9)

Lastesd Update

Aug 8 Jun 26 Aug 14(ouch!!)

Game Implement

T etronimo(*10) Drop Block(*11) Snake(*12) AlienStars(*13) Tested on Nexus One, Froyo (FRF91)

slide-47
SLIDE 47

Ref

  • 1. http://rokonandroid.com/tutorials/41-beginner/63-using-sprites
  • 2. http://code.google.com/p/cocos2d-android/source/browse/trunk/src/org/cocos2d/tests/SpritesTest.java
  • 3. http://code.google.com/p/andengineexamples/source/browse/src/org/anddev/andengine/examples/SpriteExample.java
  • 4. http://code.google.com/p/rokon/source/browse/examples/donate_app/src/com/stickycoding/rokondonatefree/DonateScene.java
  • 5. http://code.google.com/p/cocos2d-android/source/browse/trunk/src/org/cocos2d/tests/JBox2DTest.java
  • 6. http://code.google.com/p/andengineexamples/source/browse/src/org/anddev/andengine/examples/PhysicsExample.java
  • 7. http://code.google.com/p/rokon/source/browse/#svn/tags/release/1.1.1/src/com/stickycoding/RokonExamples

These examples were written for Rokon 1.1.1

  • 8. http://code.google.com/p/cocos2d-android/source/browse/trunk/src/org/cocos2d/tests/
  • 9. http://code.google.com/p/andengineexamples/source/browse/
  • 10. http://www.rokonandroid.com/community/rss/index.php?option=com_agora&task=topic&id=150&Itemid=60
  • 11. http://rokonandroid.com/games/67-drop-block
  • 12. http://code.google.com/p/andengineexamples/source/browse/src/org/anddev/andengine/examples/game/snake/
  • 13. http://www.andengine.org/forums/project-development-blogs/galaga-like-game-t291.html
slide-48
SLIDE 48

Game Implementation

信長的噁望 Nobunaga's Puke Implemented in cocos2d-android and Rokon2 From scratch in 3 days http://code.google.com/p/nobunagapuke/

slide-49
SLIDE 49

Q&A

slide-50
SLIDE 50

15 Aug 2010 COSCUP

Sponsored by

http://0xlab.org

License of this slide