raylib: teaching videogames programming
I teach videogames programming to people that have never written a single line of code. In less than 50 class-hours, they learn programming basis and code a simple game; including scene management, assets loading, audio playing, basic physics, basic IA... It's a real challenge for a student but probably more challenging as a teacher.
I've been working in the videogames industry for some years in different companies and a while ago I started teaching videogames programming in a private institution. I decided to start with C language, coding in Notepad++ and compiling with GCC. Programming is shown to students in raw mode, they learn about the importance of the compiler and how to write clean and organized code. First year of teaching, I evaluated several libraries/frameworks to use in my classes but none of them fit in my teaching methodology so, I decided to create my own videogames programming library: raylib.
raylib was created to teach videogames programming, designed to be simple and easy-to-use, with very intuitive functions naming: InitWindow(), BeginDrawing(), DrawRectangle(), LoadTexture(), DrawTexture(), PlaySound()... but powerful enough to code complete videogames. The objective was teaching the students what to do in every point of the code and how to do it. raylib is also very organized and structured, with a clear sorce code and lots of comment for "advanced" students that want to modify and improve the library.
In the last 3 years raylib has grown a lot with the feedback of more than 400 students and videogames coded with raylib can be compiled to multiple platforms including Windows, Linux, OS X, Android, Raspberry Pi and HTML5. Due to the minimum number of external dependencies, raylib is highly portable and versatile.
raylib is free and open-source. Full source is available in GitHub, including lots of examples and complete games to use as learning material.
Some people could think about Unity as an alternative to teach videogames programming. I like Unity, it's an amazing tool but I think it's not the best tool to start learning videogames programming. There are too many things happening "behind the scenes" and most of the time, the tool is a black box for students, most of them even think that the engine is the editor! I believe students should learn coding from the ground, despite being tough, that's my objective and so raylib.
This article is very good
Congrats Ramon Santamaria!!Good job!
Great! Keep on!
Qué gran proyecto, Ramón!