PA199 - Advanced Game Development Approximate time schedule per week Semester: autumn 2023 1. Project setup: a. GIT repos and the unpacking application template. b. Getting familiar with the project structure: i. CMake files of the project ii. Project executable iii. Adding libraries (e.g., math library) iv. Unit testing via “gtest” v. Install targets. c. Students can already start with the Math library. 2. Math library 3. Camera class: a. Model, view, projection (perspective, ortho) matrices. b. Rendering coord axes: Render 3 lines of length 1m from the origin in +X, +Y, and +Z direction with colours RED, GREEN, and BLUE respectively. c. Ensure that resizing the window does not deform the scene (the rendered axes still are orthogonal and they still have the same unit length). d. HINT: Use “Learn OpenGL” web as the knowledge base. e. (Optional) move and rotate camera (plus zooming, orbit around the origin). 4. …continues… 5. Procedural building of geometry for ground, ball, bricks, and paddles. a. Build vertex and index buffer for each geometry. b. A vertex should have properties: i. Position ii. Normal (for lighting) iii. UV coordinates for the ground. 6. Procedural geometry continues 7. Add graphical effects: a. Gouraud (or Phong) lighting for all objects. b. Add texture to the ground. MILESTONE 8. Ball motion, paddles’ motion, ball vs. brick collisions a. Presentation on ball collision and response 9. …continues… 10. …continues… 11. Work on “above minimum requirements” features 12. …continues… 13. …continues… IMPORTANT NOTE: The time in a seminar is NOT sufficient for completion of the implementation for that week. You are supposed to finish the implementation as homework. Use the time in the seminars for questions so that you are heading the right direction for the work at home.