Game Development for

Similar documents
Table of Contents. Questions or problems?

TSBK 07! Computer Graphics! Ingemar Ragnemalm, ISY

Michal Valient Lead Tech Guerrilla Games

Dive into Mobile VR/AR Games

Beginning Direct3D Game Programming: 1. The History of Direct3D Graphics

Bringing AAA graphics to mobile platforms. Niklas Smedberg Senior Engine Programmer, Epic Games

Programming Game Engines ITP 485 (4 Units)

Optimizing and Profiling Unity Games for Mobile Platforms. Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June

Principles of Computer Game Design and Implementation. Lecture 3

Building scalable 3D applications. Ville Miettinen Hybrid Graphics

Dynamics in Maya. Gary Monheit Alias Wavefront PHYSICALLY BASED MODELING SH1 SIGGRAPH 97 COURSE NOTES

Post Mortem: GPU Accelerated Effects in Borderlands 2

Godot engine Documentation

BitSquid Tech Benefits of a data-driven renderer. Tobias Persson GDC 2011

Hands-On Workshop: 3D Automotive Graphics on Connected Radios Using Rayleigh and OpenGL ES 2.0

About Phoenix FD PLUGIN FOR 3DS MAX AND MAYA. SIMULATING AND RENDERING BOTH LIQUIDS AND FIRE/SMOKE. USED IN MOVIES, GAMES AND COMMERCIALS.

Unity Software (Shanghai) Co. Ltd.

Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Copyright Khronos Group Page 1

Animation Essentially a question of flipping between many still images, fast enough

Wed, October 12, 2011

Cloth Simulation on the GPU. Cyril Zeller NVIDIA Corporation

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.

12/15/2008. All about Game Maker. Integrated Development Environment for 2D games Global idea

CS GAME PROGRAMMING Question bank

Broken Age's Approach to Scalability. Oliver Franzke Lead Programmer, Double Fine Productions

Vulkan and Animation 3/13/ &height=285&playerId=

Designing the look and feel for Smoke and Neon powers The creation of a new toolset and pipeline for I:SS Pros and cons from our new workflow and

3D Starfields for Unity

Unity Game Development

Developing Technology for Ratchet and Clank Future: Tools of Destruction

PERFORMANCE. Rene Damm Kim Steen Riber COPYRIGHT UNITY TECHNOLOGIES

Resistance: Fall of Man. Insomniac Games

CS248 Lecture 2 I NTRODUCTION TO U NITY. January 11 th, 2017

SIGGRAPH Briefing August 2014

Craig Peeper Software Architect Windows Graphics & Gaming Technologies Microsoft Corporation

Voxels. Tech Team - Johnny Mercado, Michael Matonis, Glen Giffey, John Jackson

Game Programming Lab 25th April 2016 Team 7: Luca Ardüser, Benjamin Bürgisser, Rastislav Starkov

What s New in SpriteKit

Vulkan: Architecture positive How Vulkan maps to PowerVR GPUs Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics.

Adding Advanced Shader Features and Handling Fragmentation

Optimizing Games for ATI s IMAGEON Aaftab Munshi. 3D Architect ATI Research

Black Desert Online. Taking MMO Development to the Next Level. Dongwook Ha Gwanghyeon Go

Mobile Graphics Ecosystem. Tom Olson OpenGL ES working group chair

Copyright Khronos Group Page 1

This allows you to choose convex or mesh colliders for you assets. Convex Collider true = Convex Collider. Convex Collider False = Mesh Collider.

Dominic Filion, Senior Engineer Blizzard Entertainment. Rob McNaughton, Lead Technical Artist Blizzard Entertainment

CS345/DIGM465: Computer Game Development: Understanding Torque

Shaders : the sky is the limit Sébastien Dominé NVIDIA Richard Stenson SCEA

Game Technology. Lecture Physically Based Rendering. Dipl-Inform. Robert Konrad Polona Caserman, M.Sc.

Sidescrolling 2.5D Shooter

What is a Rigid Body?

Accelerating Realism with the (NVIDIA Scene Graph)

Conemarching in VR. Johannes Saam Mariano Merchante FRAMESTORE. Developing a Fractal experience at 90 FPS. / Framestore

2-3. What is Unity? 4-5. Asset Store. Lighting & Rendering Performance. Scripting. Efficient Workflow Mecanim. Pathfinding.

PowerVR Series5. Architecture Guide for Developers

Building a Game with SceneKit

Three OPTIMIZING. Your System for Photoshop. Tuning for Performance

Point based Rendering

IAT 445 Lab 10. Special Topics in Unity. Lanz Singbeil

Working with Metal Overview

Table of Contents 1.1. Introduction Installation Quick Start Documentation Asynchronous Configuration 1.4.

