Master Classes

Celia Hodent
Company:
Freelance
Workshop: “UX and Cognitive Science Applied to Game Development”
Game Design

Date: 4th July, 2018

User experience (UX) and cognitive science are becoming trendy in the industry, but how can these disciplines concretely help a team develop and improve a video game? UX and cognitive science combined are at the service of the intended design, and can provide very concrete and easy-to-use tips to anticipate and solve problems, sometimes even before the playtesting phase.
 
This Masterclass proposes to delve into how the human brain works in terms of perception, attention, and memory (critical elements for UX) and offers a UX framework to use cognitive science/psychology knowledge and UX guidelines during the different development stages. The ultimate goal of this Masterclass is to provide tools to significantly improve the experience of the game you are developing, as perceived by your target audience. This Masterclass will offer numerous examples, from video games and beyond, to illustrate each point. 

This Masterclass has 2 main parts. The content can be adjusted to skip some elements while diving into others more, depending on attendees’ requests. 
 
Part 1 - Introduction to cognitive science and psychology to understand how the brain works and, more specifically, how it learns. We will look into the capabilities and limitations of human perception, attention, memory, motivation, and emotion, using multiple examples taken from video games and beyond.
 
Part 2 - Focuses more specifically on the User Experience (UX) framework you can apply when developing your game, and how it relates to the brain capabilities and limitations. We will breakdown UX into ‘usability’ and ‘engage-ability’ and detail the important principles within these 2 components that can make, in the end, a great difference for your player and how s/he will experience your game (for the better!). It will cover how to successfully onboard players (i.e. first time user experience over, roughly, the first minutes to an hour of play) as well as how to keep players engaged over time.

Read more
Céline Holzmann
Company:
Bandai Namco
How data analysis can help game design and free to play monetization
Game Design

Date: 4th July, 2018

This masterclass will give you an overview of how data can help game design and free to play monetization. You will learn how to collect data and how to use a data-driven approach in your game development, soft launch and liveops with a lot of case study and concrete examples.

Read more
Mojtaba Rajabi
Company:
Novin Games
Performance optimization and final build file size reduction in Unity3D (Mobile Oriented Tips&Tricks)
Technology

Date: 4th July, 2018

Limitations and Bottlenecks in File Size, Memory, CPU, GPU

Using Unity3D Profiler Tool

Drawcalls:

Why drawcalls are important and how decrease its count.

Custom Skybox Creation

Avoid changing scale and especially negative scale values

Use “Shared Material” instead of material

Garbage Collection:

Find heap allocations

Use integer id reference instead of object reference

Call collect function manually

Use Coroutines properly

How use strings to prevent GC

Cash variables to prevent GC

Don’t allocate in functions that call frequently

Use clear on list instead of creating new one

Prevent boxing

Struct or Class?

Scripts:

Timing update function

Don’t use unnecessary codes in update functions

Don’t use circular functions and pow function

Don’t use new and GetComponnect in update functions

Don’t use find object (use singleton, reference, etc)

Don’t use Playerprefs in update functions

Disable scripts or use simple code for far objects (like LOD)

Erase update function if you didn’t use it

Fish-Pool Design Pattern

Remove unnecessary codes from loops (like if in for)

Use localPosition instead of position whenever possible

Cash position if you want to use it a lot

Reduce mathematical calculations on vectors (use other variable types)

In length comparison use sqrMagnitude instead of magnitude

Don’t use Camera.main (it is like find functions)

Active scripts that change visual, only when it is in camera view

Be careful using nested loops

Cash component in other scripts instead of using GetComponent

Meshes:

Be conscious about vertices and triangles count

Use vertex weld to reduce vertices count

Combine meshes

Combine near objects

Reduce UV mapping seams (prevent double vertices)

Use smooth groups

Use less triangles in less curvy surfaces and sections of meshes

Use Terrain to Mesh tools and appropriate shaders (for mobile platform)

