Logicielsmoto.com

Nous sommes le 11 Avr 2021, 08:53

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 9 messages ] 
Auteur Message
MessagePosté: 10 Sep 2020, 19:19 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 209
Bonjour

Voici une vidéo de 2' montrant les différences de vitesses de traitement enre le basic, le pascal base (freegame blot) compilé et l'assembleur 6809. L'algorithme est l'affichage de sprites avec transparence utilisant à peu près la même technique dans les cas.

On se rend compte que l'assembleur peut aller jusqu'à 400 fois plus rapidement que le Basic.

phpBB [video]


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 11 Sep 2020, 20:31 
Hors ligne

Inscription: 13 Juin 2005, 21:50
Messages: 268
Localisation: Planete Zorg (31)
A plusieurs reprise tu as dit "que j'ai optimisé", "moi je" en gros alors que nous t'avons aidé. Surtout que dans la vidéo on voit que tu as mis en rem (sur la partie asm) Sam Devulder. Pas glop :nanana:


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 11 Sep 2020, 23:00 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1415
Localisation: Brest
C'est pas grave.. c'est important que chacun progresse à son rythme car je ne suis pas certain que tout ce qui a été dit ait été compris ou pris en compte.

En tout cas la vidéo est cool dans la mesure où je me demandais justement ce que ca donnait tout ca. (Et de me rendre compte que j'ai pas avancé sur l'optim du pascal-base. Honte à moi :oops: )

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 12 Sep 2020, 00:30 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 209
jasz a écrit:
A plusieurs reprise tu as dit "que j'ai optimisé", "moi je" en gros alors que nous t'avons aidé. Surtout que dans la vidéo on voit que tu as mis en rem (sur la partie asm) Sam Devulder. Pas glop :nanana:


Oui je sais pour ton nom je m'en excuse!!!

Pour ce qui est de l'optimisation, j'ai gardé ma méthode initiale pour les sprites en transparence qui prenait le moins de cycle que ta méthodes (de mémoire, la mienne prenait de 33 à 39 cycles (dépendant des conditions) pour la transparence et ça en prenait 44 pour la tienne, en plus utiliser un masque fait dépenser beaucoup de place pour peu d'utilisé).

Pour le reste je n'ai pas intégré tout, pour ce qui est de l'utilisation des piles je ne l'utiliserai pas, ça ne sera pas adaptable à ce genre d'algorithme (puisque pour le scrolling, il y aura un transfert de banque à banque conjointement à un changement de banque pour la vidéo RAM (de la banque 2 à la banque 3) pour éviter tout scintillement. Malheureusement la technique utilisant un sprite entouré dun carré noir qui évite l'effet scintillement ne peut s'utiliser que si le fond est noir constamment, ce qui n'est pas le cas avec Bubble Bobble quand il traverse les plafonds. Je remarque d'ailleurs que cette parytie là du code ne marche pas bien pour les version BBC Micro, ZX Spectrum, Amstad première version, NES et même Master system (pour les bulles notamment).

La partie la plus difficile du jeu est sans doute la gestion des bulles très complexes!! Quand Bubble touche une bulle liée à d'autres, celles ci éclatent également... Il faudra utiliser les piles ici je pense (fonction récursives).

Le jeu me parait très difficile à programmer! Beaucoup plus que Wip zezito. Notamment à cause de la gestion des bulles. Je n'ai pas touché au code depuis fin aout.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 12 Sep 2020, 00:35 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 209
Samuel Devulder a écrit:
C'est pas grave.. c'est important que chacun progresse à son rythme car je ne suis pas certain que tout ce qui a été dit ait été compris ou pris en compte.

En tout cas la vidéo est cool dans la mesure où je me demandais justement ce que ca donnait tout ca. (Et de me rendre compte que j'ai pas avancé sur l'optim du pascal-base. Honte à moi :oops: )


C'est pas grave chacun avance à son rythme :)

Pour Pascal base, j'ai mis écrit quelques fonctions (tirés de la doc papier puisque non isponible en format txt!)) utilisant les fonctions systèmes du thomson comme écrit dans la doc (je parle des 2 fonctions "peek" et "poke" dans la vidéo mais yen a une bonne quinzaines d'autres qui fonctionnent et sont opérationnelles, si tu veux, je peux envoyer un petit document texte sur ces fonctions ? En fait ca encode de l'assembleur directement.

T'inquiète j'ai bien tout compris. J'ai fait de 'lassembleur 6809 en 1993 (voir la vidéo sur les tétris) et c'est là que je me suis rendu compte que l'assembleur avait une vitesse de dingue comparé au Basic.

Avec Pascal Base, on peut faire quelques jeux plutôt intéressant en terme de vitesse comme les tétris justement ou des casse briques, mais pour Bubble Bobble, ça me parait trop lent (même si 50 sprites en 7" c'est fort honorable)


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 12 Sep 2020, 08:09 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 632
Localisation: Provence (France)
C'est très bien de tout redécouvrir soi-même par l'expérience plutôt que de croire ceux qui savent. Bravo pour cet exercice et pour la vidéo.

Il reste un dernier point à explorer : la vitesse d'exécution ne dépend pas uniquement du langage, elle dépend aussi beaucoup (plus qu'on peut le penser) du programmeur. Et ceci quel que soit le langage.

Une remarque en passant : dans FREE GAME BLOT le T final ne se prononce pas. Il faut dire fri gaime blo.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 12 Sep 2020, 16:50 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1415
Localisation: Brest
Ah? j'ai toujours dit blo-te à l'anglaise (vu les mots devant). :oops:

Sinon oui un mauvais codeur peut te rendre la version BASIC encore plus lente, et descendre les perfs de l'asm à celle d'un C compilé. Là dessus c'est Préhisto le plus fort pour optimiser l'asm au mieux grace a des années de pratiques, d'expérience, et de persévérance.

De ce que j'ai constaté : on ne fait bien que ce qu'on fait souvent, donc plus on pratique meilleur on devient.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 12 Sep 2020, 19:00 
Hors ligne
M. DCMOTO

Inscription: 06 Juin 2004, 08:23
Messages: 632
Localisation: Provence (France)
En BASIC les débutants travaillent avec les variables par défaut, qui ont une mantisse et un exposant et sont très longues à traiter. En utilisant quand c'est possible des entiers sur deux octets ou des caractères sur un octet le gain est appréciable. L'utilisation des chaînes de caractères peut aussi être très largement optimisée quand on sait comment elles sont gérées en mémoire (allocation, réallocation, réorganisation de l'espace chaînes). Mais il y a aussi plein d'autres optimisations possibles. On peut augmenter considérablement la vitesse d'exécution.

En assembleur, c'est bien (comme l'a écrit Samuel) l'expérience qui fait progresser. On ne peut pas tout découvrir soi-même, Il ne faut pas hésiter à étudier les programmes écrits par les programmeurs expérimentés pour comprendre et adopter leurs techniques.

Pour la prononciation officielle de FREE GAME BLOT il faut écouter ceci.


Haut
 Profil  
Répondre en citant le message  
MessagePosté: 22 Sep 2020, 21:50 
Hors ligne

Inscription: 21 Fév 2020, 11:38
Messages: 209
Daniel Coulom a écrit:
C'est très bien de tout redécouvrir soi-même par l'expérience plutôt que de croire ceux qui savent. Bravo pour cet exercice et pour la vidéo.

Il reste un dernier point à explorer : la vitesse d'exécution ne dépend pas uniquement du langage, elle dépend aussi beaucoup (plus qu'on peut le penser) du programmeur. Et ceci quel que soit le langage.

Une remarque en passant : dans FREE GAME BLOT le T final ne se prononce pas. Il faut dire fri gaime blo.


Oui (pour la vitesse d'exécution) mais là j'ai bien précisé qu'il s'agissait du même algorithme à peu de chose près dépendant des caractéristiques des langages), et donc utiliser un algorithme avec la plus fable complexité possible (exemple : S=n*(n-1)/2 pour la somme des n premiers entiers ainsi que pour les diverses puissantes de i, il y a une formule)

Je ne savais pas pour FreeGame Blot. Vu que ça a l'air anglais, je prononçais le "t", mais c'est une habitude qu'il va falloir que j'oublie (arg).


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 9 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com