Interactive Real-Time Graphics Applications

Special Topics Course - Spring 2001

Instructor: Nicholas Pappas

Class: Wed 6:20 pm - 9:00 pm, MAIN Building Rm. 414

Office Hours: Wednesdays 5pm - 6pm, CIWW 419

(also by appointment)

  Email: pappas@cs.nyu.edu  office phone (212) 998-3301

The course will cover writing interactive two-dimensional graphics programs, utilizing the DirectX 8.0 DirectGraphics and DirectAudio libraries with Visual Basic, as well as, time permitting, programming interactive graphical network applications in Java. Topics covered will include design and gameplay issues, drawing animated graphics, user interfaces, collision detection and other mathematically relevant concepts, as well as inter-application communications.

Strong programming skills are required as well as familiarity with Windows.  Programming will be done almost entirely on the Windows platform.

Be prepared for a lot of programming as well as lot of reading. Most of the emphasis will be on Visual Basic and DirectX 8.0.  Java programming will play a significantly smaller role.

Note: DirectX 8.0 is relatively new and includes a redesign of several libraries.  There is no up-to-date documentation for DirectX 8.0 other than that provided with the DirectX 8.0 CD (to be distributed to you) so there will be a lot of reading of documentation on the CD.  On the plus side, at least you will be working with the current version of the libraries, not the obsolete version.

There will be roughly 4 or 5 homeworks, a midterm, a final project, as well as a final.

POLICY ON CHEATING:  You cheat, you fail.  You help someone cheat, you fail.  Administration action may also be expected.  Cheating on homeworks is copying all or part of another student's work or allowing another student to copy all or part of yours.  Copying code from other resources (for example, but not limited to, non-students, books, magazines, the Internet, etc.) is also cheating.  While you are free to discuss GENERAL principles and possible solutions, you are to DO YOUR OWN WORK.

Please check this page periodically for updates.

The COURSE SYLLABUS is located at
Note that the syllabus will very likely change as the course progresses, so please check it periodically or when instructed to do so.

WED. MAY 2 8:00 PM - 9:50 PM Room: 405 MAIN Building

Cumulative- everything we've covered except the last two classes on 3D-Direct3D (i.e. up to and including Class Notes 11, IterRTG11.ppt)

25 short answer questions

Open Book, but no electronics (e.g. no laptops, PDA's, VR Helmets, etc. - I may allow an abacus but don't count on it)


    Due Date
1.  Assignment 1 Wed., Jan. 31 6 PM Solution
2.  Assignment 2 Wed., Feb. 14 6 PM
3.  Assignment 3 Wed., Mar. 21 6 PM
4.  Assignment 4 MON., April 16 6 PM
5.  Assignment 5 FRI., MAY 4 6 PM *NO LATES*

Note for HW 5:  If you are interested in doing this email me and I will let you know if you are eligible.  To assist you in evaluating, here is roughly how hw 5 may help you depending on your average:

4-Assignments Average
Assignment 5 Grade
Total Grade Increase 
(points out of 100)

Keep in mind that this may not help you get out of a grading range.  For example, if you would have total grade of 85, B+, without HW 5 and you get 100 on HW 5, your total grade would be 85.6, not enough to get you to 89, A-.  So judge carefully whether it will make a difference for you.

Class notes (Microsoft Powerpoint necessary for viewing)

Notes I Classes 1 and 2
Notes II Class 3
Notes III Classes 4 and 5
Notes IV Classes 6
Notes V Class 7
Notes VI Classes 8 and 9
Events Sample VB Code (Class 9)
Notes VII Class 10
Sounds Sample VB Code (Class 10)
Notes VIII Class 11

Final Project:

Final Project Plan Information Due March 7th, 6 PM

Some sample midterm questions:

 Sample Midterm Questions

DirectDraw Documentation (Microsoft Word necessary for viewing)

DirectDraw Documentation (zipped)

IMPORTANT: Read only the General Subject Headings and paragraphs headed by [Visual Basic,...]- i.e. do not read the [C++]-only paragraphs.

Accordingly, the actual reading is less than it looks.  Also, this is a summary of what we have already covered for the first midterm.

pp. 3, 5-15,
Skim pp. 15-19,
"The Direct Draw Object," pp. 21-25
"Surfaces," pp. 28-41
"Flipping Surfaces," pp. 45-47
"Blitting to Surfaces," pp. 47-55  <---- REVISED
"Transparent Blitting," pp. 55-60
"Losing and Restoring Surfaces," p. 60 and p. 64 (top only)
Skim "Enumerating Surfaces," pp. 66-67
"Accessing Surface Memory Directly," p.70 (middle ) - 71
"Palettes," pp. 106-109
"Clippers," pp. 109-113 (middle),  pp.115-116 (middle)
"Using DirectDraw Palettes in Windowed Mode," pp. 130-132, 134-136 (middle)
Triple-Buffering Example on pp. 149 (bottom) - 150 (middle)

VB Tutorials pp. 192-197 (Tutorial 1) and 197-202 (Tutorial 2)

Required textbooks:

Microsoft Visual Basic 6.0 Programmer's Guide
Author and Publisher: Microsoft (Editor & Publisher)
Edition: (Yr. or No.): August, 1998
ISBN Number: 1572318635

Java In A Nutshell
Author and Publisher: David Flanagan, O'Reilly & Associates
Edition: (Yr. or No.): November 1999
ISBN Number: 1565924878

Optional textbooks: (These are very optional)

Learn Computer Game Programming with DirectX 7.0 [C++]
Ian Parberry, Ph.D., Wordware Publishing
Yr. 2000
ISBN Number: 1-55622-741-8

The Black Art of Java Game Programming ( (1996 JDK 1.1)
Joel Fan, Eric Ries & Calin Tenitchi, Waite Group Press
Yr. 1996
ISBN Number: 1-57169-043-3

Updated: April 26, 2001