Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: A discussion about what SFML actually is, and why it does what it does.  (Read 4557 times)

0 Members and 1 Guest are viewing this topic.

Critkeeper

  • Jr. Member
  • **
  • Posts: 62
    • View Profile
This is a controversial question that is intended to stir up a discussion about what SFML actually is, not an actual feature request.

Lets define what a media is. I believe media is any data that can be consumed by a human. For example, music is media because it can be parsed by a human, and visual art is a media. Sculpture is a form of visual art and is its own kind of media if you are permitted to touch it. Naively , since humans only have 6 senses through which to experience the world, sight, smell, taste, touch, hearing and time, media can be broken up into 6 categories.

But human experience is wider than the 6 physical sensations! There are internal sensations, like love and hate. So then it would be more precise to say that there are 2 classes of media, physical and nonphysical, and 6 classes of physical media. Mutimedia just means multiple mediums at once, for example a movie is multimedia. In fact, art can be multimedia if it causes you to feel something nonphysical, like wistfulness.

Naturally it is not possible to cause a person to feel an emotion without exposing them to some kind of physical stimuli. Therefore, all arts that can be classified as nonphysical media are also physical media as a matter of course.

This brings me to SFML, which stands for simple fast multimedia library. Media here obviously refers to physical media. With the current state of the art there are barely over 3 physical media that can be conveyed through the computer-- sight and sound and time obviously, and perhaps a limited tactile experience through vibrating rumble controllers or touch screens. So our ability to convey nonphysical media is restricted to what we can invoke through half of the human physical senses!

Despite this overwhelming drawback, compelling arts that invoke an emotional reaction in the consumer have been actualized through computers, and libraries like SFML enable artists to make these experiences happen.

If you take a good look at the SFML's documentation you will see that everything operates on media in some form. Whether it be storing the media or retrieving it, sending it across a network, parsing it or sending it to a device that will make it visible to the human. Not all operations are visible to the person, and a great deal is hidden in order to provide the programmer with a simple interface through which to convey his art.

SFML enables programmers to convey physical media so that the consumers of that physical media will experience a nonphysical response, like enjoyment, anger, or even something more cerebral like understanding -- as is the case with most non-entertainment based multimedia applications.

One question I would like you to think about is whether or not SFML would be better off or worse off combining media and treating combinations as first class entities. With barely more than 3 media through which to convey information to the consumer via the computer, there are only 7 combinations: {{Sound sight time}{sound time}{sight time}{sound sight}{sound}{sight}{time}}

Currently SFML's API revolves around using composition of the last 3 to build the other 4. What are the benefits and drawbacks of this approach?
if(CritKeeper.askQuestion()){return question.why();}

Nexus

  • SFML Team
  • Hero Member
  • *****
  • Posts: 6287
  • Thor Developer
    • View Profile
    • Bromeon
Generally speaking, the main advantage of composition is to counter combinatorial explosion. We provide the building blocks, users are able to combine them as they like.

Regarding time -- a physical scalar quantity -- as a medium is also a bit strange. Especially when you declare it as a feature of SFML. Every single interaction involves time; your association is far too broad.

And your post is really too vague. Since you're probably having something technical and not only philosophical in mind: what do you suggest concretely?
Zloxx II: action platformer
Thor Library: particle systems, animations, dot products, ...
SFML Game Development:

Critkeeper

  • Jr. Member
  • **
  • Posts: 62
    • View Profile
I really don't have any suggestions. I'm just trying to get everyone talking about composition as an approach to multimedia libraries, particularly SFML, and what the drawbacks and advantages are of doing it that way. If there were many more media available to us through multimedia libraries then composition is obviously the only sane choice because of combinatorial explosion-- but there are only 3 media available to us really, so it behooves us to inspect our own assumptions about what is "sane" and what isn't.
« Last Edit: May 26, 2015, 08:13:01 pm by Critkeeper »
if(CritKeeper.askQuestion()){return question.why();}

eXpl0it3r

  • SFML Team
  • Hero Member
  • *****
  • Posts: 11030
    • View Profile
    • development blog
    • Email
Honestly, I've no idea what you're talking about, sounds too philosophical. ;D

SFML provides access to low-level APIs through a nice higher level API. How the users uses that to "compose" something, is not SFML's concern.
Official FAQ: https://www.sfml-dev.org/faq.php
Official Discord Server: https://discord.gg/nr4X7Fh
——————————————————————
Dev Blog: https://duerrenberger.dev/blog/

Nexus

  • SFML Team
  • Hero Member
  • *****
  • Posts: 6287
  • Thor Developer
    • View Profile
    • Bromeon
I still miss the relation to SFML. What do you mean when you talk about composition? You surely have something in mind, like providing higher-level features that combine graphics and sound.

There's a place for such features: game engines. SFML is none by definition, which explains the lack of the former.
Zloxx II: action platformer
Thor Library: particle systems, animations, dot products, ...
SFML Game Development:

DarkRoku12

  • Full Member
  • ***
  • Posts: 203
  • Lua coder.
    • View Profile
    • Email
SFML is like SDL.

A library. A very good library (i prefer it over SDL).

I don't understand so much what you say..because it's too philosophical.

If you want more resources (more "media") (instaed of picking this for one library and that for other and then put all together ) you can choose a game engine.

Like cryengine (C++/lua) , unity3D (C#) , unreal engine (C++) , corona sdk ( lua , for android ) ..etc .

The last 3 engines are now free ( unreal requires royalties ).

I really recommend unity3D.
I would like a spanish/latin community...
Problems building for Android? Look here

Hapax

  • Hero Member
  • *****
  • Posts: 3379
  • My number of posts is shown in hexadecimal.
    • View Profile
    • Links
Lets define what a media is. I believe media is any data that can be consumed by a human. For example, music is media because it can be parsed by a human, and visual art is a media. Sculpture is a form of visual art and is its own kind of media if you are permitted to touch it.
A medium isn't defined by human consumption. In the case of the types of media you talk about, it's the means of transference from one place to another. Therefore, it isn't inheritly human. For example, is sound no longer a medium if an animal is listening to it?

Naively , since humans only have 6 senses through which to experience the world, sight, smell, taste, touch, hearing and time, media can be broken up into 6 categories.
Well, that's just not true; there are many more.
How about pain or balance? There are more still.
Also, I agree with Nexus. Time isn't really a medium. It's more of a measurement of a particular dimension (assuming standard physics and mathematics calculations). That would be like saying length is a medium.

Currently SFML's API revolves around using composition[...]. What are the benefits and drawbacks of this approach?
composition as an approach[...]and what the drawbacks and advantages are of doing it that way.
What are the advantages? You need to know what the alternative is to be able to have an advantage over it so...
what is the alternative?
Selba Ward -SFML drawables
Cheese Map -Drawable Layered Tile Map
Kairos -Timing Library
Grambol
 *Hapaxia Links*