• 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

It's very annoying not to be able to show much progress to you guys. I've been working on a lot of things under the hood and thinking about localization.

There's a lot of work to be done for all the menu's. The Options menu alone already is a huge task, mostly because it will introduce some UI element I have not created before.
For example, I want to implement a simple drop-down menu for selecting the resolution and the language, which has to be built from scratch.
Next to this, I've also investigated which languages to support in the game.

Countries by their proficiency in the English language (source: https://www.andovar-game-localization.com/what-languages/)

Countries by their proficiency in the English language
(source: Andovar-game-localization.com


Top 20 markets worldwide in terms of gaming revenue in 2014 (source: https://www.andovar-game-localization.com/what-languages/)

Top 20 markets worldwide in terms of gaming revenue in 2014
(source: Andovar-game-localization.com


Adding the countries with the biggest game revenue and a poor grasp on the English language I've decided to go for English, French, Italian, German, Spanish, Russian, Simplified Chinese, Traditional Chinese, Japanese, Korean and my native language, Dutch.
I figured I would be robbing myself if I didn't translate into the languages of the huge Asian game market.

I'm booking a little bit of visual progress though. I've created the base start menu, which has a slowly moving background of stars. The movement direction and speed is determined randomly each time when the start menu loads.

Moving background in the start menu

Moving background in the start menu


The Start button currently directly starts the first level it can find. The Options button now switches to the Options menu, which is still empty except for a working Back button.

To the options and back!

To the options and back!


I've implemented a "Toggle Language" button in my debug menu so I can test out all the languages whenever I want. This will come in handy to check if translations fit the buttons, and to check whether the fonts support the characters for specific words.
I've been able to find a pixel font that supports the latin and cyrillic alphabet, the latter being used for Russian. For the Chinese/Japanese/Korean characters I found a separate pixel font that is slightly different. Because of the difference in size, I have programmed the font size to adapt depending on the font to make sure it still fits in buttons and other GUI elements.

Toggling languages through my debug menu. You can see the font change to CJK characters messes up some debug info, but the players won't notice any of that :)

Toggling languages through my debug menu. You can see the font change to CJK characters
messes up some debug info, but the players won't notice any of that :)


Next to all these changes I've also ironed out some issues when switching between menu scene and playable level.
All in all a lot of changes, but no really exiting stuff to show you guys.

Expect some more boring posts after this, cause the light at the end of this GUI tunnel is not yet seen.

My experience so far programming a game from scratch

My experience so far programming a game from scratch

News

Building your own engine is not the choice for everyone. This is my take on doing it and why I love it.

Devlog #003: Start menu with localization

Devlog #003: Start menu with localization

News

Working on the start menu with localization! I'm very happy with this result and have learned a lot in the process. Next step is adding a credits button...

Devlog #002: Title improvement

Devlog #002: Title improvement

News

My 3rd attempt for a title graphic after some feedback. I'm very happy with the result!

Devlog #001

Devlog #001

News

A short history of this project and where to find older stuff.

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
90 of 809
Last Update
Watchers
25 members
Games
59
Files
61
Articles
72
You may also like
Blitz MAX
Blitz MAX Commercial
WOLF RPG Editor
WOLF RPG Editor GPL
Unreal Development Kit
Unreal Development Kit Commercial
Raycasting Game Maker
Raycasting Game Maker Public Domain
001 Game Creator
001 Game Creator Creative Commons
NeoAxis 3D Engine
NeoAxis 3D Engine Proprietary