IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Carnage-engine, moteur 2D facile (C++)


Sujet :

SDL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 111
    Points
    111
    Par défaut Carnage-engine, moteur 2D facile (C++)
    Bon alors évidemment avec la présence d'SFML je fais tache, mais tout de même j'ose croire que je touche un publique encore différent, celui des projets vraiment vraiment simples.

    Car SFML a beau s'appeller "Simple..", ca commence à devenir assez gourmand en dépendances. (et opengl ne tourne pas chez tout le monde)
    Mon moteur ne dépend que d'SDL: pas SDL_image, pas SDL_gfx, pas SDL_ttf, pas libfreetype, même pas boost. Par contre vs aurez besoin d'SDL_mixer si vous voulez compiler le manager de son.
    Autre problème, vs ne pouvez charger que des BMP sans RLE. Il ne gère pas les inputs, a vous de le faire. Pas de roto-zoom non plus, mais vous pouvez dessiner toutes les rotations de votre sprite dans le même BMP en respectant une certaine disposition, et le moteur a une interface pour régler l'angle. Ainsi qu'un systeme pour animer les sprites.
    Transparence classique sur la couleur rose.
    Et point fort du moteur: gestion des interesections Rect/Oriented Rect/Cercle/Rayon sur des objets statiques avec partitionnement binaire de l'espace.
    Pareil que SFLM, je fournis quelques outils de base, timer haute resolution mac/linux/windows, perf profiler, freelist, circularlist, vecteur2d, rects...

    Le moteur a été écrit pour Extreme Carnage à la base.
    Puis ré-utilisé pour Nuclear Age.

    le helloworld ressemble a ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    #include "carnage-engine/spritemanager.hpp"
    namespace ce = carnage_engine;  // let's not bother with gigantic prefixes.
     
    int main(int, char**)
    {
    	// creates a manager, will create a window if there is no window yet.
    	ce::SpriteManager spm;
    	int h = spm.LoadSprite("hello.bmp");
    	// let's use helper functions to center the sprite:
    	spm.Move(h, ce::GetScreenCenterX(spm.GetW(h)), ce::GetScreenCenterY(spm.GetH(h)));
    	spm.Draw(h);  // blit sprite h
    	spm.Update();  // flip surfaces
    	getchar();  // wait for keyboard in the console and quit the program
    }
    Ce qui vous affiche le sprite hello.bmp au milieu de la fenetre, en 640*480 par defaut. (configurable a la construction de spm).
    ce qui affiche ceci dans le package de demo:


    Je suis en train de coder une petite demo, en 230 lignes j'ai un mini jeu de plateforme avec un bonhomme qui marche vers la gauche ou la droite, qui saute quand il est au sol, et qui ne traverse pas le plancher ni les murs:


    Bon je vais la perfectionner pour montrer un peu tous les aspects du moteur (la demo fait office de documentation).

    J'avais des interrogations quant au bien fondé de lui programmer en option de démarrage un moteur de rendu sous jacent opengl, mais vu qu'il y a SFML je pense que ca sera pas la peine. Par contre pensez vous que se serait une bonne idée de fournir en option de compilation des fonctions roto-zoom et chargement de jpg/png.. qui demanderait sdl_gfx en dependance supplémentaire ?

    page source forge avec le moteur et la demo:
    https://sourceforge.net/projects/carnage-engine/files/

    j'espère que ca pourra servir a quelqu'un !

  2. #2
    Membre actif
    Inscrit en
    Septembre 2003
    Messages
    391
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 391
    Points : 207
    Points
    207
    Par défaut
    oui, c'est un projet interessant.
    je vais y jeter un coup d'oeuil.

    pour repondre a ta question, je ne me sert pas de roto-zoom, mais par contre le chargement de jpg/png me semble une option indispensable.

    bravo et merci en tout cas.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 111
    Points
    111
    Par défaut
    j'ai fait évoluer la demo:


    et voici la doc de l'API en ligne:
    carnage-engine_html_doc

  4. #4
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par hpfx Voir le message
    oui, c'est un projet interessant.
    je vais y jeter un coup d'oeuil.

    pour repondre a ta question, je ne me sert pas de roto-zoom, mais par contre le chargement de jpg/png me semble une option indispensable.

    bravo et merci en tout cas.
    Je suis d'accord que sans un système de rotation, de zoom et de chargement d'autre chose que BMP est nécessaire pour un moteur...

    Jc

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 111
    Points
    111
    Par défaut
    d'acc d'acc, un rotozoom en route.
    et bien sûr ca n'aura pas de sens si je propose pas une interface pour régler la hauteur de la camera... (tout resizer, tailles et positions)
    hmm plus de travail que ca en a l'air.
    tain chui vert, j'ai un "thumbs down" sur sourfceforge ouinnn

  6. #6
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Lightness1024 Voir le message
    tain chui vert, j'ai un "thumbs down" sur sourfceforge ouinnn
    C'est pas très très grave ca, au final tu fais un projet sympa, c'est tout ce qui compte.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 111
    Points
    111
    Par défaut
    oui

    Voila ! aujourd'hui la version 1.0 est terminée, la demo m'a pris pas mal de temps.
    Mais au moins les game coders ont une bonne base pour comprendre comment utiliser le moteur.
    Voire totalement copier la demo et faire leur jeu de plateforme a partir de ca
    Je précise quand même, le moteur n'est bien entendu pas limité aux jeux de plateforme (voir extreme carnage et nuclear age).

    Dans la demo nous avons:
    -du scrolling
    -de l'animation
    -de la physique (faite par la demo, le moteur ne fait que "detection de collision" et pas "réponse aux collisions")
    -du son et de la musique
    -fichier conf
    (888 lignes)

    ca démontre a peu près toutes les features du moteur, sauf la spatialisation sonore.

    pour extreme carnage 2.0:
    - rotozoom
    - detection de collisions avec objets dynamiques

    3.0:
    - renderer opengl ou SDL au choix

    3.5:
    - dynamic lighting et normal mapping

    j'espère que je vais arriver la!

    screen:

  8. #8
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    , c'est excellent !

    T'as une documentation et le code est open-source ? Désolé si je te fais te répéter ;-)

    Jc

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 111
    Points
    111
    Par défaut
    pas de prob
    Oui la licence est LGPL.
    donc utilisable dans n'importe quel projet sans contrainte.
    le code est la:
    https://sourceforge.net/projects/carnage-engine/files/

    et la documentation est la:
    http://lightness1024.free.fr/carnage-engine_html_doc/
    ainsi que la:
    https://sourceforge.net/projects/car...n.zip/download

    et puis bien sur le code de la démo est entierement en "do what the fuck you want" licence. Cette démo est une documentation du moteur en elle même.
    Elle le teste (prouve) et fait office d'exemple.

Discussions similaires

  1. [Projet en cours] Saber Engine : Moteur de combat au tour par tour
    Par yahiko dans le forum Projets
    Réponses: 8
    Dernier message: 13/05/2015, 06h52
  2. [MySQL-5.6] Migration / modification ENGINE (moteur) Table MYSQL
    Par Original1992 dans le forum Administration
    Réponses: 0
    Dernier message: 06/03/2015, 09h01
  3. Réponses: 3
    Dernier message: 09/09/2009, 14h08
  4. Moteur recherche Blork Engine
    Par flopad dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 24/10/2005, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo