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

Deep Dive: Amazon Lumberyard & Amazon GameLift

Apr 16, 2017

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Deep Dive: Amazon Lumberyard & Amazon GameLift

Chris Brunning, Solutions Architect, Lumberyard

AWS Summit, London. 7th July 2016

Deep Dive: Lumberyard and GameLift

Page 2: Deep Dive: Amazon Lumberyard & Amazon GameLift

Lumberyard Development Tools

Page 3: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 4: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 5: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 6: Deep Dive: Amazon Lumberyard & Amazon GameLift

Build cloud-enabled content with improved iteration time

Editor

Page 7: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 8: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 9: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 10: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 11: Deep Dive: Amazon Lumberyard & Amazon GameLift

Building the next generation of AAA content

Visuals

Page 12: Deep Dive: Amazon Lumberyard & Amazon GameLift
Page 13: Deep Dive: Amazon Lumberyard & Amazon GameLift
Page 14: Deep Dive: Amazon Lumberyard & Amazon GameLift

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.

Page 15: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 16: Deep Dive: Amazon Lumberyard & Amazon GameLift

Reuse and share code and content modules

Collaboration

Page 17: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 18: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 19: Deep Dive: Amazon Lumberyard & Amazon GameLift

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.

Page 20: Deep Dive: Amazon Lumberyard & Amazon GameLift

Simple to use, professional results

Content Pipeline

Page 21: Deep Dive: Amazon Lumberyard & Amazon GameLift

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.

Page 22: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 23: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 24: Deep Dive: Amazon Lumberyard & Amazon GameLift

IDE support for managing and scripting against AWS cloud resources

Cloud Canvas

Page 25: Deep Dive: Amazon Lumberyard & Amazon GameLift

Building Cloud Connected Games Using

Lumberyard’s Cloud Canvas

Page 26: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 27: Deep Dive: Amazon Lumberyard & Amazon GameLift

What Problems are Game Developers Facing?

Difficult to Iterate on Connected Features

Design

Backlog

Implement

Test

Page 28: Deep Dive: Amazon Lumberyard & Amazon GameLift

Cloud Canvas Core Concepts

Using Cloud Storage

Page 29: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 30: Deep Dive: Amazon Lumberyard & Amazon GameLift

Cloud Canvas Core Concepts

Persistent Player Data in the Cloud

Page 31: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 32: Deep Dive: Amazon Lumberyard & Amazon GameLift

Cloud Canvas Core Concepts

Execute Cloud-Based Logic

Page 33: Deep Dive: Amazon Lumberyard & Amazon GameLift

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.

Page 34: Deep Dive: Amazon Lumberyard & Amazon GameLift

Cloud Canvas Core Concepts

Managing Identity

Page 35: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 36: Deep Dive: Amazon Lumberyard & Amazon GameLift

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.

Page 37: Deep Dive: Amazon Lumberyard & Amazon GameLift

Lumberyard is aggressively multiplatform

Platforms

Page 38: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 39: Deep Dive: Amazon Lumberyard & Amazon GameLift

AAA graphics in a small package

Mobile

Page 40: Deep Dive: Amazon Lumberyard & Amazon GameLift

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.

Page 41: Deep Dive: Amazon Lumberyard & Amazon GameLift

You won’t believe your eyes

VR & AR

Page 42: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 43: Deep Dive: Amazon Lumberyard & Amazon GameLift

Lumberyard integration offerings

Middleware

Page 44: Deep Dive: Amazon Lumberyard & Amazon GameLift

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.

Page 45: Deep Dive: Amazon Lumberyard & Amazon GameLift

An exclusive, streamlined Wwise Authoring Environment

Audiokinetic – Wwise LTX

Page 46: Deep Dive: Amazon Lumberyard & Amazon GameLift

Integration available from Coherent Labs

Coherent – GUI Framework

Page 47: Deep Dive: Amazon Lumberyard & Amazon GameLift

Integration available from Moon Collider Ltd.

Kythera – Advanced AI

Page 48: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

GameLift

Page 49: Deep Dive: Amazon Lumberyard & Amazon GameLift

Scaling multiplayer games is hard

Page 50: Deep Dive: Amazon Lumberyard & Amazon GameLift

Deploy and scale multiplayer games, in minutes

with Amazon GameLift

Page 51: Deep Dive: Amazon Lumberyard & 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$

Page 52: Deep Dive: Amazon Lumberyard & Amazon GameLift

GameLift as a Service

Create an AWS account Upload server binaries Scale up Play

Page 53: Deep Dive: Amazon Lumberyard & Amazon GameLift

GameLift Global Availability

US West (Oregon)

Asia Pac

(Tokyo)

US East (Virginia) EU

(Dublin)

Page 54: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Page 55: Deep Dive: Amazon Lumberyard & Amazon GameLift

Nomenclature: Build

Server binaries, created

by developer

Given to GameLift

Build

Page 56: Deep Dive: Amazon Lumberyard & Amazon GameLift

Nomenclature: Fleet

Deployed state of a single

Build

Players connect

to these

Fleet

1 or many EC2

instances

Page 57: Deep Dive: Amazon Lumberyard & Amazon GameLift

Nomenclature: Builds & Fleets

Game A Game B

EC2 Instance EC2 Instance

Build

Developer PlayersFleet

Page 58: Deep Dive: Amazon Lumberyard & Amazon GameLift

Tying it all Together

Unified web interface Command line tool Language SDK’s

Page 59: Deep Dive: Amazon Lumberyard & Amazon GameLift

Cost Optimization

Reduced (or no) player wait time

Maximize $

Page 60: Deep Dive: Amazon Lumberyard & Amazon GameLift

Typical Weekly Game Demand Curve

Infr

astr

uctu

re $

Time

Page 61: Deep Dive: Amazon Lumberyard & Amazon GameLift

Under Capacity

Infr

astr

uctu

re $

Time

Upfront expenditure

Missed $

Page 62: Deep Dive: Amazon Lumberyard & Amazon GameLift

Over Capacity

Infr

astr

uctu

re $

Time

Upfront expenditure

Wasted $

Page 63: Deep Dive: Amazon Lumberyard & Amazon GameLift

Automatic Scaling

Automatic, rule-based, scaling

Tell GameLift when to:scale up

scale down

Balance between player experience and $

Page 64: Deep Dive: Amazon Lumberyard & Amazon GameLift

GameLift Autoscaling

Infr

astr

uctu

re $

Time

Wasted $

Upfront expenditure

More exacting capacity

Page 65: Deep Dive: Amazon Lumberyard & Amazon GameLift

Launch Day?

Page 66: Deep Dive: Amazon Lumberyard & Amazon GameLift

Launch Day: 1 Step

Scale up

Page 67: Deep Dive: Amazon Lumberyard & Amazon GameLift

Deploying Updates

Transparent to players

No impact to current gameplay

Page 68: Deep Dive: Amazon Lumberyard & Amazon GameLift

Nomenclature: Alias

Alias

Controls player flow to Fleets

Specify which Fleet an Alias “resolves” to

Game clients contact GameLift using Alias uuid

Page 69: Deep Dive: Amazon Lumberyard & Amazon GameLift

Deploying Updates

Developer New Players

Build A Fleet A Alias Client

Page 70: Deep Dive: Amazon Lumberyard & Amazon GameLift

Deploying Updates

New Players

Build A Fleet A Alias Client

Developer

Fleet BBuild B

Page 71: Deep Dive: Amazon Lumberyard & Amazon GameLift

Deploying Updates

New Players

Build A Fleet A Client

Developer

Fleet BBuild B

Alias

Page 72: Deep Dive: Amazon Lumberyard & Amazon GameLift

THANK YOU

Page 73: Deep Dive: Amazon Lumberyard & Amazon GameLift

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

Please remember to rate this

session under My Agenda on

awssummit.london