Skip to content

Repository files navigation

Raylib OOP Workshop: Software Architecture in Game Development

A comprehensive programming workshop designed to teach students at Universiti Teknologi Malaysia (UTM) about software architecture best practices through practical game development using C++ and Raylib.

📚 Workshop Overview

This workshop bridges the gap between theoretical software engineering concepts and real-world application through game development. Participants will learn how to design, structure, and build scalable game projects using object-oriented programming principles and proven architectural patterns.

Learning Objectives

By completing this workshop, students will be able to:

  • ✅ Understand core software architecture principles (SOLID, DRY, KISS)
  • ✅ Apply design patterns in practical game development scenarios
  • ✅ Structure game projects using layered architecture and component-based design
  • ✅ Write clean, maintainable, and extensible C++ code
  • ✅ Implement proper separation of concerns in game systems
  • ✅ Work with Raylib graphics library for 2D game development
  • ✅ Build complete playable games with professional code structure

🎮 What You'll Build

Throughout the workshop, students will progressively build game projects that demonstrate:

  • Basic Architecture: Simple 2D games with proper class design
  • Advanced Patterns: Games using MVC, Entity-Component-System (ECS), or State patterns
  • Professional Structure: Complete projects with asset management, event systems, and configuration

🛠️ Prerequisites

  • C++ Knowledge: Comfortable with C++ fundamentals (classes, inheritance, pointers)
  • Basic OOP: Understanding of object-oriented programming concepts
  • Development Environment: Code editor or IDE (VS Code, Visual Studio, CLion, etc.)
  • Git: Familiarity with version control

⚙️ Setup & Installation

1. Clone the Repository

git clone https://github.com/omaribrahimsaad/raylib_oop_workshop.git
cd raylib_oop_workshop

About

Software architecture through game development — a C++ and raylib workshop taught to CS students at UTM

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages