Choosing Godot for an open source social educational app

Hi, I recently fell in love with Godot and would love to hear some opinions from experienced Godotneers! :slight_smile: This is a cross-post from the godot reddit “welcome thread”. If this post belongs somewhere else, please correct me!

Our company (software/game studio) is building an open source educational platform that specializes in AI learning and the social aspect of it (kind of like an open source Kahoot, but with more focus on social interaction). We are already successful with physical workshops using various digital tools and are now looking for the next step - the holy grail: an open source platform that combines our business logic with interactive games.

We come from a tech stack of game engines like unity / unreal and frameworks like flutter, react, vue.js. At first we saw two options for our frontend:

  • Flutter + Unity integration or (if the interactive game is too heavy) an external app for the Unity stuff. A Frankenstein solution, that is used by some mobile companies.

  • React + Web-JS game engine (like pixieJS or threejs). Very easy access, but hard to iterate interactive and fun games in.

Since we were looking for open source components, the Unity part was a thorn in our side. So we looked at Godot and I have to say we were very impressed. Especially how easy it was to get started and (!) how powerful Godot is with UI logic. The best example is the Godot editor itself. So the idea came up to do it all in Godot, so we don’t have to have a Frankenstein solution like Flutter+Game Engine or be limited to “low fidelity” games with a full web stack. However, there are four things that worry me:

Web export
It would be very important to have a way to export to the web (in some kind of complexity) so that kids do not have to download anything. Godot 4 has its problems with web export, and even Godot 3 is not really reliable on the web with Safari. I know that significant progress is being made (see the recent 4.3 web discussion), but knowing Apple’s situation, I am not really hopeful that there will be a production-ready solution soon.

Accessibility issues
I haven’t found much documentation on screen reader support, except for a plugin that is no longer maintained. This could be very important for us in the public sector.

App complexity
The examples of applications in Godot are nice, but there are still some questions about whether this is the right tool for the job. We will probably use Nakama for the backend, which is supported. But almost certainly there will be some business logic where we would like to have APIs like other frameworks that are best suited for this kind of job (like react/flutter). However, we do not want to create a boring web application, so our freedom to create a more animated UI with natural integration of our interactive games may outweigh this.

Adapting our team to Godot
As mentioned in the beginning, we are a team of designers and developers used to other common industry tools. Still, we want to be able to use the right tool for the job, and since we want to be as open source as possible, Godot ticks a lot of boxes. The question is whether there is enough time (5 months) / resources (3-4 developers) to learn Godot for this kind of project and produce an MVP. I suspect the beginning will be tough, but my experience with Godot has encouraged me positively that with existing industry experience the adaptation could be faster than if we adapt our game engineers to a web-based framework. Also, iteration would hopefully be much faster than the other options.

Ultimately, there is currently no tool that can do all the things we dream of doing, so there are hard choices to be made between low barrier to entry (web) and interactivity (game engines). At first I didn’t even see Godot as an option, but my first experiences have impressed me, so I would love to hear your opinion on these four points!

I would not pick Godot for this.

I love the UI system but it’s simply not as good at “corporate” UI as web-tech.

  • Accessibility support is almost non-existent (there’s a built-in way to make UI keyboard navigable but that’s it AFAIK).
  • UI styling is hard (compared to CSS: try making an animated button)
    • Godot would be better for an asset-based UI (as most games tend to have) but for procedural css ui is super fast & easy to use
  • Browser support

If you’re looking to make a web app I would just use a dedicated web solution e.g. React. I honestly don’t see why you would even want a game engine if you’re making anything Kahoot-like🤔 Can’t say much about Flutter since I haven’t used it much.

With that being said, it does sound like your team would have an easier time with Godot than JS. Godot is pretty easy to pick up + in my experience game devs tend to hate the way things are done in Javascript land😁 App complexity in Godot shouldn’t be an issue though I would definitely use C# instead of GDScript. The .NET ecosystem can save a lot of work compared to having to write everything yourself. It also makes managing complexity much easier. There have been some web support issues but I think they fixed those recently.

If you do want to add a super complex / resource intensive minigame to your app later you could do a separate WASM app and embed it in your JS app.

1 Like

correct me if I’m wrong, but last time I checked, you couldnt export .NET/C# godot project for the web
If you want web export, the only option you have that sort of works is to use exclusively GDScript. You could also add C++, under condition that you bundle whatever C++ code you have into an engine module(GDExtension has problems with web export lets put it mildly)

With this in mind I’m also kinda sceptical if Godot will be the right thing(at least currently). you could plug some holes with C++ libraries, but then you would need to write a module for them to interface with the rest of the engine - also in C++.

1 Like

You’re right, I was thinking of mobile exports. C#/.NET — Godot Engine (latest) documentation in English