Du Basic à Delphi

Résolu
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009 - 19 mars 2009 à 17:23
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009 - 24 mars 2009 à 20:18
Bonjour,
J'aimerais développer un jeu de cubes, pour commencer, et j'ai appris à utiliser le moteur Micosoft pour l'affichage, le WPF pour sauvegarder les mailles des objets, et divers astuces, mais c'est très mal documenté, et décourageant. J'aurais voulu déplacer mes objets avec la souris, mais le pauvre Microsoft n'a pas assez de deux processeurs pour gérer l'un les boutons, et l'autre les déplacements de ma souris acec les Objects standards du Net, tels une fenêtre et une zone d"affichage il rame sur un cube et se trompe de Thread.
Pensez-vous que j'aurais plus de chance en Pascal ? Je me permet de vous rapeller que le Grand Kan annonçait officiellement la fin du Pascal bien avant la fin du siècle dernier. Le moteur de Delphi est-il toujours entre 5.5 et 7 ou a-t-il fait des progrès ? J'ai entendu parler de Kylix. Fonctionne-t-il tel qu'on le décrit, à savoir un environemement didactique de développement sous KDE (Minix) où est-ce encore une salade de Borland ?
Mes sources sont trduites en C (C'est marrant de relire le Basic en C: on a l'impression que c'est pareil), et je serais très content si vous m'assurez de votre soutient, ne serait-ce que moral, de vous suivre en Pascal. Comment devrais-je commencer ?

9 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
23 mars 2009 à 19:15
Bonjour,

Hou y a du boulot là.

"J'aimerais développer un jeu de cubes"

Si c'est un cube, c'est pour de la 3D non ? Sur le plan matériel, il y a deux façon de faire de la 3D :
1) Avec la carte graphique (GPU).
2) Juste avec le processeur principal (CPU).

1) Faire de la 3D avec le processeur principal est difficile car il n'est pas optimisé pour faire les calculs matriciels utilisés pour faire de la 3D. Donc on risque des problèmes de performance. Mais ça se fait cela dit, si la scène n'est pas trop complexe et que l'on a pas trop mal codé.

2) Pour utiliser la carte graphique, il y a deux API de bas niveau : DirectX et OpenGL. De nombreuses API s'appuient sur ces API.

"moteur Micosoft pour l'affichage"

Parler de "moteur" ou de "moteur 3D", c'est très pompeux. DirectX et OpenGL font 90% du boulot. Les surcouches ne font presque que diminuer les performances. Je dis ça après avoir développé un "moteur 3D" pour un jeu.

"le WPF pour sauvegarder les mailles des objets, et divers astuces, mais c'est très mal documenté, et décourageant"

Ah tiens oui on peut faire un peu de 3D en WPF. Comme on peut faire de la 3D en .Net. Mais faut pas espérer faire quelque chose de sérieux avec ça. A une époque on critiquais DirectX pour les mauvaises performances de son interface COM. Ceux qui critiquais cela on dû se suicider depuis...

"Pensez-vous que j'aurais plus de chance en Pascal ?"

Oui. Mais pas sans un minimum de travail.

"Je me permet de vous rapeller que le Grand Kan annonçait officiellement la fin du Pascal bien avant la fin du siècle dernier."

Le Pascal en tant que tel est effectivement presque mort. Quelques université s'en serve encore pour un enseignement ou deux... Mais le Delphi va relativement bien. Et indépendamment du fait qu'il va bien ou mal, c'est un formidable concurrent des autres principaux langages sur le plan de ses qualités.

"Le moteur de Delphi est-il toujours entre 5.5 et 7 ou a-t-il fait des progrès ?"

Encore une fois, je sais pas ou il y a un moteur. Mais côté versions, on est gâté :

Delphi 8 (Première version .Net, utilisée par personne)
Delphi 2005 (Peu de succès, mauvaise réputation)
Borland Developer Studio 2006 (Dernière vraie Borland, et bien meilleur réputation que la 2005).
Turbo Delphi (For Win32 et .Net, téléchargeable gratuitement, limitée)
Delphi 2007 (For Win32 et .Net, la version Win32 réputée la meilleur depuis la 7)
Delphi 2009 (For Win32. Je sais pas côté .Net. Pas mal d'évolution arrivent avec cette version)

Mais concrètement, une 6 ou 7 suffit largement.

"J'ai entendu parler de Kylix. Fonctionne-t-il tel qu'on le décrit, à
savoir un environemement didactique de développement sous KDE (Minix)
où est-ce encore une salade de Borland ?"

Borland ne fait plus d'IDE. Kylix, contemporain de la 6/7, est mort. Maitenant c'est Embarcadero qui possède CodeGear qui travaille sur Delphi. Concernant Delphi sur les autres plateformes, tu peux regarder du côté de Lazarus.

"Mes sources sont trduites en C (C'est marrant de relire le Basic en C: on a l'impression que c'est pareil)"

Ah. En tant que développeur C, je suis frustrer que tu oses le comparer à cette bouillie abstraite qu'est VB.
En tant que développeur VB, je suis frustrer que tu oses affirmer que le VB peut ressembler à du code aussi illisible que du C.

"je serais très content si vous m'assurez de votre soutient, ne serait-ce que moral"

Je sais pas si ça va beaucoup t'aider.

"Comment devrais-je commencer ?"

Bonne question... Mais si tu t'intéresse réellement à la 3D et que tu veux des performances imbatables, voici une piste : les headers DirectX 9 pour Delphi. Les DX 10 sont dispo mais ça me semblerait prématuré, rapport aux nombreux XP restants. Des application simples et des Samples sont inclus. Pour la documentation complète sur DirectX, tu peux télécharger le SDK de M$ ou le consulter en ligne.

En alternative, il y a des composants Delphi (Delphi X, ...), OpenGL... qui peuvent te simplifier la vie. Ou pas.
3
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
24 mars 2009 à 01:27
Tiens! Un écrivain...

J'espère qu'il prend le temps d'écrire du code. Sinon, on aura bientôt un bouquin.
3
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
24 mars 2009 à 18:30
J'ai comme un présentiment vague et confus que le forum de delphifr va bientôt retrouver des couleurs une texture avec cette nouvelle recrue.  lolll
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
24 mars 2009 à 19:55
Bon. Je vois que tu n'es pas dupe Londonic. C'est vrai que quand Kernighan, le père de la programmations libre, a affirmer il y a un certain temps que le Pascal allait mourir, il savait de quoi il parlait. Delphi 2009 utilise encore le compilateur de Turbo 5.5, c'est dire si c'est pas de première fraicheur. Le Net va effectivement être exécuté sur des coprocesseurs dédiés dans un avenir proche. Cela va énormément simplifier la programmation, il n'y a aucun intérêt à rester sur des technologies anciennes et destinées à mourrir. Il faut voir la compléxité du code Delphi à écrire pour faire le cube 3D que tu as posté sur vbfrance.

Tu n'as donc aucune raison de rester sur delphifr.

Si ?

Dans ce cas ressaisis toi. Je n'ai probablement pas plus de patience que PCPT.
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
23 mars 2009 à 21:16
Bonjour rt15,


Merci beaucoup pour votre réponse qui m'évitera de m'engager dans la surcouche du Net pour commencer. Je vais déjà apprendre les Api DirectX et OpenGl en Basic car ce sera mieux documenté, et je prendrais le temps d'installer Delphi 7. J'ai justement une machine XP en jachère.
SDK parait si empirique que je l'ai refermé aussitot.


J'ai trouvé le sujet assez nébuleux sur tous ces sites.
http://freeimage.sourceforge.net/sourcecode.html
http://www.vbfrance.com/codes/MULTI-FORMAT-IMAGE-CONVERTER_47459.aspx
http://www.codeproject.com/KB/graphics/zedgraph.aspx


et Je n'ai toujours pas compris le rapport entre la texture et son paramètre planaire.


Je n'ai jamais pu faire le tour du cube. J'espérait déplacer ma souris dans une sphère imaginaire autour de mon premier cube: voici la question qui restera certainement sans réponse sur le site du Basic où deux programmeurs DirectX partagaient des tuyaux pour arrêter une rotation.


Voici la question telle que je leur ai posé.
Je m'excuse de m'immiscer dans la conversation, mais je suis confronté au problème inverse: j'arrive pas à démarrer. J'ai construit un beau tetraêdre inscrit dans une sphère pytagoricienne au centre du repère des axes pour simplifier, et avec l'idée d'appliquer aux volumes des règles identiques à celles qu'on utilise pour faire de la tri-D avec ses triangles, car trois teraêdres joints par les cotés font un demi-tour : la somme des angles inscrit et comme c'est isométrique, on peut le répèter comme des fractales, et ainsi remplir des volumes comme on le ferait pour les surfaces avec des triangles.
Evidemment, quel que soit le coté qu'on choisit pour l'observer, c'est toujours trés prés du triangle. Les déformations de la troisième plus petite face visible ne sont jamais très fortes. Je crois qu'en déplacant l'objet, en rotation par exemple, on pourait lui donner du volume. Il existe de nombreuses fonctions pour ca, mais leur caractère trés rigoureux risquerait de gacher l'interprètation spaciale de l'observateur qui doit interragir pour créer le relief. C'est à lui de vérifier qu'il y a bien quatre faces, quatre sommets, et, si il est courageux et qu'il sait compter jusqu'a six, il peut aussi s'interesser au nombre des arrêtes.
Tout ceci n'est pas trés compliqué, et quand on a compris, parait meme très simple, et j'ai donc écrit un programe pour suivre les mouvements de la souris dans une sphère imaginaire autour de l'objet, le moteur d'affichage s'occuppe des projections et des calculs de rèflexion pour l'éclairrage. rien de bien compliqué non plus: il n'y a aucune raison pour que ca ne fonctionne pas.
J'ai fait comme vous: je ramène le déplacement à un couple de rotations orthogonales que je transmet au moteur dans des variables de type compatible. Tout semblait aller bien, le programme enregistre le clic souris et passe la main au timer pour calculer les deux rotations tous le dixièmes de seconde et le compilateur me dit:
  Le thread appelant doit être en mode STA, comme l'exigent de nombreux composants de l'interface utilisateur.
Je sais que ce n'est pas direct X, mais nous sommes en VB.Net et développons des volumes, et j'ai hate d'essayer mon générateur de révolutions autour d'un axe pour pouvoir enfin m'occuper de rythme et de pouvements. Si vous pouvez trouver une idée pour débloquer ma souris, je poserais plus de questions idiotes sur le site.
Je vous suplie !!!


Si ça pouvait vous inspirer une solution, sinon DirectX en monothread m'ira très bien. Si je dispose de moyens d'éclairage et de projection comme ceux du ViewPort3D du net, je veux bien calculer rotations et transitions (Ces fonctions sont des méthodes de tous les objects 3D du net sujets de représentations graphiques, Les listes d'objects en disposent également.


 


Pour ce qui est des processeurs et des moteurs, je suis surpris que le développement des figures simples, de leur représentation graphique, et des cinétiques présente des différences. Autrefois, les constructeurs de périphèriques produisaient des "pilotes" ou petits programmes d'interface, qui permettaient de gérer les périhèriques comme des fichiers à accés direct. Il me semble que les mémoires à bulle ont été abandonnées parce ce critère les ralentissaient. Le principe a été étendu aux flux pour le texte, a cause sans doute du développement des télécommunications. Les périphériques hautement spécialisés ne répondent-ils pas à un cahier des charges ne serait-ce que pour synchroniser leurs opérations d'écriture sur le bus des processeurs. IBM est-il devenu un contrôleur CPI et Windows un marchand de souris?




Comment Delphi peut-il progresser si le Pascal est mort? Je croyais que son compilateur était Le Turbo 7.
CodeGear, j'ai pas compris que c'est un langage. M'a l'air pire que C.
Merci Pour http://www.lazarus.freepascal.org/ beaucoup plus clair.
http://www.clootie.ru/delphi/download_dx92.html#Headers a l'air bien. Je vais lui consacrer du temps.



http://msdn.microsoft.com/en-us/library/bb219837%28VS.85%29.aspx semble expliquer 3D J'étais pas sur le bon MDSN . Merci.




Merci encore de m'offrir tout ce travail. J'espère que c'est pas une maladie. J'aurais encore beaucoup de choses à vous demander, mais les appels se font pressants, car si vous m'aidez, c'est parce que je vous décharge de ceux qui sont pires que moi. Merci encore
Nicolas.


 
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
24 mars 2009 à 07:40
Bonjour Caribensila,

Ici c'est la section débutants. On sait pas encore écrire le code, et on se pose des questions. Il n'y a pas de pets que la syntaxe est plus lisible en pascal , on gère le tas soi-même, l'adressage est ^bien ^balisé, les déclarations plus compactes (tous, mes, paramètres: Mots) . Il n'empêche que c'est fini. Reste à savoir si le compilateur de Delphi a de l'avenir, parce que le Grand Kan fait du C. C'est vrai que le D s'étoffe, et que son noyau de base est particulièrement bien soigné et était des mieux documentés, mais un langage de programmation c'est presque une vocation, et quand Dieu dit "C'est fini" on peut se poser des questions avant de s'investir.
Le Basic n'est pas un investissement: c'est un mode d'emploi de la machine sous forme de commandes qui ne sont même plus interprètées sauf que ça revient avec WPF.
En quelques mois, j'en ai appris plus avec les posts qu'en codant. La section Basic est malheureusement polluée par des pseudo-langages d'application dont les primitives sont intègrées au basic, tableurs, et autre applications de bureautique, mais je suis certain d'y trouver les nouvelles technologies. Turbo5.5 nous relie aux concepts de ADA, mais on utilise .Net comme une bibliothèque alors que c'est probablement un précurseur logiciel de la prochaine génération de co-processeurs de contrôle et qu'en tant que tel, il devrait être géré par le compilateur qu'on soit pas obligés de chercher les détails. Il est déjà intègré au système d'exploitation, tandis que Pascal le confine à la périphérie de sa bibliothèque de modules Visuels.
Le graphisme Tri-D n'interesse personne. Il suffit de mesurer l'audience des articles sur le sujet. C'est pourquoi ce mode de développement a beaucoup de retard, et si Delphi m'offre plus de commodité que les autres, c'est lui que je choisirais pour ce type d'applications. Où trouver un exemple d'affichage de cube en Delphi aussi simple que celui du cube écrasé sur l'écran de la section basic.net ? Je suis preneur. je suis d'autant plus interessé par Delphi que vous prenez le temps de me répondre, alors que les spécialistes du Basic ne m'ont toujours pas dit comment récupèrer la position de la souris dans le thread réservé par le système d'exploitation.
Si vous aviez un bout de code ?
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
24 mars 2009 à 07:47
Il faut aussi documenter.
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
24 mars 2009 à 17:59
Merci à tous deux pour toutes ces explications. Proxi est un très bon exemple, je comprend bien le code, et si les Tétiquettes des TObjects sont très T_claires, j'ai Tbeaucoup de TRavail pour capter les paramètres. J'espère avoir la San_T. Je commence donc par installer D_lphi,  GLscène et PRauxi.

Et je vous remercie trés fort pour la direction. Je me vois déjà faire un trackball, des essais d'algorythmes pour une nouvelle perspective, changer les définitions de textures pour un système de re-adressage vers des fonctions de type fractales3D à base de <strike>quadripèdes</strike> tétrahèdres, des générateurs à tricoter des enveloppes par la révolution des applications, des biblithèques de ces applications, et un jeu de cubes. (sans parler du mouvement).
A+
Nicolas.
0
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
24 mars 2009 à 20:18
Bonjour rt15, Merci encore pour ta réponse.
Kernighan disait qu'une année est bisextile si elle est divisible par quatre et pas par cent à l'exeption des années divisibles par quatre cent qui sont bisextiles pour illustrer la notion d'algorythme dans son livre: "Le Langage C". Il ne s'agit pas de lui. Je parle du Grand Philippe Kan, père incontesté de Turbo Pascal et patron fondateur de Borland. Dans certaines circonstances qui, heureusement, n'affectent pas la récursivité, et au neuvième niveau de sous-programme,  le compilateur 5.5 fait des erreurs. Heureusement, l'encapsulation permet de les éviter, mais c'est difficile, pour ne pas dire impossible de développer un système d'exploitation complet avec 5.5 Peut-être la version 7 qui n'est plus "orientée". Je regrette beaucoup pour vous que ce ne soit pas celle-ci dans Delphi.
De toute façon, je viens d'installer Delphi 2005, et il faut s'inscrire pour démarrer. Je retourne illico dans les jupes de B. Gate, Grand Sorcier d'Exidy qui demande rien pour le net 3.5
A+
0
Rejoignez-nous