73
Chris Brunning, Solutions Architect, Lumberyard AWS Summit, London. 7 th July 2016 Deep Dive: Lumberyard and GameLift

Deep Dive: Amazon Lumberyard & Amazon GameLift

Embed Size (px)

Citation preview

Chris Brunning, Solutions Architect, Lumberyard

AWS Summit, London. 7th July 2016

Deep Dive: Lumberyard and GameLift

Lumberyard Development Tools

Lumberyard: Origins

Lumberyard is a fusion of technology

• Double Helix Game Engine

• Amazon Web Services

• CryEngine 3.8

• Twitch

• 3+ million lines of code!

We’re making things better

• Developing new, better workflows

• Bringing in proven, high-performance systems

• Adding cloud-connected, community, and commerce features

Lumberyard Stack

• Cloud, Community Commerce

• Game uses services through APIs

exposed by the Engine

• Services used by the Editor, Engine,

and Game

CLOUD

COMMUNITY

COMMERCE

GAME

ENGINE

PC

CO

NS

OLE

MO

BIL

E

EDITOR

VS

2013

MA

X /

MA

YA

PH

OT

OS

HO

P

Lumberyard Stack

• Client

• Editor used by developers to build a

Game on the Engine systems

• Engine technology abstracts

platforms from developers

CLOUD

COMMUNITY

COMMERCE

GAME

ENGINE

PC

CO

NS

OLE

MO

BIL

E

Runtime

EDITOR

VS

2013

MA

X /

MA

YA

PH

OT

OS

HO

P

Development

Build cloud-enabled content with improved iteration time

Editor

Build, visualize, and customize UI elements

• Artist-friendly tools

• Large collection of customizable UI components

• Key-frame animation and tweening system

• Resolution-independent & mobile-optimized

2D & User Interfaces

• Visual scripting and C++ support

• Layout support

• Animate any property

• Localization Support

Game Scripting

The right tool for the job

Native C++• When control and performance are required

• Most familiar debugging and profiling environment

• Look for live reloading in a future version of Lumberyard

1

Lua scripting• A middle ground suited for technical designers and gameplay programmers

• Deployed in many games and game engines for its execution speed, ease of use, and customizability

• Abstracted to support Lua 5.1, 5.2, and 5.3. Lua JIT can be dropped in with little effort

• Build entity components directly in Lua

• Tools for editing and debugging

2

Flow Graph visual scripting• The best choice for rapid prototyping and level design

• Visual, node-based scripting solution

• Foundation for Cloud Canvas, improving iteration time for features with cloud requirements

• Integrated visual debugging

3

4

A Flexible way to Configure and Manage Entities

• Build complex game entities by composing small modules

• Manage their components and their properties visually

• Write new components in C++, Lua, and -in the future, FlowGraph

• Lua and FlowGraph scripting components exist

• Reflection, automatic serialization, and message-passing

• Support for nested prefabs and components!

Component/Entity Framework

Asset Processor & Virtual File System

Improved iteration time across platforms

Asset Processor

• Runs as a background service

• Edit a level immediately as assets stream in

• See your changes to source assets in the Editor immediately with no action required

Virtual File System

• Map assets on a development PC to a game running on target hardware

• Lays the groundwork for hot reloading on all platforms

• Faster iteration on target platform –no more deploy/copy step

• Interface enables data mining and analytics on file access

• Transparent, part of the Asset Processor -no additional setup needed

Building the next generation of AAA content

Visuals

Brighter Whites, Deeper Blacks

• Physically-based rendering workflows are already set up for HDR content

• Display a larger contrast ratio and wider color gamut than ever before

• Deliver a richer and more vibrant experience than last-gen display tech

HDR Display Support

All you need is an HDR display. Download Lumberyard, enable an option in the

tone-mapper, and you’re done! Our tone-mapping step supports Dolby Vision, and

will support HDR10 when the standard is ready.

Particle System Editor

Create and simulate explosions, fire, sparks, and other VFX

• Visual construction of emitters

• Gradient editor

• Spline playback

• Integration with Component system

• Interact with emitters through native code, or scripting

• GPU-accelerated playback with collision support

Reuse and share code and content modules

Collaboration

Get up and Running Faster

Full Source Download & Installer

Lumberyard Launcher

• Lumberyard is a free and comes with full source

• No subscription fees, no royalties, no special “source code license”

• Binaries and source for Editor, Engine, and tools are included in the installer

Get up and Running Faster

