The SFML 3D Engine Wrapper (SF3DEW) is a little game engine I made in C++ that leverages the windowing and input capabilities of SFML, but allows for easy creation and prototyping of small, simple 3D games. (SFML’s graphics capabilities are mostly 2D friendly.)

The engine has the following features:

  • Built-in support for drawing multiples meshes (only 4 hard-coded meshes are supported at this time).
  • Handling of multiple shaders and textures.
  • The grouping of a shader, texture, and uniform color into a Material object in a similar manner as Unity3D.
  • A font rendering system that allows for 2D text from SFML to render properly on top of 3D objects.
  • A GameObject system that supports a modular component system for both built-in components and custom-made components.
  • The 4 built-in components include Audio, ObjectRenderer, FontRenderer, and Physics.
  • Simple physics system that uses squared distance to offer quick collision detection.
  • The physics also supports simple Euler linear and rotational movement.
  • A Timer system that supports a timer callback using functions, methods, or lambdas.
  • A single camera that can be moved and told to look at a point.
  • A Prefabrication system that allows for factory creation of GameObjects with predefined properties.
  • A Scene system that allows loading of levels in a similar fashion as Unity3D.

Source Code:

SF3DEW is open-source under the MIT license and can be obtained on Github. Visual Studios 2012 Express was used and C++11 features are used extensively.