Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
SFML Blueprints
SFML Blueprints

SFML Blueprints: Sharpen your game development skills and improve your C++ and SFML knowledge with five exciting projects

eBook
€17.99 €26.99
Paperback
€32.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

SFML Blueprints

Chapter 2. General Game Architecture, User Inputs, and Resource Management

Now that the boring part is over, let's start working with SFML. In this chapter, we are not yet going to build a complete game, but instead we'll learn some basic skills that are required to build a game. These are as follows:

  • Understanding a basic game architecture
  • Managing user inputs
  • Keeping a track of external resources

All of these points are really important for any kind of game. But what do these points exactly mean? This is what I will explain to you in this chapter.

General structure of a game

Before starting to build randomly and without any specific planning, we need to have some information: what kind of game you want to build (RPG, FPS, or action-adventure), what elements will be used, and so on. The aim of this chapter is to understand the general game structure, which can be used in any kind of game. Through this part, we will study:

  • The game class
  • The frame rate
  • The player class
  • Event management

The game class

In the previous chapter, we have seen the minimal code required for a game, which contains:

  • Window creation
  • Creation of graphic display
  • Handle user inputs
  • Deal with the user inputs
  • Display game objects on the screen

Instead of having one function do all the work, we will make use of object-oriented practices and define various states in different functions. Moreover, we will encapsulate the methods in a new class named Game, and we will minimize the main function. This Game class will be the starting point for all our future games:

class Game
{
...

Managing user inputs

Managing the events received from the user is a really important topic. SFML provides us with two different approaches. The first is by polling the events received from a sf::Window instance, and the other is by checking the state in real time of an entry.

First of all, what is an event?

Generally, an event is an object that is triggered when something changes/happens. They are OS-dependent, but SFML provides us with a nice object to handle them in an OS-independent way. This is the sf::Event class. This class deals with a vast number of events, as follows:

  • Windows contains four different kinds of events. They are as follows:
    • Close
    • Resize
    • Gain/lose focus
    • The mouse pointer goes in/out of the window
  • There are three events for the mouse. They are as follows:
    • Move
    • Key press/release
    • Wheel press, release, or move
  • The keyboard contains two events. They are as follows:
    • Keys press/release
    • Text entered
  • The joystick is also managed with four events. They are as follows:
    • Connected/disconnected...

Keeping track of resources

In general game development, the term resource defines an external component that will be loaded at runtime within the application. Most of the time, a resource is a multimedia file such as music and image, but it can also be a script or a configuration file. Throughout this book, the term resource will mostly refer to a multimedia resource.

The resources require more memory, and one of the consequences of this is that all the operations on it run slowly, such as the copy. Another thing is that we don't want to have the same resource loaded multiple times in the memory. To avoid all this, we will use them in a particular way, with the help of a resource manager. Most of the time, a resource is loaded from a file to the hard disk, but there are other ways to load them, for example, from the memory or the network.

Resources in SFML

The SFML library deals with a great numbers of different resources:

Graphics module

Audio module

Texture

SoundBuffer

Image

Music...

Summary

In this chapter, we covered the general game architecture, the input management, and the resources. You also learned about the RAII idiom and some C++11 features such as lambda, variadic templates, smart pointers, move syntax, and perfect forwarding.

All the basic building blocks are now set up, so in the next chapter, we will make complete games by completing the current application to raise it to the asteroid game, and we will also build a Tetris game.

Left arrow icon Right arrow icon

Description

This book is for developers who have knowledge of the basics of the SFML library and its capabilities in 2D game development. Minimal experience with C++ is required.

Who is this book for?

This book is for developers who have knowledge of the basics of the SFML library and its capabilities in 2D game development. Minimal experience with C++ is required.

What you will learn

  • Build a complete game and integrate advanced features by adding a multiplayer layer
  • Get to grips with SFML resources and build a generic and reusable resource manager
  • Gather knowledge about different entity models and build your own 2D games
  • Explore the Box2D engine and add physics properties to your game
  • Add a nice user interface to your game to make it more user friendly
  • Discover the SFGUI library and learn how to customize your game
  • Delve into the importance of multithreading and boost your code
  • Add networking and learn about serialization and database management using Sqlite3

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : May 28, 2015
Length: 298 pages
Edition : 1st
Language : English
ISBN-13 : 9781784395773
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : May 28, 2015
Length: 298 pages
Edition : 1st
Language : English
ISBN-13 : 9781784395773
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 112.97
SFML Game Development By Example
€41.99
SFML Blueprints
€32.99
SFML Game Development
€37.99
Total 112.97 Stars icon

Table of Contents

9 Chapters
1. Preparing the Environment Chevron down icon Chevron up icon
2. General Game Architecture, User Inputs, and Resource Management Chevron down icon Chevron up icon
3. Making an Entire 2D Game Chevron down icon Chevron up icon
4. Playing with Physics Chevron down icon Chevron up icon
5. Playing with User Interfaces Chevron down icon Chevron up icon
6. Boost Your Code Using Multithreading Chevron down icon Chevron up icon
7. Building a Real-time Tower Defense Game from Scratch – Part 1 Chevron down icon Chevron up icon
8. Build a Real-time Tower Defense Game from Scratch – Part 2, Networking Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.8
(4 Ratings)
5 star 0%
4 star 75%
3 star 25%
2 star 0%
1 star 0%
CS Oct 10, 2015
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
This book has good knowledge on basics of SMFL Library. You can learn to make small 2D games, with C++ and SMFL. Good book overall, and useful for understanding SMFL.
Amazon Verified review Amazon
Amazon Customer Nov 12, 2015
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
Someone fairly new to C++ will find making the code samples into a working project quite tough. Although I would say it was not too tough.For example the Asteroids, Tetris and real-time multi-player tower defence game were straight-forward enough to get playing.The strength of this book is really in it's sheer variety of projects(blueprints). If you want a really convincing SFML patterns guide maybe research SFML Game Development . If you want to build multiple working games packed full of the different SFML module's functionality then I have to say this book was seriously fun.Tetris with box2d is a hilarious but really useful project.
Amazon Verified review Amazon
Zach Wilder Jan 11, 2016
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
The examples in this book are clear, well thought out, and (relatively) easy to follow. I would STRONGLY recommend a firm grasp on C++, as most of the examples could be hard to put together for a complete beginner.The example games were a blast to put together, and they do a pretty good job of illustrating the various features of the SFML library.Now, why this book should really be considered 3.5 stars and not a solid 4 - The authors should have hired an editor who can speak/write English competently. There are many typos and grammatical errors throughout the book, which detracts from the excellent job the authors did with the code. For example: "The is no member here, and the class can't be instantiate. [...] So here, only one collision test is describe that take two sf::Sprite as parameters. Take a look to the implementation." (pg 72) In addition, the code examples are spread out in a strange manner that makes it a bit difficult to read, and the typos do carry over to the code - so I would recommend you keep an eye on what you are actually typing.If you want to have fun while learning some cool tricks with SFML, I'd highly recommend this book. I wouldn't hesitate to buy another book from the same author, even with the issues above, and will probably pick up the other SFML books soon.
Amazon Verified review Amazon
Barron Fritz Aug 01, 2015
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
At the end of chapter 2, so my review does not reflect the work in it's entirety.. I will leave a full review once I have completed it.Chapter 1 is all about Setting up your environment on whatever OS you choose(Windows, OSX or *nix) and it goes into presice detail on exactly how to set things up. At the end of chapter 1 you create "A minimal example" program to make sure that the library and your programming environment is set up properly. It shows a picture of the final result, shows the code in order to get this result, and then explains exactly what each part of code does. 5 Stars on Chapter 1.Chapter 2 starts out explaining what the different parts of a game are, and what they are intended to do. You extract your minimal example into it's own "Game" class and break apart each functional piece of code into it's own function. The next part goes into explaining different game loops time-steps or update cycles. I think the Author does a good job explaining Why you would need each kind of type-step and how to implement them, in a very general/basic way. Now we are in to user inputs and how the game will react to such things. At first, a 'minimal' example is given for handling Polled input and Real-Time input. Almost immediately, and with no clear reason or purpose You are instructed to create 2 new classes for handling real-time user input. The book fell apart for me here, and the code shown in the book does not match the code given in the code samples (eg. assignment operators are defined but never declared, namespace "book::" shows up out of nowhere (never mentioned) and causes errors, and the code does not compile at the end of the chapter.)I'm going to give This "hickup" the bennefit of the doubt, and wait till I finish the book to write a full review. Please take this review with a grain of salt, and Note this is for the first Edition, PDF/Kindle copy from PacktPub, and these flaws may be corrected in future editions.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.