Rémi

Jul 22, 2020

Please welcome @godotengine project manager Rémi Verschelde, @Akien, this week here on @imakefoss

Interview: https://t.co/0RVLRaJbvj

@imakefoss is a rolling curator twitter account. Wanna be one of our curators? Please get in touch. https://t.co/GLQp57UMIO

Jul 22, 2020

Salut à tous !

It’ll be me (@Akien) holding the @imakefoss pen for the next 7 days to talk about all things #FOSS, #gamedev, #Linux, and more.

Thanks to @imakefoss organizers and curators for creating this nice format - making #FOSS is my passion and I’m glad to share it. https://t.co/gImxP7JOMd

Jul 22, 2020

@Akien In this interview, I answered some questions about myself, my #FOSS story, and shared some thoughts on the good and bad in FOSS communities:

https://t.co/0RVLRaJbvj

Send me suggestions or questions on topics you’re interested to hear about :)

Jul 22, 2020

@Akien A quick TL;DR (heh, don’t trust me on that) about my #FOSS story for those who prefer Twitter threads to long interviews ⬇️

Jul 22, 2020

@Akien I discovered #FOSS in the early 2000s when my computer interests started evolving a bit beyond playing games like Commander Keen 4 or Age of Empires II, so when I was 10-11 years old.

Early versions of the Mozilla suite, VLC, https://t.co/UVKqBUJPqL… and quickly #Linux.

Jul 22, 2020

@Akien I don’t remember exactly what was my #FOSS epiphany, but I’m pretty sure I was introduced to the difference between ‘free" (freeware) and “Free Software” and the four freedoms (run, study, redistribute, share modifications) by my elder siblings @samuel_v2 and @fvsch.

Jul 22, 2020

@Akien The #FOSS philosophy and its culture of sharing stuck with me.

I loved the idea that folks the world over built software together for the common good, w/o trying to turn a profit by unethically restricting use, copy or modification.

I felt respected and valued by Free Software.

Jul 22, 2020

@Akien (Of course, #FOSS was already more nuanced than that back then, and increasingly became so with the rise of the more business-friendly ‘Open Source" term. But that humanist, common good focused philosophy is still something that I find in most non-profit #FOSS projects.)

Jul 22, 2020

@Akien (Told you not to trust me that this would be a TL;DR ;))

Jul 22, 2020

@Akien I discovered the #Linux world around that time, and it was magical.

A complete OS I could install on my family computer with 100% #FOSS (ok yes, with some proprietary kernel blobs and drivers, but I didn’t mind).

And a whole new UX, a welcome change from boring Windows XP.

Jul 22, 2020

@Akien And I could even run it from the CD-ROM player without installing anything 🤯 (KNOPPIX #Linux live CD IIRC).

This felt like science-fiction level of power. A system which I could theoretically build myself, read its source (too hard for me, but I could), and run from a CD?

Jul 22, 2020

@Akien And of course, the icing on the cake: games!

This was early 2000s before digital stores and the rise of affordable indie games. As a kid with little pocket money, I only got new games as gifts, or by spending months of savings. My computer was too old for modern games anyway.

Jul 22, 2020

@Akien On that Knoppix live CD, there were pre-installed #FOSS games I could play right away.

Later on when I got Mandriva Linux 2005 LE installed on bare metal, I spent hours going through the package manager’s ‘Games" category.

Now I’m the one packaging those games in @mageia_org ;) https://t.co/ZZch6MjiR2

Jul 22, 2020

@Akien Eventually I ditched Windows (it didn’t work anyway…) and use Mandriva as my only OS.

2005 #Linux was rougher than it is today, but Mandriva was one of the most user-friendly options, with a lot of graphical tools so you don’t have to be a command line guru.

Jul 22, 2020

@Akien I used KDE 3 which was not too far from the Windows experience, and I did enjoy spending time tinkering around to make things work, developing new skills in the process.

And especially as a gamer, tinkering with WINE was kind of needed if I wanted to play any commercial game.

Jul 22, 2020

@Akien There were already a few great games with native #Linux ports back then though, like Quake 3, Heroes III, Enemy Territory, so it was not all bleak.

And with WINE and PlayOnLinux I could run games like Age of Empires II, Warcraft III, or Diablo II, nearly out of the box :)

Jul 22, 2020

@Akien I remember that we put money together with my siblings to buy @IVSoftware’s #Darwinia game which run flawlessly on #Linux. It was like 10 EUR each maybe for the game + shipment, big expense for me at the time :)

And it was a pretty good indie game, I can still recommend it!

Jul 22, 2020

@Akien So I’ve been a #Linux user ever since, and the ecosystem keeps getting better and amazing me.

For over a decade I’ve been hearing ‘yeah Linux is great but not for games", and I’m happy to say that nowadays Linux is great for gaming.

Check this out: https://t.co/rhJLp64COH

Jul 22, 2020

@Akien I might make a separate thread about the evolution of Linux gaming: early ports, FOSS games, emulators, Wine, Humble Indie Bundles, Steam for Linux, cross-platform game engines, companies investing in the Linux driver stack, Proton…

Or find one by @gamingonlinux to link to :)

Jul 22, 2020

@Akien Today I play exclusively on Linux, and with a few exceptions, mostly games with native Linux support (the rest through Valve’s Proton, a fork of Wine with extra goodies).

50% of my #Steam library is native Linux games (over 1,000 games!).

The Steam store has 7,300+ Linux games. https://t.co/AryNakVI3Z

Jul 22, 2020

@Akien That’s a long thread already, so I’ll pause here for now and get some @godotengine work done ;)

I haven’t come to #FOSS contribution yet as I didn’t start getting involved before 2010, with @mageia_org, a community-driven fork of #Mandriva #Linux. More on that later :)

Jul 22, 2020

@godotengine @Akien First thread: https://t.co/Pak1EFrPDf

Jul 23, 2020

Heya! Still @Akien writing, time to continue my #FOSS story from yesterday: https://t.co/Pak1EFrPDf

If you want to know more about any topic I mention, or something different, do tell me :)

Today’s thread is how I got started as #FOSS contributor, up to full-time dev now ⬇️

Jul 23, 2020

@Akien As I mentioned, I switched to #Linux with #Mandriva Linux 2005 LE (aka #Mandrake 10.2) and its beautiful KDE 3 desktop environment.

Installed on the old family desktop which was starting to crawl under Windows XP’s later Service Packs, Mandriva gave it a new lease of life :) https://t.co/9yLWJZONBA

Jul 23, 2020

@Akien #Mandriva had allegedly the best user-friendliness at the time (Ubuntu only came around in 2009! And I’d argue about it being user-friendlier ;)).

It was also highly configurable, with all major DEs available from the repos and well-maintained (KDE, GNOME, Xfce, LXDE, etc.).

Jul 23, 2020

@Akien So I didn’t distro-hop much (sorry @killyourfm :P), though I did play around with other distros eventually at install parties, in VMs or at university (CentOS, Ubuntu).

On top of being very beginner-friendly, Mandriva was also not limiting for power users, so I grew with it.

Jul 23, 2020

@Akien In 2010, the Mandriva company wasn’t doing well, and laid off most of its historical French staff.

Its future was uncertain (they did eventually close shop in ~2012), so community members decided to create a non-profit fork in September 2010, @mageia_org: https://t.co/5fIwYFkp6g

Jul 23, 2020

@Akien My brother @samuel_v2 was joining the fork and told me about it, and I loved the idea and the philosophy of the nascent #Mageia project.

I was 18 and not particularly skilled in software dev, so I wrote myself up to help with French translations.

Jul 23, 2020

@Akien I had just started on my second year of university and had a good amount of free time, so as the teams were constituting themselves and electing their leadership, I took a leap of faith and accepted to lead the French translation team I had joined.

Jul 23, 2020

@Akien There were maybe 5-10 active members and initially our focus was on translating the website and blog posts, so it was a good scope for me to start with.

I liked the exercise of translating English into my native French, and figuring out good translations for tech terms was fun.

Jul 23, 2020

@Akien Actually I just checked, I first joined the team as normal contributor, and was elected team leader in April 2011 after the previous leader stepped down (for personal reasons but also internal friction - my first contact with the complex human interactions in FOSS communities).

Jul 23, 2020

@Akien On that impulse, I also filled the empty seat as substitute leader of the internationalization team (which coordinates all language-specific teams, and the tools and infrastructure needed for this work).

So that brought me in contact with other teams and the Mageia Council.

Jul 23, 2020

@Akien (I’m making this thread too long already, bad habit, so I’ll try to be bit more concise for the rest.)

Long story short, I enjoyed these responsibilities and did my best to ensure that both teams (i18n and i18n-fr) functioned well and that all contributors had a good time.

Jul 23, 2020

@Akien Several times, it involved handling conflicts between contributors, which could be exacerbated by the lack of nuance in emails or IRC, or the language barrier when writing English.

I was young and it was not always easy to handle emotionally, but I had support and did my best.

Jul 23, 2020

@Akien Over the years I refined these skills, both to help defuse emerging conflicts in online communication, and to handle sometimes violent criticism that might be targeted towards me as a person with responsibility, or the project as a whole which I felt emotionally attached to.

Jul 23, 2020

@Akien #FOSS communities are made of human beings, and human beings are complex.

We all have various reasons for contributing, different sensitivities, a need for personal recognition of our contributions, etc.

And as mentioned, in a worldwide community, language can be a barrier.

Jul 23, 2020

@Akien The most important lesson I learned while managing contributors is:

Always assume positive intent.

I understood this gradually and could finally put words on it thanks to this great article by the then @RedHat CEO and now @IBM President @JWhitehurst: https://t.co/fPMZ5yTZoM

Jul 23, 2020

@Akien We’re all different, and I’ve often seen that cultural differences also have a big impact in our we communicate and understand each other.

But in a #FOSS project, you can usually be sure that all contributors share the same goal: making the project even better.

Jul 23, 2020

@Akien Someone might rub you the wrong way, but before you reply with an incendiary comment, ask yourself about their intent.

More often than not, they’ll want the same as you do: keep making the project better.

You may disagree on how to get there, but not the end destination.

Jul 23, 2020

@Akien Follow-up thread: https://t.co/Ab1GHysD8L

Jul 23, 2020

@godotengine @Akien Second thread: https://t.co/Ab1GHysD8L

Jul 23, 2020

@Akien Back from lunch break!

And from reporting a driver crash affecting Godot to upstream Mesa… which will likely end up in a GCC bug report about a bogus optimization.

That’s part of the fun of #FOSS, when it breaks, you can actually get things fixed in the relevant projects!

Jul 23, 2020

@Akien So back to my #FOSS story, we released #Mageia 1 in 2011, and I was incredibly proud to have been part of this huge effort of bootstrapping a #Linux distro.

Mandriva users felt right at home and many migrated to Mageia, which then kept growing its own userbase. https://t.co/BjS5X3FZRC

Jul 23, 2020

@Akien As #i18n team deputy leader, and later on co-leader, I started getting involved in setting up better infrastructure for translators.

I had to learn basic Git usage to sync software and website translation for our web platform. Started poking at software to fix some i18n bugs…

Jul 23, 2020

@Akien I developed my technical skills because there was a need, I had time, and it was fun!

In parallel, I started helping the bug triage and QA teams, so I also got more familiar with the wealth of packages a Linux distro provides, how to use them to validate update, etc.

Jul 23, 2020

@Akien And I must have had a lot of time/motivation as I also started learning RPM packaging at that time.

Mageia has a nice packager mentoring program which pairs an apprentice (padawan :)) with an experienced mentor. I practised a lot and eventually graduated as full packager.

Jul 23, 2020

@Akien And I was also part of the marketing and communication (‘Atelier") team, writing blog posts, handling artwork integration and our social media presence, etc.

In turn I came to lead the Atelier team, and then the packagers team.

Jul 23, 2020

@Akien It’s not so much that I wanted to be leader of everything, but more that Mageia started to have (and still has) a big deficit in contributors who actually want to take on the responsibility of a team.

So since I could, and others supported me to do it, I took on those roles.

Jul 23, 2020

@Akien All this to say that by interest and opportunity, I built my profile as jack of all trades, and that’s still what I do today as @godotengine Project Manager.

Jul 23, 2020

And my #GodotEngine involvement followed a similar pattern, starting from 1 specific task that I knew I could handle (triaging bug reports), to helping triage, review and merge Pull Requests, refactoring all the documentation, refactoring the buildsystem and making releases, etc.

Jul 23, 2020

I wrote the story of my first Godot years in a blog post when I started working full-time for the project, so I’ll simply link that :)

https://t.co/7TzVorKnqh

And I’ll leave it here for today, the thread is already (too) long!

Jul 24, 2020

Good morning!

Yes, in the #FOSS world (at least the old IRC-bound projects), it’s always morning when you come online :) https://t.co/VbEJJRJ0nC

What would you like to read about today?

Jul 24, 2020

Today in @Akien’s ramblings:

How to make a #FOSS project successful?

(Or more truthfully, some factors of @godotengine’s success story, and what are key takeaways to reproduce it?)

A thread ⬇️

Jul 24, 2020

@Akien My focus here will be quite specific to non-profit, non-corporate #FOSS projects.

#FOSS projects run by companies, with their own employees paid to write and maintain open source code, have their own dynamics which I won’t cover here into detail.

Jul 24, 2020

@Akien With @reduzio (creator of @godotengine), we often get asked about the secret recipe for #FOSS success.

Godot was released as a rough, niche engine in 2014, and grew exponentially with ever more users, contributors, and now paid devs, to go rival proprietary alternatives.

Jul 24, 2020

@Akien IMO, it did three things right from the start:

  1. Functional product from the start, with a simple design.
  2. Fully free, permissive license (MIT). No strings attached.
  3. Fully embraced the #FOSS philosophy (and #indiedev for the #gamedev world).

I’ll develop each point below.

Jul 24, 2020

@Akien Godot started as a proprietary in-house engine developed by @reduzio and Ariel Manzur, and used for their own games.

At that time general purpose game engine were not so common and expensive to license, so Juan and Ariel worked as consultants using their own tech for each game.

Jul 24, 2020

@Akien They worked with teams of artists, designers, gameplay programmers, etc., and their job as engine developers was to put the game together.

To avoid being bottlenecks for other team members, they built tools to let them all do the integration themselves.

Jul 24, 2020

@Akien Game development is a very iterative process. You often make things, test them in the game, redo them, test again, etc., until it all feels ‘right".

Having to wait for an engine programmer to test each iteration is a big bottleneck. So Godot was created to enable this iteration.

Jul 24, 2020

@Akien That’s quite important as it means that Godot was born of the real needs of actual game developers, and not just a ‘great design idea" from two programmers.

It was built as-needed for these games, implementing the new tools that they need, and evolving based on users’ feedback.

Jul 24, 2020

@Akien So to me that’s one key takeaway here: a successful #FOSS project must fulfill an actual need, and do it well.

Many projects start on idealized concepts of ‘modern code" or “good architecture”, and they’re great to develop new skills, but they often lack practice use cases.

Jul 24, 2020

@Akien In 2014, @reduzio and Ariel decided to opensource Godot under the MIT license.

The #gamedev world had changed a lot with the rise of affordable and user-friendly game engines, albeit proprietary.

They both loved & used #FOSS and had been thinking about releasing it for a while.

Jul 24, 2020

@Akien This was a very mature product from the start, and the reception was great from people both interested in #gamedev and #FOSS.

https://t.co/174925b5iy

Of course, like most in-house engines, Godot was pretty rough. When the engine is for one team, you don’t invest so much on UX.

Jul 24, 2020

@Akien But #FOSS people tend to be more forgiving, as we’ve all done efforts to use FOSS tools with arguably worse UX than proprietary tools, because they were FOSS.

Thankfully, UX in FOSS has improved a ton and these tools have now grown to be among the very best (e.g. Blender).

Jul 24, 2020

@Akien Juan and Ariel were maintaining Godot as a hobby project, and dozens of #FOSS hobbyist game developers started contributing fixes and new features, improving cross-platform support and UX.

The first public release, Godot 1.0, was published in Dec 2014: https://t.co/SDCytaVS3A

Jul 24, 2020

@Akien Look at this cutie :3

Godot has changed a ton since then, yet you can still see many similarities in the overall design of the interface (and of the API, if you were to use it). https://t.co/717rWsXQCD

Jul 24, 2020

@Akien For the comparison, here’s the number of lines of code in Godot on its first open source commit, and today:

2014: 730,000 lines of code (and a lot of it was unused and ended up removed little by little as we cleaned the codebase).

2020: 1,900,000 lines of code (all of it used).

Jul 24, 2020

@Akien Godot was far from competing with big commercial engines in 2014, but it had potential, and was the most serious #FOSS option to contribute to.

Users really liked the way it was designed, finding it very intuitive and easy to use.

That was a great start, and it kept growing.

Jul 24, 2020

@Akien Alright, now back to:

  1. Fully free, permissive license (MIT). No strings attached.

That one is simple: #FOSS is based on trust. Trust is based on fairness and reciprocity.

Jul 24, 2020

@Akien These days, we see a lot of commercial products that start understanding the value of #opensource for their product, but not its fundamental values.

So they open their source code (great!), but often with custom, needlessly restrictive licenses.

Jul 24, 2020

@Akien These custom licenses are not #opensource, and do not establish a relationship of trust between users (who can be contributors too) and the developer or company behind the product.

But if you want to benefit from the momentum of the #FOSS community, you have to go all in.

Jul 24, 2020

#FOSS contributors have very different motives for contributing, but a widespread one is that we want to work towards the common good.

So we want to contribute to projects which we know will still be there and #opensource in the foreseeable future.

Jul 24, 2020

@Akien Whoever started the project should not be able to change the license to a more restrictive one, or completely remove our right to use, modify or redistribute the project.

That’s the risk with projects having a Contributor License Agreement (CLA) which often enables this.

Jul 24, 2020

@Akien Perhaps even more importantly: if I’m to contribute my work for free to a project, I don’t want the project owner to benefit from it more than I or other users could.

I don’t want to work on others' product for free, I want to work on the #commons. https://t.co/GhoU9tpDrA

Jul 24, 2020

@Akien Godot established this trust from the start by using the very permissive MIT license, and by not using a CLA.

It means that Godot is owned by all the contributors who worked on it over the years. We each own a part of Godot’s copyright which we contributed to it.

Jul 24, 2020

@Akien So we can never change the license terms of Godot, unless we get the approval of 1,200 contributors!

What is available now will always be available. We could decide to change the license for future changes, but anyone can fork the current code and keep developing it. https://t.co/5SyvtbRQXA

Jul 24, 2020

@Akien But even that is not enough - say we were a big company hiring most contributors, and we decide to change the license for future code to proprietary.

You can make a fork, but if the bulk of the development team focuses on the proprietary version, you’ll lose a lot of momentum.

Jul 24, 2020

@Akien That’s why Juan and Ariel made Godot join @conservancy, a non-profit organization that focuses on supporting and promoting #FOSS.

Their mission statement is that everything we do must be #FOSS and in the benefit of the project. We simply can’t fail you. https://t.co/JP3RDZI7Nm

Jul 24, 2020

@Akien So Godot is a game engine which is developed by and for its users, and owned by all its contributors and a non-profit charitable organization.

It’s yours to use, modify, fork, redistribute, even sell if you want. Today, in a year or in three decades.

Jul 24, 2020

@Akien BTW, this perspective of a random company taking your project, rebranding it and selling it, is a fear that many seem to have when open sourcing (leading to sad ‘nearly open source but no" situations like https://t.co/4fZ3a6li28).

Jul 24, 2020

@Akien But think about it: who would buy a commercial fork if you have a thriving community making the best free engine out there?

Would you buy a proprietary fork of Blender maintained by a lone developer, that would become outdated in less than 6 months?

Jul 24, 2020

@Akien In non-profit #FOSS, you best security against undue competition is to give your users the very best value.

And nothing is better than unrestricted use and a thriving community of dozens, hundreds or thousands of dedicated contributors.

Jul 24, 2020

@Akien Last but not least:

  1. Fully embraced the #FOSS philosophy (and #indiedev for the #gamedev world).

I partly covered the former in (2), but I’ll explain some more.

Jul 24, 2020

@Akien In #FOSS projects, legal terms (license) and power structure (CLA, ownership) is indeed very important, but there’s more:

The perception the community has of your motivations. And of course, your real motivations (usually, it will be the same, communities are clever things :)).

Jul 24, 2020

@Akien If you’re ‘openwashing" and using #FOSS as a way to make your project popular and benefit from contributions, without fully committing to it, you might not be trusted.

People will naturally start by being suspicious of your motivations as a person, or worse, as a company.

Jul 24, 2020

@Akien Again, I’m not talking about corporate or commercial #FOSS here, and I’m not saying that those are wrong.

But the community needs to understand your story if you want them to support you.

That requires one thing: transparency.

Jul 24, 2020

@Akien Be clear about your motivations. If you have funding, be transparent about it, and tell the community how you use it.

Your project governance doesn’t have to be a democracy, but it should be transparent and you should communicate your vision and decisions to the community.

Jul 24, 2020

@Akien At least in the beginning, Godot’s users were almost exclusively using it because they made #FOSS their priority.

Nowadays, Godot’s growth and maturity means that most users use it for its own merits as a game engine, and not just due to its license terms.

Jul 24, 2020

@Akien But those early days of strong support by #FOSS aficionados (which hasn’t reduced in any case, it just decreased in proportion) were crucial to Godot’s development and success.

And #FOSS ‘fans" are often very emotionally attached to their project, and to its contributors.

Jul 24, 2020

@Akien So you have to be trustworthy and likeable. If people don’t like you, they won’t bother support your still-wonky #FOSS projects to let it reach a high level of maturity.

That’s where we tie in with #indiedev, aka indie game development, which often relies similarly on affect.

Jul 24, 2020

@Akien If you set to make a commercial indie game in today’s heavily congested market, you can’t count on your own proficiency alone.

You might make the best game ever, but if nobody finds it, it will have any success.

So one of the keys to #indiedev is to build your own community.

Jul 24, 2020

@Akien Just like in #FOSS, you need to reach people who will have a personal interest in your project and to some extent your person.

If you find people who like what you do, and like who you are, they will want you to succeed. They will do their best to promote your game.

Jul 24, 2020

@Akien Godot had this chance to be at the intersection of the passionate #FOSS movement and the expanding #indiedev world.

Many Godot users want the project to succeed and to keep growing, as they have a personal interest in it, and often an emotional attachment to it.

Jul 24, 2020

@Akien I’m not sure what my key takeaway is here aside from:

Be likeable. Make your project likeable. Ensure that you have a likeable community.

And of course, be genuine about it. It’s not being nice to profit from it, but actually working towards the best interest of your users.

Jul 24, 2020

@Akien And perhaps even more importantly, aside from having a successful project, you’ll have a great time.

There’s no better feeling than to work for the benefit of your community, with no ulterior motive than to provide the best technology possible for the common good.

Jul 24, 2020

@Akien And yes, this might sound idealistic or cheesy (or worse, socialist 😱), but that’s what we actually do in Godot.

And we’re having a blast 🔥

Have a nice week-end!

Jul 24, 2020

@AnderMatosPr @Akien I wrote a blog post about it a couple of years ago: https://t.co/qJheIT3L9c

Jul 24, 2020

@thekurtwk @Akien That’s something we discuss a lot at @godotengine as there are various needs which can only be addressed by a company or a dedicated org.

I’m not sure what advice to give about it yet, it’s still a topic that we’re brainstorming about.

Jul 24, 2020

@thekurtwk @Akien But depending on your needs, there are various options.

To receive donations/corporate sponsorship, joining a non-profit org like @conservancy is great.

You can also create your own non-profit organization for FreeCAD specifically. More flexible, but more work.

Jul 24, 2020

@thekurtwk @Akien If you need to provide commercial services, a great model is to have a non-profit foundation which is own a for-profit subsidiary company. All profit from the company flows into the non-profit.

That’s e.g. the model used by Mozilla and Blender, and something we’re considering.

Jul 24, 2020

@godotengine @Akien Third thread: https://t.co/Ko6vK4cb3Q

Jul 26, 2020

Heya beautiful people!

What #FOSS apps, tools or games are you having fun with this weekend? 🐧

Jul 26, 2020

@johnny4young @Akien Ah not at all, this tweet was not related to Godot, but to other projects which release their source code with non-#opensource, restrictive licenses, like Defold and Neoaxis recently did.

Jul 26, 2020

RT @imakefoss: Heya beautiful people!

What #FOSS apps, tools or games are you having fun with this weekend? 🐧

Jul 27, 2020

Busy @godotengine work day today, but I’ll be back to tweeting tomorrow with a new thread!

Send suggestions of things you’d be interested to hear about from me (@Akien) before I pass on the baton to a new #FOSS maker :)

Jul 28, 2020

I think my first coding experience was doing some HTML + CSS 2.0 in the early 2000s for my personal webpage.

Then I picked up some shell scripting after moving to #Linux in 2005. https://t.co/1y80nTPSgB

Jul 28, 2020

In 2008 I learned #Inform6 thanks to the @ifictionfr community (and bought the hardcover version of the Inform Designer’s Manual ‘DM4", which I loved browsing and still remember fondly).

That was my first game programming experience, and I made 3 IFs.

https://t.co/ak62xJkk0H

Jul 28, 2020

@ifictionfr (Slight delay as I converted old SVN repos to Git and extracted my own files, fixing encoding along the way.)

Here’s the source code for one of those games: https://t.co/7xKH4bQIRI

I didn’t write all the lib stuff in the header myself, but the game content yes.

Jul 28, 2020

@ifictionfr I liked this a lot so I moved on to learning Python 3 with Gérard Swinnen’s great Creative Commons book (in French): https://t.co/OQINEwQ4zC

During a Summer holiday we tried to make a roguelike in Python with a friend, but we mostly spent time experimenting with cave generation.

Jul 28, 2020

@ifictionfr Then I started at the university and learnt Pascal (yes, Pascal in 2009, don’t ask me why… French schools are weird), and we hacked together a ‘2D physics engine" (lol) with Lazarus: https://t.co/qtaZtTOR8Y

I kept toying around with Python in parallel as it felt more modern :)

Jul 28, 2020

@ifictionfr Eventually I started reading source code in many other languages (C and C++ mostly) while packaging for Mageia, as it’s often necessary to patch small things here and there to make sure an application behaves properly (e.g. putting its user files in the right folder).

Jul 28, 2020

@ifictionfr I learnt the basics of C++ before joining Godot in 2014-2016 while contributing to the OpenDungeons #FOSS game: https://t.co/4z8BnVa0u9

We had two experienced C++ devs so I watched and learned, reviewing PRs and asking questions when there was something I wasn’t familiar with.

Jul 28, 2020

@ifictionfr Eventually I did the same with Godot, learning a ton by reviewing the code that others authored, and not being afraid to ask ‘beginner" questions.

I did also go through half of a C++ book to “get things right”, though I still have a ton to learn.

Jul 28, 2020

Since then I also learned a few more languages (some C, Lua, GDScript, Rust), but eventually when you’re familiar with basic programming principles and a couple languages, it’s fairly easy to read and understand other languages.

Jul 28, 2020

So my advice to beginner programmers who want to learn a new language is to read code - find a #FOSS project you want to contribute to like I did with OpenDungeons and Godot, and learn from your peers.

And write some.

And sure, using books or tutorials in parallel helps :)

Jul 28, 2020

Not much, sadly! I know a lot about how to use @godotengine, but working on the engine doesn’t leave me much time to work with the engine.

I also find it difficult to have time for game jams which often require a very crunch-like commitment that I don’t want to make. https://t.co/c67T2nOsvR

Jul 28, 2020

@godotengine I did make a quick and dirty Bomberman clone when I started with Godot back in 2015: https://t.co/9FouBcRCTz

And I’ve done maintenance work on the open source Jetpaca, which was started by @reduzio a long time before Godot was even open sourced: https://t.co/Yi3nS2q1ZK

Jul 28, 2020

@godotengine @reduzio More recently I participated in the #trijam with @qbieshay and @falessandrelli at a #GodotCon, this was fun! https://t.co/xdKPFy9KOV

Trijam is a great concept, it’s a 3-hour game jam every weekend. It’s short, but I like that as it forces to focus and don’t eat up my weekend.

Jul 28, 2020

@godotengine @reduzio @qbieshay @falessandrelli Check out https://t.co/TPRIZ2iKX6 for details on past, current and upcoming Trijams.

The next one is #trijam 80 next week-end: https://t.co/DHyHhx0Za4

Jul 28, 2020

@godotengine @reduzio @qbieshay @falessandrelli Eventually I’d like to work on a ‘serious" project, trying to make something I can be proud of (keeping a very limited scope though).

This is also a great way to experience engine shortcomings more directly and see what really needs to be improved ASAP.

Jul 28, 2020

Note that #Trijam is not limited to using Godot, though you’ll see it strongly represented as the showrunners @RocknightGames are Godot fanbois ;)

It’s also an opportunity to try new engines out of one’s comfort zone (though I’d do basic tutorials before jumping in a 3h jam :)).

Jul 28, 2020

I won’t have time to make a thread here on my (subjective) history of #Linux gaming, but I might do something later on over at @Akien in coming weeks.

In the meantime, I can recommend that you follow @gamingonlinux - even letting the Linux prism aside, they’re a great curator :) https://t.co/xVP7qdhCL7

Jul 28, 2020

So obviously, I’ve talked a lot about @godotengine since that’s the project I’ve been contributing to since 2015.

But there are many other #FOSS game engines and #gamedev 🎮 tools that you might be interested in, so let’s have a quick thread with some recommendations ⬇️

Jul 28, 2020

Firstly, have a look at awesome-gamedev, an amazing list of #FOSS gamedev tools, assets, and more which is being maintained by @HugoLocurcio at https://t.co/lyPYkIJ2gk

Also mirrored on GitHub: https://t.co/1cxecSmyUE

It’s the most exhaustive list I know!

Jul 28, 2020

If you’re new to game development and/or programming, a great option to start with is @GDevelopApp.

It uses a very intuitive event-based system which can greatly simplify your game logic, and doesn’t require a lot of dev experience.

https://t.co/O5FfAWMkJC

Jul 28, 2020

In a similar veined but more oriented towards children and educators is the well-known #Scratch.

It’s a great option to teach kids about programming logic, and let them express their creativity with interactive games.

https://t.co/kOoZp7J8K9

Jul 28, 2020

There’s a glorious indie scene revolving around ‘fantasy consoles", tiny engines with low resolution, tight pixel art and retro constraints, which spurs creativity.

In the #FOSS world, you’ll find @tic_computer, #LIKO12 or @CasualEffects’ #quadplay.

Jul 28, 2020

And if you’re into this kind of no-nonsense, simple framework 2D dev experience, All You Need is LÖVE!

@obey_love is a popular and amazing cross-platform framework to make 2D games with #Lua.

https://t.co/5SfdlTm8v4

Jul 28, 2020

OK, frameworks are cool, but let’s get back to some engines with editors.

Do you like Action-RPGs like Zelda 3? Wish you could build a #FOSS game with a similar gameplay?

@SolarusGames provides exactly this, a neat engine with an editor: https://t.co/ObqGNlfz0H

Jul 28, 2020

It’s hard to make a list of #FOSS engines without talking about #RenPy, which might well be the most used open source engine ever.

It’s a Visual Novel engine with a simple scripting language and the full power of the #Python ecosystem!

https://t.co/hK5CjmnR2C

Jul 28, 2020

If you were born before the turn of the century and still have fond memories of Turbo Pascal or Delphi, you might be interested in the cool Object Pascal-based @castleengine.

https://t.co/ikCyJPmLUE

Jul 28, 2020

One which I almost omitted because I had missed that it was open sourced a few months ago…

The wonderful #bitsy by @adamledoux lets you make bite-sized experiences in no time, and is a great way to try concepts and develop your inner game designer:

https://t.co/M66hLyZ5ov

Jul 28, 2020

If you like puzzles, you shouldn’t miss #PuzzleScript, which also lets you jump right into the #gamedev flow by iterating fast on puzzle concepts.

It’s simple, and simplicity is great in game design.

https://t.co/Z5tUui50AM

Jul 28, 2020

Do you want to Web games with JavaScript directly? There are plenty of JS libraries you can use for #gamedev purposes, and various cool frameworks, among which @phaser_!

https://t.co/0IUqJWlH9i

Jul 28, 2020

Well that’s a good list to get you started!

There’s plenty other #FOSS #gamedev gems which I haven’t mentioned here, but again check https://t.co/DkPo9YGa8J for more options (even awesome-gamedev is not exhaustive, but feel free to contribute what’s missing!).

Jul 28, 2020

@godotengine @Akien Another thread: https://t.co/Vbsx03Gjwt

Jul 29, 2020

RT @josp0001: What a week! Thank you, @Akien, for your time and commitment! We have so much to learn from you! I would be very pleased if y…

Jul 29, 2020

RT @Akien: That’s it for my week talking on @imakefoss, this was fun :)

I might do more threads like this if there’s interest – I’m passio…