Object Oriented Design. Goals  Feedback homework 8  Top Down Design: analyzing the requirements  Bottom Up Design: refactoring fundamental OpenGL functionality.

Slides:



Advertisements
Similar presentations
Chapter 4 Transforming and Distorting Objects. Objectives Transform objects Offset and outline paths Create compound paths Work with the Pathfinder panel.
Advertisements

CSE 457 Modeler Help Session Lovingly brought to you by: TA Steve.
The GIMP Simple features tutorial By Mary A White.
Integrated Imaging and Document Management System Product Demonstration.
Object Oriented Design. Goals  Bottom Up Design: refactoring fundamental OpenGL functionality  Game Engine 1.0 introduction.
Introduction to Java Programming, 4E
Object Oriented Design. Goals  Critiquing of designs  Presentations of designs and critiques.
Object Oriented Design. Goals  Using OpenGL as case study turning a blob anti pattern into an Object-Oriented Architecture  A Quick Introduction to.
Object Oriented Design. Goals  Examples of GL4Java: what can be done with OpenGL?  Forming groups: u Outline project u Formulate requirement for Game.
© 2010 Delmar, Cengage Learning Chapter 4: Creating Animation.
PHY281Introduction to JavaSlide 1 Introduction to Java In this section we will learn how how to use Java and write our first Java Applet:  The Java Development.
Systems Software Operating Systems.
Chapter 9 Collecting Data with Forms. A form on a web page consists of form objects such as text boxes or radio buttons into which users type information.
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 19 Other Graphics Considerations Review.
Tutorial 2: Working with Image Files. Objectives Session 2.1 Learn about file formats and their uses Change file type, file size, and resolution Examine.
Antigone Engine Kevin Kassing – Period
CSE 380 – Computer Game Programming Introduction ITS 102 – 3D Modeling for Games Blender's User Interface.
BUILDING RICH MEDIA ELEMENTS. Design Decisions Based on Design Specification  Following the design specification will ensure that the application is.
Chapter 1: Creating Java Programs
The NetBeans IDE CSIS 3701: Advanced Object Oriented Programming.
CDM105 Session 9 Macromedia FLASH MX 2004 Part 2 : Animation with Motion Tweening and Shape Tweening.
C O M P U T E R G R A P H I C S Jie chen Computer graphic -- OpenGL Howto.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
Java Applets. 2 Introduction to Java Applet Programs  Applications are stand alone programs executed with Java interpreter executed with Java interpreter.
Chapter 8 Introduction to HTML and Applets Fundamentals of Java.
3461A Readings from the Swing Tutorial. 3461A Overview  The follow is the Table of Contents from the trail “Creating a GUI with JFC/Swing” in the “The.
Jaeki Song ISQS6337 JAVA Lecture 03 Introduction to Java -The First Java Application-
University of Sunderland CDM105 Session 6 Dreamweaver and Multimedia Fireworks MX 2004 Creating Menus and Button images.
Introduction to Java Programming with Forte Y. Daniel Liang.
Web Games Programming An Introduction to Unity 3D.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
© 2011 Delmar, Cengage Learning Chapter 1 Getting to Know Illustrator.
Adobe Flash CS3 Revealed
1 Graphics CSCI 343, Fall 2015 Lecture 4 More on WebGL.
UFCFS D Technologies for the Web Unity 3D: Review of Topics and Related Concepts.
© 2011 Delmar, Cengage Learning Chapter 4 Creating Animations.
Chapter 4 Creating Animations. Chapter 4 Lessons 1.Create motion tween animations 2.Create classic tween animations 3.Create frame-by-frame animations.
Java Applets. 2 Introduction to Java Applet Programs Applications are ___________________ programs –executed with Java interpreter Applet is a small program.
CSC 205 – Java Programming II Applet. Types of Java Programs Applets Applications Console applications Graphics applications Applications are stand-alone.
Lecture 11: Exam Revision 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 718,  ex 2271  Coursework.
Learning Unity. Getting Unity
Sketchup For 3D Design Part 2: 3D Text.
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
2008/9/24 Kim, HyungSeok. HyungSeok Kim, Konkuk University Part I: Framework – 1. Windows creation – 2. Renderer – 3. Lights and Objects/Model loading.
Computer Graphics Chapter 6 Andreas Savva. 2 Interactive Graphics Graphics provides one of the most natural means of communicating with a computer. Interactive.
Yingcai Xiao Game Development with Unity3D. Outline IDE Engine Assets Tutorial Examples Inside.
CS324e - Elements of Graphics and Visualization Java 3D Intro.
UFCEK-20-3Web Games Programming Unity 3D: Review of Topics Publishing for the Web.
Using This PowerPoint This PowerPoint presentation assumes your Computer Science teacher has provided you with the InstallingJava folder, which contains.
© 2011 Delmar, Cengage Learning Chapter 10 Using ActionScript to Enhance User Experience.
Photoshop Image Slicing. Reasons to Image Slide To create links out of sliced images To optimise different areas. (flat areas of colour, such as logos,
Handle By, S.JENILA AP/IT
Creating a Java Application and Applet
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Debugging tools in Flash CIS 126. Debugging Flash provides several tools for testing ActionScript in your SWF files. –The Debugger, lets you find errors.
UFCFSU-30-13D Technologies for the Web An Introduction to Unity 3D.
Computer Graphics Imaging Lecture 13 and 14 UV Mapping.
Adobe Flash Professional CS5 – Illustrated Unit E: Optimizing and Publishing a Movie.
Yingcai Xiao Game Development with Unity3D Inside/Outside Unity3D.
Game Development with Unity3D
Applications Active Web Documents Active Web Documents.
Quick Intro to Unity Lecture 2.
Game Development with Unity3D Inside/Outside Unity3D
Layers in Adobe After Effect
3GB3 Game Design Unity 3D Basics.
Java programming lecture one
CS451Real-time Rendering Pipeline
Chapter 4.
Java Applets.
2D Shapes Rectangle Circle Triangle Rectangle. What shape is the door? Rectangle.
Presentation transcript:

Object Oriented Design

Goals  Feedback homework 8  Top Down Design: analyzing the requirements  Bottom Up Design: refactoring fundamental OpenGL functionality

The makings of the glutplane  Assumption: runtime environment is set up u Windows: GL4Java*.dlls installed u Mac: GL4Java*.zips installed in MRJClasses  Find file “glutplane.java” and “glutplane.html”  Install compile/link time environment u Windows: add GL4Java.jar to classpath u Mac: add GL4Java*.zips to project

Tools  Basic level tools u Javac (part of Sun’s JDK) u Jikes:  IDEs u Jbuilder (Windows, OS X) u CodeWarrior (Windows, OS X, OS 9, …)

Modify source  Edit “glutplane.java”  Replace 3 calls to add_plane(); with 20 calls u Hint: use a “for” loop instead of typing add_plane(); 20 times!  Compile/run/test  Upload binary files (.class) and.html file to Web server u glutplane.class u glutplane$planeobj.class u glutplane$glutplaneCanvas.class  Test applet on server  URL referring to html file.

More information  Provided by the Game Engine builders  /contra/installation.html /contra/installation.html  Chris Schenk:  Luke Swanson:

Top Down Requirement Analysis  Collect what the different applications/games need to have from the Game Engine  Danger: u Getting carried away u Creating specification that cannot be implemented (in time, within budget, …)

Requirement for Game engine  Camera aimed at character u Multiple cameras  Shapes  Aggregate shapes  Rotation of shapes and camera  Collision detection IIII  Clipping  Physics II u Particles  Text  Infinite backgrounds (repetitive textures, sky domes, …)  Foreground/messages/score keeping

Camera Control  Multiple cameras u Switching between cameras: no gui  Camera tracking (stay on object)  zoom  Multiple views at the same time  Independent control of camera

Shapes  Box, sphere, circle, rectangle, plane, line, point, cylinder, triangle strip,  Single / aggregate shapes  Rotation  Move in scene  Add textures to shape  Loading models u Load.obj files

Collision Detection iii  Detect collision of shapes and groups of shapes  Approximation with u spheres u Cubes

Clipping  no

Physics  Particles  Airplanes, skis, bikes  Simple gravity (would be nice)

Text  no

Backgrounds  Flat but repetitive  Sky domes, Sky boxes

Information panels  Score keeper  Output message  Dialogs (hard) u Use OpenGL, Swing or AWT?  Menus (hard) u Use OpenGL, Swing or AWT?

Bottom Up system design  Refactor existing functionality (the OpenGL mega blob) into service classes  Approach: look at instances of applications containing functionality that could be factored out of the application into a the middle ware layer => the Game Engine  Danger: u Feature oriented: contrast between cool and necessary functions

Refactoring textured square example  Basic structure of OpenGL application is give by init, display, and reshape  Look for code that, in generalized form could be pushed into game engine  => collect these operations and attributes in a class called glWindow

INIT  Collect a set of good initializations that make sense for most applications  Turn most features ON (lighting, texture mode)  In worst case application can overwrite or extend INIT

DISPLAY  Refactor display method into u preDisplay:  low level initializations that most applications would need anyway, e.g, clearing buffer.  Translating, rotating individual objects u mainDisplay: leave this to application to specialize u postDisplay:  Cleanup, error handling  Buffer swapping (to implement double buffering)

Factor out utility functions  Example: texture manager  Replace complex implementations of texture loading with single calls of texture managing functions located in middle ware (game engine)

Produce new application with middleware stuff removed

Homework  PROJECT: u Finish game proposal document u to Alex & Andri u Due: November 12  READING: u OpenGL Red book chapter 3; Viewing u u Due: November 12