CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Engine2D] ÖbEngine

Biolixe
Biolixe
Niveau 6
05 mars 2017 à 18:52:10

ÖbEngine

Introduction

Il y a bien longtemps de cela, j'ai posté sur JV un post parlant d'un jeu vidéo en cours de création :
https://www.jeuxvideo.com/forums/42-31-39036729-1-0-1-0-jeu-2d-plateforme-rpg-fast-paced.htm

Depuis, à force d'essayer de rendre mon code le plus générique possible, je me suis retrouvé avec un moteur sur les bras.

D'ailleurs je n'utilise plus Python mais C++ désormais !

Ayant appris le C++ pendant la création de moteur j'ai du faire beaucoup de refactorisation et le code a encore sur certains fichiers, une qualité de code inégale (qui se réduit de jours en jours cependant !)

J'ai donc franchi le cap et ai décidé de me consacrer au peaufinement du moteur avant de me remettre à travailler sur le jeu (qui sera fait avec ce moteur du coup).

Je travaille donc sur les deux en parallèle, faire le jeu m'aide à trouver les features manquantes et faire le moteur m'aide à faire le jeu, les deux sont plutôt complémentaires !

Fonctionnalités

  • "Bon t'es bien gentil mais il peut faire quoi ton moteur ?" - Détracteur anonyme

Alors avant tout il faut savoir que c'est un moteur purement 2D ! On dit au revoir à la 3ème dimension elle est ici inexistante.

Cela permet une certaine simplification de l'API du moteur et de se concentrer sur des outils 2D uniquement.

Mais donc en gros, que propose mon moteur ?

  • Un éditeur de map
  • Un gestionnaire d'animations (scriptables)
  • Un système de lumière
  • Un système de particules
  • Un système de script Lua
  • Plein d'outils pour des jeux 2D (Interfaces de dialogues etc..)
  • Un système de layers avec possibilité de faire de la parallaxe
  • Un gestionnaire d'expressions mathématiques
  • Un langage de données fait maison (Un peu comme le JSON)
  • Collisions polygonales avancées
  • Console de développement ingame avec débugger
  • Gestion d'input réseau
  • Système de trajectoire
  • Gestionnaire de paquets pour étendre les fonctionnalités du moteur
  • Toolkit intégré pour faciliter le développement avec le moteur

Et voici des features prévues pour des versions futures :

  • Edition de maps collaboratives
  • Gestion complète du réseau (jeux multijoueurs)
  • Meilleur système de lumière
  • Gestion / Composition de shader
  • Meilleur système de particules
  • Animations squelettales
  • Intégration simple d'objets 3D (Tout en restant sur un monde en 2 dimensions)

Comme j'adore réinventer la roue, j'ai adopté en effet un langage de données fait maison baptisé "**Vili**".

Ça ressemble un peu au JSON tout en embarquant quelques fonctionnalités fort sympathiques :

  • Héritage
  • Ranges
  • Templates
  • Bien d'autres encore !

Licenses

Le moteur est sous la licence MIT, vous êtes libre de modifier, vendre ou faire ce que vous voulez du moteur.

Vili est également sous la licence MIT.

Dépendences

Il est vrai que j'adore réinventer la roue mais il y en a certaines (de roues) que je n'ai pas eu le temps de réinventer, en voici la liste :

Externes

  • [SFML](https://github.com/SFML/SFML ) (Version 2.4) (Licence zlib/png) (Affichage / Input / Réseau / Audio)
  • [Lua](https://www.lua.org/ ) (Version 5.3) (Licence MIT) (Scripting)

Internes (Fournies avec le moteur)

  • clip (https://github.com/dacap/clip ) (Licence MIT) (Gestion du presse papier)
  • clipper (http://www.angusj.com/delphi/clipper.php ) (Licence Boost Software) (Intersection des polygones)
  • (Code modifié) any (https://github.com/PaulHowes/any ) (Licence Apache 2.0) (Conteneur générique)
  • 11zip (https://github.com/Sygmei/11Zip ) (Licence MIT) (Wrapper de minizip fait par moi-même basé sur le [wrapper de Vili Peter](http://www.vilipetek.com/2013/11/22/zippingunzipping-files-in-c/ ))
  • Kaguya (https://github.com/satoren/kaguya ) (Licence Boost Software) (Binding Lua)
  • zlib&minizip (http://www.zlib.net/ ) (Licence zlib (étonnant)) (Gestion des archives zip)
  • rlutil (https://github.com/tapio/rlutil ) (Unlicense) (Coloration de la console)
  • tinydir (https://github.com/cxong/tinydir ) (Licence BSD2) (Listing filesystem) (Bientôt remplacé par C++17)
  • Vili (https://github.com/Sygmei/ViliData ) (Licence MIT) (Fichiers de données)

Version 1.0

La version 1.0 n'est pas encore sorti, pour l'instant le moteur est en alpha mais vous pouvez déjà le compiler !

[Github du moteur](https://github.com/Sygmei/ObEngine)

La version 1.0 devrait sortir très prochainement, le temps pour moi de nettoyer le code.

Je fournirais également probablement ce soir des précompilés !

Pourquoi je poste ça ici ?

Réaliser un moteur demande beaucoup de temps et cela laisse peu de temps pour faire des tests !

Si vous avez le temps et que vous souhaitez m'aider à réaliser le moteur, vous pouvez :

  • Proposer des features
  • Reporter les bugs rencontrés sur le Github (Issues)
  • Essayer de créer des jeux avec le moteur et me faire des retours (positifs ou négatifs)
  • Faire des pull request avec des fonctionnalités pour le moteur de votre cru
  • Créer de la documentation sur le moteur
  • Créer des paquets pour le moteur (Libs / Assets / Jeux)

Si de votre côté vous avez besoin d'aide pour réaliser des jeux avec le moteur, je suis à votre disposition !

Vous pouvez me contacter sur Discord, voici mon ID : Sygmei#9480 et je suis également sur le Discord de ce forum :)

Si vous avez un souci avec le moteur vous pouvez checker le *log.txt* créé dans le même répertoire que l'exécutable, il vous donnera des indications sur la source de l'erreur (Et si vous ne trouvez pas par vous même vous pouvez m'envoyer votre *log.txt*).

Merci beaucoup d'avoir lu jusqu'au bout :) J'espère que vous aurez une bonne expérience avec le moteur si d'aventure vous souhaitez le tester !

Biolixe
Biolixe
Niveau 6
05 mars 2017 à 18:53:01

Je vous dépose également les exécutables pour tester le moteur (Seulement pour Windows pour l’instant).

https://meltingsaga.xyz/download/engine/0.99.3/ObEngine.zip

Si vous voulez vérifier que tout fonctionne, téléchargez ce jeu d’exemple : https://meltingsaga.xyz/packages/bf.opaque et placez le dans le dossier Package du moteur.

Ensuite, lancez cmd, accédez au dossier dézippé du moteur, tapez la commande suivante : ObEngine -mode toolkit Une petite interface en console devrait apparaitre, tapez ensuite : package install bf.

Si tout ce passe bien, l’interface devrait vous dire que le package bf a été installé et vous demande si vous voulez accorder la permission <Mount>, tapez Y et finalement tapez exit pour fermer le toolkit.

Vous pouvez simplement ensuite double-cliquer sur ObEngine.exe et le jeu devrait se lancer !

Si vous avez des soucis avec le moteur n’hésitez pas à venir m’en parler sur Discord (Sygmei#9480) ou laisser une Issue sur Github (https://github.com/Sygmei/ObEngine) !

Articka
Articka
Niveau 6
05 mars 2017 à 22:09:00

Ouah alors tu en a super bien avancer depuis le dernier topic (pareil pour les vidéos :hap:)

Bon taff tout ça [[sticker:p/1kki]]

Pseudo supprimé
Pseudo supprimé 05 mars 2017 à 22:29:32

[Github du moteur](https://github.com/Sygmei/ObEngine)

Dans (Version 1.0)

(https://github.com/Sygmei/ObEngine) !

(A la fin)
.
.

Met un espace à la parenthèse ;)

Sinon moi j'en suis toujours limite à Hello World, lu iil a un moteur OKLM :D

Message édité le 05 mars 2017 à 22:30:44 par Pseudo supprimé
LEpigeon-888
LEpigeon-888
Niveau 12
05 mars 2017 à 23:40:15

Bientôt remplacé par C++17

Ouais, bientôt dans 3 ans, le temps que les compilateurs les plus connus se mettent à jour :hap:

Biolixe
Biolixe
Niveau 6
06 mars 2017 à 00:05:40

Arf, j'avais pensé à quasiment toutes les parenthèses sauf celles là :(
Sinon pour C++17 c'est juste la partie filesystem, la plupart des compilos l'ont déjà et j'ai prévu un fallback au cas où !
Et si tu veux tu peux faire des Hello World dans le moteur Titix :p Y a un tuto sur le Git.
Et oui Articka ça a bien avancé ! Et ça devrait avancer envie beaucoup !

LEpigeon-888
LEpigeon-888
Niveau 12
06 mars 2017 à 00:17:47

Il l'a écrit dans son message de présentation : « (Affichage / Input / Réseau / Audio) ».

DaMoY
DaMoY
Niveau 10
06 mars 2017 à 00:30:11

Wow respect ! :)

Biolixe
Biolixe
Niveau 6
06 mars 2017 à 00:40:28

Comme a dit LEpigeon je me sers de quasiment tous les aspects de la SFML tout en essayant de garder un niveau suffisant d'abstraction pour pouvoir changer de librairie si jamais un jour le besoin s'en fait sentir :)

Pseudo supprimé
Pseudo supprimé 06 mars 2017 à 01:00:56

Ouais ouais je regarderais, même si tout ça m'est bien inconnu ^^

Et corrige les fautes citées plus haut ;)

Biolixe
Biolixe
Niveau 6
06 mars 2017 à 01:15:59

Je peux pas éditer le post :( Ou alors j'ai loupé quelque chose

zebtorax
zebtorax
Niveau 9
06 mars 2017 à 12:49:21

Vraiment super. Les ressources graphiques du jeu seront fournies avec le moteur :question:

Biolixe
Biolixe
Niveau 6
06 mars 2017 à 19:33:32

@zebtorax Le jeu et le moteur seront deux choses totalement séparées ! Et la licence MIT n'est pas contaminante donc les assets du jeu auront probablement une licence à part ! Le moteur est gratuit mais le jeu ne le sera probablement pas :) Quant à l'utilisation permise, peut-être autorisée dans un cadre précis et non-commercial !

@SEGA_2012 Dans un premier temps ces deux plateformes ne seront pas disponibles pour la 1.0 mais possiblement disponibles dans le futur :)

zebtorax
zebtorax
Niveau 9
06 mars 2017 à 21:47:05

Merci de la réponse. Je penses toutefois tu devrais au moins inclure un ou quelques exemples de niveaux en démo pour ton moteur, de ton jeu ou autres ressources sur le net, histoire de mettre en valeur les possibilités...
...

Biolixe
Biolixe
Niveau 6
06 mars 2017 à 23:19:01

@zebtorax, Pas faux :)

https://meltingsaga.xyz/?page=demo Trois vidéos vite faites d'exemples :)
https://www.youtube.com/channel/UCQqEap51wCGNXEAUV-Tkfmw Chaine Youtube du jeu pour lequel le moteur a été créé :)

Pseudo supprimé
Pseudo supprimé 07 mars 2017 à 18:36:40

On est sensé pouvoir lire ? https://meltingsaga.xyz/?page=demo

Biolixe
Biolixe
Niveau 6
07 mars 2017 à 22:18:41

Haha non pas du tout, le site est juste en "chantier" haha

Pseudo supprimé
Pseudo supprimé 09 mars 2017 à 18:16:08

Ok ^^

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment