This project is a 3D game developed using OpenGL. The arena layout, character movement, and game logic are based on definitions extracted from an SVG file.
The game takes place in a 3D hollow arena represented by a cuboid. The player and opponents are positioned based on an SVG file. The game implements movement, collision detection, and lighting with a point light centered at the top of the arena.
- Blue rectangle: arena (playable area)
- Black rectangles: obstacles
- Green circle: player's starting position
- Red circles: opponents' starting positions
- C++17 or higher
- OpenGL 3.3+
- GLFW
- GLEW or GLAD
- GLM
- CMake 3.10+
make clean
make all
./trabalhocgEnsure all dependencies are installed on your system.
W,A,S,D— Move playerMouse— Rotate camera
The arena is illuminated with a point light positioned at the center top of the arena. The lighting follows the Phong model, with ambient, diffuse, and specular components.
- The window size is 500x500 pixels.
- Window resizing is not handled.
Arena— Loads and represents the environment from SVGCharacter— Represents the playerOpponent— Represents enemiesObstacle— Scene elements that block movement
The SVG defines:
- Arena dimensions
- Object positions
- Layout of obstacles and characters
The SVG parser converts elements into 3D entities in the game world.


