Catching up with Godot: An interview with Juan Linietsky
byon December 13, 2016
Godot is a multi-platform engine for 2D and 3D games. It provides common functionality for graphics, audio, physics, and more, so game developers can build on top of a solid foundation and spend more time working on the unique parts of their game. Godot is a Conservancy member project. (Become a Conservancy Supporter!)
Christopher Allan Webber, co-maintainer of GNU MediaGoblin and a Conservancy volunteer, recently sat down to learn more about Godot with one of the core developers, Juan Linietsky. Recently Linietsky’s been working on a new graphics renderer for Godot with funding from a Mozilla Open Source Support grant that Conservancy helps administer for the team.
CW: Tell us a bit about your project. What’s Godot, and why might a potentially-interested user pick it up?
JL: To explain why Godot is important, I believe it’s enough to explain some numbers about the software industry. Globally, the software industry moves around 400 billion dollars in revenue, out of which 100 billion are from the video game industry. Games are a huge industry that keeps growing.
Game development happens mostly with proprietary software, and almost half of it is done with a single proprietary tool (Unity 3D). For being such a huge industry, there are no comparable open source alternatives like Apache or Linux that game developers can use instead of proprietary solutions, even if they would be very welcome.
Godot is a project that aims to change that, by being a comparable open source offering. It’s growing very quickly in community and has a large and dedicated group of users and developers.
CW: So you’re a Conservancy member project! What was the decision like to join under the Conservancy umbrella?
JL: Godot is a project that has many users, institutions, companies and other non profit organizations interested in funding its development. As we the developers are only individuals, we need to make sure our donors and sponsors have a strong promise that their donations will be used for the benefit of the project. Conservancy is an institution with a flawless track record in this regard.
CW: Godot has its own internal language, I believe partly to control issues like garbage collection pauses. But Godot recently started adding support for C♯, which is garbage collected. Could you talk about your history of game scripting support, its motivations, and where you see it going in the future?
JL: The reasons why we ended up using our own scripting language are not obvious, but are very strong. Popular languages like Python and Lua were not designed with real-time applications in mind. The garbage collector can cause random stalls, and support for multithreading is not so efficient because they use giant locks. On top of that, the complexity of binding them to Godot was huge and very error-prone.
GDscript is a language that “just works” and Godot users love that. That said, we’re adding C♯ support due to popular demand, and the fact that Mono was released under the permissive MIT license a few months ago.
CW: How would you describe Godot’s community, and your relationship with it? Is there a direction you’d like to go towards stewarding community interactions?
JL: The Godot community is awesome, they are very helpful with each other (and if they are not, we make sure they are). We try to help everyone, no matter how much (or little) experience they have, and always encourage users to help each other.
CW: If someone is interested in getting into game engine development, with Godot or otherwise, where should they start and what sorts of resources are available to them?
JL: There is some documentation on the C++ side of things, and the code in general is well-organized. The best approach to starting with development is to implement your own feature (make sure main devs would like to merge it first) and then do a pull request.
CW: How long until Godot overtakes Unity? ;) More seriously, do you see Godot as an alternative to proprietary engines like Unity or the Unreal Engine? Or do you see Godot as serving a different niche?
JL: Our development is very focused on the following premises:
Godot must be very easy to use, simple and to the point, even by compromising flexibility if necessary.
It must be easy to make a 2D or 3D game look great with little effort.
So, in pratice, we aim for an engine that is easier to use than Unity, and that looks better than Unreal, and we are very close to getting there in the upcoming Godot 3.0.
CW: What kind of overlap do you have or hope to have with related libre software media production projects and communities like Blender?
JL: Many Godot users create their 3D art on Blender, and we’d like to have a better relationship with the team. We just heard they are working on a PBR viewport, so we will work hard to allow users exporting their 3D content as faithfully as possible to Godot.
CW: Thanks for the interview! Anything else you’d like readers to know about Godot before we wrap up?
JL: We always listen to our users, their problems and wishes even though we can’t always take immediate action. Currently we are focused on shipping a 3.0, wich will come with a completely new renderer. Godot 3.1 will improve some peripheral areas like the physics engine and the audio engine. Afterwards, I dream of a time where no new large features need to be implemented, so we can polish and improve as much as possible everything that is there!
QEMU's Stefan Hajnoczi on Why He's a Conservancy Supporter
byon December 12, 2016
In this video, Stefan Hajnoczi, free software developer and contributor to QEMU, briefly explains why QEMU joined Conservancy and why he is a Conservancy Supporter. Join Stefan and join now!
ICYMI: “Companies, Free Software, and You”
byon December 8, 2016
At this year’s LibrePlanet, I presented “Companies, Free Software, and You” as a keynote presentation. In the talk, I take a hard look at companies’ engagement in the free software community, dissecting which contributions are productive and weighing them against instances where their interests might diverge from the rest of the community’s.
When that happens, Conservancy is a strong independent voice fighting for the community’s interests, in project leadership, employment agreements, license compliance, and more. Please support Conservancy today to keep the conversation balanced!
Thanks to the Free Software Foundation for running another great conference and preparing this video! Both the talk and the recording are released under CC BY-SA 4.0.
System improvements at Conservancy
byon December 7, 2016
When I joined Conservancy, we discussed system administration as one of my early responsibilities. (One of many—you might remember the long list of possible functions for my position.) Like any organization our size, there are plenty of improvements to our systems that we wanted to make, but were tough to prioritize against our other responsibilities. Since I joined in August, I’ve kept an eye out for easy opportunities to invest a little time now that will save us effort in the long run. As we start looking back on 2016, I wanted to highlight some of the public-facing improvements that I’ve made as part of this effort, and share a little about the tools and services that make them possible.
I deployed domain keys on our mail servers. Now each outgoing e-mail is signed to demonstrate that it came from an authorized user at Conservancy, and not an impostor. To make a long story short, this means our mail is more likely to land in your inbox, and not in your spam folder.
Thanks to our friends at Let’s Encrypt, all of Conservancy’s web sites are served over HTTPS exclusively. This includes not just our main site here and copyleft.org, but also web front-ends for Mailman and Kallithea. Using HTTPS everywhere helps keeps everyone’s communications with us more secure.
It’s nice that Let’s Encrypt offers free SSL certificates to save us money, but I think what I like even more is that the service saves us time. Using their client software, I’ve mostly automated the process of obtaining and renewing certificates. We don’t have to manually track expiration dates, renew certificates, and install them on our systems anymore. That time is freed up to help our member projects.
I wrote systemd service definitions for several public-facing services that didn’t already have them. Before this, each service was managed by ad hoc scripts, which could fail if something unusual happened. systemd has given us a simple, standard way to manage each service and its runtime environment. We get more service reliability and security for less effort.
I built tools to help automate some of Conservancy’s day-to-day accounting work. Our biggest project here is the payment and reimbursement request system, which is still in development. Behind the scenes, I’ve also written some scripts to help automate smaller tasks like saving and filing receipts from our different accounts.
I upgraded our Kallithea installations to the latest stable version, here and on copyleft.org. This was my first time working with Kallithea, but their documentation made the upgrade process a breeze. We’ve seen improved service stability and uptime with the new version, too. Kudos to the entire Kallithea team for a job well done.
A typical Conservancy office
© Karen Sandler, CC BY-SA
This is all in addition to some usual day-to-day system administration: buying and managing domains, keeping up-to-date with security fixes, and so on. All this work should all make Conservancy’s systems a little nicer for everyone who uses them today, and free up all our time for more important work tomorrow. I love having this opportunity to put some of my technical know-how to good use, so Conservancy can better serve its member projects and the broader FOSS community, and that wouldn’t happen without help from the Supporters who sustain our operations. If you’re already a Supporter, thank you for making this work possible. If not, please join today so we can continue providing necessary infrastructure for important FOSS projects.