Introduction
Godot is a community developed game engine. The development process is becoming tighter and more efficient every day. As the amount of contributors keep growing exponentially, it’s a big challenge for us to keep this process efficient and yet improve it.
In fact, our development process and code quality are, already, arguably in many senses better than commercial game engine counterparts. Proof of this is the large amount of features added on each release, and the ever high stability of the codebase, even on alpha state.
Before explaining this further, It’s important to understand what is, according to the point of view in this article, considered to be a game engine, and where Godot stands.
What is, then, a game engine? Let’s try to agree on a common point of view.
A renderer + OS obstraction functions
For a lot of developers, just a renderer plus abstraction on some OS functions (such as input handling, filesystem, etc), is enough to label something a “game engine”.
Truth is, I don’t think this is fair. In Godot, the renderer is only, at much, 1% of the codebase, and OS abstraction does not even amount to that.
If Rendering and OS abstraction is only, at much, 2%. What is the rest needed for?
At some point, a lot of functions are needed for a more modern workflow. Asset importing, exporting, level editors, serialization, etc.
One could then argue, that a game engine is an OS abstraction, a renderer, and tools that help to make a game.
It would be easy to agree that this definition fit the bill a decade ago, but engines from back then definitely are not the same as the more modern ones from today.
Back then, tools were generally separate applications or processes to deal with different aspects of a game. Nowadays, game engines don’t look like this (save for maybe in-house engines that large companies still use).
A Coherent experience
During this past decade, game engines morphed into all-in one tools with an unified interface. The focus was put mainly on usability and a coherent experience.
This made engines migrate from being specialized tools for experts to accessible applications than anyone can use.
Nowadays, it would be difficult to argue that a modern game engine does not include this aspects in it’s definition.
There is also something else, though..
Extensibility and Community
Game engines are meant to be tools that save work on the most common tasks of developing a game but, as game development is a creative process, it’s not uncommon to find situations where new features need to be added in order to achieve game design goals.
Due to this, extensibility is a very important aspect of modern game engines.
Building a community around this model is vital for developers to save time on their respective projects. This way, common extensions and features can be shared without having to be reimplemented.
As such, we can agree that extensibility and a user community also fit the definition of a modern game engine.
For some engines, this is even part of their business model. This way, if something is missing, the community can create and sell the missing functionality.
But then comes Godot
Godot adds something entirely different to the mix. Something both new and old. It’s a fully open source and community driven game engine.
It may not make sense what’s special about this at first, but once you start using it and taking part of the community, it becomes obvious.
The Open Source Difference
The open source development process is something beautiful. Once you get it, it becomes clear why. Once a project is set in motion and starts getting traction, it becomes unstoppable.
It may not make sense to most developers how a bunch of guys working in their free time and without getting paid can create quality software that, very often, matches or surpasses it’s commercial counterparts.
Projects such as Linux, gcc, LLVM, Python, Videolan, Blender, git, etc. are proof of this.
The Open Source development model
Many confuse Open Source with Shared Source, or making the source available.
When you read about Open Source somewhere, it’s always about the OSI definition of it.
It means that a special license is used so everyone collaborating will benefit equally, making the development truly open.
When companies make the source available, they will often do it together with a license where they clearly state that they benefit more from it than anyone that contributes. Alternative, some companies make part of their code open while keeping the rest as closed or under a more restrictive license.
This is what makes Godot different to engines such as Unreal, Xenko, Cocos2D, Lumberyard, etc. Anyone who contributes to Godot, benefits equally from other’s contributions.
This key difference is what makes us stronger in the end. Godot is not just a game engine, it’s a true developer community. It encourages everyone to contribute and benefit on equal terms.
We have dozens of core developers and more than 400 contributors working on Godot, and this number keeps growing exponentially month by month.
But this is not all, Godot development is a true meritocracy. Code is only merged when deemed worthy by the other developers. Every change is discussed for pros and cons.
This process is led by our large user community, who usually sets our priorities via issues (or just random rants on our community sites :P). This same community helps with the testing and works directly with developers implementing each feature to ensure it works as best as possible. Our process is truly community-driven from begining to end.
This development process, which involves several thousands individuals, is extremely efficient and ensured that, in a bit less than 3 years, Godot went from being completely unknown to appear on the map on the most important developer communities. No other game related technology has grown so quickly!
To add to that, Godot gives you the safety that we are just individuals working towards making the best game engine possible.
Godot does not need to survive by selling you new features constantly that you probably don’t need and just bloat the engine because they are implemented in a hurry. The small 20mb download size is a testament to this.
Godot does not need to sell you assets or extra services to keep the development going, and does not ask you for a % of your income.
Godot does not need to pay high salary to talented developers in order to exist, talent forms around it due to the oppenness of our process.
Godot does not need to convince companies or users that it has a solid cashflow and it won’t go away anytime soon. Like every successful open source project, we are a talent pool that constantly self replenishes.
Because of all this, Godot is a lot more than a game engine. It’s a lot of talented individuals and the best community we could ever wish for, working together with the hopes of creating the best game development tool that ever exists.
Following this process is very exciting, so stay with us and help us keep making Godot better and better!