N3XTD - un moteur 3D dédié à PureBasic

Le , par tmyke, Membre régulier
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...








Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de ldvmultimedia ldvmultimedia - Futur Membre du Club http://www.developpez.com
le 22/12/2009 à 23:35
Désolé d'apprendre ton arrêt Tmyke (c'est Ar-S au fait)
Comme comtois je te souhaite une bonne continuation en espérant te recroiser sur le forum PB un de ces moments.

Peut-être devrais tu annoncer l'arrêt de NEXT-D sur le fofo anglais :
http://www.purebasic.fr/english/view...7320&start=150

En tout cas merci pour tout ce que tu as fait pour la communauté pb, même si elle n'a pas été aussi réactive que tu le souhaitais, par tes créations tu as montré ce que PB a dans le ventre.

A un de ces jours.
Amicalement.

Ar-S
Avatar de tmyke tmyke - Membre régulier http://www.developpez.com
le 29/12/2009 à 18:53
Merci pour l'intention Ar-S

J'essaierais de passer de temps en temps
Avatar de kster kster - Nouveau Candidat au Club http://www.developpez.com
le 03/01/2010 à 11:12
Salut tout le monde,
(Je me suis inscrit spécialement pour toi Tmyke!)

Bah...... c'est triste d'entendre que n3xt-3d n'est plus en évolution, sinon je me joint aux autre pour te dire qu'en fin tu as pu comprendre que tes capacités sont plus utile ailleurs que dans un développement que seul une minorité qui s'y intéresse.

Sinon je te propose d'étudier la possibilité de créer un wrapper irrlicht pour purebasic, je ne sais pas si ça demande beaucoup de temps, et c'est à ta portée alors je pense que pas mal de personnes seront intéressées.
Avatar de tmyke tmyke - Membre régulier http://www.developpez.com
le 03/01/2010 à 18:28
Citation Envoyé par kster  Voir le message
Sinon je te propose d'étudier la possibilité de créer un wrapper irrlicht pour purebasic, je ne sais pas si ça demande beaucoup de temps, et c'est à ta portée.

Cela prend du temps, forcement un peu .

En fait N3xtD n'est rien d'autre qu'un wrapper d'Irrlicht, auquel j'ai ajouté quelques fonctions et codes personnel (ou de quelques amateurs éclairés d'Irrlicht).
Le code source de N3xtD étant toujours dispo, il suffit de le reprendre pour éventuellement faire perdurer et maintenir le projet si quelqu'un se le sent
Je passe de temps en temps et se serais toujours dispo pour conseiller ou aider occasionnellement dans ce cas.

Citation Envoyé par kster  Voir le message
je pense que pas mal de personnes seront intéressées.

j'en suis moins sûr
Avatar de dkler dkler - Nouveau Candidat au Club http://www.developpez.com
le 08/01/2010 à 17:45
Sale nouvelle en début d'année et dire que je mettais mis à PB pour ça. Dommage je mettais attaché a n3xt-d. En tous cas bonne continuation, désoler pour toi que tu n'est pas réussi à faire ce que tu souhaité, c'est vrais que sous PB la 3d c'est pas trop ça.

Si quelqu'un connait un moteur 3d assez complet tournant sous PB, je suis preneur, aprés 2 ou 3 changement de moteur puis de language j'me demande si mon projet arrivera a voir le jour...
Avatar de tmyke tmyke - Membre régulier http://www.developpez.com
le 08/01/2010 à 18:13
Salut Dkler, Désolé pour toi, en effet tu es là depuis bien longtemps, et je regrète sincerement...

Si tu veux continuer avec PB et faire de la 3D (cela marche aussi avec BMax), alors je te recommande chaudement TV3D.
Certes, si tu veux te défaire du watermark, il faudra payer (TV3D n'est pas gratuis). Mais comme je sais un peu ce que
tu cherches, ce moteur correspond je pense à tes attentes, il est très proche de Dreamotion3D, je dis souvent d'ailleurs que
c'est DM3D finit
Il est facile de prise en main, rapide, performant, plein de fonctionnalité, et surtout c'est un projet qui est sérieux et
donc cela t'assure une pérennité et donc un investissement qui ne sera pas vain...
J'ai fait un wrap pour ce moteur pour PB, avec pas mal d'exemple, de plus Blitzfan va sortir un mod pour BMax remis
au gout du jour si tu voulais repartir sur ce langage.

J'ai passé les clés à John Wise, une connaissance qui monte un espace francophone pour TV3D, depuis la fermeture
il y a déjà quelques temps de l'espace qu'avait monté Copland. C'est ici ICI

Voilà, qui sait, nous nous recroisement peut-être sur d'autres espaces, en tous les cas je l'espère.
Bon courage à toi, et mes meilleurs voeux pour l'année qui vient de commencer t'accompagnent
Avatar de tmyke tmyke - Membre régulier http://www.developpez.com
le 26/01/2010 à 12:03
Devant une certaine pression sur le site de PureBasic.fr mais aussi par un certains nombre de mail reçus ces derniers temps,
j'ai finalement décidé de reprendre et maintenir le développement de N3xtD.

Je vais axer mon travail sur la consolidation de code du moteur, sa stabilité, l'épurer quelque peu, et aussi et surtout même, écrire
enfin une doc digne de ce nom, en Français dans un premier temps. C'est pour moi l'effort de la dernière chance pour arriver à
voir quelques amateurs de prog 3D naitre dans le monde PureBasic.

Avatar de comtois comtois - Responsable Purebasic http://www.developpez.com
le 26/01/2010 à 19:24
Bonne nouvelle.

Puisque tu voulais développer quelques jeux, pourquoi ne pas les faire avec PureBasic et Next3D en guise de démo ? Y'a rien de mieux qu'un jeu pour montrer les possibilités du moteur.

Je dis ça mais je n'ai toujours pas fini de coder le mien avec Next3D
Avatar de tmyke tmyke - Membre régulier http://www.developpez.com
le 26/01/2010 à 19:56
Citation Envoyé par comtois  Voir le message
Puisque tu voulais développer quelques jeux, pourquoi ne pas les faire avec PureBasic et Next3D en guise de démo ? Y'a rien de mieux qu'un jeu pour montrer les possibilités du moteur.

C'est un petit peu ce que j'ai à l'esprit en reprenant le dev de N3xtD. Un petit jeux fun en guise de démo quand le moteur
aura atteint une certaine maturité
Avatar de Progi1984 Progi1984 - Membre éprouvé http://www.developpez.com
le 27/01/2010 à 9:14
Citation Envoyé par tmyke  Voir le message
C'est un petit peu ce que j'ai à l'esprit en reprenant le dev de N3xtD. Un petit jeux fun en guise de démo quand le moteur
aura atteint une certaine maturité

Cooool, le prochain Warcraft ! Quoi ! Tu as dis petit jeu !!!!
Avatar de tmyke tmyke - Membre régulier http://www.developpez.com
le 27/01/2010 à 18:54
Citation Envoyé par Progi1984  Voir le message
Cooool, le prochain Warcraft ! Quoi ! Tu as dis petit jeu !!!!

Je sais , j'ai souvent du mal à faire petit, mais là, faudra que je me force
Offres d'emploi IT
H/F Administrateur système linux
CTS Consulting - Ile de France - Paris (75000)
Ingénieur d'étude bases de données et web php oracle
IHU-A-ICM - Ile de France - Paris 75013
développeur php symfony 2 H/F
EASY PARTNER - Ile de France - Paris (75000)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique PureBasic : comtois -