4
\$\begingroup\$

I am just starting out trying to learn to develop games. At first I thought C++ and OpenGL were the tools a beginner would start out to make a game, but quickly found out the OpenGL was just a API for graphics. Then I thought C++ and SFML were what I needed to learn to make a game, but found out the SFML was a media framework that could be used to make games but wasn't a game engine.

I don't want to use a software that does all the work for me, I want to code my own game, the way a game programmer would. I don't understand the difference between a IDE, framework, API, and a engine; What separates them from each other? Do some game programmers use the SFML framework, while other programmers use a game engine?

\$\endgroup\$

2 Answers 2

9
\$\begingroup\$

An API (Application Programming Interface) is an interface; a set of methods you use to interact with an object or set of objects to do something. Example: OpenGL, for 3D graphics.

A Framework is a step up; it's not only a set of APIs, but a way to think about and solve problems. Example: SFML, for media. It gives you graphics but also input handling and other auxiliary APIs.

A Game Engine is more specialized than a framework; it's a framework very specifically targeted to make games, and usually only games of some kind. It usually includes a lot of authoring tools around it, like model editors or importers, etc. Example: Unreal Engine. Lets you make 3D shooters. While you can use SFML to make a 3D shooter, you can also use it to make a video player. With Unreal Engine you make 3D shooters.

An IDE is unrelated to all these. It means Integrated Development Environment, and it's a step up from a plain text editor. It produces source code files which are text files, but in general it has some sort of integration with the compiler, offers wizards to automate parts of writing the code, and so on. Example: Visual Studio, Eclipse.

About "coding your game", unless you're experienced, I'd start with a Game Engine. You can write code to customize how it works and what it does, but it will save you a lot of work towards "your first game". Later you may want try writing your own Game Engine, maybe building on top of a Framework. And if you really like it, you can build your own Framework based on system-level APIs (OpenGL, Direct3D). It can be incredibly rewarding and a great learning experience. FWIW, I was quite experienced as a programmer when I started my Game Engine, but I built it on top of SDL; later I replaced the SDL layer with my own Framework.

\$\endgroup\$
0
-2
\$\begingroup\$
  1. API (Application Programming Interface) is a set of functions/methods
  2. Framework is a collection of APIs
  3. Game Engine is a specialized framework for developing games. 3D game engine are also used for simulations & animated movies.
  4. IDE (Integrated Development Environment) is a development engine for creating software. IDE integrates a plain text editor with GUI, for viewing the result of running the code. A game engine with GUI is an IDE.
\$\endgroup\$
4
  • \$\begingroup\$ 1) you repeat essentially what has been stated in the accepted answer and 2) some things you mention are wrong. \$\endgroup\$
    – Vaillancourt
    Commented Aug 20, 2023 at 12:12
  • \$\begingroup\$ The accepted answer says that an IDE is unrelated to Game Engine. My answer is that a Game Engine with a GUI to write code and view results of running the code is an IDE; eg UE4, Unity, Godot, etc. \$\endgroup\$
    – Neel
    Commented Aug 20, 2023 at 17:50
  • \$\begingroup\$ An IDE is a feature-rich text editor. Visual Studio is an IDE. You can use it to write code that will be run by the game engine, but in itself, it's not a game engine. Engines like Unreal will integrate with Visual Studio to let users write code, but it does not make Visual Studio a game engine. \$\endgroup\$
    – Vaillancourt
    Commented Aug 21, 2023 at 0:42
  • \$\begingroup\$ "IDE integrates a plain text editor with GUI, for viewing the result of running the code." and "Game Engine with a GUI to write code and view results of running the code is an IDE."; thus not all IDE are Game engines. \$\endgroup\$
    – Neel
    Commented Aug 21, 2023 at 2:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .