36

Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset
Page 2: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Arseny “zeuxcg” Kapoulkine

Game Engine and Tools

Page 3: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Enable developers to createamazing 3D experiences

Game Engine Mission

Our Mission

Page 4: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Performance

Immersion

Tools

Controls

Areas of Effort

Our Focus

Page 5: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Part 1: Performance

Performance and Scale

• Run faster• Use less memory• Enable larger, more detailed worlds• Performance is the foundation of everything

Page 6: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Everything takes less memory!2-4x meshes2-5x animations1.6x part rendering data1.1x part physics data2x terrain physics data2x asset caches

Live now

Perf: Memory

Relentless Memory Optimization

Page 7: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Shares memory used by similar partsMinimal cost for clones of meshes/CSG

Fully real-time property updates“Why aren’t my parts updating?”

No reclustering stalls!“Why is resizing a part so slow?”

Live for MeshPart/CSG soon

Perf: Rendering Memory

New Part Rendering System

Page 8: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Fast low-level rendering backendsVulkan: shipping soon on Android 7Metal: live on iOS, soon on Mac

UI rendering optimizations2x faster SurfaceGui rendering1.2x faster 2D UI rendering

Cached UI renderingLayerCollector rendering cacheLater this year

Perf: Rendering Speed

Better Rendering Performance

Page 9: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Perf: Lua Optimizations

Faster Lua VM

Optimized Lua⟷C++ transitions2x faster API calls2x faster property access

Optimized Lua internals1.2x faster garbage collection1.5x faster userdata access

Live now

Page 10: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Part 2: Immersion

Immersive 3D Environments

• Look better• Simulate physics in a stable and realistic manner• Improve networking latency and smoothness

Page 11: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

2006

What Does Immersion Look Like?

Page 12: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

2016

What Does Immersion Look Like?

Page 13: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

2018?

What Does Immersion Look Like?

Page 14: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Live: Particle Lighting

Immersion: 3D Graphics

Page 15: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Live: GUI Lighting

Immersion: 3D Graphics

Page 16: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Live: Trail Effects

Immersion: 3D Graphics

Page 17: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Coming Soon: Mechanism Interpolation

Immersion: Networking

Page 18: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Coming Soon: Smooth Interpolation

Immersion: Networking

Current

New

Page 19: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Immersion: Physics

Focus On Stability

Humanoid Stability“Why did I fall on my face?” (literally)Flinging due to collisionsWe’re fixing all of this!

PGS StabilityMisaligned constraints explodingD-Physics collisions explodingWe’re fixing all of this!

Shipping this year

Page 20: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Part 3: Tools

The Power to Create

• Pushing forward on Roblox Studio

• Game Services

Page 21: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Tools: Solid Modeling

New CSG Engine

100% reliableStill has a triangle limit

FastEventually: real-time

Better triangulationStill working on this

Beta live as an optionPlease report bugs!Settings > Physics > UseCSGv2

Page 22: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Tools: DataStores

Better DataStores

More reliableFixed many internal bugs

Better error messagesYou can actually understand them!

Transparent retries for failuresEasier to write working code

Soon: better toolingThrottle queue in dev consoleDiabolical mode

Page 23: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Tools: Studio

UI Editor

Edit UI in StudioSelect elementsMove and resizeChange text

First version live!

Future improvementsCreate new elementsRotate elementsMove anchor pointLayouts

Page 24: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Tools: Performance

Memory Analyzer

Where did all my memory go?Memory crashes are #1 issue on mobile

Memory breakdown in dev consoleInternal engine metrics per categoryWiki has documentation

Available everywhereClient and StudioServer, for place owners!

Page 25: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Tools: Toolbox Search

Toolbox Search Improved

Find what you wantImproved search relevance

Filter out broken junkAutomatic quality sorting

Live now

More improvements to come

Page 26: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Tools: Studio

Device Emulation

Emulate any devicePhones, tablets, consolesAny resolution/screenPortrait mode

Touch input emulationBasic gestures availableMore to come

Live now

Page 27: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Part 4: Controls

Control Your Game

• More power to the developers

• New features and abilities

Page 28: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Control: Physics & Rendering

Fine Grained Part Controls

Smaller minimum part size0.2 ⟶ 0.05 studs

Color3 support for parts0.2 ⟶ 0.05 studs

Collision groupsCanCollide ⟶ collision masksDisable collision between playersFuture: Studio UI

Page 29: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Control: Mobile

Live: Portrait Mode on Phones & Tablets

Page 30: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Control: Pathfinding

Pathfinding

Dynamic navmesh1 stud accuracyTerrain, parts, CSGsAutomatically updates

Memory efficientBetter paths

Good smoothingIntelligent jumps

Shipping soon

Page 31: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Control: NPC’s

New Dialog System

CustomizableControl appearanceScriptable actionsScriptable conditions

Visual editorOpen-source

Built as a Lua pluginShipping soon

Page 32: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Control: UI

New UI Layouts

Flexible responsive UIAdapts to multiple resolutions

Convey the intentListLayoutTableLayoutGridLayout

Guide the layoutUI Constraints

Live now

Page 33: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Control: Text

The Power of the Written(?) Word

Emoji supportLive

Full Unicode fontShipping soon

Unicode Lua librariesutf8 from Lua 5.3: LiveMore to come

Unicode text layoutBidirectional, ligatures, etc.Shipping this year

Page 34: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Performance

Immersion

Tools

Controls

Areas of Effort

Our Focus

Page 35: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

The Future

Future of Lighting

Currently prototyping: need your help

Zeroing in on final approach

Shipping soon™

https://roblox.github.io/future-is-bright/

Page 36: Game Engine & Tools RDCUK2017 - Roblox BlogEverything takes less memory! 2-4x meshes 2-5x animations 1.6x part rendering data 1.1x part physics data 2x terrain physics data 2x asset

Thank you!