introduction to android (and mobile) game development

23
Introduction to [email protected]

Upload: ruslan-novikov

Post on 15-May-2015

767 views

Category:

Software


7 download

DESCRIPTION

1-st lecture in my new course about mobile game development

TRANSCRIPT

Page 1: Introduction to android (and mobile) game development

Introduction to

[email protected]

Page 2: Introduction to android (and mobile) game development

07: first PC 14: first Pascal game 25: developed 2D game engine 26: J2ME developer

28: Android developer

Page 3: Introduction to android (and mobile) game development
Page 4: Introduction to android (and mobile) game development

MediaPlayer Good only for background music

SoundPool OK for sound effects, no sound processing provided though

AudioTrack / AudioRecord Sound processing can be made, works on PCM data OpenMAX|AL API accessible from NDK

OpenSL Enable low level audio tweaking, accessible only from NDK

Challenge You really need to know your way around all these API to

provide great sound in your game

Page 5: Introduction to android (and mobile) game development

Framework already gives you: Rich widget toolkit Simple () event processing Powerful animation framework Reuse familiar technology

SurfaceView + Canvas: Fast drawing Rich API:

▪ Geometric Primitives ▪ Transformations ▪ Xfer Modes + Shaders

Page 6: Introduction to android (and mobile) game development

3D pipeline Allows 2D graphics too

Fastest possible solution Usually HW accelerated

The most rich visual effects Having fully programmable shaders is limited only by your

imagination Cross platform

When writing in C++ the code can be ported On Android

Every device supports OpenGL|ES 2 Full OpenGL|ES 2 JNI bindings since 2.3

Much more complex API and development that Canvas

Page 7: Introduction to android (and mobile) game development

Faster prototyping / development

No need to re-compile

Easier for non-programmers to use

Designers can script AI, conversation flows e.t.c

Separate game logic from the engine Lua is widely popular in the field Scripting Layer for Android (SL4A)

Python, Perl, Ruby, Lua

BeanShell, JavaScript, Tcl

Page 8: Introduction to android (and mobile) game development

Basic physics is simple Everyone can do classical mechanics

Collision Detection is hard Due to rounding errors of decimal numbers

Box2D – standard for 2D physics Cross-platform (C++) Rigid-body simulation Convex polygons, circles, edges Joints, forces Friction, restitution Has JNI bindings

Page 9: Introduction to android (and mobile) game development

Input devices Touch screen + sensor controls perfect for certain new genres,

but not for classic arcade experience Battery

Can be as low as 3hrs of playing Memory

Xbox One (8 GB of RAM) vs. Nexus 5 (2 GB of RAM) Much lower throughput

GPU No dedicated texture memory, usually much slower

performance due to lower memory throughput Limited Storage capacity and APK sizes

Just couple of GB of storage and 50MB APK limit (4GB with expansion files)

Page 10: Introduction to android (and mobile) game development
Page 11: Introduction to android (and mobile) game development

Graphics Physics Engine Particle Systems Sound Scripting Animation Artificial Intelligence Networking Platform Abstraction

Page 12: Introduction to android (and mobile) game development

Cross-Platform Windows, Linux, Mac, Android, BlackBerry, iOS, Java Applet,

Javascript/WebGL OpenGL ES 2.0 powered graphics High-level 2D APIs

Orthographic camera, sprite batching, texture atlases, bitmap fonts 2D Particle system 2D UI library High-Level 3D APIs

Page 13: Introduction to android (and mobile) game development

Input Handling Abstractions for mouse and touch-screen, keyboard,

accelerometer and compass Physics

JNI wrapper for Box2D, JNI Wrapper for bullet physics Lots of helper libraries

File & I/O handling Open source, and totally free!!!

Page 14: Introduction to android (and mobile) game development

Corona client and simulator is available for Mac OSX or Windows

Corona SDK Starter is completely free Corona client requires an Internet connection to build

because part of the build process happens on Corona Labs servers

Due to Apple restrictions you can only build an iOS app on a Mac

Page 15: Introduction to android (and mobile) game development
Page 16: Introduction to android (and mobile) game development
Page 17: Introduction to android (and mobile) game development

OpenGL powered 2D graphics Wrapped OpenAL audio API Box2D powered physics Particle effects Lua scripting Lots of plug-ins for monetization, ads e.t.c Not entirely free!

Page 18: Introduction to android (and mobile) game development

Crossplatform 3D and 2D engine You can choose 3D vs 2D development mode

Rendering Direct3D on windows OpenGL on all the rest

Scripting C#, JavaScript or Boo (?) Shipped with MonoDevelop

Physics Proprietary 3D physic engine Box2D for… 2D games

Powerful animation framework Mecanim IK animation

… tons of other features go to: http://unity3d.com/

Page 19: Introduction to android (and mobile) game development
Page 20: Introduction to android (and mobile) game development

Imports all the major 3D formats Automatic sprite splicing Fast asset search and management

Page 22: Introduction to android (and mobile) game development
Page 23: Introduction to android (and mobile) game development

Did not find any good on mobile game development, but there are lots of them…

Thank You