Turn vertex tangents off if you’re not using Normal Maps

Textures:

Best settings for textures

Texture Atlas

When to use texture compression

What is mipmap and when use it

Shaders:

Use mobile optimized shaders

Use unlit shaders (if scene light won’t change)

Use cutout shaders instead of transparent shaders

Try to minimize the use of heavy calculative methods and functions (e.g. pow, exp, log, cos, sin, tan)

Do not try to reinvent the wheel (use already made methods like normalize, dot, inversesqrt)

Use float value with less precision where possible (float vs half vs fixed variables)

Audios:

Divide audios to 3 main sections (fx audios, mid long audios like dialogs, musics)

Play only one file with streaming option enabled

Physics:

Use layer collision matrix

Use simple unity colliders instead of mesh collider

use rigidbody components on objects with colliders

Increase fixed timestep in time settings (not is fast paced games)

Particle Systems:

Restrict max particle counts

Be careful about slow and overlapped particles like smoke and fire

Cache and use non-looped particle effects like gun fire

Move particles with camera to reduce overall particle count

Other:

Reduce Resolution

Use bone animation instead of vertex animation

Static and dynamic batching

Baked Lighting

Occlusion Culling

Don’t use realtime shadow

Use Light Probes

Use reflection probe

Use lens flares, fake boom, fake shadow

Use only one light (sun)

Quality Settings

Use LOD

Use FOG

When use separated scenes?

Merge two fonts (e.g Persian and English) instead of using two fonts

Prevent an object to have lots of children if they will translate, rotate and/or scale

Prevent overlapping lots of sprites

Use UV scrolling for creating effects like rivers

Reduce far clip plane

Use textures to create fake light reflections like brake light reflection

Final build file size reduction:

Textures:

Texture Atlasing

Mipmaps

Texture Separation

Tiled Images and Sliced Images

Don’t use repetitive sprites (like coins, windows)

Use cutout animations instead of frame animations

Be careful about Texture Bleeding

Custom Skybox

Use vertex colors instead of texture baked lighting

Use mesh instead of textures (like lines in vehicles)

Disable Read/Write Enabled

Use lower texture resolutions on fast moving objects

Audios:

Divide audios to 3 main sections (Fx audios, mid long audios like dialogs and musics)

Use force to mono option

Compress audio as far as you can’t tell the difference in audio quality

Use loop audios

Create ambient audios with a few short and small audios

Use pitch to create variety in audios (like step audio)

Meshes:

Setting explanations

Use mesh compression

Assign more texture space (Texel per unit) to more important parts of meshes

Remove duplicate meshes (like cylinder section in rims)

Use multiple separate meshes to create and design game environments instead of creating the whole environment in 3D packages. Use modular 3D modeling is possible

Other:

Use UV2 for shared decals in objects

Don’t reference resources that shouldn’t be in the final build

Choose ARMv7 in Device Filter

Set Stripping Level

Use .Net 2.0 Subnet

Use scale factor in Baked Lighting

Read more
Fred Moreau
Company:
Jikkou Publishing Inc.
Mastering Unity's UI and Animation systems.
Art

Date: 4th July, 2018

In this master class, we'll use a rhythm based gameplay and setup entirely its graphics, from gameplay to game stats, using Unity's UI, Animator State Machines, Events, Sprites and 3D objects.

Read more
Kian Ashrafi
Company:
Anashid Games
Turn-based Strategy Game Postmortem (Ancients Revival)
Art

Date: 4th July, 2018

Ancients Revival is an innovative and competitive online turn-based game that blends RPG elements with a unique method of customization which unfortunately was less considered in mobile gaming. The player can control many types of characters.

The focus will be on character design and animating in Spine.

We will check out the creation of all 2D character/environment/UI/misc.

After going through benefits of skeletal animation over traditional, we review features of spine-like Meshes, Skins, Procedural animation, etc.

Finally, we discuss the classic method of using sprite sheets and VFX in Spine.

Read more