Scalable multi-gpu cloud raytracing with OpenGL

MAXIS-mizing Darkspore*: A Case Study of Graphic Analysis and Optimizations in Maxis Deferred Renderer

Tilengine A 2D graphics engine with raster effects

CGDD 4113 Final Review. Chapter 7: Maya Shading and Texturing

Cinema 4D R20 (SP2) Change List Cinema 4D / BodyPaint 3D Service Release

Real-Time Ray Tracing Using Nvidia Optix Holger Ludvigsen & Anne C. Elster 2010

Contents in Detail. Who Is This Book For?... xix What s in This Book?... xx. part I: Warming Up 1

GAM 223 Game Design Workshop. Project 3D Maze Level Design DUE DATE: / / Design, Modeling & UV unwrapping

RSX Best Practices. Mark Cerny, Cerny Games David Simpson, Naughty Dog Jon Olick, Naughty Dog

Streaming Massive Environments From Zero to 200MPH

Lecture 16. Introduction to Game Development IAP 2007 MIT

The Application Stage. The Game Loop, Resource Management and Renderer Design

MIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens)

D3D12 & Vulkan Done Right. Gareth Thomas Developer Technology Engineer, AMD

DirectX10 Effects. Sarah Tariq

Tips and Tricks to Get the Most out of Your Virtual-Reality Experiences in Stingray

Explicit Multi GPU Programming with DirectX 12. Juha Sjöholm Developer Technology Engineer NVIDIA

CMSC 425: Lecture 2 Computer Game and Graphics System Architectures

Bforartists Reference Manual - Copyright - This page is under Public Domain. Editors

GUERRILLA DEVELOP CONFERENCE JULY 07 BRIGHTON

the gamedesigninitiative at cornell university Lecture 12 Architecture Design

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

MIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens)

CS354R: Game Technology

POWERVR MBX & SGX OpenVG Support and Resources

Advances in Qt 3D. Kévin Ottens, Software Craftsman at KDAB

Name: Jonathan Lindquist Occupation: Technical Artist Company: Epic Games Duties: Author shaders Generate art Write scripts Miscellaneous tasks

PLAYSTATION Edge. Mark Cerny Jon Olick Vince Diesi

3D Computer Games Technology and History. Markus Hadwiger VRVis Research Center

Rasterization Overview

CocoVR - Spherical Multiprojection

Rendering Grass with Instancing in DirectX* 10

Optimisation. CS7GV3 Real-time Rendering

Case Study: Optimizing King of Soldier* with Intel Graphics Performance Analyzers on Intel HD Graphics 4000

Game Programming with. presented by Nathan Baur

Graphics for VEs. Ruth Aylett

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

Qt 3D Basics. Paul Lemire

Graphics for VEs. Ruth Aylett

Transcription:

Game Development for

Who am I? Harry Krueger Senior Programmer at Housemarque Games Lead Programmer on Resogun

Presentation Flow Intro to Housemarque and Resogun Housemarque Engine and Tools Platform-specific (PS4) discussion Game-specific solutions and iteration process Q&A, discarded art and ideas, discussion

Oldest game company in Finland Roots in Finnish demoscene Currently employs 50+ people Focus on combining traditional gaming values and cutting edge tech

Resogun Overview Spiritual successor to Super Stardust HD Modern reimagining of Defender Intense cylindrical Gameplay Voxel destruction mayhem Easy to pick up, hard to master

DEMO

Engine Overview What is a Game Engine? Responsibilities Rendering! Animation Resources Input Math/Physics Scripting Networking Localization Debugging Time travel (eventually )

Housemarque Engine Overview Highly modular design, flexible and portable Rendering is largest part Single-threaded implementation Multiplatform abstraction Balance accessibility and control Fast!

Engine: Tools and Resources Tweakable system Runtime game tweaking Tools and Editors Stated (State machine editor) Menu layout editor Tonemap editor etc. Scripting (Python, Lua) Resource handling, systems config, renderscripts, Project generation, package building, utilities etc. Twister Resource management Debug connection

Twister Builds single resource file Meshes, Animations Particle Effects Textures Scripts Shaders Custom resources Platform-specific optimizations Debug connection

Engine: rendering system Deferred rendering solution Tile-based lighting (compute-shader) Script-based (LUA) renderscript setup Render node pipeline Independent render tasks Interface between engine and game code SUPER fast and flexible Easy and safe to iterate over

What goes into a frame Compute Shader particles Level voxel Physical voxels Entity voxels SSAO Screens-space reflections Water simulation Color grading Distortion Bloom Enemy outlines Vignette FXAA Color splitting Menu overlays

Multiplatform Development Weakest platform becomes the lead Big power gap => more drastic solutions Engine makes platform code invisible Often need platform-specific solutions in game Shader compatibility Asset optimizations

Working with the PS4 Unified memory Compute Shaders Launch game, SDK not final Generally faster, raw power

PS4: Unified Memory 8GB GDDR5 Unified RAM About ~5GB usable by game CPU and GPU => same memory space Sharing data is much faster. Flexibility Generally makes things MUCH easier

PS4: Compute Shaders Ability to run generic code on GPU Works well with small chunks of data (like cubes!) Resogun is very GPU-intensive Most of Voxel tech runs on GPU

Game Logic Entities (enemies, bullets, player) Assets, FX, level flow Menus, game modes Game rules and state Game subsystems GFX engine lowlevel Game framework (fiber system) Collision detection Effect systems Manager classes Scripting Shader parameter contents Object drawing Space partitions Particle engine Update Loop Resource Management Platform Layer OS Wrapper Middleware Lowlevel GFX driver (platform specific), Platform Init Platform API Graphics, Audio, File system, Online services, File IO, Input, Threading etc.

Game systems Fiber system Turbo particles Multiplayer and Determinism Scripting integration and one last thing

Voxels! What is a voxel? Building blocks of Resogun universe Heavy utilization of Compute Shaders 500,000 physical cubes in gameplay Levels are made of millions Not point sprites, actual cube meshes Everything is destructible

Voxel asset generation Maya custom toolchain Voxelized Levels Voxelized Entities ( cubemeshes ) Enemies Player decoration items etc.

Voxelized Level generation Build level with traditional mesh tools Custom tool raytraces structure => generates hollow cube meshes Per-object attributes define materials Indestructible Frame cubes Exported as 3D textures One for level center One for gameplay ring

Voxel level generation process Build assets using traditional tools Voxelized asset! (hollow, surface cubes only) (Custom tool magic)

Base mesh

Generated

Colored

Frames

Voxelized entity generation Similar process to level generation Standard meshes -> custom format Non-uniform cubes Support animations Exported as individual cubes, no hierarchy Traditional keyframes and interpolation Separation into groups and sub-groups Needed for correct connectivity

Base mesh Colored Generated

Voxel System Over 1GB of memory used for Voxels Several voxel types in use: Level Voxels Static voxels for level center Curved voxels for gameplay ring Physical Voxels Enemy Cubes

Static Voxel Geometry Not actually Voxels Generates traditional meshes Polygonized during runtime With each explosion, visible geometry is recalculated Chipped away voxels become dynamic voxels Gameplay ring generates curved geometry

Physical Cubes Compute Shader does all work on GPU Physics Environment collisions Game object collisions (player ship etc.) Geometry generation Not point sprites, actual physical cubes Cubes have Individual lighting Material Cast own shadow

Semi-voxel curiosities Enemy Cubes While cubes are attached to enemies, they are updated by CPU Once detached, simulation is passed to GPU Reuse physics + collisions Unified memory advantage Collectable Green Cubes Separate physics model

DEMO

Fiber system Multithreaded framework for game code Hundreds of small tasks running independently No scheduling Resolve dependencies during runtime Very fast and flexible

Multiplayer and Determinism Deterministic model Same input -> same output Resogun has way too much stuff to sync traditionally Light weight only send input over network Progress when input from both players is available Input lag compensation, buffer input Multiplatform considerations Fiber system complications

Turbo particles Utilise Compute Shaders CPU decides on data from gameplay Passes data to CS CS creates particles and runs simulation Sub-frame simulation Collisions (e.g. beam->enemy) Used for Enemy beams Overdrive Beam Shockwave/bomb Lightning Phase End particle text

Development and Iteration Tweakables Enable runtime tweaking of variables ability to save them during runtime Level script and script integration Give control to designers, independence Used for level flow, weapon system, difficulty, scoring rules Exe and data Each time code changes need new exe for team Coders try to make themselves redundant for designers

Level Editor + Scripts Custom tool for generating attack waves Exports Lua script which are run in game (updated each frame) Can be updated during runtime via Debug Connection

TODO: attach images

Iteration process Play test sessions Trying out things is often faster than discussing them Allow for quick failure and iteration Weekly meetings kept quick and efficient Focused brainstorming sessions Maintain a cohesive vision

Design Define the creative box! Design is about setting constraints, clarifying intention Often less is more Easy to come up with ideas, hard to narrow them down

The path Many perfect paths don t get obsessed chasing the right one Choose one and stick to it Things are always changing New ideas require new features Old ones may prove obsolete Iteration! Final can be temp, temp can be final Have fun, and let the game decide!

VIDEO

Thank you!!