SlideShare a Scribd company logo
Unity3D Introduction Meeting 
GarageGeeks HQ 
25 / 1 / 2012
Hi ! 
● I am Noam Gat 
● (Ex) Game Developer at Omek (with Unity) 
● Team member in Ogre3D graphics engine 
● GameIS Member (Join us!)
And you are... 
● Mostly programmers 
● Little to no experience in game-dev 
● Disagree? Raise your hand!
Lama Anglit? 
כי זה יותר נוח! ● 
נלמד כמה מושגים, עדיף שיהיו מקושרים ● 
לסביבה שנעבוד בה. 
אני מפחד מעברית. ●
Mission Statement 
What are we NOT going to do ? 
● Learn how to program / design games 
● Learn enough to develop a game on our own 
● Be 100% punctual and exact
Mission Statement 
So what are we going to do ? 
● Understand what a GAME ENGINE is 
● Get a broad sense of how to work with unity 
● Be able to work / talk with other UNITY devs
What is a game ? 
Lets look at it from a 
programmer's point of view...
What is a game ? 
My “Hello world” program : 
● Has a start point and an end point 
int main() 
{ 
print(“Hello world”); 
} 
Often called a “procedural” program
What is a game ? 
My “GUI / Forms / Widgets” program : 
● Doesn't have a known end point / time. 
void OnButtonDown() 
{ 
MessageBox.Show(“Hello world”); 
} 
Often called an “event based” program
What is a game ? 
But why does “OnButtonDown” get called? 
● Because the RUNTIME ENGINE invokes it. 
We already don't control everything, but have 
just enough power to do what we need.
What is an event ? 
Depends on who you ask. 
● GUI Apps? Mouse and keyboard movement 
and presses, socket connections etc. 
● Games? Input, network, physics, and 
(IMO the difference) - Time
What is a game ? 
“A game is just an event-based application 
in which things happen even if nobody does 
anything” 
Noam Gat, “Unity 3D Introduction Meeting”, 25.1.2012
What is a game engine? 
A GAME ENGINE is an environment that 
manages the different ENTITIES and 
SUBSYSTEMS of a game and sends the 
correct events to the code that the 
developer writes.
What subsystems? 
Central managers of different aspects 
● Scene graphs (Hierarchy) 
● Presentation (Graphics and Audio) 
● Input (On-site and remote) 
● Resources (Art and tech - Project) 
● Logic (Physics, AI, Behaviors)
Entities ? 
● ENTITIES are a design pattern in which 
systems are broken down into small 
pieces that work together to create 
complex behavior. In UNITY these are called 
GAME OBJECTS.
Hello box
Hello box 
What's in the box? 
● A TRANSFORM (position in the world) 
● A MESH (visual geometry) 
● A MATERIAL (rendering properties like color) 
● A COLLIDER (physics geometry) 
● A RIGID BODY (physical properties like mass)
Hello box 
TRANSFORM 
MESH 
COLLIDER 
MATERIAL 
RIGID BODY 
Do we always need everything?
Modularity 
If we don't need physics, we can remove components. 
Can we remove any more components?
Unity Editor 
The INSPECTOR shows the components of an object 
The SCENE view shows us the world as it is 
The GAME view shows us the world from the camera 
The HIERARCHY shows us the objects in the current scene 
The PROJECT shows us all of the assets in the project
I want to code ! 
Coding in Unity is done via custom BEHAVIORS written 
in the Mono (like .NET) environment. 
Unity supports C# and variants of javascript, python. 
We will use javascript / C# today.
I want to code 
But first : How to navigate in the world in the editor. 
MOVIE
Exercise #1 : Spinning Cube 
1. Split into groups of 2 – 4 people 
2. Create a new (empty) unity project 
3. Create a scene and put a box in it, without physics 
4. Create a javascript script in the project, and put the 
following line in the Update function : 
transform.RotateAroundLocal(Vector3.up, 1); 
5. Attach the script to the cube in the scene 
6. Press play and watch the magic happen!
Exercise #1 : Post Mortem 
What happened? 
1. The cube has a BEHAVIOR on it 
2. UNITY calls its Update() function (why? docs) 
3. The cube spins around a bit : 
transform.RotateAroundLocal(Vector3.up, 1); 
4. After spinning a bit for a lot of frames, it spins a lot
Exercise #1 : Post Mortem 
Do we really know what is happening? 
How fast is the cube spinning?
Exercise #2 : In Control 
In the same group, modify the script so that 
A: It contains a modifyable rotating speed, called 
“turns per second”. Do this with this line : 
public var turnsPerSecond = 1.0f; 
B: The cube rotates along that speed. Hint : 
Time.deltaTime, Mathf.PI 
C: Try changing the parameter at 
Runtime!
Exercise #2 : In Control 
Solution : 
transform.RotateAroundLocal(Vector3.up, 
Time.deltaTime * turnsPerSecond * Mathf.PI * 2); 
(Not important if you missed the 2)
Exercise #2 : In Control 
We just learned how to configure our entities! 
- It makes it easy to separate logic (code) from design 
decisions (parameters for components). 
- Even <Insert none-coder stereotype here> can 
control the spinning cube!
Exercise #2.1 : In Control-er 
Its not a game if we don't have any gameplay... 
OMG LETS CONTROL THE SPINNING SPEED!!! 
1. Declare two new parameters : 
public var turnMoreKey = KeyCode.D; 
public var turnLessKey = KeyCode.A; 
2. Use Input.GetKey(...) to control the spinning speed.
Prefabs 
After a few components your objects could get complicated. 
You might want to classify a “cube with a transform spinner” 
A “spinning cube”.
Exercise #2.2 : In Control-est 
1. Create a prefab by dragging the cube to the project view. 
2. Create one instance of the prefab for each team member 
by dragging it to the scene. 
Give each instance different control keys. 
3. Battle it out for the spinningest cube!
Summary 
Yadda yadda yadda. 
I'll crowdsource this one.
Congratulations ! 
You now know Unity! 
You can do anything you want with it! 
Lets play spinning cube!
No, really. 
You understand how different systems connect to each 
other (we used the INPUT subsystem to control a 
TRANSFORM COMPONENT of a specific 
GAMEOBJECT) 
Lets try to learn how to learn.
Exercise #3 : Gone Fishing 
We want to know how each player is doing. 
For each cube, display an on-screen string in the form of : 
“Dudu's cube : Y rotation is 121.221 degrees” 
How will we do this? 
Help → Manual / Reference Manual / Scripting Reference 
We are looking for a Graphical User Interface (GUI) 
No cheating (Forums / internet) for this one please!
Hierarchies 
Pretty good video here as well, I'll just play it
Exercise #4 : Tabletop 
1. Create a simple scene of a table, a tray on the table 
and some fruits on the tray. 
2. Use parenting to create a correct hierarchy. 
3. Place transform spinners on many elements in your 
scene. Check that the scene makes sense when you 
move them.
Summary 
What have we learned? 
● What should a GAME ENGINE give us 
● How does UNITY separate itself into different 
SUBSYSTEMS and COMPONENTS 
● How can we extend UNITY and make our code run in it 
● How to answer our own questions about UNITY
Exercise #5 : Explore! 
1. Open the “Angry Bots” sample project. 
2. Spend about 5-10 minutes looking around, another 
three minutes deciding on something to do in it, 
then take 15-20 minutes to do it (if time permits). 
3. GL HF!
What now ? 
You don't know how to make games... YET
Be like the squirrel 
You should (hopefully) be able to take a big problem 
(“how to create a game?”) and rip it apart to smaller 
questions and research into them on your own.
Give it a whirl 
1. Global game jam 
This weekend! 
2. Advanced unity meetings 
Israeli Unity3D developers UNITE! 
3. Facebook groups. 
Israeli Unity3d developers 
4. The only limit is yourself. 
Welcome to zombo.com
Questions?
Cheers!

