Cours complet d'introduction à la SDL 2

Dans ce tutoriel, vous apprendrez à manipuler la bibliothèque de 2D, à savoir la SDL, dans sa version 2.

Prérequis

Ce cours suggère que vous n’êtes pas complètement débutant dans la programmation informatique, que vous avez au moins une fois dans votre vie codée. Pour ce nous utiliserons le langage de programmation C++ au lieu du C. Enfin un niveau d’anglais basique sera le bienvenu.

Préambule

Dans ce cours sur la SLD 2 nous allons pas réellement parler de développement de jeux vidéo ce thème sera réservé pour une autre série d'articles qui parleront plus précisément de cela.

En réalité ce cours est plus dédié, à l'utilisation de la bibliothèque 2D, qu'à réellement programmer un jeux-vidéo. J'ai en effet choisi de séparer la création de jeux et l'utilisation d'une bibliothèque 2D, dans le but de vous expliquer d'abord sur ce cours, ce que propose la SDL comme fonctionnalités de base. Et par la suite dans un autre cours vous expliquez comment peut-on utiliser ces fonctionnalités basiques pour créer des mécanismes plus complexes communs à la plupart des jeux vidéo et non présent nativement dans la bibliothèque (comme par exemple la gestion de la gravité).

Comme expliqué plus haut, le code sera écrit en C++, mais sans trop de notions abstraites, comme les pointeurs intelligents pour ainsi faciliter la compréhension du code pour les débutants. Toutefois si vous souhaitez apprendre le langage C++, des cours en ligne disponible à l’annexe de ce cours sur SDL 2.0.

La norme du langage C++ sera la norme 17.

Introduction

Qu'est-ce que la SDL

SDL pour Simple DirectMedia Layer, est une bibliothèque 2D qui va vous permettre l’écriture de programme graphique. Elle permet :

  • L’affichage vidéo
  • Gérer les évènements clavier, souris

SDL se paie aussi le luxe d’être multi-plateforme (Windows, Linux, Android etc...)

Limitation de la SDL

La SDL reste une bibliothèque très minimaliste, elle ne traite que très peu de types de formats de fichiers, pour l’image et l’audio et les formes primitives de dessins restent aussi limitées.

La bibliothèque ne sait pas géré par exemple que le format audio WAV pour l'audio, le format d’image BMP, et sait dessiner des pixels, des rectangles, des lignes.

Mais sachez qu’il y a la possibilité de contourner ses limites en utilisant des bibliothèques non officielles, comme SDL_image pour gérer beaucoup plus de format d’image, mais aussi SDL_mixer pour gérer plus facilement l’audio, voire aussi SDL_ttf permettant ainsi d'écrire du texte avec des polices d'écritures personnalisées.

Pourquoi est-il intéressant de faire de la SDL

Je vais être honnête, si vous voulez être productif dans le développement de jeux vidéo alors la bibliothèque SDL, risque un peu de vous ralentir. Pourquoi me demanderiez-vous ? Car aujourd'hui moulte de développeurs conseillent de passer directement par des technologies qui facilitent la vie du développeur, tel que des bibliothèques offrant plus de possibilités ou carrément d’utiliser des moteurs de jeux (je pense notamment à Unity).

Mais selon moi choisir la facilité, peut vraiment être un double tranchant en effet, savoir tout faire soit même est un vrai enrichissement intellectuel. Ensuite le passage d’un moteur de jeux sera beaucoup plus facile pour vous, or une personne passant directement par un moteur de jeux devra quasiment écrire du code sans savoir réellement ce qui se passe derriére comme par exemple pour l’Entity Component System.

Espace commentaire

Écrire un commentaire

Rejoignez la discussion

Vous devez être connecté pour poster un message.

15 commentaires

jacques95
Membre
Avatar de jacques95
jacques95
Membre

Explications claires sur les limites, bonne transparence

03/07/2019 à 02:39
lchauvet
Membre Actif
Avatar de lchauvet
lchauvet
Membre Actif

SDL2 c'est la base pour le dev graphique 2D sans prise de tête

30/06/2019 à 05:02
breton-astrid
Membre Actif Secouriste
Avatar de breton-astrid
breton-astrid
Membre Actif Secouriste

Top la partie sur les "Prérequis", c'est souvent le point de douleur

Un setup facile, c'est la clé pour garder la motivation en début de projet

28/06/2019 à 21:46

qu'est-ce que la sdl, j'avais besoin d'un bon rappel

27/06/2019 à 02:10
daniel89
Membre Actif
Avatar de daniel89
daniel89
Membre Actif

Intéressant de voir les avantages de la SDL mis en avant

24/06/2019 à 22:47
ifleury
Membre Actif Secouriste
Avatar de ifleury
ifleury
Membre Actif Secouriste

Les prérequis sauvent des heures de config à galérer

22/06/2019 à 17:06
jean-bigot
Membre
Avatar de jean-bigot
jean-bigot
Membre

Merci pour l'introduction générale, très pédagogique

Permet d'appréhender la biblio sans être noyé sous les détails techniques dès le début

21/06/2019 à 13:49
diaz-philippe
Membre Actif
Avatar de diaz-philippe
diaz-philippe
Membre Actif

SDL2 toujours d'actu pour les projets légers et cross-platform

20/06/2019 à 01:25

Préambule bien posé, on capte l'esprit de la SDL

17/06/2019 à 10:51
mvalette
Membre Actif
Avatar de mvalette
mvalette
Membre Actif

La "Limitation de la SDL" c'est important à connaître

Ça aide à ne pas avoir de mauvaises surprises et à choisir le bon outil pour le bon projet

14/06/2019 à 12:20
dgomez
Membre Actif
Avatar de dgomez
dgomez
Membre Actif

qu'est-ce que la sdl clair et concis

12/06/2019 à 00:56
guy-lejeune
Membre Actif
Avatar de guy-lejeune
guy-lejeune
Membre Actif

Super intro à la SDL2, ça donne envie de coder des jeux

09/06/2019 à 02:31
dumont-nathalie
Membre Actif
Avatar de dumont-nathalie
dumont-nathalie
Membre Actif

Le "Pourquoi est-il intéressant de faire de la SDL" est super pertinent

Ça motive à se lancer et donne une bonne perspective sur les possibilités de la lib

06/06/2019 à 18:31
julien61
Membre
Avatar de julien61
julien61
Membre

Prérequis bien listés, parfait pour le setup initial

04/06/2019 à 17:26
agnes03
Membre Actif Rédacteur
Avatar de agnes03
agnes03
Membre Actif Rédacteur

SDL2 c'est le pied pour la 2D, thx pour ce guide

03/06/2019 à 16:29

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire