Design of a 2D Graphics Engine By Joe Hallahan. What is an Engine? Software engine: core of the program Internal as opposed to visible Others (physics,

Slides:



Advertisements
Similar presentations
Programming with OpenGL - Getting started - Hanyang University Han Jae-Hyek.
Advertisements

Chapter 2: Graphics Programming
1 The Five Parts of an Information System
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Programming with OpenGL Part 1: Background Ed Angel Professor of Computer Science, Electrical.
Chapter 13 Embedded Systems
Informationsteknologi Monday, September 10, 2007Computer Systems/Operating Systems - Class 31 Today’s class Review of more C Operating system overview.
Game Mathematics & Game State The Complexity of Games Expectations of Players Efficiency Game Mathematics o Collision Detection & Response o Object Overlap.
LICENCE EDUCATION AND TRAFFIC SIMULATION (LETS). PROJECT MEMBERS ATIL İŞÇEN UĞUR ACAR UMUT EROĞUL ÇAĞLAR ATA A.ENGİN BAYRAK.
Programming with OpenGL Part 1: Background Mohan Sridharan Based on slides created by Edward Angel CS4395: Computer Graphics 1.
Chapter 3.6 Game Architecture. 2 Overall Architecture The code for modern games is highly complex With code bases exceeding a million lines of code, a.
Shading Languages By Markus Kummerer. Markus Kummerer 2 / 19 State of the Art Shading.
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.
Distribution of Marks Internal Sessional Evaluation Assignments – 10 Quizzes – 10 Class Participation Attendence – 5 Mid – Term Test – 25 External Evaluation.
Command line arguments. – main can take two arguments conventionally called argc and argv. – Information regarding command line arguments are passed to.
OGRE 3D. Object-oriented Graphics Rendering Engine “powers” your 3D graphics applications SDK vs. Game Engine User Input? Game State? Audio Files? Cross-platform.
Games Development 2 Entity / Architecture Review CO3301 Week
Using C++ and OpenGL George Georgiev Telerik Corporation
Antigone Engine Kevin Kassing – Period
3D Pong Boone Howard Chad Meyer Dr. Mitch Roth. C ++ Evolved from C, a general purpose programming language. The language used to write our program. Uses.
Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.
Josh Kilgore Obi Atueyi Tom Calloway Ye Tian 1 Software Engineering Spring 2010.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Lucas Bang Lecture 15: Linked data structures.
Real-time Generation of Random Tracks for 3D Racing Games Supervisor: Kurt Debattista Observer: Joe Cordina.
Using OpenGL in Visual C++ Opengl32.dll and glu32.dll should be in the system folder Opengl32.dll and glu32.dll should be in the system folder Opengl32.lib.
FLTK Tutorial.
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.
07 Coding Conventions. 2 Demonstrate Developing Local Variables Describe Separating Public and Private Members during Declaration Explore Using System.exit.
Comp371 Computer Graphics Lecturer : Dr. Adam Krzyzak Mehdi Saeidian-manesh
Programming with OpenGL Part 1: Background
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Programming with OpenGL Part 1: Background Ed Angel Professor of Computer Science, Electrical.
Syzygy Design overview Distributed Scene Graph Master/slave application framework I/O Device Integration using Syzygy Scaling down: simulators and other.
CD2012 Principles of Interactive Graphics Lecture 01 Introduction Abir Hussain (Rome: 6.33,Tel , Web:
A Computationally Efficient Framework for Modeling Soft Body Impact Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
Chapter 3.6 Game Architecture. 2 Overall Architecture The code for modern games is highly complex (can easily exceed 1M LOC) The larger your program,
MonoXNA 3D. Games Fun Relaxation Mind training Profitable business –World of Warcraft (successful game)
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
CSE3AGT – How to fail the Exam Paul Taylor Things to forget: What is Barry? A hamster or a Guinea Pig? The differences between Dx9 and Dx10 What.
Wiimote/Kinect Lab Midterm Update Senior Design December 2011, Group 16 Adviser: Dr. Tom Daniels Brenton Hankins Rick Hanton Harsh Goel Jeff Kramer.
CSE 232: C++ memory management Overview of Arrays Arrays are the simplest kind of data structure –One item right after another in memory (“contiguous range”
1 12/4/1435 h Lecture 2 Programs and Programming Languages.
A user level multi-threaded Particle simulator Supervisor: Joe Cordina Observer: Kurt Debattista.
Windows Programming, C.-S. Shieh, KUAS EC, Chapter 0 Overview.
NoufNaief.net TA: Nouf Al-harbi.
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
1 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 Programming with OpenGL Part 2: Complete Programs Ed Angel Professor.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
1 ICS103 Programming in C Lecture 8: Functions I.
Rigid Body Dynamics: A Graphical Simulation Eugene Paik
Threads. Thread A basic unit of CPU utilization. An Abstract data type representing an independent flow of control within a process A traditional (or.
Antigone Engine. Introduction Antigone = “Counter Generation” Library of functions for simplifying 3D application development Written in C for speed (compatible.
IT323 - Software Engineering 2 1 Tutorial 4.  List the main benefits of software reuse 2.
The V-Atlas Event Visualization Program J. Boudreau, L. Hines, V. Tsulaia University of Pittsburgh A. Abdesselam University of Oxford T. Cornelissen NIKHEF.
Modular Architecture for Computer Game Design Teddy McNeill TJHSST Computer Systems Lab
Introduction to Game Programming & Design III Lecture III.
Computer Graphics Lecture 1. Books D. Hearn, M. P. Baker, "Computer Graphics with OpenGL", 3rd Ed., Prentice Hall, 2003, ISBN
First appeared Features Popular uses Basic This language emphasises on ease of use, allowing general purpose programming to those with a small amount of.
Computer Graphics (Fall 2003) COMS 4160, Lecture 5: OpenGL 1 Ravi Ramamoorthi Many slides courtesy Greg Humphreys.
Computers’ Basic Organization
Chapter 1 Introduction.
Definitions, intro, history
Antigone Engine.
Introduction to Graphics Modeling
GCSE OCR 3 Memory Computer Science J276 Unit 1
Game Engines Non-game specific technology Game: Engine
Strings and Pointer Arrays
Title of Project Joseph Hallahan Computer Systems Lab
Programming with OpenGL Part 1: Background
Games Development 2 Entity / Architecture Review
Chapter 1 Introduction.
Presentation transcript:

Design of a 2D Graphics Engine By Joe Hallahan

What is an Engine? Software engine: core of the program Internal as opposed to visible Others (physics, database) excel at one task only, “software engine” is more general Emphasis on graphics

Benefits Reusable, safe Framework for program – everything else is specific/detail work

Purpose To create an engine using C++, OpenGL, and SDL that can simplify the process required for creating a graphical application by rendering graphics automatically and providing support for other general functions

Design - Tools C++ Fast, efficient SDL Free Makes many functions easier Works well with OpenGL Cross-platform

Design - Tools OpenGL 2D and 3D support Can be hard to learn/use Free, supported on most systems Really really fast

Design - Structure Engine.h contains declarations of variables, functions, classes, also includes external libraries Engine.cpp defines everything declared in Engine.h A third program can be used to test the engine, all that is really necessary is the main() method

Problems to Overcome Data structure – Array used – Holds Shapes – Only holds up to 100 objects

Testing #include "Engine.h" int main(int argc, char* argv[]){ Engine e; e.run(); return 0; }

Testing

Testing / Analysis 3 test programs Simple Test Bare minimum – no external program, just a main method Pong  Game, familiar  Simple, controls supported through SDL Engine Demo  Colors  Collisions

Conclusion Engine works correctly Performance mainly hardware dependent, should be about as efficient as a normal program made without using engine No performance loss

Expandability 3D support Sound More inputs More performance tweaks Better collision detection Will hurt performance in most cases Specialization

Bibliography -Development of a 3D Graphics Engine (Kassing) -Modular Architecture for Computer Game Design (McNeill) -Multi-threaded Game Engine (Tulip, Bekkema, Nesbitt) -Interactive 3D Geometry in OpenGL (Welsh) -FROG: The Fast \& Realistic OPENGL Displayer -Simple and rapid collision detection using multiple viewing volumes (Fan, Wan, Gao)