CS 425 Game Programming I Jan M. Allbeck. Outline  Introductions  Expectations  Tools and setup  Quick introduction to C++ and Visual Studio  What.

Slides:



Advertisements
Similar presentations
©2004 BLACKBOARD, INC. ALL RIGHTS RESERVED. Java Integrated Development Environments Heather Natour Senior Lead Engineer Blackboard Inc. July 18 th 10:15am.
Advertisements

Programming Paradigms and languages
Welcome to C++ Programming Workshop at The University of Texas at Dallas Presented by John Cole July 8-12, 2013.
Dan Waters, Academic Relations Manager, Microsoft.
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Lecture 1: Overview of Computers & Programming
CS0004: Introduction to Programming Introduction to Programming.
E-Glue Application Merging executables in WIN32 environment By : Gil Arbeli, Ran Didi Instructor : Gal Badishi Softlab – June 2006.
Copyright © 2002 W. A. Tucker1 Chapter 1 Lecture Notes Bill Tucker Austin Community College COSC 1315.
Move With Me S.W Graduation Project An Najah National University Engineering Faculty Computer Engineering Department Supervisor : Dr. Raed Al-Qadi Ghada.
Computer Science - I Course Introduction Computer Science Department Boston College Hao Jiang.
Systems Programming Course Gustavo Rodriguez-Rivera.
Python Jordan Miller and Lauren Winkleman CS 311 Fall 2011.
COMPUTER SCIENCE 10: INTRODUCTION TO COMPUTER SCIENCE Dr. Natalie Linnell with credit to Cay Horstmann and Marty Stepp.
Frank Rowe John Gaetano Chuck Figiel.  CryptoViz implements and visualizes the Data Encryption Standard (DES) algorithm.  DES was used by the government.
Object Oriented Software Development 1. Introduction to C# and Visual Studio.
2007 Adobe Systems Incorporated. All Rights Reserved. 1 Joe Berkovitz VP Engineering Allurent, Inc. Continuous Integration with Flex, FlexUnit, and Ant.
Your Interactive Guide to the Digital World Discovering Computers 2012.
CSE328:Computer Graphics OpenGL Tutorial Dongli Zhang Department of Computer Science, SBU Department of Computer Science, Stony.
Lab 8 – C# Programming Adding two numbers CSCI 6303 – Principles of I.T. Dr. Abraham Fall 2012.
Chapter 1 Coding Introduction.
Ch 1. Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Spring 2012.
Introduction COMP104: Fundamentals and Methodology.
COMP4070 Computer Graphics Dr. Amy Zhang. Welcome! 2  Introductions  Administrative Matters  Course Outline  What is Computer Graphics?
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Dynamic Web Pages (Flash, JavaScript)
CS 0004 –Lecture 1 Wednesday, Jan 5 th, 2011 Roxana Gheorghiu.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming 1.
CS Tutorial 1 Getting Started with Visual Studio 2012 (Visual Studio 2010 are no longer available on MSDNAA, please choose Visual Studio 2012 which.
Instructor: Tina Tian. About me Office: RLC 203A Office Hours: Wednesday 1:30 - 4:30 PM or .
Intro to Java & Processing. Review CS is about problem-solving CS is about problem-solving To write programs you must To write programs you must –Be able.
Introduction to Programming ICS2O Findlay. Learning Goals  We will learn  The definitions of a computer, program and programming language.  The different.
C O M P U T E R G R A P H I C S Jie chen Computer graphic -- OpenGL Howto.
Interactive Computer Graphics CS 418 – Spring 2015 TA: Zhicheng Yan, Sushma S Kini, Mary Pietrowicz Originally created by Mahsa Kamali.
CS 114 – Class 02 Topics  Computer programs  Using the compiler Assignments  Read pages for Thursday.  We will go to the lab on Thursday.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
1.1 Introduction to Programming academy.zariba.com 1.
DEV-05: Ratcheting up your OpenEdge™ Development Productivity Sunil S Belgaonkar Principal Software Engineer.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
About Me Microsoft MVP Intel Blogger TechEd Israel, TechEd Europe Expert C++ Book
Productivity Tools Ken Nguyen Department of Information Technology Clayton State University.
Using Xcode A Beginner’s Tutorial Erin Green. This tutorial will walk you through Xcode, a software development tool for Apple’s iOS applications – We.
Dr. Brian Durney Computing and Networking Sciences at UVU C S
Python – May 11 Briefing Course overview Introduction to the language Lab.
N from what language did C++ originate? n what’s input, output device? n what’s main memory, memory location, memory address? n what’s a program, data?
Ministry of Higher Education Sohar College of Applied Sciences IT department Comp Introduction to Programming Using C++ Fall, 2011.
What is Eclipse? Official Definition: Eclipse Evolution
CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 3, Lecture 1.
Controlling Computer Using Speech Recognition (CCSR) Creative Masters Group Supervisor : Dr: Mounira Taileb.
CPSC : Data-driven Computer Graphics Jinxiang Chai.
Funativity CS 426 Fall Outline Team members Tools Overview Programming Art Game Inspiration Game Description Demo.
COMPUTER III. Fundamental Concepts of Programming Control Structures Sequence Selection Iteration Flowchart Construction Introduction to Visual Basic.
The Development Process Compilation. Compilation - Dr. Craig A. Struble 2 Programming Process Problem Solving Phase We will spend significant time on.
CSCI 101 Rouda’s Sections.  Application Software  Microsoft Word  Photoshop  Business Software  Inventory and Shipping control  Financial Analysis.
1 Programming and problem solving in C, Maxima, and Excel.
Computer Programming - Key Concepts and Terms Computer Program – A computer program is a set of instructions for computer, arranged in logical order, using.
Chapter 1 Coding Introduction.
How to Program a Game: A Super Crash Course, A Talk or Something!
Hand Gestures Based Applications
CST 1101 Problem Solving Using Computers
Rapid Prototyping using UDK
Computer Software: Programming
Goals Give student some idea what this class is about
Pipeline Execution Environment
Dynamic Web Pages (Flash, JavaScript)
Programming COMP104: Fundamentals and Methodology Introduction.
Class Projects and Environment
Professional Environment
PRODUCTION PHASES CHANGES
CSCI 203: Introduction to Computer Science I
Presentation transcript:

CS 425 Game Programming I Jan M. Allbeck

Outline  Introductions  Expectations  Tools and setup  Quick introduction to C++ and Visual Studio  What are event loops?  Dark GDK tutorials 10/8/20152

Introductions 10/8/20153  Jan  New Assistant Professor in CS at GMU  From University of Pennsylvania (not Penn State)  Background in computer graphics and animation  Help develop game concentration  Most enjoy racing games    Office hours: Wed. 3:30-5:30pm in ENGR 5324  Ok?

Introductions 10/8/20154  You?  Have some programming experience!  Know C++?  Know SVN?  Know how to build a game?  Took cs325?  What is your name?  Favorite types of games?  What do you want from this class?  What kind of job do you want when you graduate?

Expectations 10/8/20155  Learn a new language  Gain experience  Object oriented design  Using existing libraries  Building largish software system  Working in groups  Working with someone else’s code  Learn software version management  Create segment for demo reel  Hear from real game developers  Class participation

10/8/20156  4 classes will be held else where:  Oct. 6 th  Nov. 10 th  Nov. 17 th  Nov. 24 th  Robinson 203B?  Assessment  Final  Working game

Demo of last year’s game 10/8/20157

What sort of game would you like to build? 10/8/20158  Feasible  Reasonable assets  Reasonable algorithms  Fun

What do you need to build a video game? 10/8/20159  Assets  Environment  Objects or models including characters  Animations  Code  Graphics  Loaders  Animation playback  Controllers  Collision detection and response  Cameras  Lights  Version control

Tools 10/8/  Dark GDK  SVN  Google code  Everyone needs an account  Blackboard?

Dark GDK 10/8/   Free game development environment  Harness the power and performance of C++

Dark GDK features 10/8/  Works with Microsoft Visual C Express  6 2D Image Formats Supported  5 3D Object File Formats Supported  Bone Based Animations  Binary Space Partitioning (BSP) Support  Polygon Collision and Response  Environment Mapping  Automatic Camera and Camera to Object Orientation Commands  Create, Position and Color Lights  Build, Texture and Map Landscapes

Dark GDK Demos 10/8/201513

SVN 10/8/   Subversion is an open source version control system.  Change management system  CVS?  Tortoise   A Subversion client, implemented as a windows shell extension.  Not an integration for a specific IDE

Google code 10/8/   Everyone will need a Google account  me your google user name  Open source  Project info  Downloads  Wiki  Issues  SVN

Moving on to C++ 10/8/201516

Introduction to VS and C++  Show how to get around VS  Show a bit of the C++ syntax  Talk briefly about header files and source files and libraries  Lie to you  Resources on wiki  Provide you with an example to work from  Get familiar with the lingo

Live VS Demo 10/8/201518

Types of Errors  Syntax/compiler  Linker  Run-time  Logic

Tips  Don’t be afraid to fail. Redesign.  Break it apart: data and methodology.  Think and draw things.  Talk it out with your teddy bear or action figure.  Compile as you go.  Iterative programming. Try and try again. Never really done.  Experience is key.  Test, test, test.  Things are going to build on top of each other.  Powerful.  There is more than one way to do things and there isn’t necessarily a right way.

Informal Software Engineering Concepts  Ease of programming  Simplicity  Elegancy  Space vs. Speed  Reusable and understandable  Robustness and expandability  Portability (OSX, WinXP, etc)  Philosophies and standard practices

Moving on to Event based Programming 10/8/201522

Synchronous Programs  Program WAITS for reads and writes to complete before continuing  Do stuff  Read  Write  Do stuff  Write  …  End

Asynchronous Programs – User Interaction  Interactive program runs in an infinite loop!  Program flow is created by events:  User actions (interactive devices)  Program actions (redraw)  Operating system actions (quit) while (not done) { event = system.GetEvent(); ProcessEvent(event); UpdateDisplay(); }

Dark GDK Hello Word! Demo You didn’t really think you were going to make it through a computer programming class without a “hello world” example? 10/8/201525