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

PureBasic Discussion :

N3XTD : un moteur 3D pour PureBasic


Sujet :

PureBasic

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de tmyke
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Par défaut N3XTD : un moteur 3D pour PureBasic
    N3XTD, Un moteur 3D pour PureBasic.

    Depuis déjà bien des années, je cherche à faire bouger un peu la 3D à travers PureBasic. N3XTD est né de cette intention,
    dans l'optique de favoriser la création 3D ludique à travers PureBasic.


    LES OBJECTIFS DE BASE:
    --------------------------------
    Le principal objectif de ce projet est donc au départ de pouvoir fournir une alternative crédible en matière de moteur 3D
    à celui proposé par PureBasic dans son package initial, avec à la clé un certains nombres de spécifications de bases ayant
    pour objectif globalement (si possible) les éléments suivants:
    - moteur simple, complet et facile d'accès, s'inscrivant dans la même veine de ce qu'était Dreamotion3D sur le principe.
    - projet opensource et gratuit,
    - projet ayant une capacité multiplateforme.
    - pas d'usine à gaz hyper gourmandes en ressource.
    - moteur relativement complet, intégrant 3D, collisions et physique, GUI, etc..


    CHOIX DU MOTEUR:
    ---------------------------
    Ne voulant pas repartir de zéro (au vue du travail que cela représente), j'ai donc cherché à m'appuyer sur un moteur déjà
    existant, je suis donc parti en quête du moteur 3D type pour mener à bien ce projet.

    Plus que la réalisation d'un simple wrap, il s'agit en fait de refaçonner le 'dit-moteur' dans certains cas pour
    le faire coller au mieux aux principaux objectifs visés. A la base donc, je me suis rapidement fixé un certains nombres
    de contraintes pour arrêter un choix et ce, pour resserrer le cercle des moteurs existants:

    1- moteur gratuit / OpenSource: désireux de coller au mieux au projet et à l'idée que je m'en fais, pouvoir rentrer et modifier
    le code natif du moteur choisi est un argument très important. De plus, ce projet n'a aucune vocation vénale.

    2- moteur multiplateforme: ne voulant laisser aucune plateforme sur le bord de la route, il est important de choisir un moteur
    existant ayant cette capacité.

    3- moteur simple et pas trop lourd: il ne s'agit pas de se prendre la tête avec le code du moteur et son adaptation. Il faut donc un
    moteur pas trop lourd. En final, une simple DLL ou lib, c'est tout.

    4- moteur ouvert, surtout niveau media: ce critère, non rédhibitoire ceci-dit, est aussi à prendre en compte. En d'autres termes,
    les moteurs aux formats 3D propriétaires sont si possible à éviter.

    5- moteur pas trop gourmand: dans la mesure du possible aussi, il est fortement souhaitable de s'appuyer sur un moteur pas trop
    gourmand, et donc pouvant tourner sur des configurations modestes et pas forcément dernier cri. Donc pas de moteur soit disant 'nex-gen',
    nécessitant des conf de brutes pour tourner à peu près convenablement.


    En ayant en tête toutes ces contraintes, j'ai testé et regardé de près tout ce qui pouvait se faire en terme de moteur 3D sur le
    'marché' (sur les projets un tant soit peu sérieux et établis bien sûr).
    J'ai donc passé en revue durant quelques temps, entre-autre: Ogre - Irrlicht - Hordes3D - OpenSceneGraph - CrystalSpace - etc...


    Mon choix c'est finalement arrêté sur Irrlicht. Explication (en reprenant la liste des pseudo-spécifications énumérées ci-dessus):

    1-moteur gratuit et OpenSource: c'est le cas d'Irrlicht
    2-moteur multiplateforme: ce moteur tourne très bien depuis déjà un bon moment sur toutes les plateformes, d'ailleurs la communauté
    Irrlicht possède certainement l'une des plus impressionnantes part d'utilisateur 'non-Windows'.
    3-moteur simple et pas trop lourd: une simple DLL, qui pèse moins de 2Mo, c'est l'un des plus léger de ceux testés (Ogre = 7 DLL et
    60Mo de lib à lier) (Hordes3D, 3 DLL) (etc...).
    4- moteur ouvert, surtout niveau media: Irrlicht n'a pas de format propriétaire. Il s'appuie sur des formats existants (3DS, B3D, X,
    Collada, MD2, BSP, CSM, DeleD, Ogre, Maya, etc...), plus d'une dizaine en tout.
    5- moteur pas trop gourmand: Irrlicht tourne plutôt bien sur toutes les conf, même les moins récentes. De simples cartes intégrées
    ne lui font pas peur..


    Bref, ce choix d'Irrlicht s'est imposé finalement logiquement et naturellement. Certes, ce moteur a aussi ces défauts (le moteur parfait
    n'existe pas, ou alors je ne le connais pas), comme un manque de performances certain dès que les scènes s'alourdissent, quelques
    fonctions non aussi poussées que certains de ses concurrents. Mais comme l'objectif n'est pas de réaliser un 'CryEngine2 like', il
    devrait être assez aisé de s'accommoder de ces quelques lacunes. D'autant qu'au fil du temps il sera plus que largement possible de
    combler ces lacunes par l'apport de codes 'maison', ce que j'ai déjà commencé à faire. C'est aussi l'un des 'plus' d'Irrlicht, son fort
    taux d'abstraction permet d'insérer nos codes personnels pour en améliorer les capacités, et ce de façon simple. Irrlicht lui même évolue
    très vite, et dispose d'une bonne communauté, tout sera fait pour que les mise à jour soient faciles et pas trop galère.


    PACKAGE
    -------------
    Passons aux choses plus concrètes. Voici les liens permettant l'accès aux packages. Tout n'est pas encore implémenté, et pas mal de choses
    sont encore à compléter ou corriger, mais cela représente déjà quelques 900 fonctions, couvrant un ensemble de domaine très raisonnable.

    version 20 (05-fevrier-2010)
    c'est ici->http://www.n3xt-d.org/_download/n3xtd.zip


    INSTALLATION:
    ---------------------------
    L'installation est simple, comme souvent, il suffit de copier les trois répertoires présent dans l'archive dans le répertoire de
    PureBasic. C'est tout. Les exemples fournis (une cinquantaine) sont surtout là pour montrer l'emploi des fonctions et autres instructions,
    ils sont très basic, et ne sont en rien spectaculaire.

    La doc est en Anglais (désolé), pour assurer d'emblée une capacité ouverte au projet, qui je l'espère dans l'avenir ne restera pas
    cloisonné à la communauté francophone.
    J'ai joint au package par contre un fichier CHM en Français (dans rep irrPBDoc), sous forme de tutoriel et reprenant certaines parties
    d'un tutoriel que j'avais écrit il y a quelques temps. C'est à peaufiner et à pas mal améliorer. Cela explique les bases et permet
    de bien débuter avec aussi un peu de théorie, même si cela manque encore de codes en guise d'exemples. C'est destiné aussi aux vrais
    débutants. Je tacherai de continuer à alimenter et améliorer ce fichier au fil de l'évolution du projet.


    CODE SOURCE:
    ---------------------------
    Un second lien permet de télécharger le code source du moteur complet. ça c'est pour ceux qui voudront aller plus loin, ou par
    simple curiosité. Il permettra aussi aux 'non Windows' de pouvoir installer et faire tourner N3XTD sur d'autres plateformes.
    Pour le moment, pas de SVN, mais si le nombre d'amateurs désireux de s'impliquer au niveau du code source, ainsi que des
    adaptations sur certaines plateformes est suffisant, alors cela s'imposera de lui même et cela sera fait...

    version 20 (05-Fevrier-2010)
    c'est là->http://www.n3xt-d.org/_download/SourceEngine.zip



    CONCLUSIONS:
    ------------
    Voilà pour cette présentation de base. J'espère ne pas avoir été trop long et barbant, ne pas être à coté de la plaque non plus,
    et ne pas avoir fait fuir.
    Je sais pertinemment que les amateurs de programmation3D ne sont pas légions dans le coin, je suis habitué, et cela ne m'a jamais
    vraiment découragé, donc je garde malgré tout le cap.

    Ceux qui voudront apporter leur petite pierre seront bien évidement les bienvenues...








  2. #2
    Responsable Purebasic

    Avatar de comtois
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 329
    Billets dans le blog
    8
    Par défaut
    Salut tmyke

    Content de te voir par ici

    Il est vraiment sympa ce moteur, je l'ai testé rapidement, les exemples fonctionnent parfaitement et donnent un bon aperçu de ce qu'il est possible de faire.

    Merci pour ce que tu fais pour la communauté PureBasic, courage pour la suite.
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  3. #3
    Membre éprouvé Avatar de tmyke
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Par défaut
    Pas de quoi et merci, même si il reste beaucoup de travail encore.

    Les mises à jours devraient se poursuivre à un rythme similaire pendant encore
    quelques temps, vu les nouveautés à intégrer ces prochains temps.
    J'espère aussi que j'aurais quelques retour, car il y a certainement du debugage
    à faire

  4. #4
    Membre éprouvé Avatar de tmyke
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Par défaut
    Petite mise à jour (la 9 ième), pas de grandes nouveautés, j'ai pas mal travaillé en interne pour
    améliorer certaine parties de la gestion du moteur physique, ainsi que quelques bricoles
    sur la GUI.
    Trois samples supplémentaires (les 068, 091 et 092) sont venus s'ajouter à le liste.


    Les liens sont toujours ceux du post originel.

    Le gros du codage est sur le point de prendre fin, j'axe mes efforts sur certains ajouts,
    la correction de certains trucs gênant, bref, un travail moins spectaculaire, mais néanmoins
    indispensable. Je vais voir aussi pour intégrer des démo si possible.
    Donc la fréquence des updates sera certainement moins élévé que ces derniers temps.

  5. #5
    Membre éprouvé Avatar de tmyke
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 131
    Par défaut
    Petite mise à jour (la 10 ieme).

    Les ajouts et améliorations concernent :
    - nouveau portail internet (toujours http://www.n3xt-d.org ),
    - certains point de syntaxe,
    - les Sprites3D qui sont enfin opérationnels,
    - ajout d'exemples de postprocessing pour les plus velus.
    - renomage des exemples pour s'y retrouver plus facilement.

    Les liens sont toujours ceux du post originel.

    Travaux en cours:
    - la 2D, en particulier les sprites. Le moteur est assez pauvre pour le moment,
    donc je fais en sorte que les choses changent.

  6. #6
    Responsable Purebasic

    Avatar de comtois
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 329
    Billets dans le blog
    8
    Par défaut
    la 2D va être intéressante
    Elle pourra être mixée avec la 3D en avant plan et arrière plan ?


    Je n'ai pas trop le temps en ce moment pour tester, on verra ça cet hiver, d'ici là ton moteur aura encore bien progressé, ça n'en sera que mieux.
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

Discussions similaires

  1. Moteur 3D pour JavaME
    Par guenievre dans le forum Java ME
    Réponses: 4
    Dernier message: 23/01/2007, 18h33
  2. Collaboratif - Moteur 2D pour Allegro
    Par BornTobear dans le forum Allegro
    Réponses: 1
    Dernier message: 08/01/2007, 04h57
  3. Moteur 3D pour MMORPG
    Par MABB dans le forum Moteurs 3D
    Réponses: 24
    Dernier message: 28/10/2006, 22h30
  4. moteur java pour aplet java
    Par jojo971 dans le forum Applets
    Réponses: 2
    Dernier message: 23/10/2006, 15h37
  5. Deux moteurs interbase pour une seule base ?
    Par Yurck dans le forum InterBase
    Réponses: 11
    Dernier message: 21/09/2006, 16h45

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