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.
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.
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
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
- 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
git clone https://github.com/omaribrahimsaad/raylib_oop_workshop.git
cd raylib_oop_workshop