Hello everyone. Let's suppose I'd like to write a game engine like godot, what should I learn beside C#/Xamarin or C++/Qt and OpenGL ES? Note I'd like the editor to also run on mobile (so at least Android, IOS, Windows, Linux and MacOS).

Please, list topics thoroughly.

I'll mark your anser as such just because it's funny. Anyhow, AFAIK now against what I knew back when I post, here's what I could need: SDL OpenGL ES GLSL AI SDL_Net AudaSpace or other sound API Lua or other scripting language Bullet or other physics library

Thanks anyway.

Making a game engine is really hard work, but it's fun in its own way :smile:. I've made a few prototype engines, so here's what I would suggest:

-- Learn OpenGL if your wanting 3D graphics. If you only want to have 2D graphics, I'd suggest wrapping your engine around one of the many 2D drawing engines out there. SFML is a library I would suggest if you are going the C++ route, SDL is also good for wrapping OpenGL (and handling input, window management, and other useful little things).

-- Decide how you want to design the core of your engine. Godot uses a node and server based approach, for example. I'd suggest writing how you plan to handle things like Physics, Sound, Input, Drawing, and all that stuff in pseudo code before you start writing the engine, so you have a basic idea of how everything fits together. You could also use a flow chart, or whatever works for you! The main idea is to kinda logic the core out a bit before you dive into the deep end.

-- Do one platform at a time. I've found there are little quirks to every platform whether it be desktop or mobile. I'd suggest getting the engine running on one platform, probably whatever platform you use to develop the engine, and then worry about making it multi platform.

-- Start simple and not worry about how it looks/performs/exports! It's way too easy to compare your work to Godot, Unity, Unreal, etc. It will probably take several years before it's ready to have such comparisons.

That's my suggestions based on my attempts at making game engines. I've never actually made a fully working game engine, so... I'd suggest taking my advice with a grain of salt :smile: