Simple and Fast Multimedia Library (SFML) é uma biblioteca multiplataforma, orientada a objetos e livre. É uma API multimédia escrita em C++ por Laurent Gomila, que tem como objetivo fornecer uma interface simples para vários componentes multimédia do computador.

SFML
Logótipo
SFML
Desenvolvedor Laurent Gomila e outros
Modelo do desenvolvimento Software livre
Versão estável 2.5.1 (15 de outubro de 2018; há 6 anos)
Sistema operativo Multiplataforma
Gênero(s) API
Licença Licença zlib
Estado do desenvolvimento Corrente
Página oficial www.sfml-dev.org

Além disso, a biblioteca tem bindings para outras linguagens, como C, D, Java, Python, Ruby, .NET, Go, Rust, OCaml, Euphoria e Nim. Com o lançamento da versão 2.2, também foi introduzido suporte experimental para as plataformas Android e iOS.

A biblioteca lida com criação de janelas e gestão do input, assim como manutenção e criação dos contextos de OpenGL. Também fornece um módulo para renderização de gráficos em 2D, acelerado por hardware, que inclui renderização de texto através da biblioteca FreeType. O módulo de áudio utiliza o OpenAL como base para reprodução e gravação de audio e o módulo de rede que fornece uma API para comunicação de dados em rede, através de TCP ou UDP.

A biblioteca é livre e open-source, distribuída de acordo com os termos da licença zlib/png. Está disponível em Windows, Linux, OS X e FreeBSD.

Arquitetura do software

editar

Módulos

editar

A biblioteca SFML é composta por vários módulos. Dentre eles:

System

editar

Classes para manipular vetores, strings de texto em Unicode, threads multiplataforma e temporizadores.

Window

editar

Classes para abrir janelas com contextos de OpenGL ativos, com suporte para lidar com input, incluindo joysticks (comandos e outros dispositivos).

Graphics

editar

Classes para renderização de gráficos com aceleração por hardware, incluindo texto, polígonos e sprites.

Áudio

editar

Classes para reproduzir ou gravar áudio. Incluindo espacialização 3D dos sons e streaming de músicas, tudo com aceleração por hardware.

Network

editar

Classes para transmissão de dados por UDP e TCP multiplataforma, utilitários para encapsular dados em pacotes para o seu transporte e uma camada alto nível para transmitir dados via HTTP ou FTP.

Apesar de o módulo gráfico ser um dos mais procurados na biblioteca, programadores com interesse em usar o ambiente SFML para programar diretamente com OpenGL podem fazer isso facilmente, ignorando o módulo gráfico e utilizando apenas o módulo Window. Todos os outros módulos são independentes, com excepção do System, do qual todos os outros módulos dependem.

Bindings para outras linguagens

editar

A biblioteca SFML é escrita nativamente em C++; contudo, existem vários bindings da biblioteca que permitem que a mesma seja utilizada com outras linguagens.

Esta tabela contém a lista de bindings existentes atualmente:

Nome Linguagem Versão suportada
CSFML1 C 2.2
SFML.Net1 .NET 2.2
JSFML Java 2.2
DSFML D 2.1
pySFML Python 2.2
rbSFML Ruby 2.0
GoSFML2 Go 2.1
rust-sfml Rust 2.1
Ocsfml OCaml 2.2
ocaml-sfml OCaml 2.0
EuSFML2 Euphoria 2.0
nim-csfml Nim 2.2
SFML.jl Julia 2.2

1 Bindings oficiais

Extensões não oficiais

editar

A biblioteca SFML forma uma base de software na qual outras bibliotecas ou aplicações podem ser construídas. Existem algumas extensões para vários fins como suportar GUIs (Graphical user interfaces), iluminação 2D, sistemas de partículas e animação, reprodução de vídeos e mapas de tiles.

Recepção da biblioteca

editar

A biblioteca é principalmente usada por desenvolvedores de jogos amadores e empresas de startup com poucos elementos. Como a biblioteca é bastante alto nivel e uma boa ferramenta para fazer rapidamente pequenos jogos, tem sido adotada por participantes da competição Ludum Dare. Comparativamente a outras bibliotecas concorrentes mais antigas, a base de utilizadores de SFML ainda é relativamente pequena, mas o seu crescimento tem sido consistente. Neste momento (4 de março de 2015), o repositório no GitHub já foi seguido por 1968 utilizadores.

A biblioteca também já foi usada recurrentemente para ensino nas universidades e para projetos científicos também.

Videojogos que usam SFML

editar

Outros exemplos de jogos que usam SFML podem ser encontrados no IndieDB, aqui.

Outros softwares que usam SFML

editar

Histórico de versões

editar

Referências

  1. Chung, Brendon (20 de agosto de 2011). «Atom Zombie Tech « Blendo news». Blendo Games. Consultado em 9 de agosto de 2014 
  2. «Chesster [SFML Puzzle Game]». 18 de outubro de 2011. Consultado em 13 de novembro de 2014 
  3. «cosmoscroll - SFML-based shoot'em up game. - Google Project Hosting». Google Project Hosting. Consultado em 13 de novembro de 2014 
  4. «Development Update - Lighting and Saving | Siege Games». Siege Games. 3 de abril de 2012. Consultado em 13 de novembro de 2014 
  5. «HolySpirit Windows game | Desura». Desura. 13 de novembro de 2014. Consultado em 13 de novembro de 2014. Arquivado do original em 13 de novembro de 2014 
  6. «Kroniax available in the Play Store!». Consultado em 15 de novembro de 2014 
  7. «M.A.R.S. - a ridiculous shooter - M.A.R.S. 0.7.2 Bugfix Release». M.A.R.S. 26 de abril de 2011. Consultado em 13 de novembro de 2014 
  8. «SFML 2.0 | BP | I make video games.». Ben Porter. Consultado em 13 de novembro de 2014 
  9. «LZR Ovid the Owl». Leeran Z. Raphaely. Consultado em 13 de novembro de 2014 
  10. «Version 1.0.2 is available of PC and Linux news - Project Black Sun Game - Indie DB». Indie DB. 20 de dezembro de 2011. Consultado em 13 de novembro de 2014 
  11. «The Duke». 8 de junho de 2009. Consultado em 13 de novembro de 2014 
  12. «Vagante | Tools of the Trade». Vagante Game. 3 de dezembro de 2013. Consultado em 13 de novembro de 2014. Arquivado do original em 13 de novembro de 2014 
  13. «Philippe Offermann » The Shooting Of Isaac». Philippe Offerman. Consultado em 13 de novembro de 2014 
  14. «Open Hexagon - challenging fast paced game». Consultado em 13 de novembro de 2014 
  15. a b «Pirate's Treasure & Enchanted Forest». Consultado em 13 de novembro de 2014 
  16. «Limit Theory Forums • View topic - SFML::Texturing». Consultado em 13 de novembro de 2014 
  17. «Tools and resources for making an indie game | Koobazaur's Domain». Jakub Kasztalski. Consultado em 13 de novembro de 2014 
  18. «Eigen's development notes». Eigen Lenk. Consultado em 13 de novembro de 2014 
  19. «Zloxx II - An action Jump'n'Run». Consultado em 15 de novembro de 2014 
  20. «miki151/keeperrl». Consultado em 11 de janeiro de 2015 
  21. «Download | Aquila - a C++ library for digital signal processing». Zbigniew Siciarz. Consultado em 13 de novembro de 2014 
  22. «Otter - A 2D C# Framework built on SFML 2». Kyle Pulver. Consultado em 13 de novembro de 2014 
  23. «Florian Rival's personal website». Florian Rival. Consultado em 14 de novembro de 2014 
  24. «Good news for ImmersionEngine». Facebook. Consultado em 12 de fevereiro de 2015 

Bibliografia

editar

Ver também

editar

Ligações externas

editar