More Related Content

What's hot

unity basics
unity basicsunity basics
Unity 3d
Unity 3dUnity 3d
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
Unity Technologies Japan K.K.
 
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsEast Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsGerke Max Preussner
 
Unityティーチャートレーニングデイ -認定プログラマー編-
Unityティーチャートレーニングデイ -認定プログラマー編-Unityティーチャートレーニングデイ -認定プログラマー編-
Unityティーチャートレーニングデイ -認定プログラマー編-
Unity Technologies Japan K.K.
 
Unity3D Programming
Unity3D ProgrammingUnity3D Programming
Unity3D Programming
Michael Ivanov
 
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
モノビット エンジン
 
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesKillzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Guerrilla
 
Unreal Engine 4 Introduction
Unreal Engine 4 IntroductionUnreal Engine 4 Introduction
Unreal Engine 4 Introduction
Sperasoft
 
Unity Introduction
Unity IntroductionUnity Introduction
Unity Introduction
Juwal Bose
 
Unity - Game Engine
Unity - Game EngineUnity - Game Engine
Unity - Game Engine
Geeks Anonymes
 
ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解
ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解
ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解
Tatsuya Iwama
 
猫でも分かるUMG
猫でも分かるUMG猫でも分かるUMG
個人製作インディーゲーム”ジラフとアンニカ” のUE4 制作事例紹介 | UNREAL FEST EXTREME 2020 WINTER
個人製作インディーゲーム”ジラフとアンニカ” のUE4 制作事例紹介 | UNREAL FEST EXTREME 2020 WINTER個人製作インディーゲーム”ジラフとアンニカ” のUE4 制作事例紹介 | UNREAL FEST EXTREME 2020 WINTER
個人製作インディーゲーム”ジラフとアンニカ” のUE4 制作事例紹介 | UNREAL FEST EXTREME 2020 WINTER
エピック・ゲームズ・ジャパン Epic Games Japan
 
60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
エピック・ゲームズ・ジャパン Epic Games Japan
 
The Basics of Unity - The Game Engine
The Basics of Unity - The Game EngineThe Basics of Unity - The Game Engine
The Basics of Unity - The Game Engine
OrisysIndia
 
Cinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作るCinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作る
Unity Technologies Japan K.K.
 
UE4ローカライズ事例 (UE4 Localization Deep Dive)
UE4ローカライズ事例 (UE4 Localization Deep Dive)UE4ローカライズ事例 (UE4 Localization Deep Dive)
UE4ローカライズ事例 (UE4 Localization Deep Dive)
エピック・ゲームズ・ジャパン Epic Games Japan
 
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
エピック・ゲームズ・ジャパン Epic Games Japan
 
UE4の色について v1.1
 UE4の色について v1.1 UE4の色について v1.1

What's hot (20)

unity basics
unity basicsunity basics
unity basics
 
Unity 3d
Unity 3dUnity 3d
Unity 3d
 
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
 
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsEast Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
 
Unityティーチャートレーニングデイ -認定プログラマー編-
Unityティーチャートレーニングデイ -認定プログラマー編-Unityティーチャートレーニングデイ -認定プログラマー編-
Unityティーチャートレーニングデイ -認定プログラマー編-
 
Unity3D Programming
Unity3D ProgrammingUnity3D Programming
Unity3D Programming
 
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
【GCC18】PUBGライクなゲームをUnityだけで早く確実に作る方法 〜ひとつのUnity上でダミークライアントを100個同時に動かす〜
 
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of GamesKillzone Shadow Fall: Creating Art Tools For A New Generation Of Games
Killzone Shadow Fall: Creating Art Tools For A New Generation Of Games
 
Unreal Engine 4 Introduction
Unreal Engine 4 IntroductionUnreal Engine 4 Introduction
Unreal Engine 4 Introduction
 
Unity Introduction
Unity IntroductionUnity Introduction
Unity Introduction
 
Unity - Game Engine
Unity - Game EngineUnity - Game Engine
Unity - Game Engine
 
ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解
ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解
ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解
 
猫でも分かるUMG
猫でも分かるUMG猫でも分かるUMG
猫でも分かるUMG
 
個人製作インディーゲーム”ジラフとアンニカ” のUE4 制作事例紹介 | UNREAL FEST EXTREME 2020 WINTER
個人製作インディーゲーム”ジラフとアンニカ” のUE4 制作事例紹介 | UNREAL FEST EXTREME 2020 WINTER個人製作インディーゲーム”ジラフとアンニカ” のUE4 制作事例紹介 | UNREAL FEST EXTREME 2020 WINTER
個人製作インディーゲーム”ジラフとアンニカ” のUE4 制作事例紹介 | UNREAL FEST EXTREME 2020 WINTER
 
60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
 
The Basics of Unity - The Game Engine
The Basics of Unity - The Game EngineThe Basics of Unity - The Game Engine
The Basics of Unity - The Game Engine
 
Cinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作るCinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作る
 
UE4ローカライズ事例 (UE4 Localization Deep Dive)
UE4ローカライズ事例 (UE4 Localization Deep Dive)UE4ローカライズ事例 (UE4 Localization Deep Dive)
UE4ローカライズ事例 (UE4 Localization Deep Dive)
 
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
 
UE4の色について v1.1
 UE4の色について v1.1 UE4の色について v1.1
UE4の色について v1.1
 

Viewers also liked

Unity Programming
Unity Programming Unity Programming
Unity Programming
Sperasoft
 
Game Development with Unity
Game Development with UnityGame Development with Unity
Game Development with Unity
davidluzgouveia
 
Introduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First GameIntroduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First Game
Sarah Sexton
 
Mobile AR Lecture6 - Introduction to Unity 3D
Mobile AR Lecture6 - Introduction to Unity 3DMobile AR Lecture6 - Introduction to Unity 3D
Mobile AR Lecture6 - Introduction to Unity 3D
Mark Billinghurst
 
Unity 5 Overview
Unity 5 OverviewUnity 5 Overview
Unity 5 Overview
Shahed Chowdhuri
 
Unity Презентация
Unity ПрезентацияUnity Презентация
Unity ПрезентацияDmitriy Bolshakov
 
Academy PRO: Unity 3D. Scripting
Academy PRO: Unity 3D. ScriptingAcademy PRO: Unity 3D. Scripting
Academy PRO: Unity 3D. Scripting
Binary Studio
 
Introductory Virtual Reality in Unity3d
Introductory Virtual Reality in Unity3dIntroductory Virtual Reality in Unity3d
Introductory Virtual Reality in Unity3d
Bond University
 
Pathfinding - Part 2: Examples in Unity
Pathfinding - Part 2: Examples in UnityPathfinding - Part 2: Examples in Unity
Pathfinding - Part 2: Examples in Unity
Stavros Vassos
 
Code and Memory Optimisation Tricks
Code and Memory Optimisation Tricks Code and Memory Optimisation Tricks
Code and Memory Optimisation Tricks
Sperasoft
 
Securing PHP Applications
Securing PHP ApplicationsSecuring PHP Applications
Securing PHP Applications
Reggie Niccolo Santos
 
NYPF14 Report - CDA
NYPF14 Report - CDANYPF14 Report - CDA
NYPF14 Report - CDA
Chaudhry Talha Waseem
 
Agile Retrospectives
Agile RetrospectivesAgile Retrospectives
Agile Retrospectives
Hawkman Academy
 
Unity3D Scripting: State Machine
Unity3D Scripting: State MachineUnity3D Scripting: State Machine
Unity3D Scripting: State MachineSperasoft
 
C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#
Hawkman Academy
 
Unity 2d sharp
Unity 2d sharpUnity 2d sharp
Unity 2d sharp
Jerel Hass
 
2D Game Development with Starling
2D Game Development with Starling2D Game Development with Starling
2D Game Development with Starling
Juwal Bose
 

Viewers also liked (20)

Unity Programming
Unity Programming Unity Programming
Unity Programming
 
Game Development with Unity
Game Development with UnityGame Development with Unity
Game Development with Unity
 
Unity presentation
Unity presentationUnity presentation
Unity presentation
 
Introduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First GameIntroduction to Unity3D and Building your First Game
Introduction to Unity3D and Building your First Game
 
Unity 3d scripting tutorial
Unity 3d scripting tutorialUnity 3d scripting tutorial
Unity 3d scripting tutorial
 
