This document discusses optimizing Lightweight Framework (LWF) animations for the mobile game "Animal Days". It recommends packing all textures into a single texture atlas to reduce draw calls. Profiling tools like Unity Profiler and Xcode Instruments can identify bottlenecks like rendering performance. Custom scripts can also profile frames per second and memory usage within a game.
In this presentation we will provide in-depth knowledge about the Unity runtime. The first part will focus on memory and how to deal with fragmentation and garbage collection. The second part on performance profiling and optimizations. Finally, there will be an overview of debugging and profiling improvements in the newly announced Unity 5.0.
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesGuerrilla
This talk describes the tool improvements Guerrilla Games implemented to make Killzone Shadow Fall shine on the PlayStation 4. It highlights additions to the Maya pipeline, such as Viewport 2.0, Maya's coupling with in-game updates and in-engine deferred renderer features including real-time shadow-casting, volumetric lighting, hardware instancing, lens flares and color grading.
Unity - Internals: memory and performanceCodemotion
by Marco Trivellato - In this presentation we will provide in-depth knowledge about the Unity runtime. The first part will focus on memory and how to deal with fragmentation and garbage collection. The second part will cover implementation details and their memory vs cycles tradeoffs in both Unity4 and the upcoming Unity5.
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time RaytracingElectronic Arts / DICE
Real-time raytracing holds the promise of simplifying rendering pipelines, eliminating artist-intensive workflows, and ultimately delivering photorealistic images. This talk by Tomasz Stachowiak provides a glimpse of the future through the lens of SEED's PICA PICA demo: a game made for artificial intelligence agents, with procedural level assembly, and no precomputation. We dive into technical details of several advanced rendering algorithms, and discuss how Microsoft's DirectX Raytracing technology allows for their intuitive implementation. Several challenges remain -- we will take a look at some of them, discuss how real-time raytracing fits in the spectrum of solutions, and start to plot the course towards robust and artist-friendly image synthesis.
Use a game engine to create a video game. Its reusable components provide the general functionality. Define resources and building blocks.
What are the key elements of a game engine?
Presentation at KGC2012 about the Architecture and Optimization techniques used to make the Relic FX System as used in the Company of Heroes and Dawn Of War Series, and many other Relic Games.
In this presentation we will provide in-depth knowledge about the Unity runtime. The first part will focus on memory and how to deal with fragmentation and garbage collection. The second part on performance profiling and optimizations. Finally, there will be an overview of debugging and profiling improvements in the newly announced Unity 5.0.
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesGuerrilla
This talk describes the tool improvements Guerrilla Games implemented to make Killzone Shadow Fall shine on the PlayStation 4. It highlights additions to the Maya pipeline, such as Viewport 2.0, Maya's coupling with in-game updates and in-engine deferred renderer features including real-time shadow-casting, volumetric lighting, hardware instancing, lens flares and color grading.
Unity - Internals: memory and performanceCodemotion
by Marco Trivellato - In this presentation we will provide in-depth knowledge about the Unity runtime. The first part will focus on memory and how to deal with fragmentation and garbage collection. The second part will cover implementation details and their memory vs cycles tradeoffs in both Unity4 and the upcoming Unity5.
CEDEC 2018 - Towards Effortless Photorealism Through Real-Time RaytracingElectronic Arts / DICE
Real-time raytracing holds the promise of simplifying rendering pipelines, eliminating artist-intensive workflows, and ultimately delivering photorealistic images. This talk by Tomasz Stachowiak provides a glimpse of the future through the lens of SEED's PICA PICA demo: a game made for artificial intelligence agents, with procedural level assembly, and no precomputation. We dive into technical details of several advanced rendering algorithms, and discuss how Microsoft's DirectX Raytracing technology allows for their intuitive implementation. Several challenges remain -- we will take a look at some of them, discuss how real-time raytracing fits in the spectrum of solutions, and start to plot the course towards robust and artist-friendly image synthesis.
Use a game engine to create a video game. Its reusable components provide the general functionality. Define resources and building blocks.
What are the key elements of a game engine?
Presentation at KGC2012 about the Architecture and Optimization techniques used to make the Relic FX System as used in the Company of Heroes and Dawn Of War Series, and many other Relic Games.
Optimization in Unity: simple tips for developing with "no surprises" / Anton...DevGAMM Conference
Every developer once faces the optimization of their project, but sometimes it happens quite spontaneously and at the wrong time. Developers, especially beginners, often ignore very simple and cheap techniques, which allow to make the optimization process more calm and predictable. This work is devoted to the things you should pay attention in developing to avoid inconvenience in future.
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...Electronic Arts / DICE
Global illumination (GI) has been an ongoing quest in games. The perpetual tug-of-war between visual quality and performance often forces developers to take the latest and greatest from academia and tailor it to push the boundaries of what has been realized in a game product. Many elements need to align for success, including image quality, performance, scalability, interactivity, ease of use, as well as game-specific and production challenges.
First we will paint a picture of the current state of global illumination in games, addressing how the state of the union compares to the latest and greatest research. We will then explore various GI challenges that game teams face from the art, engineering, pipelines and production perspective. The games industry lacks an ideal solution, so the goal here is to raise awareness by being transparent about the real problems in the field. Finally, we will talk about the future. This will be a call to arms, with the objective of uniting game developers and researchers on the same quest to evolve global illumination in games from being mostly static, or sometimes perceptually real-time, to fully real-time.
This presentation was given at SIGGRAPH 2017 by Colin Barré-Brisebois (EA SEED) as part of the Open Problems in Real-Time Rendering course.
BSidesDelhi 2018: Headshot - Game Hacking on macOSBSides Delhi
Presenter: Jai Verma
Abstract: Game hacking is a major contributor to the hacking economy. People shell out a lot of money for hacks which help them cheat at multiplayer games. These hacks can range from enhancing in-game abilities for gaining an upper hand in the game, to bypassing in-app purchases. With the advent of anti-cheat such as VAC (Valve Anti Cheat), the techniques employed by hackers to cheat at games have become increasingly refined. These techniques are comparable to those utilised in sophisticated malware and rootkits. These techniques include runtime process injection, function interposition, and proxying network traffic to name a few. To avoid detection, hackers even resort to custom kernel drivers to interact with the game process. This talk will detail a few of the techniques utilised by game hackers and malware developers alike, through the hacking of an open-source game. I will showcase some hacks for an open-source FPS game by describing the method in detail for the macOS platform. While the demo will be macOS specific, the approach applies to all modern operating systems.
Talk by Fabien Christin from DICE at GDC 2016.
Designing a big city that players can explore by day and by night while improving on the unique visual from the first Mirror's Edge game isn't an easy task.
In this talk, the tools and technology used to render Mirror's Edge: Catalyst will be discussed. From the physical sky to the reflection tech, the speakers will show how they tamed the new Frostbite 3 PBR engine to deliver realistic images with stylized visuals.
They will talk about the artistic and technical challenges they faced and how they tried to overcome them, from the simple light settings and Enlighten workflow to character shading and color grading.
Takeaway
Attendees will get an insight of technical and artistic techniques used to create a dynamic time of day system with updating radiosity and reflections.
Intended Audience
This session is targeted to game artists, technical artists and graphics programmers who want to know more about Mirror's Edge: Catalyst rendering technology, lighting tools and shading tricks.
For this year's keynote at High Performance Graphics 2018, Colin Barré-Brisebois from SEED discussed the state of the art in real-time game ray tracing. He explored some of the connections between offline and real-time game ray tracing, and presented some of the open problems. Colin exposed a few potential solutions to those problems, and also proposed a call-to-arms on topics where the ray tracing research community and the games industry should unite in order to solve such open problems.
This is a short presentation Jon gave for the first Ottawa Unity User Group meetup. We share some of the tips and tricks we've discovered at Karman while working with Unity over the past few years.
Leszek Szczepański, Gameplay programmer, Guerrilla Games
Horizon Zero Dawn was a long, almost 7-year project. But it had to start somewhere. This session will discuss the road Guerrilla Games has traveled during the prototyping stage of Horizon Zero Dawn.
Henrik Halén (Lead Rendering Programmer) at Electronic Arts presented "Style and Gameplay in the Mirror's Edge" at SIGGRAPH 2010's Stylized Rendering in Games. https://www.cs.williams.edu/~morgan/SRG10/
This expert session dives deep into customization, experimentation, and complex use-cases that leverage Unity's cinematic and post-processing tools for games and film. Brand new features will also be covered, such as the Impulse Camera-Shake system, the Event module, and ClearShot improvements. Note for attendees: strong grasp of C# and/or familiarity with Timeline and Cinemachine recommended.
Adam Myhill
Ciro Continisio (Unity Technologies)
Korean Translation of GDC10's Blizzard Session: MAKING A STANDARD (AND TRYING TO STICK TO IT!): BLIZZARD DESIGN PHILOSOPHIES, not yet ready to provide downloads.
Optimization in Unity: simple tips for developing with "no surprises" / Anton...DevGAMM Conference
Every developer once faces the optimization of their project, but sometimes it happens quite spontaneously and at the wrong time. Developers, especially beginners, often ignore very simple and cheap techniques, which allow to make the optimization process more calm and predictable. This work is devoted to the things you should pay attention in developing to avoid inconvenience in future.
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...Electronic Arts / DICE
Global illumination (GI) has been an ongoing quest in games. The perpetual tug-of-war between visual quality and performance often forces developers to take the latest and greatest from academia and tailor it to push the boundaries of what has been realized in a game product. Many elements need to align for success, including image quality, performance, scalability, interactivity, ease of use, as well as game-specific and production challenges.
First we will paint a picture of the current state of global illumination in games, addressing how the state of the union compares to the latest and greatest research. We will then explore various GI challenges that game teams face from the art, engineering, pipelines and production perspective. The games industry lacks an ideal solution, so the goal here is to raise awareness by being transparent about the real problems in the field. Finally, we will talk about the future. This will be a call to arms, with the objective of uniting game developers and researchers on the same quest to evolve global illumination in games from being mostly static, or sometimes perceptually real-time, to fully real-time.
This presentation was given at SIGGRAPH 2017 by Colin Barré-Brisebois (EA SEED) as part of the Open Problems in Real-Time Rendering course.
BSidesDelhi 2018: Headshot - Game Hacking on macOSBSides Delhi
Presenter: Jai Verma
Abstract: Game hacking is a major contributor to the hacking economy. People shell out a lot of money for hacks which help them cheat at multiplayer games. These hacks can range from enhancing in-game abilities for gaining an upper hand in the game, to bypassing in-app purchases. With the advent of anti-cheat such as VAC (Valve Anti Cheat), the techniques employed by hackers to cheat at games have become increasingly refined. These techniques are comparable to those utilised in sophisticated malware and rootkits. These techniques include runtime process injection, function interposition, and proxying network traffic to name a few. To avoid detection, hackers even resort to custom kernel drivers to interact with the game process. This talk will detail a few of the techniques utilised by game hackers and malware developers alike, through the hacking of an open-source game. I will showcase some hacks for an open-source FPS game by describing the method in detail for the macOS platform. While the demo will be macOS specific, the approach applies to all modern operating systems.
Talk by Fabien Christin from DICE at GDC 2016.
Designing a big city that players can explore by day and by night while improving on the unique visual from the first Mirror's Edge game isn't an easy task.
In this talk, the tools and technology used to render Mirror's Edge: Catalyst will be discussed. From the physical sky to the reflection tech, the speakers will show how they tamed the new Frostbite 3 PBR engine to deliver realistic images with stylized visuals.
They will talk about the artistic and technical challenges they faced and how they tried to overcome them, from the simple light settings and Enlighten workflow to character shading and color grading.
Takeaway
Attendees will get an insight of technical and artistic techniques used to create a dynamic time of day system with updating radiosity and reflections.
Intended Audience
This session is targeted to game artists, technical artists and graphics programmers who want to know more about Mirror's Edge: Catalyst rendering technology, lighting tools and shading tricks.
For this year's keynote at High Performance Graphics 2018, Colin Barré-Brisebois from SEED discussed the state of the art in real-time game ray tracing. He explored some of the connections between offline and real-time game ray tracing, and presented some of the open problems. Colin exposed a few potential solutions to those problems, and also proposed a call-to-arms on topics where the ray tracing research community and the games industry should unite in order to solve such open problems.
This is a short presentation Jon gave for the first Ottawa Unity User Group meetup. We share some of the tips and tricks we've discovered at Karman while working with Unity over the past few years.
Leszek Szczepański, Gameplay programmer, Guerrilla Games
Horizon Zero Dawn was a long, almost 7-year project. But it had to start somewhere. This session will discuss the road Guerrilla Games has traveled during the prototyping stage of Horizon Zero Dawn.
Henrik Halén (Lead Rendering Programmer) at Electronic Arts presented "Style and Gameplay in the Mirror's Edge" at SIGGRAPH 2010's Stylized Rendering in Games. https://www.cs.williams.edu/~morgan/SRG10/
This expert session dives deep into customization, experimentation, and complex use-cases that leverage Unity's cinematic and post-processing tools for games and film. Brand new features will also be covered, such as the Impulse Camera-Shake system, the Event module, and ClearShot improvements. Note for attendees: strong grasp of C# and/or familiarity with Timeline and Cinemachine recommended.
Adam Myhill
Ciro Continisio (Unity Technologies)
Korean Translation of GDC10's Blizzard Session: MAKING A STANDARD (AND TRYING TO STICK TO IT!): BLIZZARD DESIGN PHILOSOPHIES, not yet ready to provide downloads.
How can we use Adobe Flash Stage 3D to make a multiplayer game on multiple devices using the same codebase?
This session will detail the challenges encountered when attempting to maintain high performance specifications on mobile devices and the guidelines used to succeed.
We will talk about the required production pipeline, provide performance tips and techniques, provide guidelines for deploying and debugging on iOS and Android and give an overview of the process, from start to finish
Castle Game Engine and the joy of making and using a custom game engineMichalis Kamburelis
Presentation about Castle Game Engine ( https://castle-engine.io/ ) at GIC 2022 conference. We briefly show Castle Game Engine features then talk about important reasons and things you should take into account if you want to be as crazy as me -- and develop your custom engine :)
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/XCerdb.
Rob Shilston discusses the need for coding responsively, not just designing responsively, along with the development process in place at Financial Times. Filmed at qconsf.com.
Rob Shilston is a director of the FT's Labs division, which works on experimental web technologies and produces products such as the FT web app. He is currently responsible for the technical delivery of the FT web app and its hosting infrastructure. Prior to FT Labs, Rob founded the web consulting firm Assanka, which was acquired by the FT in January 2012.
PHP Backends for Real-Time User Interaction using Apache Storm.DECK36
Engaging users in real-time is the topic of our times. Whether it’s a game, a shop, or a content-network, the aim remains the same: providing a personalized experience. In this workshop we will look under the hood of Apache Storm and lay a firm foundation on how to use it with PHP. By that, you can leverage your existing codebase and PHP expertise for an entirely new world: real-time analytics and business logic working on message streams. During the course of the workshop, we will introduce Apache Storm and take a look at all of its components. We will then skyrocket the applicability of Storm by showing you how to implement their components with PHP. All exercises will be conducted using an example project, the infamous and most exhilarating lolcat kitten game ever conceived: Plan 9 From Outer Kitten. In order to follow the hands-on excercises, you will need a development VM prepared by us with all relevant system components and our project repositories. To make the workshop experience as smooth as possible for all participants, please bring a prepared computer to the workshop, as there will be no time to deal with installation and setup issues. Please download all prerequisites and install them as described: VM, Plan 9 webapp, Plan 9 storm backend, (Tutorial: https://github.com/DECK36/plan9_workshop_tutorial ).
Presentation held at GRNET Digital Technology Symposium on November 5-6, 2018 at the Stavros Niarchos Foundation Cultural Center, Athens, Greece.
• Introduction to Ceph and its internals
• Presentation of GRNET's Ceph deployments (technical specs, operations)
• Usecases: ESA Copernicus, ~okeanos, ViMa
Boulder JS Meetup presentation for beginner track
Meetup was cancelled, but I would like to make this available to any who want to see it anyway.
The links to everything in the presentation and more reside at
https://github.com/m-schrepel/BoulderJS_Presentation_links/blob/master/Links.rtf
1. LWF
in
real
life:
「どうぶつフレンズ」の開発事例
David
Gavilan
david.gavilan@gree.net
GREE
2. Agenda
• About
“Animal
Days”
• About
LWF
• Texture
packing
• Common
boFlenecks
• Profiling
your
game
• InvesJgaJng
leaks
• OpJmizaJons
3.
4. Animal
Days
/
どうぶつフレンズ
• 2D
Game
• Current
plaOorm:
Android
2.2
and
up
• Categories:
City
building
&
breeding
simulaJon
• Main
tech
on
the
client
– Unity
3.5.7,
4.0
latest
(4.1
for
Profiling)
– LWF
– Webview
• Tools:
TexturePacker,
Xcode,
ADB
10. LWF
data
creaJon
• .fla/.swf
→
.lwf
– 1-‐step
script-‐based
conversion
→
can
be
easily
batched
– Can
customize
the
texture
and
data
loaders,
– Can
dynamically
change
the
Z-‐posiJon
of
the
movie
clips,
– …
and
more!
11. LWF
renderers
• DrawMeshRenderer
– For
a
given
frame,
•
N
movie
clips
=
N
meshes
=
N
draw
calls
– Slow,
but
there's
no
problem
with
Z-‐sorJng
– Separate
textures
for
each
clip
→
DrawMeshRenderer
• CombinedMeshRenderer
– For
a
given
frame,
• N
movie
clips
=
1
mesh
=
1
draw
call
– Faster,
but
Z-‐sorJng
works
per-‐object
– You
need
to
pack
all
your
texture
in
a
single
texture
atlas/sheet
13. Texture
packing
• Remember
this:
PACK
EVERYTHING
• We
use
TexturePacker:
hFp://www.codeandweb.com/texturepacker
14. Texture
sheets
♡
LWF
• Enables
CombinedMeshRenderer
– only
1
Draw
Call
per
LWF
object
(worst
case)
– if
the
objects
share
the
same
material,
they
can
also
be
dynamically
batched
(N
objects
in
1
Draw
Call)
16. Texture
sheets
♡
LWF
• If
you
have
problems
with
Z-‐sorJng
(need
to
place
parts
of
the
same
UI
before
and
behind
another
object),
you
can
always
easily
switch
back
to
DrawMeshRenderer
17. Texture
sheets
♡
Versioning
• Can
compare
the
changes
in
the
JSON
file
• With
one
glimpse
you
can
check
the
changes
in
one
asset
over
github
19. Texture
sheets
♡
ProducJon
• Awesome
for
controlling
your
texture
budget!
– For
rendering
and
for
bundling!
• Try
to
answer
these
quesJons:
– How
many
objects
can
we
render?
– How
much
space
is
taken
by
UI
elements?
– How
long
does
it
take
to
download
all
the
assets?
20. Texture
sheets
♡
ProducJon
• Once
you
decide
your
budget,
make
scripts
to
automaJcally
popup
warnings/errors:
21. Texture
sheets
♡
ProducJon
• Pack
all
your
texture
sheets
in
a
single
texture
for
visualizaJon
– Easily
detect
assets
using
too
much
space
– Good
to
check
the
amount
of
"empty
space"
– Good
to
explain
to
directors
and
arJsts
the
goods
and
wrongs
27. Common
boFlenecks
• Rendering
– For
a
2D
game,
fill-‐rate
is
probably
the
most
common
rendering
boFleneck
– Reduce
number
of
draw
calls
– Reduce
render
area
• Object
updates
– Update
only
when
necessary
• Network
access
– Reduce
data
size
→
smaller
textures
28. Profiling
your
game
• Pick
up
a
slow
device
– Even
if
you
target
a
high-‐spec
device,
in
slow
devices
the
boFlenecks
are
easier
to
spot
– Eg.
We
target
~Samsung
Galaxy
S2,
but
I
use
Sharp
IS03
for
profiling
32. Profiling:
Game
window
• Prepare
debugging
scripts
so
you
can
easily
debug
in
the
device,
even
without
Unity
Profiler
– Use
Time.deltaTime
to
create
a
simple
FPS
counter
– Create
a
custom
memory
profiler;
– it
doesn’t
need
to
be
fancy:
just
count
objects
36. Create
test
scenes
• Test
scenes
are
good
to
esJmate
the
maximum
amount
of
data/assets
we
can
handle/display
in
different
devices
• They
are
good
for
invesJgaJng
leaks
too
39. InvesJgaJng
leaks
with
adb
• adb
gives
you
important
informaJon!
(and
is
scriptable)
• Check
Pss
(ProporJonal
set
size:
the
amount
of
pages
a
process
has
in
memory)
• If
Pss
is
too
big,
the
OS
will
kill
your
app
→
check
for
low
memory
warnings
• Eg.
on
IS03,
~260MB
will
get
your
app
terminated
42. Replace
all
textures
• To
compute
texture
impact,
replace
all
textures
by
very
small
ones
(8×8)
43. Count
references
• For
non-‐Unity.Objects,
add
simple
counters
for
your
debugging
scripts
• If
the
destructor
is
never
called,
it
means
it
never
gets
GC'ed
!!
44. Nullify
everything
• Object
references
can
be
kept
in
memory
for
obscure
reasons
(mono?).
Eg.
using
the
argument
of
a
lambda
funcJon
inside
another
lambda
funcJon
• As
a
general
pracJce,
set
to
null
the
references
you
don't
need
anymore,
even
local
variables
and
pointers
to
callback
funcJons
48. OpJmizaJon:
Object
updates
• Don't
update
objects
outside
camera
view
• Limit
the
number
of
objects
that
can
be
updated/
animated
– Eg.
From
all
the
visible
characters,
the
LWF
update
is
called
for
N
at
most
– Change
N
depending
on
the
device
capabiliJes.
Eg.
Nhigh_spec
=
25;
Nlow_spec
=
12
• Be
polite
and
save
baFery
– Only
use
60fps
when
interacJng
(touching
screen)
49. Rendering:
limit
max
drawable
objects
• Check
FPS
on
the
device,
and
take
note
of
the
slow
scenes
• On
the
Editor,
check
the
number
of
draw
calls
for
those
scenes.
• Eg.
for
low-‐spec
devices,
set
a
more
restricJve
zoom-‐out
level
50. Rendering:
check
fill-‐rate
• If
Camera.Render
is
slow
even
for
simple
scenes,
reduce
the
resoluJon
of
the
backbuffer
(to
a
respectable
DPI)
51. Reduce
draw
calls
by
using
Z-‐layers
• If
possible,
place
all
the
LWF
that
share
the
same
material
far
from
others,
so
they
can
be
dynamically
batched
• Eg.
Our
bubbles
all
live
far
away
and
they
are
rendered
in
1
draw
call
52. …
when
aFaching
LWFs
• …
to
replace
a
movie
clip,
make
sure
the
clip
is
in
front
to
avoid
Z-‐sorJng
problems
when
using
CombinedMeshRenderer
3
draw
calls
Character
and
Rainbow
are
aFached
to
the
Flash
UI
53. Reduce
draw
calls
with
custom
2D
• Eg.
Use
point-‐sampled
textures
to
render
lines
and
grid
cells
55. Wrap-‐up
• For
2D
games,
Unity
&
LWF
make
a
perfect
match
• Use
Texture
sheets
everywhere
– Enable
faster
rendering
in
LWF
– Good
for
controlling
texture
budgets
– Good
for
visually
detect
problems
• When
profiling,
– Use
external
tools
to
detect
real
problems
in
devices
– Once
a
possible
problem
is
detected,
use
Unity
Editor
to
extract
as
much
informaJon
as
possible
and
for
quick
debugging
• "Animal
Days"
is
cute.
Please
play!