- Procedural Content Generation for C++ Game Development
- Dale Green
- 477字
- 2021-07-16 09:37:48
Simple and Fast Multimedia Library (SFML)
Whilst you will have experience with C++, you may not have any prior experience with SFML. That's fine, the book doesn't assume any, so now let's take a brief tour through it
Defining SFML
SFML, short for Simple and Fast Multimedia Library, is a software development library that provides easy access to multiple system components. It's written in C++ and is split into the following succinct modules:
- System
- Windows
- Graphics
- Audio
- Network
With this architecture you can easily pick and choose how you want to use SFML, ranging from a simple window manager to use OpenGL, to a complete multimedia library that is capable of making full video games and multimedia software.
Why we'll be using SFML
SFML is both free, open-source, and has a vibrant community. With active forums and a selection of great tutorials on the official site, there are plenty of resources available for those who wish to learn. Another compelling reason to use SFML is that it's written in C++ and has bindings for many other languages, meaning you can pretty much code in any language that takes your fancy. There is probably a binding available for the language that you wish to use!
The single most attractive feature of SFML is that it is a multiplatform library. An app written in SFML can compile and run on most common operating systems, including Windows, Linux, and Mac OS X, with the Android and iOS versions coming soon in the market at the time of writing this book.
Tip
For your app to be cross-compatible across various platforms, remember that you also have to ensure that your native code or the other libraries used, if any, are also cross-compatible.
Learning SFML
During the course of the book, we'll look at the features and functions of SFML that we'll use to implement our procedural systems, but nothing more. We won't be taking an in-depth look at the library, as that would require a whole book. Luckily, there are a few great books that are published by Packt Publishing dedicated to just that:
- SFML Game Development at https://www.packtpub.com/game-development/sfml-game-development
- SFML Essentials at https://www.packtpub.com/game-development/sfml-essentials
- SFML Blueprints at https://www.packtpub.com/game-development/sfml-blueprints
If you want to learn more about SFML, then these books are a great place to start. There is also a selection of great tutorials on the official SFML site along with active forums. Visit http://www.sfml-dev.org/learn.php for more information.
Alternatives
While SFML is a great option for cross-platform game development, it's not the only one. There are a number of great libraries available, each with their own approaches and styles. Therefore, though we'll use SFML for this project, it's advised that you shop around for your next one. You may just run into your new favorite library.
Here are a few suggestions for future reference:
- SDL2 at https://www.libsdl.org/download-2.0.php
- Allegro at http://liballeg.org/
- MonoGame at http://www.monogame.net/downloads/
- 深入核心的敏捷開發:ThoughtWorks五大關鍵實踐
- INSTANT Mock Testing with PowerMock
- TensorFlow Lite移動端深度學習
- Python金融數據分析
- 深入淺出DPDK
- Python自然語言處理(微課版)
- QGIS:Becoming a GIS Power User
- PhoneGap:Beginner's Guide(Third Edition)
- ArcGIS for Desktop Cookbook
- .NET 4.0面向對象編程漫談:應用篇
- 進入IT企業必讀的324個Java面試題
- 數據科學中的實用統計學(第2版)
- Android嵌入式系統程序開發(基于Cortex-A8)
- Learning WordPress REST API
- 算法訓練營:海量圖解+競賽刷題(入門篇)