• Register

Main features

  • Portable
    SFML compiles on standard platforms like Windows (98, 2000, XP, Vista) and Unix systems (Linux, Mac OS X). As the library grows up, support for more operating systems will be added.
  • Object-oriented
    SFML is written in C++ and provides an efficient, object-oriented design. It relies on standard patterns and idioms to provide a simple and robust framework.
  • Easy to use
    SFML aims at being easy to manipulate. Effort is put on internal code to provide the simplest public interface.
  • Flexible
    Instead of being one big API, SFML rather contains a lot of small packages, that can be chosen and combined according to the intended usage. You can use only the base package to get input and windowing, as well as the full graphics package with sprites and post-effects.
  • Easily integrable
    SFML can be used in one or more windows, and/or can be integrated in existing interface components. Integration with existing graphical user interface (GUI) libraries is easy, so that you can add SFML views into complex interfaces built with Qt, wxWidgets, MFC or whatever.

Languages

  • C++
  • C
  • .Net (C#, VB.Net, C++/CLI, ...)
  • Python
  • D
  • Ruby

System

  • Portable and accurate time measurement
  • Simple and object oriented threads and mutexes
  • Unicode module for proper conversions between UTF and locale-dependant encodings

Window

  • Can be used as a minimal, portable package to replace GLUT or SDL for windowing and input with OpenGL
  • Can create several rendering windows
  • Can be integrated into components of existing Qt / MFC / wxWidgets / Win32 / X11 / ... interfaces
  • Provides both a message-based and a real-time interface for handling input
  • Can handle mouses with up to 5 buttons
  • Can handle four joysticks with up to 7 axes and 32 buttons

Graphics

  • Interfaces very easily with OpenGL (see OpenGL samples)
  • Modern effects available and hardware-accelerated : alpha-blending, rotations, shaders, ...
  • Manages memory efficiently, so that you don't have to worry about resources lifetime or storage ; you can even load your graphical resources before any window is created
  • Can load and save standard image formats : bmp, dds, jpg, png, tga, psd
  • Can load all graphics resources directly from files in memory
  • Can use views like in a 3D scene, to zoom / translate / rotate the whole world
  • Uses a simplified shader language for adding real-time post-effects
  • Easy manipulation of graphical text through bitmap fonts
  • Supports unicode characters
  • Can load standard font file formats : ttf, cff, pcf, fnt, bdf, pfr, sfnt, type 1, type 42

Audio

  • Uses hardware acceleration whenever possible
  • Can load and save standard sound formats : ogg, wav, flac, aiff, au, raw, paf, svx, nist, voc, ircam, w64, mat4, mat5 pvf, htk, sds, avr, sd2, caf, wve, mpc2k, rf64
  • Can load all audio resources directly from files in memory
  • 3D sound spacialization
  • Easy interface for capturing audio
  • Manages memory efficiently, so that you don't have to worry about resources lifetime or storage
  • Supports streaming for big files ; you can even write your custom streaming class for any source (network, ...)
  • Supports multi-channels formats (mono, stereo, 4.0, 5.1, 6.1, 7.1)

Network

  • Implements a portable layer over TCP and UDP sockets
  • Easy data transfers through stream-based extensible packets
  • Classes to use the HTTP and FTP internet protocols
  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
Post article RSS Articles

Crate delivery

This is an update I've been aching to share: Crate detection has been implemented!
You now see a nice little checkmark when crates are dropped onto platforms with the same color. A counter in the top right will indicate your total progress by showing how many crates have been successfully delivered.

Before starting on this achievement, I rounded up work on the level designer with creating some error screens when the user enters an invalid level name for example.
Here's how it looks:

Error screens 1

I started adding flags to the platforms. The flags make the platform colors a lot clearer, plus it's a nice little heads-up that you found a platform when exploring.
Here's a small preview on how it looks currently while designing a level.

Platform flags 1

It may not look like much, but I've combined this change with a lot of preparing work for the crate/ship detection on platforms.
Behind the scenes the game now recognizes and manages platforms, which by themselves know exactly which tiles are part of it.

After implementing crate detection, I started doing some performance tests to see how my game holds up with about 10 crates in a level and many tile colliders. I did see some problems unfortunately.
I've worked on improving the performance and have been able to boost it significantly. Still I'm not sure if the performance is good enough. I guess I will find out when I actually build an official level.

One of the big improvements was using space partitioning for the collision detection. This means the program monitors the locations of the colliders and sorts them in lists of spaces.
When a collider then wants to check for a collision it only checks the colliders in the same space as itself. This way the program does not need to check all the colliders that are far away.

I also visualized these spaces when viewing the game in debug mode. You can see them drawn as white boxes.

Space partitioning

That's it for now!
I'm planning to start on sounds next. Most challenging will probably be implementing the clashing sounds when a crate hits the ground. The sound volume needs to be adjusted to fit the speed of impact.

Devlog #012:Under the hood stuff

Devlog #012:Under the hood stuff

News

An update about my work on the game for the last 2 weeks

Devlog #011:Playtest your levels

Devlog #011:Playtest your levels

News

I'm making nice progress with the level designer. Players will be able to create their own levels next to the base game. Read more to find out what else...

Devlog #010: Level designer and other updates

Devlog #010: Level designer and other updates

News

Working on a level designer, game logs, scaling. So much to tell you!

Devlog #009: Options screen done!

Devlog #009: Options screen done!

News

Finally the basic options screen is done! These are my last implementations.

Add game Games
Re:creation

Re:creation

Adventure

Re:creation is an action adventure game where you play as an undead knight. You can kill enemies and then control them with your ghost to use their abilities...

The Away Team

The Away Team

Adventure

You are the AI aboard a ship filled with the last known humans in the galaxy. You have the duty of making sure they survive long enough to get them to...

Adventures of Setren

Adventures of Setren

Turn Based Strategy

“Adventures of Setren” is a game set in medieval fantasy. What makes it different is that it doesn’t focus on graphics because games don’t need...

MinimalShmup

MinimalShmup

Arcade

"You like bullets ? Here, there's a lot of them!" MinimalShmup is a bullet hell shooter on Windows and Linux, with Gamepad support, highscores saving...

New colony

New colony

Turn Based Strategy

You are landed on the planet in order to collect the "Resource". The absence of an atmosphere and strong cosmic radiation significantly complicate this...

Medical Division

Medical Division

Realistic Sim

Medical Division puts you in charge of managing an hospital all by yourself putting your management and construction skills to the test! Build your hospital...

Cuit

Cuit

Educational

Cuit is a binary challenge for your mind. You are given a circuit. Navigate the current through it, avoid all explosives and power the targets. Sounds...

Gemstone Keeper

Gemstone Keeper

Roguelike

Gemstone Keeper is a 2D topdown dungeon crawler where you explore caves and caverns, defending yourself against the creatures that reside and go as deep...

Keyboard Killer

Keyboard Killer

Rhythm

Hi! =) Welcome to the Universe which has letters, portals and some... evil =) "Keyboard Killer" is a unique training acting game which can improve your...

