I am a little confused on the difference between a game engine and an actual game. By making a game, are you making a game engine, or is a game engine a library used to make a game?
2 Answers
Engine simply refers to the underlying software that "drives" your game. You build your game engine on top of SFML. SFML provides a simple way to create visuals, play audio, netcode etc. SFML would become part of that engine.
A game engine can come in a form of a library or with a full fledged editor and own scripting language. But SFML is not a "game" engine. Its main purpose is not just to create games. You can also build other media applications with it. SFML simply provides a layer of software which allows the developer to do things like drawing an image or play a sound. But you can consider it a collection of "engines" for producing visuals, playing audio, etc.
Usually when people speak of a game engine they are talking about a piece of software that's pretty complete on its own. The only thing missing is art(sprites/models/etc) and game logic(gameplay, input, etc ) which results in an actual game.
Even if you're making a small game with sfml, anything you write on top which "runs/drives" your game can be called an "engine". Wouldn't worry too much about it.
Library simply refers to a collection of classes/functions/subroutines/whatever to develop software with.
Actually it would be more accurate to say that a "game engine" is all code common across video games (ie: network, video, audio, etc). This "engine" is then compiled along with the video game being developed, and any additional files such as game assets (like sprites, etc).
By separating common code from game-specific code developers may better work on just the game without having to constantly reinvent the wheel.