Professional Environment

Slides:



Advertisements
Similar presentations
Video Game Design Lesson 1. Game Designer Person involved in the development of a video game Person involved in the development of a video game Usually.
Advertisements

Creating a Program In today’s lesson we will look at: what programming is different types of programs how we create a program installing an IDE to get.
Survey of Graphics and Games. Outline Overview of computer graphics – Coursework – Research Programming using game engines Computer game and animation.
Yingcai Xiao Game Development with Unity3D Inside/Outside Unity3D.
Game Development with Kinect
Input and Interaction Dr. Yingcai Xiao. A good user interface allows users to perform interaction tasks with ease and joy. WYSIWYG (What you see is what.
Unity 3D game IDE 1.  Unity is a multi-platform, integrated IDE for scripting games, and working with 3D virtual worlds  Including:  Game engine ▪
AGD: 5. Game Arch.1 Objective o to discuss some of the main game architecture elements, rendering, and the game loop Animation and Games Development.
Master Project Preparation Murtaza Hussain. Unity (also called Unity3D) is a cross-platform game engine with a built-in IDE developed by Unity Technologies.
Things you need to know George Georgiev Telerik Corporation
Using C++ and OpenGL George Georgiev Telerik Corporation
Yingcai Xiao Interactive Visualization with NUI and Game Engines.
Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.
There are different types of translator. An Interpreter Interpreters translate one instruction at a time from a high level language into machine code every.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
CHAPTER FOUR COMPUTER SOFTWARE.
Game Engine Programming. Game Engine Game Engine Rendering Engine (OGRE) Rendering Engine (OGRE) Physics Engine (Bullet) Physics Engine (Bullet) Input/Output.
Yingcai Xiao Voxel Game Engine Development. What do we need? What tools do we have? How can we design and implement? We will answer those questions in.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Web Games Programming An Introduction to Unity 3D.
Yingcai Xiao Game Development Interactive Animation.
1 The Rendering Pipeline. CS788 Topic of HCI 2 Outline  Introduction  The Graphics Rendering Pipeline  Three functional stages  Example  Bottleneck.
Yingcai Xiao Game Development Animation. Video Game Interactive animation: user-> interface (look) -> action (feel) -> feedback (A/V, haptic)
Tolo-e-aftab higher education 1 th semester Bcs 1/2/1392 MINISTRY OF HIGHER EDUCATION.
Yingcai Xiao Game Development with Unity3D. Outline IDE Engine Assets Tutorial Examples Inside.
Vizard Virtual Reality Toolkits Vizard Virtual Reality Toolkits.
Interactive Computer Graphics
Computer and Programming. Computer Basics: Outline Hardware and Memory Programs Programming Languages and Compilers.
Computer Parts and Functions. How A Computer Works.
UFCFX5-15-3Mobile Device Development Unity 3D Development for Android Unity Mobile Assets.
Yingcai Xiao Event-driven Programming in Game Development Yingcai Xiao.
UFCFSU-30-13D Technologies for the Web An Introduction to Unity 3D.
Yingcai Xiao Game Development with Unity3D Inside/Outside Unity3D.
Introduction to Programming and App Inventor. Introduction What is a computer program? Introducing App Inventor Getting hands on with App Inventor.
Examples Data Driven, Event Driven Typical Architecture Building Ogre
Chapter 1 Coding Introduction.
Game Development with Unity3D
Interactive Animation
X3DOM : Integrating 3D content seamlessly into webpage
Chapter 1 Introduction.
Collision Theory and Logic
Why don’t programmers have to program in machine code?
Game Development with Unity3D Inside/Outside Unity3D
3GB3 Game Design Unity 3D Basics.
Done By: Ashlee Lizarraga Ricky Usher Jacinto Roches Eli Gomez
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
Sai Goud Durgappagari Dr. Yingcai Xiao
Collision Theory and Logic
Introduction to Event-Driven Programming
Event-driven programming
Human Computer Interaction
Ch 1. A Python Q&A Session Bernard Chen 2007.
Vijay Kumar Kolagani Dr. Yingcai Xiao
TerraForm3D Plasma Works 3D Engine & USGS Terrain Modeler
Programming HCI Yingcai Xiao Yingcai Xiao.
Chapter 1 Coding Introduction.
Event-driven Programming
Unit 20 Software Part 2.
Game Development Intro to Unreal Engine
A Prime Example of HCI Application
Topics Introduction Hardware and Software How Computers Store Data
Unit 20 Software Part 2.
AN INTRODUCTION TO COMPUTER GRAPHICS Subject: Computer Graphics Lecture No: 01 Batch: 16BS(Information Technology)
Chapter I Introduction
There are different types of translator.
Event loops.
Resources and interactions
Games Development 2 Tools Programming
Chapter 1 Introduction.
Presentation transcript:

Professional Environment HCI Programing in a Professional Environment with Unity3D Yingcai Xiao

Under the Hood Key components of HCI programming. How a professional programming environment can support HCI programming. We use Unity3D as an example. How to program for HCI in a professional IDE.

HCI Programming Essentials EDP: Event Driving Programming Event generators (input devices) Events Event loop Event mapping (compile time) Event dispatching (run time) Event handlers Computation Output

HCI Programming with Unity Event generators (input devices) Unity takes input from almost all input devices: CLI: keyboard GUI: mouse, touch screen NUI: Kinect, LeapMotion, Smart Phones

HCI Programming with Unity 2. Events 2.A. Virtual Events: Horizontal/Vertical Movements 2.B. Software Events: Collision 2.C. Idle Event: for background activities 2.D. User defined events: at any key points of computation.

HCI Programming in Unity 3. Event loop : Unity takes care of it. 3.A. At coding time: visual programming. Unity IDE takes all events. 3.B. At application run time: Application takes all events. API libraries built into the application contains the event loop. 3.C. When debugging, Unity IDE shares events with the application and the debugger. 3-way splits.

HCI Programming in Unity 4. Event mapping (compile time) 4.A. At coding time: visual programming 4.B. At application run time: can be done, but no API yet. 4.C. At debugging time, unity IDE maps and distributes events accordingly at runtime.

HCI Programming in Unity 5. Event dispatching (run time) At application run time: done by unity built-in runtime libraries. Visual Programming: Events distributed by the Unity IDE to IDE components, when coding; IDE and application, when simulating (play); the IDE, the application and the debugger when in debugging mode.

HCI Programming in Unity 6. Event handlers 6.A. Written by the application programmer. 6.B. Built-in by the Game Engine (Physics Engine, AI Engine, …) 6.C. Imported as part of the prefabricates.

HCI Programming in Unity 7. Computation 7.A. Written by the application programmer. 7.B. Built-in by the Game Engine (Physics Engine, AI Engine, …) 7.C. Imported as part of prefabricates.

HCI Programming in Unity 8. Output 8.A. Audio: sound bytes 8.B. Video: animated graphics 8.C. Haptic: force feedback

HCI Programming in Unity 8.B. Graphics Output: all taken care by Unity IDE at coding and debugging time and by unity libraries at application runtime. 8.B.1. Local: OpenGL 8.B.2. Remote: WebGL 8.B.3. Others: XR: VR/AR/MR

HCI Programming Essentials EDP: Event Driving Programming Event generators (input devices) Events Event loop Event mapping (compile time) Event dispatching (run time) Event handlers Computation Output

HCI Programming Essentials EDP: Event Driving Programming Project: directory and files for a specific game project. C:\Users\xiao\Documents\New Unity Project 1 \Assets (anything you can reuse) \Library (binary files)

Unity 3D IDE IDE: Integrated Development Environment Project: directory and files for a specific game project. C:\Users\xiao\Documents\New Unity Project 1 \Assets (anything you can reuse) \Library (binary files)

Unity 3D: Assets C:\Users\xiao\Documents\New Unity Project 1\Assets (anything you can reuse) \Standard Assets \OpenNI \Scripts \_Scenes \Materials \Artwork

Unity 3D: Standard Assets C:\Users\xiao\Documents\New Unity Project 1\Assets\Standard Assets Objects: (Look) \Tree \Terrain \Charater Lights: (Look) \Light Flares \Light Cookies Code: (Feel: control, interaction, animation, …) \Scripts

Unity 3D: Objects C:\Users\xiao\Documents\New Unity Project 1\Assets\Standard Assets\Charater: Prefab: (Predefined Objects) First Person, 3rd Person \Source: \Prototype (Look) Constructor.FBX \Materials (properties) \Textures (images) \Scripts (Feel: actions) Java Scripts: ThirdPersonController.js C#: MouseLook.cs

Unity 3D: Scripts Languages: Interpreted : Java Script Compiled: C# Usages: General: under Project\Scripts ExitOnEscape.cs Objects: attached to objects ThirdPersonController.js

Unity 3D: Library cashe: for speeding up processing metadata: data that describes data previews: for previewing scenes ScriptAssemblies: compiled object assemblies for scripts