Mobile AR Lecture6 - Introduction to Unity 3D
Mobile AR Lecture6 - Introduction to Unity 3DMobile AR Lecture6 - Introduction to Unity 3D
Mobile AR Lecture6 - Introduction to Unity 3D
 
Unity 5 Overview
Unity 5 OverviewUnity 5 Overview
Unity 5 Overview
 
Unity is strength presentation slides
Unity is strength presentation slidesUnity is strength presentation slides
Unity is strength presentation slides
 
Unity Презентация
Unity ПрезентацияUnity Презентация
Unity Презентация
 
Academy PRO: Unity 3D. Scripting
Academy PRO: Unity 3D. ScriptingAcademy PRO: Unity 3D. Scripting
Academy PRO: Unity 3D. Scripting
 
Introductory Virtual Reality in Unity3d
Introductory Virtual Reality in Unity3dIntroductory Virtual Reality in Unity3d
Introductory Virtual Reality in Unity3d
 
Pathfinding - Part 2: Examples in Unity
Pathfinding - Part 2: Examples in UnityPathfinding - Part 2: Examples in Unity
Pathfinding - Part 2: Examples in Unity
 
Code and Memory Optimisation Tricks
Code and Memory Optimisation Tricks Code and Memory Optimisation Tricks
Code and Memory Optimisation Tricks
 
Securing PHP Applications
Securing PHP ApplicationsSecuring PHP Applications
Securing PHP Applications
 
NYPF14 Report - CDA
NYPF14 Report - CDANYPF14 Report - CDA
NYPF14 Report - CDA
 
Agile Retrospectives
Agile RetrospectivesAgile Retrospectives
Agile Retrospectives
 
Unity3D Scripting: State Machine
Unity3D Scripting: State MachineUnity3D Scripting: State Machine
Unity3D Scripting: State Machine
 
C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#
 
Unity 2d sharp
Unity 2d sharpUnity 2d sharp
Unity 2d sharp
 
2D Game Development with Starling
2D Game Development with Starling2D Game Development with Starling
2D Game Development with Starling
 

Similar to Unity introduction for programmers

Gamemaker lesson 1
Gamemaker lesson 1Gamemaker lesson 1
Gamemaker lesson 1
iain bruce
 
School For Games 2015 - Unity Engine Basics
School For Games 2015 - Unity Engine BasicsSchool For Games 2015 - Unity Engine Basics
School For Games 2015 - Unity Engine Basics
Nick Pruehs
 
DSC RNGPIT - Getting Started with Game Development Day 1
DSC RNGPIT - Getting Started with Game Development Day 1DSC RNGPIT - Getting Started with Game Development Day 1
DSC RNGPIT - Getting Started with Game Development Day 1
DeepMevada1
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 
Academy PRO: Unity 3D. Environment
Academy PRO: Unity 3D. EnvironmentAcademy PRO: Unity 3D. Environment
Academy PRO: Unity 3D. Environment
Binary Studio
 
2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorial2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorialtutorialsruby
 
2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorial2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorialtutorialsruby
 
Unity workshop
Unity workshopUnity workshop
Unity workshop
fsxflyer789Productio
 
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
Mihai Gosa
 
Introduction to Game Programming: Using C# and Unity 3D - Chapter 3 (Preview)
Introduction to Game Programming: Using C# and Unity 3D - Chapter 3 (Preview)Introduction to Game Programming: Using C# and Unity 3D - Chapter 3 (Preview)
Introduction to Game Programming: Using C# and Unity 3D - Chapter 3 (Preview)
noorcon
 
Unity - Building Your First Real-Time 3D Project - All Slides
Unity - Building Your First Real-Time 3D Project - All SlidesUnity - Building Your First Real-Time 3D Project - All Slides
Unity - Building Your First Real-Time 3D Project - All Slides
NexusEdgesupport
 
Unity3d scripting tutorial
Unity3d scripting tutorialUnity3d scripting tutorial
Unity3d scripting tutorial
hungnttg
 
GameMaker 1) intro to gamemaker
GameMaker 1) intro to gamemakerGameMaker 1) intro to gamemaker
GameMaker 1) intro to gamemaker
iain bruce
 
Introduction to Box2D Physics Engine
Introduction to Box2D Physics EngineIntroduction to Box2D Physics Engine
Introduction to Box2D Physics Engine
firstthumb
 
2 d gameplaytutorial
2 d gameplaytutorial2 d gameplaytutorial
2 d gameplaytutorialunityshare
 
Unty3D Awesome Assets - uTomate
Unty3D Awesome Assets - uTomateUnty3D Awesome Assets - uTomate
Unty3D Awesome Assets - uTomate
Taras Leskiv
 
COMP521-report
COMP521-reportCOMP521-report
COMP521-reportMinjoo Cha
 
Cross platform game development
Cross platform game developmentCross platform game development
Cross platform game development
Jerel Hass
 
intern.pdf
intern.pdfintern.pdf
intern.pdf
cprabhash
 

Similar to Unity introduction for programmers (20)

Gamemaker lesson 1
Gamemaker lesson 1Gamemaker lesson 1
Gamemaker lesson 1
 
School For Games 2015 - Unity Engine Basics
School For Games 2015 - Unity Engine BasicsSchool For Games 2015 - Unity Engine Basics
School For Games 2015 - Unity Engine Basics
 
DSC RNGPIT - Getting Started with Game Development Day 1
DSC RNGPIT - Getting Started with Game Development Day 1DSC RNGPIT - Getting Started with Game Development Day 1
DSC RNGPIT - Getting Started with Game Development Day 1
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 
Academy PRO: Unity 3D. Environment
Academy PRO: Unity 3D. EnvironmentAcademy PRO: Unity 3D. Environment
Academy PRO: Unity 3D. Environment
 
2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorial2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorial
 
2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorial2%20-%20Scripting%20Tutorial
2%20-%20Scripting%20Tutorial
 
Unity workshop
Unity workshopUnity workshop
Unity workshop
 
How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)How We Won Gamedev By Rolling Our Own Tech (no notes)
How We Won Gamedev By Rolling Our Own Tech (no notes)
 
Introduction to Game Programming: Using C# and Unity 3D - Chapter 3 (Preview)
Introduction to Game Programming: Using C# and Unity 3D - Chapter 3 (Preview)Introduction to Game Programming: Using C# and Unity 3D - Chapter 3 (Preview)
Introduction to Game Programming: Using C# and Unity 3D - Chapter 3 (Preview)
 
Unity - Building Your First Real-Time 3D Project - All Slides
Unity - Building Your First Real-Time 3D Project - All SlidesUnity - Building Your First Real-Time 3D Project - All Slides
Unity - Building Your First Real-Time 3D Project - All Slides
 
Unity3d scripting tutorial
Unity3d scripting tutorialUnity3d scripting tutorial
Unity3d scripting tutorial
 
GameMaker 1) intro to gamemaker
GameMaker 1) intro to gamemakerGameMaker 1) intro to gamemaker
GameMaker 1) intro to gamemaker
 
Introduction to Box2D Physics Engine
Introduction to Box2D Physics EngineIntroduction to Box2D Physics Engine
Introduction to Box2D Physics Engine
 
2 d gameplaytutorial
2 d gameplaytutorial2 d gameplaytutorial
2 d gameplaytutorial
 
Unty3D Awesome Assets - uTomate
Unty3D Awesome Assets - uTomateUnty3D Awesome Assets - uTomate
Unty3D Awesome Assets - uTomate
 
Soc research
Soc researchSoc research
Soc research
 
COMP521-report
COMP521-reportCOMP521-report
COMP521-report
 
Cross platform game development
Cross platform game developmentCross platform game development
Cross platform game development
 
intern.pdf
intern.pdfintern.pdf
intern.pdf
 

Recently uploaded

weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
Fundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptxFundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptx
manasideore6
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
gerogepatton
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
Jayaprasanna4
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
FluxPrime1
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
fxintegritypublishin
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
AJAYKUMARPUND1
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Sreedhar Chowdam
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
ankuprajapati0525
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
AafreenAbuthahir2
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
Robbie Edward Sayers
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
MdTanvirMahtab2
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
R&R Consult
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
JoytuBarua2
 
AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
BrazilAccount1
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
Jayaprasanna4
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
Massimo Talia
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
ViniHema
 

Recently uploaded (20)

weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
Fundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptxFundamentals of Electric Drives and its applications.pptx
Fundamentals of Electric Drives and its applications.pptx
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
ethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.pptethical hacking-mobile hacking methods.ppt
ethical hacking-mobile hacking methods.ppt
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
 
AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
 

Unity introduction for programmers

  • 1. Unity3D Introduction Meeting GarageGeeks HQ 25 / 1 / 2012
  • 2. Hi ! ● I am Noam Gat ● (Ex) Game Developer at Omek (with Unity) ● Team member in Ogre3D graphics engine ● GameIS Member (Join us!)
  • 3. And you are... ● Mostly programmers ● Little to no experience in game-dev ● Disagree? Raise your hand!
  • 4. Lama Anglit? כי זה יותר נוח! ● נלמד כמה מושגים, עדיף שיהיו מקושרים ● לסביבה שנעבוד בה. אני מפחד מעברית. ●
  • 5. Mission Statement What are we NOT going to do ? ● Learn how to program / design games ● Learn enough to develop a game on our own ● Be 100% punctual and exact
  • 6. Mission Statement So what are we going to do ? ● Understand what a GAME ENGINE is ● Get a broad sense of how to work with unity ● Be able to work / talk with other UNITY devs
  • 7. What is a game ? Lets look at it from a programmer's point of view...
  • 8. What is a game ? My “Hello world” program : ● Has a start point and an end point int main() { print(“Hello world”); } Often called a “procedural” program
  • 9. What is a game ? My “GUI / Forms / Widgets” program : ● Doesn't have a known end point / time. void OnButtonDown() { MessageBox.Show(“Hello world”); } Often called an “event based” program
  • 10. What is a game ? But why does “OnButtonDown” get called? ● Because the RUNTIME ENGINE invokes it. We already don't control everything, but have just enough power to do what we need.
  • 11. What is an event ? Depends on who you ask. ● GUI Apps? Mouse and keyboard movement and presses, socket connections etc. ● Games? Input, network, physics, and (IMO the difference) - Time
  • 12. What is a game ? “A game is just an event-based application in which things happen even if nobody does anything” Noam Gat, “Unity 3D Introduction Meeting”, 25.1.2012
  • 13. What is a game engine? A GAME ENGINE is an environment that manages the different ENTITIES and SUBSYSTEMS of a game and sends the correct events to the code that the developer writes.
  • 14. What subsystems? Central managers of different aspects ● Scene graphs (Hierarchy) ● Presentation (Graphics and Audio) ● Input (On-site and remote) ● Resources (Art and tech - Project) ● Logic (Physics, AI, Behaviors)
  • 15. Entities ? ● ENTITIES are a design pattern in which systems are broken down into small pieces that work together to create complex behavior. In UNITY these are called GAME OBJECTS.
  • 17. Hello box What's in the box? ● A TRANSFORM (position in the world) ● A MESH (visual geometry) ● A MATERIAL (rendering properties like color) ● A COLLIDER (physics geometry) ● A RIGID BODY (physical properties like mass)
  • 18. Hello box TRANSFORM MESH COLLIDER MATERIAL RIGID BODY Do we always need everything?
  • 19. Modularity If we don't need physics, we can remove components. Can we remove any more components?
  • 20. Unity Editor The INSPECTOR shows the components of an object The SCENE view shows us the world as it is The GAME view shows us the world from the camera The HIERARCHY shows us the objects in the current scene The PROJECT shows us all of the assets in the project
  • 21. I want to code ! Coding in Unity is done via custom BEHAVIORS written in the Mono (like .NET) environment. Unity supports C# and variants of javascript, python. We will use javascript / C# today.
  • 22. I want to code But first : How to navigate in the world in the editor. MOVIE
  • 23. Exercise #1 : Spinning Cube 1. Split into groups of 2 – 4 people 2. Create a new (empty) unity project 3. Create a scene and put a box in it, without physics 4. Create a javascript script in the project, and put the following line in the Update function : transform.RotateAroundLocal(Vector3.up, 1); 5. Attach the script to the cube in the scene 6. Press play and watch the magic happen!
  • 24. Exercise #1 : Post Mortem What happened? 1. The cube has a BEHAVIOR on it 2. UNITY calls its Update() function (why? docs) 3. The cube spins around a bit : transform.RotateAroundLocal(Vector3.up, 1); 4. After spinning a bit for a lot of frames, it spins a lot
  • 25. Exercise #1 : Post Mortem Do we really know what is happening? How fast is the cube spinning?
  • 26. Exercise #2 : In Control In the same group, modify the script so that A: It contains a modifyable rotating speed, called “turns per second”. Do this with this line : public var turnsPerSecond = 1.0f; B: The cube rotates along that speed. Hint : Time.deltaTime, Mathf.PI C: Try changing the parameter at Runtime!
  • 27. Exercise #2 : In Control Solution : transform.RotateAroundLocal(Vector3.up, Time.deltaTime * turnsPerSecond * Mathf.PI * 2); (Not important if you missed the 2)
  • 28. Exercise #2 : In Control We just learned how to configure our entities! - It makes it easy to separate logic (code) from design decisions (parameters for components). - Even <Insert none-coder stereotype here> can control the spinning cube!
  • 29. Exercise #2.1 : In Control-er Its not a game if we don't have any gameplay... OMG LETS CONTROL THE SPINNING SPEED!!! 1. Declare two new parameters : public var turnMoreKey = KeyCode.D; public var turnLessKey = KeyCode.A; 2. Use Input.GetKey(...) to control the spinning speed.
  • 30. Prefabs After a few components your objects could get complicated. You might want to classify a “cube with a transform spinner” A “spinning cube”.
  • 31. Exercise #2.2 : In Control-est 1. Create a prefab by dragging the cube to the project view. 2. Create one instance of the prefab for each team member by dragging it to the scene. Give each instance different control keys. 3. Battle it out for the spinningest cube!
  • 32. Summary Yadda yadda yadda. I'll crowdsource this one.
  • 33. Congratulations ! You now know Unity! You can do anything you want with it! Lets play spinning cube!
  • 34. No, really. You understand how different systems connect to each other (we used the INPUT subsystem to control a TRANSFORM COMPONENT of a specific GAMEOBJECT) Lets try to learn how to learn.
  • 35. Exercise #3 : Gone Fishing We want to know how each player is doing. For each cube, display an on-screen string in the form of : “Dudu's cube : Y rotation is 121.221 degrees” How will we do this? Help → Manual / Reference Manual / Scripting Reference We are looking for a Graphical User Interface (GUI) No cheating (Forums / internet) for this one please!
  • 36. Hierarchies Pretty good video here as well, I'll just play it
  • 37. Exercise #4 : Tabletop 1. Create a simple scene of a table, a tray on the table and some fruits on the tray. 2. Use parenting to create a correct hierarchy. 3. Place transform spinners on many elements in your scene. Check that the scene makes sense when you move them.
  • 38. Summary What have we learned? ● What should a GAME ENGINE give us ● How does UNITY separate itself into different SUBSYSTEMS and COMPONENTS ● How can we extend UNITY and make our code run in it ● How to answer our own questions about UNITY
  • 39. Exercise #5 : Explore! 1. Open the “Angry Bots” sample project. 2. Spend about 5-10 minutes looking around, another three minutes deciding on something to do in it, then take 15-20 minutes to do it (if time permits). 3. GL HF!
  • 40. What now ? You don't know how to make games... YET
  • 41. Be like the squirrel You should (hopefully) be able to take a big problem (“how to create a game?”) and rip it apart to smaller questions and research into them on your own.
  • 42. Give it a whirl 1. Global game jam This weekend! 2. Advanced unity meetings Israeli Unity3D developers UNITE! 3. Facebook groups. Israeli Unity3d developers 4. The only limit is yourself. Welcome to zombo.com