Hugo Locurcio

Godot Engine

April 2021

Hugo makes FOSS and takes our Twitter mic from April 28th to May 5th. Thank you, Hugo!

Please tell us about yourself

My name is Hugo Locurcio (Calinou). I’m a 23 years old open source software developer from France. I’ve been involved with computers since I was a little child, and I haven’t stopped since. After studying multimedia and web development at the IUT of Troyes for 2 years, I completed a master’s degree in computer engineering at the Troyes University of Technology.

Some of my main hobbies include gaming, and of course, programming. From time to time, I dabble in level design, game modding and drawing, but I don’t get much time for that these days.

What are you working on right now?

My current main project is Godot Engine, a free and open source 2D and 3D game engine. In addition to C++ development for the core engine and its editor, I also maintain the website and its infrastructure.

I discovered Godot in a Phoronix news post back in Feburary 2014. When it was released, I compiled it from source and tried out its demos, then I left it aside for a year or so. In May 2015, I came back to it and started dabbling around with it. The first games I made were quite basic, but my 17 year old self was quite impressed at how he could finally develop an entire game using open source software – something which would have been much more difficult before Godot was around.

When I started using Godot, I quickly became a proactive user and started helping out other people on IRC, GitHub, forums, etc. As someone who felt that the open source game engines of the era were underused and unpopular back then, I wanted to help Godot grow.

After hanging around for several months on the Godot forums to help other users, I made my first code contribution to Godot in May 2016. Back then, I was a beginner in C++, so the scope of changes that I could perform was quite limited. I started ramping up my programming skills in 2018, a year in which I got my 100th pull request merged in Godot.

I continued contributing to Godot on my free time until October 2020, when working on Godot became my full-time job after finishing university. As someone who has been contributing to FOSS since 2011 on his spare time, being able to work full-time on open source software feels like a dream come true.

What is most interesting about that?

Working on a game engine can be a very general-purpose task, depending on how you approach it. I’ve always liked being able to have a versatile role in a project. That said, if you prefer having a more specialized role, it’s very much possible to contribute to a self-contained area of the engine. Godot has many such areas, such as audio, networking, physics, rendering, etc.

Godot’s community is also quickly growing, and so are the community’s expectations. The current focus of Godot’s contributors is the next major release, Godot 4.0. It will feature many long sought-after features such as a great-looking Vulkan renderer, performance optimizations for 2D and 3D, complex text layouts support for right-to-left typesetting, and more. You can view much of this progress in the 2020 Year in Review video which I recorded and edited.

How did you first discover FOSS?

When I was 9 years old, I was looking for new games to play but I didn’t want to ask my parents to buy me more games. So I started looking around on the Internet and found a French website that listed a bunch of open source games including OpenArena, Warsow, Nexuiz (now Xonotic) and Sauerbraten.

It didn’t take me much time to learn about the communities behind those open source games. I spent a lot of time playing on custom maps and making my own (even though mine weren’t very good :P). I also remember appreciating that these games offered public development versions in the form of Subversion and Git repositories. After all, this is something most proprietary games don’t provide.

The reasons I discovered FOSS might be unusual, but I’m inclined to think that all roads lead to FOSS :)

What prompted you to start contributing to FOSS?

I started contributing to FOSS when I was 13 years old - that was in 2011. I made a mod for the open source game Minetest called More Blocks. As it was one of the first mods available for the game, it quickly grew in terms of popularity and usage on multiplayer servers. Thanks to the community, it is still being developed today.

Why should others get involved with FOSS?

If you are an university student in computer science, computer engineering, UI/UX design, etc., I think getting involved with FOSS development is a great way to get your foot in the door. While contributing to FOSS works nicely for that purpose, don’t just view it as a way to build up your portfolio. Instead, view it as an excellent way to acquire real-world experience. Contributing to a FOSS project will likely give you an experience that’s closer to reality compared to assignments given by the university.

If you already have significant work experience (even in a non-technical field), contributing to FOSS is a way to give back to the software you may be using on a daily basis :)

How should they get started?

I don’t think there is “one true way” to start getting involved with FOSS. As you can see from my own origin story, each person is different and will have different reasons to start contributing to FOSS.

If you are interested in contributing to Godot, we have a Ways to contribute page in the documentation. Even if you don’t have programming or design skills, you can help translate the editor or the documentation, be available to answer other users on the Q&A platform, and much more.

What difficulties and limitations do you see with FOSS?

Funding is still proving to be a longstanding issue for small and medium-scale FOSS projects. While large-scale projects can struggle with finding reliable community-based funding, I think the issue is even worse for smaller projects. Even on those smaller projects, the main developer(s) may be spending hundreds of hours of their time working on infrastructure that’s critical to many companies.

The fact that FOSS adoption can be seen as a cost-cutting measure by some companies or people isn’t helping the funding situation either. I think the public perception of FOSS is getting better lately – and more importantly, for more diverse reasons than just saving money. Nowadays, people generally seem to be more understanding of FOSS projects that set up established funding schemes, as long as they do so in an ethical way. I think the rise of platforms like Patreon and GitHub Sponsors has helped a lot here.

Another longstanding problem I have with FOSS (or rather, its image and adoption) is in gaming. I believe we have many high-quality FOSS games available, and I spend a significant amount of my gaming time on those. However, their community sizes and player counts aren’t rising as fast as one would hope (if at all). While it is perfectly possible to have fun even on a game that only has 10-30 players online, much of the gaming community doesn’t seem to agree with that. Ironically, the “dead game” meme never dies :(

To me, it seems the rise of proprietary indie game development is also making FOSS game development less appealing to developers who are starting out in their game development endeavor. Even though the so-called “indiepocalypse” made it more and more difficult for beginner developers to reach a significant playerbase and have a profitable game, there are still a lot of new indie games being released every day.

I know it’s wishful thinking, but I would have hoped to see more indie games available as FOSS. When an indie game turns out to be a commercial failure after a certain time has passed, I think there generally isn’t as much to lose out by liberating at least the source code (and ideally the assets as well). There are still many underrepresented genres in FOSS gaming, even when it comes to relatively simple games.

Finally, it’s safe to say that the trend of AAA companies open sourcing their old engines is no more, even for 20+ year old engines. For example, I remember reading somewhere that Unreal Engine 1 (which is home to many great games) could be open sourced with little to no modification, but I’m not holding my breath for it either.

How can they be solved?

Unfortunately, I can’t pretend to have an universal solution for the problems described above. While I’m of the opinion that one-person initiatives and small-scale studios can act on this matter, being reliant on a proprietary engine or artwork they don’t have the rights to distribute under an open source license can make it impossible to “effectively” open source a game.

Where do you see difficulties in contributing?

I’ve seen a lot of newcomers who are afraid of breaking something. I’d like to reassure them, as the vast majority of open source projects are precisely set up in a way that makes mistakes less damaging. Thanks to version control systems, commits can be easily reverted. Moreover, a lot of open source projects have established test suites, which can be run on every commit to ensure that fewer things break.

Another thing I recommend to newcomers and returning contributors alike is to “default to open”. In other words, make your work public early and ask support questions on public channels. This prevents work from being lost because it was never published, and this lets more people answer your questions. Otherwise, you would be confined to a single person’s answers because you asked those questions in private. Only use private channels for subjects that absolutely need to be kept private, or to report security vulnerabilities. I know this can be difficult to put into practice, but I think it’s worth the effort.

Lastly, if you know how to program in general but have never programmed in the project’s language, don’t let that stop you. When you start becoming a more experienced programmer, you can often pick up unfamiliar languages and codebases in less time than you may think. To give an example, in 2020, I’ve contributed internationalization support to ArmorPaint, which is written in Haxe. However, I’ve never written a single line of Haxe before that.

What does a perfect day off look like?

I tend to live a rather uneventful life and am not much of a person for parties. For me, a day off would be a day in which I can relax and forget about day-to-day worries.

Do you want to tell us something else we didn’t ask?

I want to give a shout-out to all the FOSS developers that make desktop Linux and open source software possible. In particular, Linux distribution developers and packagers, open source application developers, UI/UX designers that contribute to open source, …

I also appreciate the free culture artists who share their images, artwork, music and videos for everyone to reuse thanks to Creative Commons licenses.