Lumberyard Launcher ensures you have the necessary

runtime software and SDKs installed to build and run

Lumberyard. The Lumberyard Launcher detects

missing components and helps you to install those and

other software required for your role on a game team.

• Customize for your project’s dependencies

• Dependencies calculated based on workflow requirements

• No developer attention required to set up new workstations

Project Configurator

• Create and switch between Lumberyard projects

• Specify which Gems (extensions) apply to each project

Share and Reuse Modules

Gems

Lumberyard includes 18 functional components that you can add or

remove easily, such as weather effects, an ambient creature system, a

camera framework, and more. It’s straightforward to build your own

Gems, and middleware providers have already begun to do that for

Lumberyard.

Simple to use, professional results

Content Pipeline

Exporter Workflow

Lumberyard provides new exporter toolsets for Autodesk Maya and Autodesk 3D

Studio Max 2014, 2015, and 2016. These toolsets allow the export of static and

skinned geometry, skeletons, materials, and animation. Number of steps to export

content to Lumberyard have been reduced from 29 to 2.

From Modeling Package to Editor

FBX Importer Workflow

Customers told us that they wanted support for more modeling packages, and we

listened. We’ve added support for importing the industry-neutral FBX format from

directly within Lumberyard. Better yet –external modifications to the source asset

will appear immediately inside of the Editor.

Mannequin

The Mannequin interactive animation tool organizes and sequences animation clips

into logical states (called fragments). Mannequin then executes complex logic to

determine which fragment is context-appropriate and synchronizes the animation

with gameplay systems, FX, and sounds.

Bring your Characters to Life

Geppetto

Lumberyard’s character tool, Geppetto, combines animation, attachments, and

physics simulations along with blendspace and animation layering. You can use

Geppetto to assemble characters, easily swap out meshes on your characters by

using attachments, and create realistic secondary animation with physics

simulations

Trackview

Lumberyard’s Trackview tool enables animators to build non-linear content for

games, movies, and television. Animate camera cuts, camera movement, character

animation and movement, sound effects, and soon: any component property.

Linear Content tools for games, movies, and television

IDE support for managing and scripting against AWS cloud resources

Cloud Canvas

Building Cloud Connected Games Using

Lumberyard’s Cloud Canvas

What are Examples of a “Cloud Connected

Feature”?

Leaderboards & Achievements

Cloud Save

Storing Character Stats & Inventory

Message of the Day & Daily Challenges

Downloadable Content

Newsticker

User-Generated Content (“UGC”)

Server-Authenticated Transactions

What Problems are Game Developers Facing?

Difficult to Iterate on Connected Features

Design

Backlog

Implement

Test

Cloud Canvas Core Concepts

Using Cloud Storage

Cloud Canvas Core Concepts

Amazon Simple Storage Service

(S3)

• Cloud storage location for files.

• Create a folder hierarchy similar to what’s on your local drive.

• Uses a resource called a bucket.2

Cloud Canvas Core Concepts

Persistent Player Data in the Cloud

Cloud Canvas Core Concepts

Amazon DynamoDB

• Database for storing arbitrary data.

• Associate data with a key, like a player ID.

• Uses a resource called a table.

2

Cloud Canvas Core Concepts

Execute Cloud-Based Logic

Cloud Canvas Core Concepts

AWS Lambda

• Execute cloud-based code. Without a server!

• Write code using Python, Node.JS, or Java.

• Uses a resource called a function.

Cloud Canvas Core Concepts

Managing Identity

Cloud Canvas Core Concepts

Amazon Cognito

• Authenticate players, either anonymously or via Login with Amazon,

Facebook or Google.

• Provides unique identifier to track them across sessions, devices.

• Uses a resource called an identity pool.

2

Cloud Canvas Core Concepts

Cloud Canvas acts like the glue between Lumberyard and the Cloud:

• Define and manage your cloud resources.

• Game communicates with resources through Flow Graph & C++.

• Team collaboration and iteration.

• Not a black box service.

Lumberyard is aggressively multiplatform

Platforms

Client – Engine Platforms

PC

• Windows 7 and above

PlayStation 4, Xbox One

• Request access as a verified developer

Android, iOS

• High end device support in preview

Virtual Reality

• Oculus VR & Vive

AAA graphics in a small package

Mobile

Best-in-class Mobile Rendering

• Real-time light and shadow –including self-shadows

• Caustics

• Reflections

• Deferred decals

• Bilinear up-scaling

• Z Pre-pass enabled

• Portal/occlusion system

• Procedural vegetation

Features to build the next Top Grossing Mobile Game

Cloud Canvas

Use Cloud Canvas to visually script common features like user authentication, daily

gifts, leaderboards, inventory, currency, experience, quest progress, gachapon, and

other common mobile game features.

You won’t believe your eyes

VR & AR

VR and Amazon Games

A holistic approach to VR content

Hardware SupportLumberyard supports the latest VR hardware and SDKs –Oculus Rift and HTC Vive as of GDC.1

Editor SupportLumberyard makes it easy to quickly do VR out of the box without modifying the engine. You can build anything from demos to full

AAA VR experiences with the Flow Graph nodes we’ve provided for common VR tasks. We’ll be adding support for 3D content

acquisition and manipulation directly in-editor in a future Lumberyard version.

2

Engine SupportLumberyard systems are being optimized and re-written with high-performance VR front of mind. 3

Content SupportAmazon Games has big plans for VR and 3D content in general. Stay tuned!4

Lumberyard integration offerings

Middleware

Allegorithmic Substance Integration

Editor Support

Import Substance files published from Allegorithmic products like

Substance Designer into Lumberyard. These become procedural

materials inside Lumberyard and can be used on objects and terrains,

and modified using the integrated Substance Editor.

Runtime Support

Substance materials can be controlled via Flow Graph, allowing for

runtime changes to these procedurally generated materials. Make game

worlds visually dynamic with minimal runtime requirements. Allowing you

to do more with less.

An exclusive, streamlined Wwise Authoring Environment

Audiokinetic – Wwise LTX

Integration available from Coherent Labs

Coherent – GUI Framework

Integration available from Moon Collider Ltd.

Kythera – Advanced AI

Managed deployment, operating, and scaling of session-based games

GameLift

Scaling multiplayer games is hard

Deploy and scale multiplayer games, in minutes

with Amazon GameLift

Build It Yourself

Hire 4+ expert engineers

Give them thousands of hours to:

Design & architect

Build a prototype

Build (again) for production

Build a UI dashboard

Launch

Provide 24/7 post-launch coverage

$Debug and fix nasty scaling issues Optimize for cost$

GameLift as a Service

Create an AWS account Upload server binaries Scale up Play

GameLift Global Availability

US West (Oregon)

Asia Pac

(Tokyo)

US East (Virginia) EU

(Dublin)

Game A

Player slot 1

Player slot 2

Player slot 3

Player slot 4

Active

Active

Game B

Player slot 1

Player slot 2

Player slot 3

Player slot 4

Active

Active

Active

Active

Game C

Player slot 1

Player slot 2

Player slot 3

Player slot 4

Reserved

Game A Game B Game C

EC2 Instance EC2 Instance EC2 Instance

Build

Developer Players

Session Management

Infrastructure Management

Nomenclature: Build

Server binaries, created

by developer

Given to GameLift

Build

Nomenclature: Fleet

Deployed state of a single

Build

Players connect

to these

Fleet

1 or many EC2

instances

Nomenclature: Builds & Fleets

Game A Game B

EC2 Instance EC2 Instance

Build

Developer PlayersFleet

Tying it all Together

Unified web interface Command line tool Language SDK’s

Cost Optimization

Reduced (or no) player wait time

Maximize $

Typical Weekly Game Demand Curve

Infr

astr

uctu

re $

Time

Under Capacity

Infr

astr

uctu

re $

Time

Upfront expenditure

Missed $

Over Capacity

Infr

astr

uctu

re $

Time

Upfront expenditure

Wasted $

Automatic Scaling

Automatic, rule-based, scaling

Tell GameLift when to:scale up

scale down

Balance between player experience and $

GameLift Autoscaling

Infr

astr

uctu

re $

Time

Wasted $

Upfront expenditure

More exacting capacity

Launch Day?

Launch Day: 1 Step

Scale up

Deploying Updates

Transparent to players

No impact to current gameplay

Nomenclature: Alias

Alias

Controls player flow to Fleets

Specify which Fleet an Alias “resolves” to

Game clients contact GameLift using Alias uuid

Deploying Updates

Developer New Players

Build A Fleet A Alias Client

Deploying Updates

New Players

Build A Fleet A Alias Client

Developer

Fleet BBuild B

Deploying Updates

New Players

Build A Fleet A Client

Developer

Fleet BBuild B

Alias

THANK YOU

75© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Please remember to rate this

session under My Agenda on

awssummit.london