I cant find any game engines which use C, mostly just Java, Anyone know any good engines that support 2d Development in C?

ALso I have an additional question how hard is it to write your own game engine? How would one go about it I'm really curious about how they work.

  • \$\begingroup\$ Take a look at the Wikipedia page that lists game engines. It shows whether 2D or 3D, plus what language. Not all are current, but it should give you some ideas. It's at en.wikipedia.org/wiki/List_of_game_engines You might also think about expanding your search out to different languages. I'm guessing you know C already, but I think once you get more into programming, you'll find that other languages are pretty similar. It can be a bit of a jump to move to object oriented programming, but starting simple is the best way to learn. \$\endgroup\$ – Tim Holt Feb 4 '18 at 23:51

I don't know any Engine for C language.

But for the other part of the question, well... Even the simplest Engine is a bit hard to make BUT not impossible, it is not something that you will accomplish in one day and without scratching your head.

If you want to make games, then don't bother yourself by making an Engine. But if you have some time, I would recommend you at least to try to make one, it is really challenging and fun at the same time. Besides, it is really rewarding making games with your own Engine.


You have tons of tools online that could help you to create an Engine.

  • SDL - Allows you to open a window and manage all that window stuff (drawing, input, etc.). You can learn SDL basis here
  • OpenGL - Allows you to create cool effects to you're 2D Engine. This is the best online tutorial about openGL.
  • SDL_Mixer - Allows you to manage some sound (it's really basic though).

These are all libraries written in C (although the tutorials are in c++ but can be easily translated)

  • 1
    \$\begingroup\$ Another resource for creating your own game engine is handmadehero.org . It’s a video series documenting a game engine being written completely from scratch. Its in C++, but it is written in a style that would be very easy to convert to C. \$\endgroup\$ – Ryan1729 Feb 4 '18 at 23:57
  • \$\begingroup\$ Thank you Ryan, its very helpful to actually see the process being done! \$\endgroup\$ – Toclafane Feb 5 '18 at 0:05

Not the answer you're looking for? Browse other questions tagged or ask your own question.