Top Banner
Matej Jariabka co-founder of gamifi.cc Developing applications & games in Unity engine
47

Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Apr 15, 2017

Download

gamifi.cc
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: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Matej Jariabka

co-founder of gamifi.cc

Developing applications & games

in Unity engine

Page 2: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Introducing gamifi.cc

• Indie studio from Brno, CZ: David Jozefov, Rudolf Kajan, Matej Jariabka, Martin Wilczak

• Experience with games for Win, XBOX360, Windows Phone

• FireFighters: Whatever It Takes! (world finals of Microsoft Imagine Cup 2011 – 3th place in Game Design category)

• Yggdrasil: The Tree of Life (world finals of Microsoft Imagine Cup 2012 – 6th place in Game Design category)

• The Great Wobo Escape multiplatform 2.5D action puzzle platformer, in development since 01/2013

Page 3: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

How we discovered Unity

• We have a game, we don’t have an engine

• What is a trend, what others use?

• Platforms!

• No re-inventing the wheel!

• Thinking 5+ years in advance

Page 4: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Why is Unity a clear choice for us

• Easy multiplatform development minimizes risks!

• Easy to use

• We can create what we need (editor)

• Minimum training required

Page 5: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Platforms supported by Unity

• Consoles current-gen & next-gen

• Mobile

• Desktop

Page 6: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Platforms supported by Unity

Page 7: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Is Unity popular on Kickstarter?

40% of games in TOP15 Most Funded Video Games use Unity *As of 11/2013

Unity vs Kickstarter 1/2

Page 8: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

How much $USD Unity games raised on Kickstarter.com?

$16 403 255 6/15 games in TOP15 Most Funded Video Games *As of 11/2013

Unity vs Kickstarter 2/2

Page 9: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

How to choose a game engine

• Don’t start to make a game by creating an engine!

• Know your limits and goals

• Make choice in line with your business model

• Choose for a game type - FPS, MMO, Casual

• Don’t be afraid to invest (a little)

– tools, support, licence type, modules, etc.

Page 10: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Alternatives

• CryEngine

– Several options for licensing

– Visually rich & powerful

• Unreal Engine

– Flexible for game genres, multiplatform

– Free, or 25% from profits over $50k

Page 11: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Why Unity - PROS

• Unity if free (low/limited price)

• Multiplatform tool

• Support and ongoing development of new feature

• Asset store, plugins

• Indie standard

Page 12: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Why Unity - CONS

• Unity Pro is not free

• Requires skills! (coding)

• Will require customization

Page 13: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Unity for non-developers

• Easily integrate non-developing people into the flow

• Less and less complex work for dev team

Prototyping Build Test Deploy

Page 14: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Quick feedback

• Does it look good?

• Is it working as expected?

• Does it fit to the concept?

Prototyping

Page 15: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Testing is independent on Dev team

1. In Unity: File -> Build & Run

2. Publish through Unity Web Player, send .apk, .etc.

3. Testing, bug reports, etc.

Test

Page 16: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

• Publish on Store / Marketplace

• Texts

• PR & Marketing

Deploy

Page 17: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Unity Web Player

• Share a whole game through just one URL

• Win / Mac OS + any browser is required - universal

• Unity: File -> Build & Run -> Web Player

• Dropbox \ Public directory (copy public link)

Page 18: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Unity Hardware Statistics

• Useful for setting a minimal HW requirements

• Simple but free, anonymous stats: OS version, GPU,

CPU, memory size, display size, device manufacturer

• For Web player, Mobile, Editor

• stats.unity3d.com

Page 19: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Rudolf Kajan

will continue

Page 20: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Rudolf Kajan

co-founder of gamifi.cc

Indie Game Development

with XNA & Unity

Page 21: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

2008

2009

2010

2011

2012

2013

MoonGate

Engine

Firefighters

Yggdrasil

The Great

Wobo Escape

Page 22: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Smart Multipurpose Interactive Learning Environment

• With visually impaired

players in mind

• Educational aspects

• GarageGames

• Torque

Page 23: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

#1 - Use Tools!

• Time is better used making a polished game

• Easy to ramp up new people

• Moving between projects is easier (2D/3D game switch)

• Lots of available tools (Unity)

• BUILD GAME, NOT TECH!

• Reinventing the wheel is a trap – 75% done easily, rest super-expensive

Page 24: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

#2 - Iterate Small Idea

• “Like <insert AAA title name>, but better!”

• Multi-platform cloud-based MMORPG with social

aspects

#3 - Stay Visible

Page 25: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

XNA

• Lots of o-o-b functionality

• Documentation

• Community content

• VS integration

• Just MS platforms

• Future Support

Core Framework

Graphics Audio Input Math Storage

Extended Framework

Application Model Content Pipeline

Games

Starter Kits Custom game logic Custom Content Components

Platform

DirectX XDK .NET Framework .NET CF

Networking Gamer Services

Page 26: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

XNA – Content Pipeline

.X

.TGA

Content

DOM Importer .FBX Processor

Content

Compiler .XNB

XNA Content Pipeline Flow

• Lots of o-o-b

functionality

• Documentation

• Community content

• VS integration

• Just MS platforms

• Future Support

Page 27: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

MoonGate Engine

• Violates previous

tips

• PC & Xbox360

• Used by students

• X360

optimizations

Page 28: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Firefighters: Whatever It Takes!

• RTS

• IC Entry - NY

• 3rd Place

Worldwide

• Educational

Aspects

Page 29: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Yggdrasil:

The Tree of Life

• Simulation

• Cloud-based

• IC Entry - Sydney

• 6th Place

Worldwide

• Educational

Aspects

Page 30: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Yggdrasil: The Tree of Life

• Azure

• Worker Roles

• Compute Roles

• Cloud DB

• Message Queues

• Thin Client

• AR

Page 31: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Yggdrasil: The Tree of Life

• Azure

• Worker Roles

• Compute Roles

• Cloud DB

• Message Queues

• Thin Client

• AR

Page 32: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

The Great Wobo Escape

Page 33: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Fast Prototyping

• Quick Pivots

• Test ideas – TuDee,

then develop your tools

(NOT engine first)

• TEST ON PEOPLE!!!

(HCI, video recs,

notes) - they will do

stuff you do not expect!

Page 34: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Unity

• Extendable Editor

• Browser & Inspector

• Scene Hierarchy

• Mecanim

• Shuriken

• Scripting

• Networking

• Asset Store

Page 35: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

First Iteration of Basic Components

03/2013 07/2013

Page 36: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Current Consumer Mobiles

• What you can reasonably expect to run on current consumer mobiles:

• Lightmapped static geometry. But beware of: • Using a lot of alpha-test shaders

• Bumpmapping, especially using built-in shaders.

• High polygon count

• Animated characters, even with fancy shaders! But beware of: • Massive crowds or high-poly characters

• 2D games with sprites. But beware of: • Overdraw, or, lots of layers drawn on top of eachother.

• Particle effects. But beware of: • High density on large particles. (Lots of particles drawn on top of each other. This is another overdraw situation)

• Ridiculous numbers of particles, or particle colliders.

• Physics. But beware of: • Mesh colliders.

• Lots of active bodies

Page 37: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Current Consumer Mobiles

• What you CANNOT reasonably expect to run on current consumer mobiles:

• Fullscreen screen image effects like glow and depth of field.

• Dynamic per-pixel lighting (multiple lights marked Important and not baked into the lightmap) • Every affected object is drawn an additional time for every dynamic

light you use, and this gets slow quickly.

• Real time shadows on everything • Unity 4 offers native support for real time shadows on mobile

platforms, but their use must be very judicious, and likely limited to higher-end devices.

Page 38: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Tools We Use and Love

• Unity3d

• Blender

• GIMP

• Zbrush

• BlackInk

• TuDee

• VS + UnityVS

• Serializer

• GameAnalytics

Page 39: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Tools We Use and Love

• Unity3d

• Blender

• GIMP

• Zbrush

• BlackInk

• TuDee

• VS + UnityVS

• Serializer

• GameAnalytics

Page 40: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Level Design

• Idea – Level Beat Chart

• TuDee / Excel

• Generated Prototype Scene in Unity

• Parallel Testing / Adjustments

– Actors

• State Machines, FSM, experimental FFSM, INDIE RAIN!

– Triggers

Page 41: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Animations

Page 42: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Poor Man’s Motion Capturing

Kinect & PS Eye

Page 43: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Generated Art + Tricks

Page 44: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Generated Art + Tricks

Page 45: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Light Probes

Page 46: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Batching

Rule of thumb: don’t use more then a few hundred draw calls per frame on mobiles or a few thousand

on desktops for current hardware.

Page 47: Developing applications and games in Unity engine - Matej Jariabka, Rudolf Kajan - gamifi.cc

Web & Blog www.gamifi.cc

Twitter @gamificc

Facebook /gamificc

DeviantArt gamificc.deviantart.com

IndieDB /members/gamificc

Youtube is.gd/tgwe_youtube

Steam is.gd/tgwe_steam