Difference between revisions of "GAM666/DPS901 Weekly Schedule 20123"

From CDOT Wiki
Jump to: navigation, search
 
(2 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
** Dialog Sample
 
** Dialog Sample
 
** Selection Sample
 
** Selection Sample
* [https://scs.senecac.on.ca/~gam666/pages/content/compo.html Component Design]
 
  
 
=== To Do ===
 
=== To Do ===
Line 24: Line 23:
 
== Week 2 - Sep 9 ==
 
== Week 2 - Sep 9 ==
 
=== This Week ===
 
=== This Week ===
 +
* [https://scs.senecac.on.ca/~gam666/pages/content/compo.html Framework and API Design]
 
* [https://scs.senecac.on.ca/~gam666/pages/content/direc.html COM and DirectX]
 
* [https://scs.senecac.on.ca/~gam666/pages/content/direc.html COM and DirectX]
* [https://scs.senecac.on.ca/~gam666/pages/content/displ.html Display Modes]
 
 
** The fwk4gps framework, its branches, and architecture
 
** The fwk4gps framework, its branches, and architecture
 
** Singleton class as an alternative to global variables
 
** Singleton class as an alternative to global variables
 
** Including interfaces rather than class definitions to minimize header file dependencies
 
** Including interfaces rather than class definitions to minimize header file dependencies
** Use the Direct3D COM object to interrogate the hardware for the installed options
 
  
 
=== To Do ===
 
=== To Do ===
 
# Download and install [http://www.microsoft.com/download/en/details.aspx?id=6812 DirectX SDK June 2010]
 
# Download and install [http://www.microsoft.com/download/en/details.aspx?id=6812 DirectX SDK June 2010]
# Download the Dialog Modes Sample from the [svn://zenit.senecac.on.ca/dpsgam/trunk Course Repository]. ''(userid: "dpsgam" password: blank [no password])''
 
  
 
=== Resources ===
 
=== Resources ===
Line 40: Line 37:
 
== Week 3 - Sep 16 ==
 
== Week 3 - Sep 16 ==
 
=== This Week ===
 
=== This Week ===
 +
* [https://scs.senecac.on.ca/~gam666/pages/content/displ.html Display Modes]
 +
** Use the Direct3D COM object to interrogate the hardware for the installed options
 
* [https://scs.senecac.on.ca/~gam666/pages/content/surfa.html Event Iteration]
 
* [https://scs.senecac.on.ca/~gam666/pages/content/surfa.html Event Iteration]
 
** Messaging, the main application window, and event iteration
 
** Messaging, the main application window, and event iteration
Line 45: Line 44:
 
** Housekeeping during re-configuration
 
** Housekeeping during re-configuration
 
** Use the Direct3DDevice9 COM object to access the display device
 
** Use the Direct3DDevice9 COM object to access the display device
* [https://scs.senecac.on.ca/~gam666/pages/content/dtech.html Background Image]
 
** Sprites
 
** Textures
 
** Color Model
 
** Use the Direct3DSprite COM object to manage the drawing of 2D images
 
** Use the Direct3DTexture9 COM object to hold an image on video memory
 
  
 
=== To Do ===
 
=== To Do ===
# Download the Event Iteration and Background Image Samples from the [svn://zenit.senecac.on.ca/dpsgam/trunk Course Repository]. ''(userid: "dpsgam" password: blank [no password])''
+
* Lecture Material
 +
# Download the Dialog Modes Sample from the [svn://zenit.senecac.on.ca/dpsgam/trunk Course Repository]. ''(userid: "dpsgam" password: blank [no password])''
 +
# Download the Event Iteration Sample from the [svn://zenit.senecac.on.ca/dpsgam/trunk Course Repository]. ''(userid: "dpsgam" password: blank [no password])''
 +
 
 +
* Project
 +
** If you don't have an account on this wiki, [http://zenit.senecac.on.ca/wiki/index.php?title=Special:UserLogin&type=signup&returnto=GAM666/DPS901_Weekly_Schedule_20123 Create an account]. Make sure that your userid '''is''' your seneca email id
 +
<!--
 +
* Install an IRC client, register a nickname on irc.freenode.net and join #seneca channel; check [http://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#The_Basics_of_IRC IRC Basics] for help
 +
* Optional: designate/create a blog for GAM666/DPS901 and [[Planet CDOT Feed List | add its '''filtered''' feed]] to [http://zenit.senecac.on.ca/~chris.tyler/planet/ Planet CDOT]
 +
-->
 +
** Add your name and information to [[GAM666/DPS901Student List 20123]]
 +
** Form Teams, identify team members (3-4 members) and add your team and its members to [[GAM666/DPS901 Teams 20123]] ''' Before Thursday 27th'''.
  
 
=== Resources ===
 
=== Resources ===
Line 60: Line 64:
 
== Week 4 - Sep 23 ==
 
== Week 4 - Sep 23 ==
 
=== This Week ===
 
=== This Week ===
 +
* [https://scs.senecac.on.ca/~gam666/pages/content/dtech.html Background Image]
 +
** Sprites
 +
** Textures
 +
** Color Model
 +
** Use the Direct3DSprite COM object to manage the drawing of 2D images
 +
** Use the Direct3DTexture9 COM object to hold an image on video memory
 
* Shades of Red application
 
* Shades of Red application
 
** for you to complete - use lecture notes to fill in the details
 
** for you to complete - use lecture notes to fill in the details
Line 70: Line 80:
 
** direct-device connectivity
 
** direct-device connectivity
 
*** portal-primitive pattern
 
*** portal-primitive pattern
* [https://scs.senecac.on.ca/~gam666/pages/content/sprit.html Sprites under User Control]
 
** user action-key mapping
 
* Projects
 
** [[Hints for Using SVN to collaborate on school projects]] (demo in class)
 
  
 
=== To Do ===
 
=== To Do ===
 
* Lecture Material
 
* Lecture Material
** Download the Sprites in Motion and Sprites under User Control Samples from the [svn://zenit.senecac.on.ca/dpsgam/trunk Course Repository]. ''(userid: "dpsgam" password: blank [no password])''
+
# Download the Background Image Sample from the [svn://zenit.senecac.on.ca/dpsgam/trunk Course Repository]. ''(userid: "dpsgam" password: blank [no password])''
 +
# Download the Sprites in Motion Sample from the [svn://zenit.senecac.on.ca/dpsgam/trunk Course Repository]. ''(userid: "dpsgam" password: blank [no password])''
  
 
* Workshop
 
* Workshop
Line 84: Line 91:
  
 
* Project
 
* Project
** If you don't have an account on this wiki, [http://zenit.senecac.on.ca/wiki/index.php?title=Special:UserLogin&type=signup&returnto=GAM666/DPS901_Weekly_Schedule_20123 Create an account]. Make sure that your userid '''is''' your seneca email id
+
** Bringing the Course Wiki Up To Date
<!--
+
*** Create Project Page for Your Team with Repository Number
* Install an IRC client, register a nickname on irc.freenode.net and join #seneca channel; check [http://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#The_Basics_of_IRC IRC Basics] for help
+
*** Ensure that all links on the Student List page are working
* Optional: designate/create a blog for GAM666/DPS901 and [[Planet CDOT Feed List | add its '''filtered''' feed]] to [http://zenit.senecac.on.ca/~chris.tyler/planet/ Planet CDOT]
+
** Start the draft of your game proposal
-->
+
** Download the Framework and Change the Caption to your Team Name
** Add your name and information to [[GAM666/DPS901Student List 20123]]
 
** Form Teams, identify team members (4-5 members) and add your team and its members to [[GAM666/DPS901 Teams 20123]] ''' Before Thursday 29th'''.
 
  
 
=== Resources ===
 
=== Resources ===
Line 111: Line 116:
 
== Week 5 - Sep 30 ==
 
== Week 5 - Sep 30 ==
 
=== This Week ===
 
=== This Week ===
* Review
+
* [https://scs.senecac.on.ca/~gam666/pages/content/sprit.html Sprites under User Control]
** Windows Programming
+
** user action-key mapping
*** Windows Functions (WinMain, EnableWindow, AdjustWindowRectEx, SendDlgItemMessage, GetDlgItem, RegisterClass, DialogBox (macro), DestroyWindow, CreateWindow, ShowWindow, UpdateWindow, PeekMessage, TranslateMessage, PostMessage, DispatchMessage, Setcursor, PostQuitMessage, DefWindowProc, WaitMessage, MessageBox)
+
* Projects
*** Window Procedures
+
** [[Hints for Using SVN to collaborate on school projects]] (demo in class)
** COM Technology
 
** Direct3D
 
*** Direct3D COM Object
 
*** Direct3D Display Device COM Object
 
*** Direct3D Texture COM Object
 
** Game Programming Aspects
 
*** Singletons and Interfaces
 
*** Event Iteration, Messages, and Timing
 
*** Re-Configuration, Loss and Restoration of Focus
 
*** Design, Coordination, Graphic Representation
 
*** Colour and Backbuffering
 
*** Action-Key Mapping
 
 
<!--
 
<!--
 
* [https://scs.senecac.on.ca/~gam666/pages/content/heads.html Heads Up Display]
 
* [https://scs.senecac.on.ca/~gam666/pages/content/heads.html Heads Up Display]
 
** Use the Direct3DFont COM object to draw the font for a text item on the HUD
 
** Use the Direct3DFont COM object to draw the font for a text item on the HUD
 
-->
 
-->
* Projects
 
** Bringing the Course Wiki Up To Date
 
*** Create Project Pages for Your Team
 
*** Ensure that all links on the Student List page are working
 
** Start the draft of your game proposal
 
 
* [https://scs.senecac.on.ca/~gam666/pages/content/2dmat.html 2D Mathematics]
 
* [https://scs.senecac.on.ca/~gam666/pages/content/2dmat.html 2D Mathematics]
 
** Coordinate System
 
** Coordinate System
Line 149: Line 137:
 
# Add text to identify the motion of the second sprite on the HUD
 
# Add text to identify the motion of the second sprite on the HUD
 
-->
 
-->
 +
# Download the Sprites under User Control Sample from the [svn://zenit.senecac.on.ca/dpsgam/trunk Course Repository]. ''(userid: "dpsgam" password: blank [no password])''
 
# Work on your game proposal and schedule your team's appointment with your instructor ([http://zenit.senecac.on.ca/wiki/index.php/GAM666/DPS901_Project_requirements_20113#Appointment_Schedule_for_Proposal_Acceptance click here to book an appointment])
 
# Work on your game proposal and schedule your team's appointment with your instructor ([http://zenit.senecac.on.ca/wiki/index.php/GAM666/DPS901_Project_requirements_20113#Appointment_Schedule_for_Proposal_Acceptance click here to book an appointment])
  
Line 166: Line 155:
 
* [https://scs.senecac.on.ca/~gam666/pages/content/2dmat.html 2D Mathematics (continued)]
 
* [https://scs.senecac.on.ca/~gam666/pages/content/2dmat.html 2D Mathematics (continued)]
 
** Matrix transformations
 
** Matrix transformations
* [https://scs.senecac.on.ca/~gam666/pages/content/3dmat.html 3D Mathematics]
 
** Coordinate Systems
 
** Vectors
 
** Transformations
 
*** World Transformations
 
*** Camera Transformations
 
*** Projection Transformations
 
** Math Library
 
** Direct3D Utilities
 
* [https://scs.senecac.on.ca/~gam666/pages/content/basic.html Graphics Primitives]
 
** Graphics Primitive display paradigm
 
** Vertex buffers
 
** Implementing world, view, and projection transformations
 
  
 
=== To Do ===
 
=== To Do ===
Line 206: Line 182:
 
=== This Week ===
 
=== This Week ===
  
* [https://scs.senecac.on.ca/~gam666/pages/content/3dmat.html 3D Mathematics (continued)]
+
* [https://scs.senecac.on.ca/~gam666/pages/content/3dmat.html 3D Mathematics]
 +
** Coordinate Systems
 +
** Vectors
 
** Transformations
 
** Transformations
 
*** World Transformations
 
*** World Transformations
Line 213: Line 191:
 
** Math Library
 
** Math Library
 
** Direct3D Utilities
 
** Direct3D Utilities
* [https://scs.senecac.on.ca/~gam666/pages/content/basic.html Graphics and Cameras]
 
** Graphics Primitive display paradigm
 
** Vertex buffers
 
** Implementing world, view, and projection transformations
 
 
* Mid-Term Test
 
* Mid-Term Test
  
 
=== To Do ===
 
=== To Do ===
 
+
# Study for Mid-Term Test
# Checkout Graphics
 
# Run Graphics Sample
 
# Create a Pyramid Graphic and introduce several Pyramid Objects into the Design object
 
  
 
=== Resources ===
 
=== Resources ===
Line 234: Line 205:
 
=== This Week ===
 
=== This Week ===
  
* [https://scs.senecac.on.ca/~gam666/pages/content/basic.html Graphics and Cameras (coninued)]
+
* [https://scs.senecac.on.ca/~gam666/pages/content/basic.html Graphics and Cameras]
 +
** Graphics Primitive display paradigm
 +
** Vertex buffers
 +
** Implementing world, view, and projection transformations
 
** Vertex Data
 
** Vertex Data
 
** Vertex Lists
 
** Vertex Lists
Line 241: Line 215:
 
**** Capabilities
 
**** Capabilities
 
*** APIGraphic
 
*** APIGraphic
* [https://scs.senecac.on.ca/~gam666/pages/content/3dren.html Visibility]
 
** Culling Techniques
 
*** Occlusion culling
 
**** Painter's algorithm
 
**** Depth Buffering
 
** Direct3D Implementation
 
  
 
=== To Do ===
 
=== To Do ===
Line 254: Line 222:
 
## Run the Graphic Sample
 
## Run the Graphic Sample
 
## Code a CreatePyramid function for the Graphic Sample using the CreateBox function as a 'template'
 
## Code a CreatePyramid function for the Graphic Sample using the CreateBox function as a 'template'
# Visibility
 
## Checkout the Visibility Sample
 
## Run the Visibility Sample
 
## Add some objects in the distance and add an action to the framework that toggles from Z-buffering to W-Buffering to no buffering
 
  
 
=== Resources ===
 
=== Resources ===
Line 268: Line 232:
 
=== This Week ===
 
=== This Week ===
  
* [https://scs.senecac.on.ca/~gam666/pages/content/heads.html Heads Up Display]
+
* [https://scs.senecac.on.ca/~gam666/pages/content/3dren.html Visibility]
** Programming Issues
+
** Culling Techniques
** Direct3D
+
*** Occlusion culling
*** Display
+
**** Painter's algorithm
*** APIText
+
**** Depth Buffering
** Design
+
** Direct3D Implementation
*** Text Class
 
*** Coordination
 
 
* [https://scs.senecac.on.ca/~gam666/pages/content/light.html Lighting]
 
* [https://scs.senecac.on.ca/~gam666/pages/content/light.html Lighting]
 
** Light Components
 
** Light Components
Line 289: Line 251:
 
=== To Do ===
 
=== To Do ===
  
# Heads Up Display
+
# Visibility
## Checkout Heads Up Display
+
## Checkout the Visibility Sample
## Run Heads Up Display Sample
+
## Run the Visibility Sample
## Add some text to the sample
+
## Add some objects in the distance and add an action to the framework that toggles from Z-buffering to W-Buffering to no buffering
 +
 
 
# Lighting
 
# Lighting
 
## Checkout Lighting
 
## Checkout Lighting
Line 303: Line 266:
 
** [http://msdn.microsoft.com/en-us/library/ MSDN Library]
 
** [http://msdn.microsoft.com/en-us/library/ MSDN Library]
  
<!--
+
== Week 10 - Nov 11 ==
 +
 
 +
=== This Week ===
 +
 
 
* [https://scs.senecac.on.ca/~gam666/pages/content/textu.html Texturing]
 
* [https://scs.senecac.on.ca/~gam666/pages/content/textu.html Texturing]
 
** Texture Coordinates
 
** Texture Coordinates
Line 322: Line 288:
 
**** Graphic Element
 
**** Graphic Element
 
**** DeviceTexture Element
 
**** DeviceTexture Element
 +
* [https://scs.senecac.on.ca/~gam666/pages/content/heads.html Heads Up Display]
 +
** Programming Issues
 +
** Direct3D
 +
*** Display
 +
*** APIText
 +
** Design
 +
*** Text Class
 +
*** Coordination
  
 
=== To Do ===
 
=== To Do ===
  
# Checkout 9-Lighting
+
# Heads Up Display
# Run Lighting Sample
+
## Checkout Heads Up Display
# Checkout 10-Texturing
+
## Run Heads Up Display Sample
 +
## Add some text to the sample
 +
# Checkout Texturing
 
# Run Texturing Sample
 
# Run Texturing Sample
  
Line 335: Line 311:
 
** [http://msdn.microsoft.com/en-us/library/ MSDN Library]
 
** [http://msdn.microsoft.com/en-us/library/ MSDN Library]
  
-->
+
== Week 11 - Nov 18 ==
 +
 
 +
=== This Week ===

Latest revision as of 21:57, 29 August 2012


GAM666/DPS901 | Weekly Schedule | Student List | Project Requirements | Teams and their Projects | Student Resources


Weekly Schedule 20123

Week 1 - Sep 2

This Week

To Do

  1. Download Visual Studio 2010 from ACS and install it on your local computer.
  2. Download Tortoise SVN and install it on your local computer.
  3. Download the Dialog and Selection Samples from the Course Repository. (userid: "dpsgam" password: blank [no password])
    • Run Dialog Sample
    • Run Selection Sample

Resources

Week 2 - Sep 9

This Week

  • Framework and API Design
  • COM and DirectX
    • The fwk4gps framework, its branches, and architecture
    • Singleton class as an alternative to global variables
    • Including interfaces rather than class definitions to minimize header file dependencies

To Do

  1. Download and install DirectX SDK June 2010

Resources

Week 3 - Sep 16

This Week

  • Display Modes
    • Use the Direct3D COM object to interrogate the hardware for the installed options
  • Event Iteration
    • Messaging, the main application window, and event iteration
    • Housekeeping during loss and restoration of focus
    • Housekeeping during re-configuration
    • Use the Direct3DDevice9 COM object to access the display device

To Do

  • Lecture Material
  1. Download the Dialog Modes Sample from the Course Repository. (userid: "dpsgam" password: blank [no password])
  2. Download the Event Iteration Sample from the Course Repository. (userid: "dpsgam" password: blank [no password])

Resources

Week 4 - Sep 23

This Week

  • Background Image
    • Sprites
    • Textures
    • Color Model
    • Use the Direct3DSprite COM object to manage the drawing of 2D images
    • Use the Direct3DTexture9 COM object to hold an image on video memory
  • Shades of Red application
    • for you to complete - use lecture notes to fill in the details
    • reviews the DirectX material covered to date
  • Sprites in Motion
    • timing
      • upper limit on drawing rate
    • model coordination
      • coordinator-primitive pattern
    • direct-device connectivity
      • portal-primitive pattern

To Do

  • Lecture Material
  1. Download the Background Image Sample from the Course Repository. (userid: "dpsgam" password: blank [no password])
  2. Download the Sprites in Motion Sample from the Course Repository. (userid: "dpsgam" password: blank [no password])
  • Workshop
    • Download the ShadesOfRed Sample from the Course Repository. (userid: "dpsgam" password: blank [no password])
      • Complete the coding for this Sample
  • Project
    • Bringing the Course Wiki Up To Date
      • Create Project Page for Your Team with Repository Number
      • Ensure that all links on the Student List page are working
    • Start the draft of your game proposal
    • Download the Framework and Change the Caption to your Team Name

Resources

Week 5 - Sep 30

This Week

To Do

  1. Add a background image to the ShadesOfRed sample
  2. Add a sprite in motion to the ShadesOfRed sample
  3. Add a second moving sprite to the Sprite in Motion sample
  4. Download the Sprites under User Control Sample from the Course Repository. (userid: "dpsgam" password: blank [no password])
  5. Work on your game proposal and schedule your team's appointment with your instructor (click here to book an appointment)

Resources

Week 6 - Oct 7

This Week

To Do

  • Practice transforming a vector using a matrix
  • Practice matrix multiplication
  • Workshop Exercise
    • Checkout the SimpleSprites sample on the repository
    • Add the missing code to this sample - three sprite image files are included
    • Draw/Move the three sprite images down and to the right on the screen
    • When the three images fall off the screen start drawing them at the other end
    • Add suspend logic to handle loss of focus
    • Refer to the DirectX documentation for descriptions of the function calls

Resources

Week 7 - Oct 14

This Week

  • 3D Mathematics
    • Coordinate Systems
    • Vectors
    • Transformations
      • World Transformations
      • Camera Transformations
      • Projection Transformations
    • Math Library
    • Direct3D Utilities
  • Mid-Term Test

To Do

  1. Study for Mid-Term Test

Resources

  • Lecture Material
    • DirectX documentation as installed on your local computer
    • MSDN Library

Week 8 - Oct 28

This Week

  • Graphics and Cameras
    • Graphics Primitive display paradigm
    • Vertex buffers
    • Implementing world, view, and projection transformations
    • Vertex Data
    • Vertex Lists
    • Direct3D Implementation
      • Display
        • Capabilities
      • APIGraphic

To Do

  1. Graphic and Camera
    1. Checkout the Graphic Sample
    2. Run the Graphic Sample
    3. Code a CreatePyramid function for the Graphic Sample using the CreateBox function as a 'template'

Resources

  • Lecture Material
    • DirectX documentation as installed on your local computer
    • MSDN Library

Week 9 - Nov 4

This Week

  • Visibility
    • Culling Techniques
      • Occlusion culling
        • Painter's algorithm
        • Depth Buffering
    • Direct3D Implementation
  • Lighting
    • Light Components
    • Light Types
    • Programming Issues
    • Direct3D
      • Display
      • APILight
    • Design
      • Light Class
      • Coordination

To Do

  1. Visibility
    1. Checkout the Visibility Sample
    2. Run the Visibility Sample
    3. Add some objects in the distance and add an action to the framework that toggles from Z-buffering to W-Buffering to no buffering
  1. Lighting
    1. Checkout Lighting
    2. Run Lighting Sample
    3. Add a spotlight to the sample

Resources

  • Lecture Material
    • DirectX documentation as installed on your local computer
    • MSDN Library

Week 10 - Nov 11

This Week

  • Texturing
    • Texture Coordinates
    • Magnification
    • Minification
    • Sampling
      • Nearest-Neighbour
      • BiLinear
      • Anisotropic
    • Model Branch
      • Scene Component
        • Texture Element
      • Design Component
    • Direct Device Branch
      • Graphics Card Component
        • Display Portal
        • VertexList Element
        • Graphic Element
        • DeviceTexture Element
  • Heads Up Display
    • Programming Issues
    • Direct3D
      • Display
      • APIText
    • Design
      • Text Class
      • Coordination

To Do

  1. Heads Up Display
    1. Checkout Heads Up Display
    2. Run Heads Up Display Sample
    3. Add some text to the sample
  2. Checkout Texturing
  3. Run Texturing Sample

Resources

  • Lecture Material
    • DirectX documentation as installed on your local computer
    • MSDN Library

Week 11 - Nov 18

This Week