Punch Punch Kill

Punch Punch Kill

Fighting

Punch Punch Kill (work in progress name) is a devlog-only game under development by 8-Bit Empire. It is a local PvP brawler, with upcoming limb-by-limb...

Comments
MagnusJoker
MagnusJoker

SFML the best engine to develop games for desktop.

Reply Good karma Bad karma+3 votes
marek.zelinka
marek.zelinka

Creator`s of this site could add Library Used or anything like that to the Profile of game, so that game developers can make credits to the library they are using!

Reply Good karma Bad karma+2 votes
marek.zelinka
marek.zelinka

SFML is not an ENGINE!!!
SFML is a free multimedia C++ API that provides you low and high level access to graphics, input, audio, etc... !!!

Reply Good karma Bad karma+7 votes
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.

Follow Report Profile
Platforms
Windows, Mac, Linux
Company
SFML Developers
Contact
Send Message
Homepage
Sfml-dev.org
Licence
Zlib
Release date
Engine watch
Follow
Share
Embed Buttons
Link to SFML by selecting a button and using the embed code provided more...
SFML
Statistics
Rank
77 of 822
Last Update
Watchers
25 members
Games
59
Files
64
Articles
86
You may also like
Doom Engine
Doom Engine GPL
Esenthel Engine
Esenthel Engine Commercial
AppGameKit
AppGameKit Commercial
id Tech 2
id Tech 2 GPL
Source
Source Commercial
GameMaker Studio 2
GameMaker Studio 2 Commercial