Se connecter

Informatique

Création de Jeux

Sujet : [C++ / SFML] Moteur de jeu SFML pour Android et PC
1
IsDaouda_Games
Niveau 3
05 février 2020 à 02:04:49

Bonjour / Bonsoir à tous, :)

Je vous présente is::Engine v1.0 un moteur de jeu 2D créé avec la bibliotèque SFML. Il vous offre des outils (Game Scene, Box 2D, Game Config System, Admob, ...) qui vous permettent de développer facilement vos jeux sur PC (Windows, Linux) et Android. Il est livré avec l'IDE qui correspond à la plateforme cible (Notez que vous avez le choix d'utiliser votre propre IDE). :ok:

Lien du moteur :
:d) https://www.github.com/Is-Daouda/is-Engine

:svp: Jeuxvideo.com n'affiche pas les liens. J'ai préféré les mettre dans la balise code pour plus de visibilté.

Dans ce post, je vais vous montrer comment l'utiliser pour développer sur Android:
Il est nécessaire de connaître les bases de SFML et POO en C ++ avant de pouvoir utiliser ce moteur.
Ce didacticiel est destiné aux utilisateurs de Windows. On y va !

  • Télécharger Android Studio 3.x (version recommandée 3.1.3)
  • Téléchargez Android SDK et installez-le dans C:/Android/SDK
  • Téléchargez Android NDK android-ndk-r12b-windows-x86_64 ici:

:d) https://www.developer.android.com/ndk/downloads/older_releases.html
Et créez un dossier sur votre disque comme suit C:/Android/NDK puis extrayez le contenu du zip dans ce dossier.

  • Définissez la variable d'environnement ANDROID_NDK avec le chemin C:/Android/NDK
  • Téléchargez cette version de SFML déjà compilée pour Android NDK:

:d) https://www.github.com/Is-Daouda/is-Engine/tree/master/SFML_2.4.0_Build_For_NDK_r12b
Et extrayez-le dans C:/Android/NDK/sources/sfml

  • Téléchargez maintenant la version du moteur qui vous permettra de développer sur Android:

:d) https://www.github.com/Is-Daouda/is-Engine/tree/master/SFML_AndroidStudio-master
Extrayez le contenu dans C:/SFML_AndroidStudio-master, ouvrez le dossier SFML_AndroidStudio-master avec Android Studio et démarrez la compilation.

Si tout se passe bien, vous aurez un jeu de Vaisseau sur votre émulateur Android.
Les images :
:d) http://www.noelshack.com/2019-47-2-1574169566-main-menu.png
:d) http://www.noelshack.com/2019-47-2-1574169566-gameplay.png
Maintenant c'est à vous de jouer ! :ok:

Tout commentaire est le bienvenu. :-)

zebtorax
Niveau 9
05 février 2020 à 08:14:41

Le 05 février 2020 à 02:04:49 IsDaouda_Games a écrit :
Bonjour / Bonsoir à tous, :)

Je vous présente is::Engine v1.0 un moteur de jeu 2D créé avec la bibliotèque SFML. Il vous offre des outils (Game Scene, Box 2D, Game Config System, Admob, ...) qui vous permettent de développer facilement vos jeux sur PC (Windows, Linux) et Android. Il est livré avec l'IDE qui correspond à la plateforme cible (Notez que vous avez le choix d'utiliser votre propre IDE). :ok:

Lien du moteur :
:d) https://www.github.com/Is-Daouda/is-Engine

:svp: Jeuxvideo.com n'affiche pas les liens. J'ai préféré les mettre dans la balise code pour plus de visibilté.

Dans ce post, je vais vous montrer comment l'utiliser pour développer sur Android:
Il est nécessaire de connaître les bases de SFML et POO en C ++ avant de pouvoir utiliser ce moteur.
Ce didacticiel est destiné aux utilisateurs de Windows. On y va !

  • Télécharger Android Studio 3.x (version recommandée 3.1.3)
  • Téléchargez Android SDK et installez-le dans C:/Android/SDK
  • Téléchargez Android NDK android-ndk-r12b-windows-x86_64 ici:

:d) https://www.developer.android.com/ndk/downloads/older_releases.html
Et créez un dossier sur votre disque comme suit C:/Android/NDK puis extrayez le contenu du zip dans ce dossier.

  • Définissez la variable d'environnement ANDROID_NDK avec le chemin C:/Android/NDK
  • Téléchargez cette version de SFML déjà compilée pour Android NDK:

:d) https://www.github.com/Is-Daouda/is-Engine/tree/master/SFML_2.4.0_Build_For_NDK_r12b
Et extrayez-le dans C:/Android/NDK/sources/sfml

  • Téléchargez maintenant la version du moteur qui vous permettra de développer sur Android:

:d) https://www.github.com/Is-Daouda/is-Engine/tree/master/SFML_AndroidStudio-master
Extrayez le contenu dans C:/SFML_AndroidStudio-master, ouvrez le dossier SFML_AndroidStudio-master avec Android Studio et démarrez la compilation.

Si tout se passe bien, vous aurez un jeu de Vaisseau sur votre émulateur Android.
Les images :
:d) http://www.noelshack.com/2019-47-2-1574169566-main-menu.png
:d) http://www.noelshack.com/2019-47-2-1574169566-gameplay.png
Maintenant c'est à vous de jouer ! :ok:

Tout commentaire est le bienvenu. :-)

C'est un bug courant sur ce forum, maintenant tes liens devraient être affichés. :ok:

IsDaouda_Games
Niveau 3
05 février 2020 à 11:50:20

Merci à vous :)

IsDaouda_Games
Niveau 3
13 février 2020 à 22:00:39

Salut à tous,
Vous pouvez maintenant utiliser is::Engine avec Visual Studio Code pour développer vos jeux sur Windows ou Linux.

Lien :
:d) https://github.com/Is-Daouda/is-Engine/tree/master/SFML_VSCode

IsDaouda_Games
Niveau 3
12 mars 2020 à 20:55:14

Salut à tous,
Nouvelle mise à jour pour is::Engine.

- Ajout de la fonction basicSFMLMain() implémenter dans core/basicSFMLMain.cpp et utilisable dans le main.cpp.

Cette fonction lance une fenetre SFML sans passer par le rendu principal du moteur. Elle vous permet d'utiliser votre propre boucle de rendu avec le moteur.

Ceci a pour but de permettre aux débutants d'utiliser facilement le moteur et de permettre à d'autres personnes d'utiliser le moteur pour exporter des projets existants sur d'autres OS (Android, Linux, Windows)

Lien du moteur de jeu :
:d) https://www.github.com/Is-Daouda/is-Engine

IsDaouda_Games
Niveau 3
08 avril 2020 à 01:35:40

http://www.noelshack.com/2020-15-3-1586302038-is-engine-logo-mini.png

Salut à tous,
La version 2.0 de is::Engine est disponible.
Cette version apporte beaucoup de nouveautés comme :

  • Intégration de la bibliothèque SWOOSH
  • Game Pad Virtuel (avec 6 touches) pour Android (avec Configuration)
  • Intégration de Tiny File Dialogs
  • Gestionnaire de langue
  • Affichage de PUB de type vidéo récompense pour Android
  • Redesign complet de la structure du moteur

Et plein d’autres choses...

:d) Lien du moteur: https://github.com/Is-Daouda/is-Engine/tree/2.0.x

Cette fois ci il est accompagné d’un éditeur de niveau qui vous permet de créer vos propres niveaux afin de l'intégré au moteur de jeu.

:d) Lien de l'editeur de niveau : https://github.com/Is-Daouda/is-Level-Editor

IsDaouda_Games
Niveau 3
09 mai 2020 à 04:51:01

Salut à tous, :)
Le guide d'utilisation de is::Engine est disponible ici :

:d) https://github.com/Is-Daouda/is-Engine/tree/2.0.x/doc

Dans le guide il y a une partie qui vous montre comment utiliser le moteur pour développer un jeu 2D sur Android et PC.

zebtorax
Niveau 9
09 mai 2020 à 06:50:12

Slt,

Je pense que le bug des liens qui s'affichent pas provient du fait qu'ils sont postés depuis un autre pays.
Là ça devrait fonctionner :

Le 13 février 2020 à 22:00:39 IsDaouda_Games a écrit :
Salut à tous,
Vous pouvez maintenant utiliser is::Engine avec Visual Studio Code pour développer vos jeux sur Windows ou Linux.

Lien :
:d) https://github.com/Is-Daouda/is-Engine/tree/master/SFML_VSCode

Le 12 mars 2020 à 20:55:14 IsDaouda_Games a écrit :
Salut à tous,
Nouvelle mise à jour pour is::Engine.

- Ajout de la fonction basicSFMLMain() implémenter dans core/basicSFMLMain.cpp et utilisable dans le main.cpp.

Cette fonction lance une fenetre SFML sans passer par le rendu principal du moteur. Elle vous permet d'utiliser votre propre boucle de rendu avec le moteur.

Ceci a pour but de permettre aux débutants d'utiliser facilement le moteur et de permettre à d'autres personnes d'utiliser le moteur pour exporter des projets existants sur d'autres OS (Android, Linux, Windows)

Lien du moteur de jeu :
:d) https://www.github.com/Is-Daouda/is-Engine

Le 08 avril 2020 à 01:35:40 IsDaouda_Games a écrit :
https://www.noelshack.com/2020-15-3-1586302038-is-engine-logo-mini.png

Salut à tous,
La version 2.0 de is::Engine est disponible.
Cette version apporte beaucoup de nouveautés comme :

  • Intégration de la bibliothèque SWOOSH
  • Game Pad Virtuel (avec 6 touches) pour Android (avec Configuration)
  • Intégration de Tiny File Dialogs
  • Gestionnaire de langue
  • Affichage de PUB de type vidéo récompense pour Android
  • Redesign complet de la structure du moteur

Et plein d’autres choses...

:d) Lien du moteur: https://github.com/Is-Daouda/is-Engine/tree/2.0.x

Cette fois ci il est accompagné d’un éditeur de niveau qui vous permet de créer vos propres niveaux afin de l'intégré au moteur de jeu.

:d) Lien de l'editeur de niveau : https://github.com/Is-Daouda/is-Level-Editor

Le 09 mai 2020 à 04:51:01 IsDaouda_Games a écrit :
Salut à tous, :)
Le guide d'utilisation de is::Engine est disponible ici :

:d) https://github.com/Is-Daouda/is-Engine/tree/2.0.x/doc

Dans le guide il y a une partie qui vous montre comment utiliser le moteur pour développer un jeu 2D sur Android et PC.

geoffroypir
Niveau 5
09 mai 2020 à 07:43:01

SFML est une librairie que je recommande vraiment pour ceux qui cherche a faire des jeux 2D.
Je l'ai utilisé il y a une dizaine d'années, à ses débuts, c'était déjà pour moi la meilleur librairie 2d en c++.
C'est très bien pour les débutants aussi, moins casse tête que la SDL.

IsDaouda_Games
Niveau 3
10 mai 2020 à 08:12:30

@zebtorax merci pour le coup de main :ok:

@Geoffroypir Oui effectivement, c'est l'une des meilleurs bibliothèques pour créer des jeux 2D, en plus elle est très facile à pendre en mains ! :)

lokilok
Niveau 10
10 mai 2020 à 13:47:22

Le seul truc que j'aime pas avec la SFML c'est que tout est géré à base de float, ça rend toutes les méthodes add_x inutilisable de part leur imprécision, obligé de faire obj.set_x(static_cast<int>(obj.get_x()) + offset) pour avoir un add qui perd pas en précision.

IsDaouda_Games
Niveau 3
17 juin 2020 à 22:10:57

Salut,
Une nouvelle mise à jour de is::Engine v2.0 est disponible.
Vous pouvez maintenant définir le FPS et les styles de la fenêtre dans le fichier configuration du projet (GameConfig.h).

IsDaouda_Games
Niveau 3
07 juillet 2020 à 22:03:19

Salut à tous, :)
is::Engine 2.1 est disponible et apporte beaucoup de nouveautés :
:d) Support des outils de développement récent : C++17, SFML 2.5.1, Android NDK 20

:d) Le système SDM (Step and Draw Manager) : vous permet de mettre à jour et d'afficher automatiquement les objets d'une scène (ex : un Niveau).
Tout ce que vous avez besoin de faire est de créer une Classe qui hérite de MainObject (la classe de base du moteur), en suite d'implémenter la méthode step() (update) et draw() (celle-ci est optionnel car is::Engine le fait pour vous), ensuite ajouter l'objet dans la liste des objets SDM à gérer et voilà !

Le SDM vous permet aussi de gérer la profondeur d'affichage de chaque objet (très utile pour faire des effets 3D dans un jeu 2D).

Notez que vous avez le choix de décider du moment où le SDM va mettre à jour ou afficher automatiquement les objets.

Avec le SDM le code source de votre jeu est mieux structuré!

:d) Le système GSM (Game Sound Manager) : vous permet de jouer un son ou une musique sans initialiser d'instance sf::Sound, sf::Buffer et sf::Music.

:d) Le SDM et le GSM ont été utilisés dans l'exemple qui accompagne la version 2.1 du moteur.
Le SDM a été utilisé pour gérer les objets de la classe GameLevel, et le GSM dans toutes les parties du moteur.
Veuillez consulter l'exemple pour voir comment ces deux (2) systèmes fonctionnent.
:d) Lien : https://github.com/Is-Daouda/is-Engine

Créer des jeux avec is::Engine n'a jamais été aussi Fun! :ok:

IsDaouda_Games
Niveau 3
14 juillet 2020 à 21:09:50

Salut à tous, :)
- is::Engine pour CMake est disponible.
Cette fois ci il y a une surprise qui vous attend dans la Démo!
:d) Lien : https://github.com/Is-Daouda/is-Engine/tree/2.1.x/CMake

- le SDM permet maintenant de donner des noms (Oui des vrais noms ^^) à vos objets afin de pouvoir mieux les contrôler.

Voici un exemple de code qui fait sauter le joueur :

// On ajoute l'objet player
SDMaddSceneObject(std::shared_ptr<Player>(new Player()), true, true, "Player One");

// Utiliser l'objet player
if (auto player = SDMgetObject("Player One"); player != nullptr) player.jump();
zebtorax
Niveau 9
14 juillet 2020 à 21:57:16

Le 07 juillet 2020 à 22:03:19 IsDaouda_Games a écrit :
Salut à tous, :)
is::Engine 2.1 est disponible et apporte beaucoup de nouveautés :

:d) Lien : https://github.com/Is-Daouda/is-Engine

Créer des jeux avec is::Engine n'a jamais été aussi Fun! :ok:

Le 14 juillet 2020 à 21:09:50 IsDaouda_Games a écrit :
Salut à tous, :)
- is::Engine pour CMake est disponible.
Cette fois ci il y a une surprise qui vous attend dans la Démo!
:d) Lien : https://github.com/Is-Daouda/is-Engine/tree/2.1.x/CMake

- le SDM permet maintenant de donner des noms (Oui des vrais noms ^^) à vos objets afin de pouvoir mieux les contrôler.

Comme d'hab, mise à jour des liens, comme ça on peut cliquer dessus... :ok:

IsDaouda_Games
Niveau 3
15 juillet 2020 à 13:50:10

@zebtorax vraiment merci pour votre aide :) et bonne journée. :ok:

IsDaouda_Games
Niveau 3
07 août 2020 à 23:08:21

https://www.noelshack.com/2020-32-5-1596834343-logo-v10.jpeg

Salut, :)
is::Engine 2.2 est disponible! Nouvelles fonctionnalités :
:d) Maintenant le SDM permet de gérer entièrement une fenêtre SFML c-à-d il gère automatiquement :
- Les évènements de fermeture, focus et clavier / toucher (sur Android)
- La mise à jour et affichage des Sprites SFML
- L'affichage d'un dialogue de confirmation quand on essaie de fermer l'application avec la touche CANCEL (Touche paramétrable dans GameConfig.h)

Notez que vous pouvez changer la façon dont is::Engine gère les évènements et les réponses (YES, OK, NO) de la boite de dialogue, en surchargeant tout simplement les méthodes SDMmanageSceneEvents() et SDMmanageSceneMsgAnswers().

:d) Un système de Background qui permet de créer facilement des arrières plan dans une scène.

:d) Amélioration du moteur de collision basique :
- Ajout du masque de collision Cercle
- Possibilité de dessiner (dans une scène) les masques de collision de chaque objets (le moteur détermine automatiquement le type de masque utilisé)

Le but du moteur de collision basique n'est pas de remplacé Box 2D mais de vous permettre de faire facilement des tests de collision simple. Croyez-moi on peut faire beaucoup de choses avec les collisions Basiques (Rectangle et Cercle) la preuve le premier jeu du moteur I Can Transform a été créé uniquement avec des masques de collision Rectangle.
:d) lien du jeu :play: : https://play.google.com/store/apps/details?id=com.isdaouda.icantransform&hl=En

:d) Le guide d'utilisateur est disponible maintenant en version Web (HTML).

:d) Amélioration de l'Editeur de Niveau
https://github.com/Is-Daouda/is-Engine-Level-Editor
https://www.noelshack.com/2020-32-5-1596834368-is-eng18.jpeg

:d) Le projet Démo qui est sur Git hub a été remplacé par un projet Hello world à la sauce is::Engine afin de vous permettre de démarrer rapidement avec le moteur.

En moins de 50 lignes de code la scène du projet Hello World fait ces choses :
- Charge les ressources (musique, texture, police)
- Gère les événements de la fenêtre SFML (focus, fermeture, touche)
- Affiche une boite de confirmation quand on appuie sur ESCAPE (représente la touche Back sur Android)
- Définie une couleur de fond pour la scène
- Change la langue du jeu (Anglais / français)
- Communique avec vous grâce à une boite de dialogue de style RPG
- Affiche automatiquement un Sprite SFML
- Affiche automatiquement un background qui remplit la scène et qui se défile verticalement et horizontalement (avec une vitesse)
- Met à jour et dessine un objet qui s'anime (Bien sur une Classe a été créée pour cet objet ^^)
- Joue une bonne musique

Vous pouvez jeter un coup d'œil au projet afin de le constater vous même ! :noel:

Le but de is::Engine est de vous permettre de créer tout ce que vous voulez facilement et simplement ! :ok:

IsDaouda_Games
Niveau 3
07 septembre 2020 à 21:23:28

Salut à tous, j’espère que vous allez bien ! :)
is::Engine 3.0 est disponible et apporte d’énorme nouveautés :

Prise en charge de la bibliothèque TMXLite et TMXLoader : qui vous permet d'utiliser l'éditeur Tiled avec le moteur.
La version Officiel supportée est TMXLite mais vous pouvez utiliser une autre version du moteur avec TMXLoader.
:d) lien TMXLite : https://github.com/Is-Daouda/is-Engine-TMXLite
:d) lien TMXLoader : https://github.com/Is-Daouda/is-Engine-TMXLoader

https://www.noelshack.com/2020-36-3-1599009038-tmx-im11.jpeg

Moteur multiplateforme : Vous pouvez maintenant utiliser un seul et même projet pour développer sur Android, Windows et Linux (Pour compiler sur les différents OS il suffit de changer l’éditeur).

Supporte de plusieurs outils de développement : Vous pouvez utiliser Android Studio, CMake, Visual Studio Code et Code::Blocks avec le même projet.

Un système d'évènement pour objet : permet d'utiliser des évènements SFML dans les objets (A été utilisé dans l'exemple TMXLoader).

Un système de Bouton : Vous permet de créer des boutons personnalisables et de l’utiliser dans vos jeux (A été utilisé dans l'exemple TMXLoader).

Optimisation du moteur : Les jeux sont deux (2) fois plus fluide.

Cette fois ci la Démo du moteur porte sur jeu emblématique qui a marqué toute une génération et qui fête ces 35 ans cette année : Il s’agit de Super Mario Bros NES !
:d) lien de la Démo : https://github.com/Is-Daouda/is-Engine-Demo

https://www.noelshack.com/2020-36-3-1599009057-is-eng20.jpeg

En bonus quelques petits ajouts ont été apportés à cette version pour la rendre encore plus Fun ! :-d

Joyeux anniversaire Super Mario Bros !

La vidéo de la démo:

https://youtu.be/XXkLc3TgCyc

1
Sujet : [C++ / SFML] Moteur de jeu SFML pour Android et PC
   Retour haut de page
Consulter la version web de cette page