[slash] Zero Video by Universe
-
Articia a écrit :
Le C est un language qui empeste, lent, qui avec nos compilos actuels donne tout sauf du code appréciable par la PPC. Ca fait quelques années que je fais de la « cycle optimisation » en ASM, je sais de quoi je parle, j’en ai des preuves, toute personne qui prétent avoir un truc 50% aussi rapide en pure C se fout tout simplement de ma gueule.
c’est faux.
Sur un processeur complexe (type PPC ou intel) le compilo se démerde très bien pour optimiser le tout. Pour faire mieux qu’un compilo en codant à la main sur ces processeurs, il faut:
– connaitre le processeur dans ses moindres détails.
– avoir beaucoup de temps a perdre.
Maintenant, comme je le dit dans mon message, si tu écris ton code en C et que tu optimises en ASM les boucles contraignantes je comprend (mais bon, a mon humble avis ça devrais plus être nécessaire en 2004 sur des processeurs >= 1 GHz),
Par contre il n’y a rien de plus crétin (désolé) que d’écrire, en 2004, une démo en full ASM.
Faire la partie initialisation, ouverture des librairies, chargement des images, etc.. en ASM ça te sers a quoi? à gagner 3ms sur le temps de chargement.. super.
Pourquoi tu te sers de l’OS d’ailleurs? je suis sur que tu peux optimiser en accédant directement les registres de ta carte graphiques, tu gagneras surement plein de FPS comme ça.
A quoi me sert l’assembleur? A faire des démos en 640*480 à 60 fps là où les autres font des démos en 320*240 à la même vitesse.
Comme disait Kiero, quelques messages auparavant, les demos de Mawi c’est quand même autre chose au niveau moteur que ta démo, dans ta démo on y voit des tunnels et des hexagones flat shaddée.
d’ailleurs:
Vous confondez design et technicité. Zero n’a auccun technique, faute de temps on s’est contenté de trucs oldskool.
tu le dis toi même… donc évidemment des effets old skool qui tournent en 640×480 ça ne m’épate pas.. alors qu’une démo style « Own love Balance » de mawi, plutot new skool avec pas mal d’effet, ça ne me dérange pas que ça soit en 320… et je suis sur que si c’est en 320 c’est que Mawi ne connaissait encore pas bien la plateforme.
Par contre, elle est pure design, trouvez moi une demo avec autant de synchro audio toutes les 2 secondes, avec autant de pêche et de dynamisme dans le code et dans les background, etc…
tu veux une liste?
non sans rire, regarde la demo de Fairlight (PC) qui est sortie a l’ASM04 et la on peut parler de synchro.
En ce qui concerne le design? quasi toutes les prods mawi, planet Potion, SmokeBomb, les prods threestates, etc… la il y a du design.
Je te dis pas que ta démo est mauvaise, je te dit juste que c’est pas la démo du siécle..
La modestie c’est pas ton fort Crisot.
D’ailleurs j’ai bien aimé la remarque de Emeric sur ANN a propose de ta démo, lorsque tu as dit qu’elle tournerai 3 fois plus lent sur Morphos en prenant 2 fois plus de place…
la réponse est un peu exagérée mais relativement vrai.
« regarde et apprend », non, toi « regarde et comprend ». Un magnifique objet, ouai, ça pourrait tendre au design, mais un fond fixe derrière, ça n’en ai pas. Voila ce qu’on veux éviter.
voilà.. je la sentais venir. Après Crisot Dieu du code, Crisot designer génial.
Donc, si je te suis, cette démo EST le design, tous les autres se fourvoient, tu es la voie?
Si la démo est pas mal au niveau design c’est pour une unique raison: le graphisme 2D est bon. c’est tout. Le reste… bof bof.
C suxx forever.
oui, oui, je ne te demandes même pas ce que tu penses du C++ …
Alain: Je te demanderais de bien vouloir fermer ta gueule poliment.
Si MAWI, ou d’autres, ne maitrisaient pas la plateforme pour own love balance, je vois pas en quoi moi je l’aurais matrisé en 2 mois d’ailleur.
Alors avant de me faire la morale sur des moteurs 3D « technique » en 3D hardware, faut savoir ce que c’est !!! Pour savoir faire un moteur qui tue avec du clipping de l’alpha channel et du Z Buffer en hardware, il suffit de savoir taper DrawTriangle(); Félicitation à vous les gars !!! Encore une génération de 3D sur Amiga et bientôt vous pourrez vous foutre de ma gueule en tapant DrawWithVertexShaderQuiTue().
Quand à me dire que l’optimisation en ASM ne sert à rien… C’est vrai, si tu crache sur 30% de CPU, ça ne sert à rien. Je te prie d’arreter ce débat ridicule car tu n’y connais visiblement strictement rien, et une seule personne sur terre est autorisée à me parler d’optimisation: Didier Levet.
D’ailleurs j’ai bien aimé la remarque de Emeric sur ANN a propose de ta démo, lorsque tu as dit qu’elle tournerai 3 fois plus lent sur Morphos en prenant 2 fois plus de place…
la réponse est un peu exagérée mais relativement vrai.
C’est vrai que vu les centaines de démos sur Pegasos…. Demos? Ho pardon, d’objet à 2000 faces qui se suivent et ne se ressemblent pas plutot… Tiens? La camera aurait elle bougée? Ha non, bon je peux retourner dormir…
A la base j’ai créé ce modeste topic pour présentée une modeste demo faite en 8 petits jours, ne représentant pas plus de 5% des capacités d’un AOne que des capacités d’Universe. Là vous m’avez foutu en colère, franchement en rogne même.
Vous n’avez finalement pas eu tord, je vous en suis même gré! Vous allez le sentir passer…
« I will show You »
Be ready.
Pour la copie de massive de donnée, il fautmieux utilisé memcpy, CopyMem ou CopyMemQuick. Pour ce qui est de memcpy, il me semble que Gcc en utilise un interne qui est bien optimisé.
Sinon, il me semble que les compilos (style Gcc3) font gaffe a la taille des pipeline, cache, disaptcher d’instruction… Par contre, il faut bien lui spécifier pour quelle CPU tu veux compiler.
On est bien d’accord, les partis critiques (style C2P) en asm
@Crisot: tu te met toujours en rogne! Et pour une fois on a même pas taper sur l’OS4/AOne/Eyetech/Hyperion. Tu devrais accepter un peu la critique.Bye
Pour la copie de massive de donnée, il fautmieux utilisé memcpy, CopyMem ou CopyMemQuick. Pour ce qui est de memcpy, il me semble que Gcc en utilise un interne qui est bien optimisé.
Sinon, il me semble que les compilos (style Gcc3) font gaffe a la taille des pipeline, cache, disaptcher d’instruction… Par contre, il faut bien lui spécifier pour quelle CPU tu veux compiler.
On est bien d’accord, les partis critiques (style C2P) en asm
@Crisot: tu te met toujours en rogne! Et pour une fois on a même pas taper sur l’OS4/AOne/Eyetech/Hyperion. Tu devrais accepter un peu la critique.Bye
Articia a écrit :
Alain: Je te demanderais de bien vouloir fermer ta gueule poliment.
Ce que j’aime chez toi Crisot, c’est que tu es toujours ouvert a la critique, et surtout (surtout) ta grande ouverture d’esprit.
Si MAWI, ou d’autres, ne maitrisaient pas la plateforme pour own love balance, je vois pas en quoi moi je l’aurais matrisé en 2 mois d’ailleur.
Ils la maitrisent, mais il y a surement beaucoup de place pour l’optimisation.
Tu la maitrises aussi, ta démo va plus vite mais a moins d’effet que celles de mawi…
C’est un fait. pas de discussions possible.
Alors avant de me faire la morale sur des moteurs 3D « technique » en 3D hardware, faut savoir ce que c’est !!! Pour savoir faire un moteur qui tue avec du clipping de l’alpha channel et du Z Buffer en hardware, il suffit de savoir taper DrawTriangle();
Tout à fait.
Est-ce un mal? Est-ce que c’est vachement fun et dans l’esprit demo scene de se retaper une eniéme fois une routine de rasterisation des triangles.. je crois pas. Mais c’est un long débat.
Maintenant chacun fait comme il veut, hein.. d’ailleurs, perso, si j’ai arrété de développer sur Amiga c’est justement a cause du manque de framework 3D.
Mais bon c’est sur que le temps passé a gagner 17ms au loading on le passe pas au design.. voila quoi.
Et puis, Own Love Balance (par exemple) et en pure software (je crois). Donc mawi n’a pas utilisé la commande magique gl_runDemo();
Félicitation à vous les gars !!! Encore une génération de 3D sur Amiga et bientôt vous pourrez vous foutre de ma gueule en tapant DrawWithVertexShaderQuiTue().
tu sais quoi? ça s’appelle le progrés.
Sur PC on a un truc qui s’appelle les Pixels Shaders, dans l’esprit ça rappelle un peu les Copper Lists et c’est super puissant et très fun a programmer (en assembleur qui plus est). Seulement voila pour les utiliser faut passer par DX ou OpenGL. Donc ça doit être aussi de la merde je suppose?
Quand à me dire que l’optimisation en ASM ne sert à rien… C’est vrai, si tu crache sur 30% de CPU, ça ne sert à rien. Je te prie d’arreter ce débat ridicule car tu n’y connais visiblement strictement rien, et une seule personne sur terre est autorisée à me parler d’optimisation: Didier Levet.
bla bla bla, oui seigneur.
Comme disais stan (je crois) on peut faire du mauvais code en C ou en ASM..
C’est fini le temps de l’a500 ou fallait programmer en ASM pour avoir quelque chose de viable.
Enfin bon j’ai autre chose a foutre qu’essayer de faire boire un ane qui a pas soif.
C’est vrai que vu les centaines de démos sur Pegasos…. Demos? Ho pardon, d’objet à 2000 faces qui se suivent et ne se ressemblent pas plutot… Tiens? La camera aurait elle bougée? Ha non, bon je peux retourner dormir…
chacun son style. Les hexagones qui pulsent sur de l’eurodance, c’est pas forcément mieux.
A la base j’ai créé ce modeste topic pour présentée une modeste demo faite en 8 petits jours, ne représentant pas plus de 5% des capacités d’un AOne que des capacités d’Universe. Là vous m’avez foutu en colère, franchement en rogne même.
A la base tout se passait bien, jusqu’a ce que quelqu’un écrive une demi critique, ce qui visiblement ne passe pas.
A la base je te rappelle aussi que j’ai dit que je trouvais sympa cette démo. C’est juste avec ton ego que j’ai beaucoup de peine.
Yeaaaah ça fighte comme au bon vieux temps !!!!
@Tex : C’mon to the Alchimie and try to score me one goal you motha fucka ! MHSC Rulez da League 2 Demo Scene and we’ll prove it !!!@Articia : I’d love to be able to develop on PSP but Sony doesn’t recognize us as a team with potential for PSP… We’ll have toprove ourselves on PS2 thx to the ultimate Master SG2 Impulse team and recontact Sony to get access to PSP devkits.
But for now we have a NDS devkit and we’ll try to make the best things we can on it !
@Breed : c’mon guy ! We’ve work to do !! The first ever League 2 demo !
@Henes : I fuck your delicate asshole you sucka !ModHop,
My 2 cents. Histoire de mettre un peu d’huile sur la braise.
C’est vraiment laid comme thread. Vous avez vraiment que ca à foutre D’ailleur moi aussi!
Les rouges contre les bleus ou les bleus contre les rouges. J’adore. C’est constructif comme attitude.
@Crisot : apparement, tu n’apprecies pas le peg. C’est bien dommage tu te prives d’un auditoir supplémentaire pour développer ton ego. Tu n’as pas bien compris l’esprit de la scène : partager pour le plaisir de tous. Avec un peu d’effort tu pourrais faire tourner ton travail sur MOS et les utilisateurs de MOS t’en seraient reconnaissant. De plus techniquement, ca devrait pas être la mer à boire puisque tu es (apparement) le plus fort. Mais comme tu prefères le sectarisme primaire et idiot…@All : pour ce qui est de la compilation C et de l’assembleur. Celui qui me dit que coder en asm est plus efficace qu’en C est une triple buse. Ceci n’est vrai que dans un cas : quand on code quelque chose pour un processeur en particulier. En effet, si l’on se limite au processeur PPC 603e, 604e, G3 et G4, chacun de ces cpu a des différences en terme de taille de cache, de vitesse de bus voire même de temps d’execution pour certaine instruction. Résultat : il n’est possible d’optimiser un code à la main que si l’on prend en compte la nature du CPU et ce code ne sera optimisé que pour un type de cpu… Ce que fait un compilateur C de bonne facture avec facilité et élégance (il connait la taille des caches, du pipeline, des instructions, des temps d’exécution, et si il est bien fait, il sera même capable d’arranger les instructions pour aller plus vite…). Encore une bataille idiote de clocher! Et celui qui a un cerveau suffisament développé pour tout prendre en compte (profondeur de la pipeline, taille des caches, réarrangement d’instructions, calcul de cycle…) devrait immédiatement demander à l’ONU la protection de son cerveau comme patrimoine de l’humanité.
Bref : dans tous les cas avec les CPU actuels, il est illusoire d’obtenir la meilleur (l’état de l’art) vitesse d’exécution que ce soit en asm ou C… puisque chaque CPU est différent.
Conclusion : si tu veux aller vite partout, écrit du code spécifique pour chaque type de processeur… Et, là, tu n’es pas rendu au bout de tes peines…
NB : Toutefois, il est clair que dans certain cas, une optimisation du code à la main peut apporter de grand bénefice à l’execution. Il existe des outils de profiling lors de l’execution afin de déterminer les zones d’une application où la consommation de temps est importante. Celui qui optimise tout son code est une GROSSE triple buse : il perds du temps pour des prunes… Il ferait mieux de concentrer son energie à récrire les parties qui consomme du temps. Et seulement celles ci. Et le reste du temps, il peut se tourner les pouces : boire de la biere, fumer des ** et aller à la plage. Ou coder de nouveaux effets novateurs…
NB2 : Avant même de foutre les doigts dans l’asm, la première des choses à faire, c’est d’optimiser ses algorithmes et ce, quelque soit le langage (des gains de 2 à 10 ne sont pas rares…).
N’importe quel développeur un peu serieux vous tiendra ce discours.
Histoire que ce post apporte un peu de culture, AL-KHWARIZMI est à l’origine du mot algoithme.
http://www.sciences-en-ligne.com/momo/chronomath/chrono1/Khwarizmi.html
Une fois que l’on a atteind les limites du langage (ou de sa faculté à améliorer ses algorithmes…), alors peut être il est intéressant de descendre en dessous… et d’aller voir ce qui se passe en assembleur et tenter de faire mieux qu’un compilateur qui connait la géometrie avec précision d’une famille de processeur. Bon courage.
NB3 : Celui qui veut bien faire devrait récrire son code pour chaque type de CPU afin de prendre en compte les différences de cache, pipeline et autre joyeusetés de nos processeurs modernes. Il est loin le temps des 68000 où tout le monde était sur un pied d’égalité.
NB4 : Pour ce qui est des démo. C’est bien de faire un code optimisé de la grosse balle atomique. Mais si c’est pour voir des effets « bateaux » à 150fps… autant ne rien faire. L’innovation est la clé de voute de la scène. Celui qui trouve un nouvel effet sympa gagnera… même si ca tourne à 10fps. Les fois suivantes, le code sera plus optimisé et les fps seront au RDV.
@A tous les sectaires (bleu ou rouge, rouge ou bleu) : changez d’attitude.
@A tous les Aoneistes : il est cool l’OS4
@A tous les morphoiste : il est cool MOS
@All : Paix, amour et joie.
Tout cela reste du passe temps. Faisons en sorte qu’il soit agréable.
Tu n’as pas bien compris l’esprit de la scène : partager pour le plaisir de tous.
Ah bon ?
J’aurai plutôt dit l’inverse… surtout du temps des guéguerres Miga-Atari, puis Miga-Pc,…
Sinon, je suis d’accord sur un point: un thread ou tt le monde se tape dessus, pour rien… Comme d’habitude. Vive l’Amiga !
Sinon, pour en revenir à l’ASM: pour exploiter les nouvelles fonctions de certains CPU (c’est le cas sur x86 avec MMX,…), il est indispensable de passer par l’ASM. Mais ca s’arrête là… A part sur consoles (et encore ?) et sur les démos, je vois pas qui code en autre chose que C++/C# de nos jours.
@Nico: Et non, le C ne ressemble à rien du tout. Et j’appelle ca en aucun cas « lisible »… Le Pascal c’est de la balle !@+,
Léo.
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Général › [slash] Zero Video by Universe