Mastering SFML — 3D Game Development

Simple and Fast Multimedia Library (SFML) is a cross-platform software development library designed to provide a simple application programming interface (API) to various multimedia components in computers. It is written in C++ with bindings available for C, Crystal, D, Euphoria, Go, Java, Julia, .NET, Nim, OCaml, Python, Ruby, and Rust. Experimental mobile ports were made available for Android and iOS with the release of SFML 2.2.

2 min readFeb 16, 2020

--

Introduction of o SFML

SFML handles creating and input to windows, and creating and managing OpenGL contexts. It also provides a graphics module for simple hardware acceleration of 2D computer graphics which includes text rendering using FreeType, an audio module that uses OpenAL and a networking module for basic Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) communication.

SFML is free and open-source software provided under the terms of the zlib/png license. It is available on Linux, macOS, Windows and FreeBSD.[5][6] The first version v1.0 was released on 9 August 2007, the latest version v2.5.1 was released on 15 Oct 2018.

SFML consists of various modules:

  • System — vector and Unicode string classes, portable threading and timer facilities
  • Window — window and input device management including support for joysticks, OpenGL context management
  • Graphics — hardware acceleration of 2D graphics including sprites, polygons and text rendering
  • Audio — hardware-accelerated spatialised audio playback and recording
  • Network — TCP and UDP network sockets, data encapsulation facilities, HTTP and FTP classes

While the graphics module is one of the main features of SFML, developers who are interested in only creating an environment to program directly in OpenGL can do so by using the Window module on its own without the graphics module. Similarly, the other modules can also be used independently of each other, except for the System module which is used by all of the modules.

SFML is written in C++ and provides a C++ interface. Several language bindings exist that enable using SFML in other programming languages.

3D Game Programming All-in-One Book

3D Game Programming All-In-One Book is certainly not for the beginner, but if you give it time and go through some of the downloaded code it can help a lot. This book teaches a VERY good method of creating a foundation for any kind of 3D game you can think of and most importantly teaches to fundamentals of state stacks (best thing i’ve learned so far). Excellent book, do skip it!

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Dr Francesco Dergano
Dr Francesco Dergano

Written by Dr Francesco Dergano

CEO of Skydatasol —Managing Principal of Kamiweb Project —Lead Research Manager and CISO of The National Security Framework—Full-Time Student in London

Responses (1)

Write a response