OpenGL Final Lab Projects – Descriptions and
Guidelines
This document provides an overview of selected OpenGL beginner-level final
project ideas. Each project includes objectives, features, concepts covered, and
optional extensions for further exploration.
1. Simple Tetris Game
Objective:
Create a basic Tetris clone using colored 2D blocks that fall, stack, and clear
rows.
Core Features: - Grid-based layout (e.g., 10x20) - Falling tetrominoes con-
trolled by keyboard input - Row clearing when full - Game over when blocks
reach the top
OpenGL Concepts: - Drawing colored rectangles (via vertex data or instanc-
ing) - Transformations (translation to drop blocks) - Time-based animation
(glfwGetTime) - Keyboard input handling (GLFW)
Optional Extensions: - Next block preview - Increasing speed over time -
Score counter
2. Basic Drawing Program
Objective:
Create a canvas where users can draw by clicking or dragging the mouse.
Core Features: - 2D grid or canvas - Mouse input to place pixels, circles, or
rectangles - Color selection via keys or a basic UI - Option to clear/reset canvas
OpenGL Concepts: - Mouse input (glfwSetMouseButtonCallback) - Dy-
namic buffer updates or texture manipulation - Basic UI with colored quads
Optional Extensions: - Save drawing as an image (advanced) - Brush size
control
3. Simple Brick Breaker Game (Breakout)
Objective:
Recreate the classic Breakout game with a paddle, ball, and breakable bricks.
Core Features: - Paddle controlled by keyboard - Bouncing ball with simple
physics - Bricks that disappear when hit - Game over and reset logic
1
OpenGL Concepts: - Transformations for ball and paddle - Collision detec-
tion (AABB) - Drawing multiple colored rectangles - Time-based movement
Optional Extensions: - Multiple levels - Power-ups (e.g., larger paddle, multi-
ball)
4. Simple 2D Snake Game
Objective:
Implement a playable Snake game on a fixed grid.
Core Features: - Snake movement (grid-based, directional) - Apple/food gen-
eration - Snake growth and self-collision detection - Game reset on death
OpenGL Concepts: - Drawing a grid of rectangles - State tracking (snake
body, direction) - Timed updates - Keyboard input
Optional Extensions: - Difficulty levels - Sound effects (optional via library)
5. Simple Tic Tac Toe Game
Objective:
Create a fully playable 2-player Tic Tac Toe game.
Core Features: - 3x3 grid drawn with lines or rectangles - Mouse clicks to
place X or O - Check win/draw state - Restart game button
OpenGL Concepts: - Drawing simple 2D shapes - Mouse input (click-to-grid
conversion) - Game state logic
Optional Extensions: - Basic UI elements (text, score) - AI opponent (for
more advanced students)
6. 3D or 2D Solar System Simulation
Objective:
Visualize the orbits of planets around a sun using rotation and scaling.
Core Features: - A sun and multiple planets rotating in circular orbits -
Differently sized/colored planets - Real-time animation with varying speeds -
Optional labels or orbital rings
OpenGL Concepts: - Matrix transformations (translate, rotate, scale) -
Timer-based animation - Camera movement (for 3D version) - VAOs and VBOs
for different bodies
2
Optional Extensions: - Add moons orbiting planets - 3D camera orbit with
mouse - Realistic orbital mechanics (more advanced)