Ramon makes FOSS and takes our Twitter mic from December 09 to 16. Thank you, Ramon!
My name is Ramon Santamaria, I’m an Electronic Engineer but since I finished my Master’s Degree, I’ve worked in the Videogames industry. Some years ago I started teaching Videogames Development and after my first year experience trying to teach videogames programming to art-profile students I decided to create a small free open-source library: raylib. I’ve been working in raylib for the last 7 years, improving and growing the library while teaching and also using it professionally for tools development on my startup: raylib technologies.
During the last 8 years I’ve been balancing my startup projects (emegeme and raylib technologies) with teaching at multiple Universities and private institutions. At this moment I keep working on raylib and multiple other technologies and tools under the “raylib technologies” project. I’m also a lecturer in the University in Barcelona, where I teach Programming and Videogames Development.
About raylib and surrounding technologies, the most interesting part right now is WebAssembly compilation. raylib is plain C with no external dependencies and can be compiled to WASM to run on the web. Actually, all the tools created using raylib can be used from the web, they execute on client side, they are high-performant and their size is under 1 MB. Really interesting!
Actually I had never worked on any FOSS project before raylib. I got introduced to FOSS thanks to GLFW library, raylib is using it internally for window/inputs management, this library was my reference, I learned about FOSS development as long as I was working on raylib. In the last 7 years I’ve put a lot of time investigating similar projects and learning from them, especially in terms of organization, conventions, best practices, presentation, care for detail, etc.
My students needed a simple and easy-to-use library to learn videogames programming, when I started creating it, making it open-source seemed the best option to me.
Personally I think it’s the best way to learn and contribute to the software world, sharing is a priceless experience!
I started just looking at other FOSS projects similar to mine. Reviewing them, checking the code, their repos, documentation, conventions… basically learning from projects with more experience behind. I think it’s a good start.
Sustainability. It’s very difficult to keep working on a FOSS project for a long time, especially if the project is not used by some big corporation or has a huge community behind that contributes to it. I’ve seen some amazing projects on GitHub completely abandoned after some time because they are just not popular enough or they can not be used to generate money in some way.
I’m afraid there is no easy solution. Donations could be a motivator but the amounts received are usually small and do not last for long.
There are projects that are not contributors-friendly, sometimes the code is too complex for people to understand and follow, sometimes the contribution guidelines are not clear, sometimes the project aim, objectives or roadmap are not defined. With raylib I tried to keep de code extremely simple and provide as much information as possible to the possible contributors. I think it helped a lot.
Perfect days are when I solve some issue, I improve some feature and I delete lines of code.
Most FOSS projects are a result of passion, that’s what keeps a project alive.