Game Development in Android Disgruntled Rats LLC. Sean Godinez Brian Morgan Michael Boldischar

Similar documents
Introduction to Computer Graphics

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

GUI GRAPHICS AND USER INTERFACES. Welcome to GUI! Mechanics. Mihail Gaianu 26/02/2014 1

Performance Optimization and Debug Tools for mobile games with PlayCanvas

Computer Graphics on Mobile Devices VL SS ECTS

Beginning Android 4. Games Development. Mario Zechner. Robert Green

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

Workshop on Android and Applications Development

Web-Based Enterprise Data Visualization a 3D Approach. Oleg Kachirski, Black and Veatch

Lecture 1 Introduction to Android

How To Teach Computer Graphics

Jordan Jozwiak November 13, 2011

TEACHING GRAPHICS PROGRAMMING ON MOBILE DEVICES

Programming 3D Applications with HTML5 and WebGL

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

CSE 564: Visualization. GPU Programming (First Steps) GPU Generations. Klaus Mueller. Computer Science Department Stony Brook University

Optimization for DirectX9 Graphics. Ashu Rege

How To Develop For A Powergen 2.2 (Tegra) With Nsight) And Gbd (Gbd) On A Quadriplegic (Powergen) Powergen Powergen 3

Optimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August

Video Game Programming ITP 380 (4 Units)

Cross-Platform Game Development Best practices learned from Marmalade, Unreal, Unity, etc.

How To Understand The Power Of Unity 3D (Pro) And The Power Behind It (Pro/Pro)

Introduction to GPU Programming Languages

LibGDX játék fejlesztése és publikálása Google Play-en. Vörös Viktor, NNG

The power of root on Android emulators

Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

Android Development: Part One

Course Overview. CSCI 480 Computer Graphics Lecture 1. Administrative Issues Modeling Animation Rendering OpenGL Programming [Angel Ch.

Introduction Computer stuff Pixels Line Drawing. Video Game World 2D 3D Puzzle Characters Camera Time steps

Optimizing AAA Games for Mobile Platforms

INTRODUCTION TO RENDERING TECHNIQUES

ANDROID INTRODUCTION TO ANDROID

CS 528 Mobile and Ubiquitous Computing Lecture 2: Android Introduction and Setup. Emmanuel Agu

The Future Of Animation Is Games

Chapter 6 - The Scene Graph

Chapter 6 - The Scene Graph

Introduction to NaviGenie SDK Client API for Android

OMX, Android, GStreamer How do I decide what to use? 15 July 2011

Introduction to Computer Graphics

A Pipeline From COLLADA to WebGL for Skeletal Animation

Surface and Volumetric Data Rendering and Visualization

ANDROID DEVELOPER TOOLS TRAINING GTC Sébastien Dominé, NVIDIA

Android (Basic + Advance) Application Development

Realtime 3D Computer Graphics Virtual Reality

DEVELOPING MOBILE APPLICATIONS USING ANDROID

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Introduction to Game Programming. Steven Osman

JavaFX 3D Animation: Bringing Duke to Life

Web Based 3D Visualization for COMSOL Multiphysics

GPU(Graphics Processing Unit) with a Focus on Nvidia GeForce 6 Series. By: Binesh Tuladhar Clay Smith

A. OPENING POINT CLOUDS. (Notepad++ Text editor) (Cloud Compare Point cloud and mesh editor) (MeshLab Point cloud and mesh editor)

Технологии Java. Android: Введение. Кузнецов Андрей Николаевич. Санкт-Петербургский Государственный Политехнический Университет

Using WPF for Computer Graphics

GearVRf Developer Guide

Android and OpenGL. Android Smartphone Programming. Matthias Keil. University of Freiburg

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Getting started with Android and App Engine

Experiences with 2-D and 3-D Mathematical Plots on the Java Platform

CS 378: Computer Game Technology

Plug-in Software Developer Kit (SDK)

DATA VISUALIZATION OF THE GRAPHICS PIPELINE: TRACKING STATE WITH THE STATEVIEWER

OpenGL Performance Tuning

How To Learn To Program In Csc 406 Computer Graphics

The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended.

Windows Phone 7 Game Development using XNA

l What is Android? l Getting Started l The Emulator l Hello World l ADB l Text to Speech l Other APIs (camera, bitmap, etc)

Fundamentals of Computer Animation

Google Android Syllabus

Full version is >>> HERE <<<

Geo-Scale Data Visualization in a Web Browser. Patrick Cozzi pcozzi@agi.com

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

Introduction to Android

Android: Setup Hello, World: Android Edition. due by noon ET on Wed 2/22. Ingredients.

NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH MATAVENRATH@NVIDIA.COM SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA

BRINGING UNREAL ENGINE 4 TO OPENGL Nick Penwarden Epic Games Mathias Schott, Evan Hart NVIDIA

Computer Graphics Hardware An Overview

How To Develop Android On Your Computer Or Tablet Or Phone

Recent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005

Graduate presentation for CSCI By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

4VATARS PROJECT. Standard avatar specification for content creation in RealXtend

Finger Paint: Cross-platform Augmented Reality

Games Development Education to Industry. Dr. Catherine French Academic Group Leader Games Programming, Software Engineering and Mobile Systems

GPU Architecture. Michael Doggett ATI

Radeon HD 2900 and Geometry Generation. Michael Doggett

3D Tranformations. CS 4620 Lecture 6. Cornell CS4620 Fall 2013 Lecture Steve Marschner (with previous instructors James/Bala)

L20: GPU Architecture and Models

Table of Contents. Adding Build Targets to the SDK 8 The Android Developer Tools (ADT) Plug-in for Eclipse 9

GPU Profiling with AMD CodeXL

Developer Tools. Tim Purcell NVIDIA

ITG Software Engineering

INTERNSHIP REPORT CSC410. Shantanu Chaudhary 2010CS50295

Transcription:

Game Development in Android Disgruntled Rats LLC Sean Godinez Brian Morgan Michael Boldischar

Overview Introduction Android Tools Game Development OpenGL ES Marketing Summary Questions

Introduction Disgruntled Rats incorporated on March 31st, 2011. We are a small company that specializes in game development for mobile devices. Sean Godinez - Software Engineer - Graphics and C/C++ Michael Boldischar - Software Engineer - Java and Linux Brian Morgan - Music, Sound, Marketing, Business, and Advertising

Question! Who discovered quaternions and when?

Android Tools Eclipse - Integrated Development Environment (IDE) ADT - Android's Eclipse Plugin Ant (show off our build environment) http://www.disgruntledrats.com/?page_id=309 Why Ant? - Larger group projects The Eclipse IDE works well for one developer Can invoke Ant scripts from cron scripts Hudson - Automatic build tool Invokes Ant when new code is checked in Send emails when code doesn t compile Android SDK - includes ADB http://developer.android.com/sdk/installing.html

Sprites A sprite is a texture mapped to a quad. They can be animated by updating their position / texture coordinates over time. Basic Plants, grass, signs, etc Axial LOD Technique for far off mountains, castles, etc Screen-Aligned HUDs Text View Point Point Sprites => Particle Effects Clouds

World-Oriented Sprites Screen-Aligned & Axial Sprites

Sound We developed a sample sound project that builds and deploys with Ant. Follow the following link to our website to get started : http://www.disgruntledrats.com/?page_id=545 Let's read some code!

3D Models - Data Formats Data Formats Text-based Pros - easy to parse Cons - bloated model files Binary Pros - very compact, tightly packed data Cons - harder to parse, have you tried byte shifting in Java lately?

3D Models - File Types What are some of the file types? 3DS - Autodesk 3DS Max (.3ds) Pros - de-facto standard for modelling, hierarchical data Cons - all meshes are made from triangles, closed standard COLLADA Pros - open standard for transferring model data Cons -very complex, lots of elements and relationships, would take a long time to fully implement a parser, 3D Studio Max exports lose some animation data Milkshape, SketchUp, X3D, etc...

Question! Who's hotter than J-WOWW?

AI & Physics AI Behaviors Seek and Evade Cohesion and Separation Alignment A-Star & Dijkstra Search Algorithms Classical Mechanics Position and its derivatives Force

In Game User Interfaces Standard Android UI and widgets Pros - Library is already written for you! Cons -None Build Your Own - Orthographic Sprites, Font Textures, or Font Algorithms Pros - Build it once, apply it anywhere in a game (e.g. a newspaper, quests, etc...)! Cons - Time consuming process, fonts are not trivial

Version Checking You should check which version of OpenGL ES is supported by the current device.

Question! Who would win in a fight and why? Gordan Freeman Chuck Norris

Brass Tacks - Vertices What are they? "A point is represented by a set of floating-point numbers called a vertex" - OpenGL Red Book How do we get all the data associated with vertexes to the GPU? Remember these calls? Why are they a bad idea on a mobile device?

Vertex Buffers and Textures What is the best way to pack data? It depends. The Goal: Switch between buffers as little as possible during rendering. Separate buffers for vertex, normal, texture data: Tradeoff between simplicity and performance. Let's read some code! http://www.disgruntledrats.com/?page_id=545

Transformations Right Hand Rule vs Left Hand Rule Column Vector vs Row Vector Column Major vs Row Major Translation Rotation Scale 4x4 Transformation Matrix Rotation about arbitrary axis Quaternions Inverting Matrices Transpose of an Inverted Matrix Transformations in a Scene Graph OpenGL ES 2.0 does NOT have matrix stack Check out our website for a tutorial on scene graphs

4x4 Transformation Matrix

Question! Who's hotter than Jessica Alba?

Camera Projections (Orthographic, Perspective, Isometric) Constraints on Calculating Axis (Up x View) View Matrix transforms from World Space to Eye Space rotates (u,v,n) to align with world (x,y,z) translates to origin

OpenGL 1.x Graphics Pipeline

OpenGL 2.0 Graphics Pipeline

Other Considerations for OpenGL ES 1.0 versus 2.0 Android Support OpenGL ES 1.0 Supported since Android 1.0 OpenGL ES 2.0 Supported since Android 2.2 80% of devices now support Android 2.2 or greater 90% support 2.0 More devices are supporting OpenGL ES 2.0 every day

Question! What was the name of the end boss in World of Warcraft's Molten Core?

Vertex Shader

Primitive Assembly

Rasterization

Fragment Shader

Per-Fragment Operations

Shaders in Android Google does not currently have an Android emulator that supports OpenGL ES 2.0, but nvidia does! http://developer.nvidia.com/tegra-resources#tools Android Triangle Demo: http://developer.android. com/resources/samples/apidemos/src/com/example/android/apis/graphics/gles20trianglerenderer. html

Question! What is the game engine in the new Battlefield 3 FPS?

Marketing

Summary Game development is challenging. Lots of math. No one is hotter than Jessica Alba. You are probably excited to get home.

References Google Android SDK OpenGL ES 2.0 Programming Guide Real-Time Rendering, 3rd Edition University of Minnesota, CSCI 5107/5108 Android Versions http://developer.android. com/resources/dashboard/platform-versions.html http://developer.android. com/guide/topics/graphics/opengl.html http://developer.android. com/resources/dashboard/opengl.html Before vertex buffers http://nehe.gamedev. net/tutorial/your_first_polygon/13002/

References Continued WOW Picture http://www.wowwiki.com/ragnaros_%28tactics%29 Gordan Freeman http://www.rankopedia.com/candidatepix/40373.gif Chuck Norris http://www.amirmosadegh.com/wpcontent/uploads/2008/09/chuck_norris_0021.jpg Jessica Alba http://wallpaperpassion.com/upload/1236/jessica-alba-wallpaper.jpg J-WOWW http://www.jerseyshorefistpump.com/wpcontent/uploads/2011/04/jwoww-jenni-farley-jersey-shore-prphotos.jpg Battlefield 3 http://videogames.techfresh.net/battlefield-3-gameplay-trailer/

Questions?