code once, play everywhere

33
© GameDuell 2013 | Confidential © GameDuell 2015 Code once, Play everywhere! This is a presentation by Carsten Krebs @cw_krebs 1

Upload: carsten-krebs

Post on 25-Jul-2015

259 views

Category:

Technology


0 download

TRANSCRIPT

© GameDuell 2013 | Confidential © GameDuell 2015

Code once, Play everywhere!

This is a presentation by Carsten Krebs @cw_krebs1

© GameDuell 2015 2

Bringing people together to have a good time with games - Wherever, whenever!

© GameDuell 2015 3

Table of contents

1. Importance of cross-platform development

2. Approaches

3. Constraints

4. GameDuell approach

© GameDuell 2015 4

Importance of Cross-Platform Development

© GameDuell 2015 5

Market Reach

•good product

•reach as many users as possible

Objectives

•earn more revenues

•grow your brand

•find your niche

How?

© GameDuell 2015 6

0%

60%

120%

180%

240%

2010 2011 2012 2013 2014

Smartphones

Desktop or laptop computers

Game consoles

Tablets

Device Ownership

© GameDuell 2015 7

Mobile Device Distribution

iOS Android Kindle Windows PhoneSymbian Java ME BlackBerry Other

© GameDuell 2015 8

Social Community

Bringing people together to have a good time with games - Wherever, whenever!

© GameDuell 2015 9

But there are constraints ….

© GameDuell 2015 10

Costs

Photo credit: .jo.hardell. / Foter / CC BY

•Development costs

•Maintenance costs

•Marketing costs

© GameDuell 2015 11

Limited Resources

Photo credit: János Balázs / Foter / CC BY-SA

Developers

Know-HowTime

Photo credit: martinteschner / Foter / CC BY-ND

© GameDuell 2015 12

Cross-Platform Approaches

© GameDuell 2015 13

Native Approach (multiple code bases)

© GameDuell 2015 14

One code base

•Cross-Compilation

•Source-to-Source

•Virtual Machine

© GameDuell 2015 15

Cross-Compilation

C++/C

compile

Native

© GameDuell 2015 16

Virtual or Common Runtime Environment

Source Bytecode

compile

VM

VM

VM

© GameDuell 2015 17

Source-to-Source

Source

C++

Objective-C

ActionScript

transpile

Nativecompile

© GameDuell 2015 18

Source-to-Source

Cross-Compile Common Runtime Environment (VM)

Engines & Frameworks

© GameDuell 2015 19

What else is important?

© GameDuell 2015 20 Photo credit: flickrfavorites / Foter / CC BY

Performance

Native vs Virtual Environment

© GameDuell 2015 21 Photo credit: Josep Ma. Rosell / Foter / CC BY

Tools

•Integrated Development Environment (IDE)

•Debugger

•Memory or Performance Profiler

•Code Analyzer

•Workflow Support

Native / VM vs Source-to-Source

© GameDuell 2015 22

Extendibility

Photo credit: Richard Jones / CC BY

• Integration of

• third party libs

• tools

• external or remote services

• adapt the framework to your needs

© GameDuell 2015 23 Photo credit: Yuri Yu. Samoilov / Foter / CC BY

Control

•Vendor Lock-In

•License-/Royalty- Costs

•Bugfixing vs Workarounds

© GameDuell 2015 24

The GameDuell approach

© GameDuell 2015 25

Requirements

at least good; better native

Photo credit: JefferyTurner / Foter / CC BY

Photo credit: Yuri Yu. Samoilov / Foter / CC BY

Photo credit: flickrfavorites / Foter / CC BY

Photo credit: Richard Jones / CC BY

no vendor lock-in

• extensible • tightly fit to our needs

© GameDuell 2015 26

Source-to-Source

Possible Engines

© GameDuell 2015 27

Approach

•Own Engine

•Own Toolset & Workflow

•Source-to-Source Approach

© GameDuell 2015 28

Haxe

•modern programming language

•source-to-source compiler

•inspired by ActionScript & C#

•object-oriented

•statically typed

© GameDuell 2015 29

Obstacles

•Modularisation

•Vibrant Development

•Documentation

•Performance #triangles at 40 fps

Photo credit: kev-shine / CC BY

© GameDuell 2015 30

Solutions

•improved modularisation

•performance improvements

•tweaked platform specific type implementations

•introduced pluggable platform abstractions

•dependency management

outperformed native Objective-C implementationPhoto credit: Matteo Paciotti / CC BY

© GameDuell 2015 31

Additional BenefitOne code base for client and game server logic

Platform Abstraction Layer

Game Engine

UI Game Logic

Driver DriverDriver

Game Server / Backend

Game Logic

Photo credit: GotCredit / Foter / CC BY

© GameDuell 2013 | Confidential © GameDuell 2015 32www.techtalk-berlin.de

Stay in Touch:[email protected]

© GameDuell 2015 33