:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Forums Hébergés :: > µLibrary

µLibrary Official µLibrary forum (English / Français)

Publicité

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 20/03/2007, 00h47   #1
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 229
Par défaut - [Projet DS - App] µLibrary

µLibrary
Librairie pour la DS
BETA

Version 1.12

Présentation :

Hello
Après un long temps d'inactivité, me revoici avec... une librairie pour la DS cette fois!
Alors autant prévenir tout de suite, cette librairie utilise le GPU 3D de la DS, donc l'avantage c'est que vous pouvez faire de jolis pitits n'effets dans tous les sens, mais l'inconvénient c'est que vous n'avez qu'un seul écran à la fois (ou deux, mais à 30 fps).
Si on fait abstraction de ça, mettons que vous n'aviez de toute façon pas une grande envie d'exploiter le second écran ou qu'afficher un BG avec 3 sprites suffirait, avec une lecture du stylet. µLibrary vous permettra de faire un jeu en 2D sans vous prendre la tête, et même de mixer éventuellement avec de la 3D.
De plus, la librairie peut s'intégrer avec PALib, donc vous pouvez toujours utiliser celle-ci pour votre deuxième écran et vous concentrer sur le premier avec µLibrary

Alors passons un peu en revue les fonctionnalités de cette librairie:
  • Basée sur le même modèle qu'OSLib: dessin ordonné d'objets sur l'écran comme sur une feuille de papier. Habituel pour ceux qui ont déjà codé sur une console 3D ou à rendu software.
  • Format d'images supportés: PNG, GIF, JPG.
  • Effets: étirement, teinte (4 coins), mirroring, rotation (avec définition du centre), sélection d'une partie d'image à afficher (spritesheet)
  • Qualité 18 bits au lieu de 15 bits avec le GPU 2D.
  • Système de fichiers virtuels, il est possible de charger des fichiers indépendemment du support (RAM, libFat, GBFS supportés par défaut). Permet de réaliser plus facilement des softs compatibles avec tous les linkers.
  • Géométrie non texturée (rectangles, dégradés, lignes, etc.)
  • Système de message boxes basique
  • Wrapper VideoGL pour le chargement de textures / palettes en VRAM: il est possible d'en charger et décharger dynamiquement. De plus, il est plus flexible (vous pouvez choisir quelles banques utiliser pour quoi, etc.)
  • Gestion des touches et du touchscreen (incluant le double clic et la vitesse du stylet)
  • Intègre 2 splash screens
  • Système de maps avec tiles de taille variable et support des bits GBA (palette, miroir)
  • Wrapper bas niveau pour dessiner des primitives
  • Système de texte utilisant le même format de polices que OSLib

Des exemples sont également fournis, une documentation Doxygen et une petite documentation en .chm. Il y a aussi deux templates, un avec PALib et un sans PALib.
La doc doxygen est dispo ici: http://brunni.palib.info/new/ulib/do...gen/index.html (il faut aller sur l'onglet Modules)

Les performances sont très bonnes: un des exemples montre qu'en n'optimisant pas du tout (en plus c'est du C++), avec 400 balles qui rebondissent sur l'écran, on est à moins de 15% de CPU...

Galerie d'image :


Historique :
- 19.03.2007: Version 0.00, première version pré-alpha, utilisable et quasiment complète. Tout n'est pas encore garanti de fonctionner correctement cependant.

Comment jouer :

Autres informations :
N'hésitez pas à me faire part de vos commentaires et des questions ou difficultés que vous pourriez avoir

Edit: Pour ceux qui ne peuvent ou ne veulent pas tester la lib, j'ai deux petits samples qui montrent l'utilisation de la lib:
http://brunni.palib.info/new/ulib/tmp/Example01b.rar
http://brunni.palib.info/new/ulib/tmp/Example09.rar
A tester avec no$gba ou sur vraie DS

La source viendra tout bientôt, dès que l'étape 'alpha test' sera terminée

Attention : une erreur, qui va être rapidement corrigée, s'est glissée dans la licence et pourrait faire croire qu'il s'agit d'une Licence Publique Générale GNU (GNU GPL). Or, il ne s'agit pas d'une GNU GPL, mais d'une version modifiée et simplifiée de cette licence. Il ne faut donc pas tenir compte de cette erreur dans l'interprétation de la licence accompagnant µLibrary.

Dernière modification par Brunni ; 17/03/2009 à 10h59.
Brunni est déconnecté   Réponse avec citation

Publicité

Vieux 20/03/2007, 00h48   #2
jujurackham
Membre confirmé
 
Date d'inscription: 26/11/2005
Localisation: Rouen, France
Messages: 812
Par défaut

Bon alors premières impréssions : ben ça m'a l'air ni plus ni moins qu'une très bonne lib, chapeau !

En espérant pour toi qu'elle deviendra une référence au même titre que PAlib !
__________________
[Projet GBA] Don't Erase Me !

Dernière modification par jujurackham ; 20/03/2007 à 00h52.
jujurackham est déconnecté   Réponse avec citation
Vieux 20/03/2007, 00h49   #3
DJP
Bitchy Little Girl...
 
Date d'inscription: 29/10/2005
Messages: 3 201
Par défaut

Citation:
Envoyé par jujurackham
Premzzzz
Il y a des bans qui se perdent.... ou pas...

En tout cas, Brunni
__________________

>> On garde :: On améliore :: On kill <<
DJP est déconnecté   Réponse avec citation
Vieux 20/03/2007, 00h52   #4
Lazarus
Membre confirmé
 
Date d'inscription: 15/11/2006
Messages: 93
Par défaut

Super post juju...

Plus sérieusement, bonne petit lib en perspective Bravo !
Lazarus est déconnecté   Réponse avec citation
Vieux 20/03/2007, 00h53   #5
jujurackham
Membre confirmé
 
Date d'inscription: 26/11/2005
Localisation: Rouen, France
Messages: 812
Par défaut

Mais heu, c'était juste le temps de pouvoir lire. J'ai édité, et j'ai commenté
__________________
[Projet GBA] Don't Erase Me !
jujurackham est déconnecté   Réponse avec citation
Vieux 20/03/2007, 00h57   #6
Arcadia
Modérateur saisonnier
 
Date d'inscription: 17/02/2006
Localisation: Compiègne
Messages: 2 942
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

Citation:
Envoyé par jujurackham
Mais heu, c'était juste le temps de pouvoir lire. J'ai édité, et j'ai commenté
Je procède ainsi parfois ...

Bon aller, une dernière news pour la route
__________________
.

Mes homebrews GBA : 1942 - Ghost'n Goblins




Mes autres passions, les flippers : Restauration d'un High Speed (Williams - 1985)
Arcadia est déconnecté   Réponse avec citation
Vieux 20/03/2007, 00h59   #7
jujurackham
Membre confirmé
 
Date d'inscription: 26/11/2005
Localisation: Rouen, France
Messages: 812
Par défaut

@Arcadia : tu n'arrêtes donc jamais de newser ?
__________________
[Projet GBA] Don't Erase Me !
jujurackham est déconnecté   Réponse avec citation
Vieux 20/03/2007, 01h07   #8
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 229
Par défaut

Merci des encouragements
J'ai rarement eu l'occasion de voir autant de monde sur un topic à cette heure-ci, je ne m'y attendais vraiment pas
J'ai ajouté deux samples à la fin du post pour que vous puissiez quand même avoir un aperçu de la lib avant Je sais mes exemples sont pas terribles mais bon c'était surtout pour apprendre à utiliser la lib à la base
Voici un exemple de code qui affiche une image provenant de FAT et lui fait suivre le stylet:
Code PHP:
#include <ulib/ulib.h>

int main()
{
    
UL_IMAGE *imgTails;
   
    
//Initialise µLibrary
    
ulInit(UL_INIT_ALL);
    
//On initialise la partie graphique
    
ulInitGfx();
    
//Init de la FAT - ne pas le faire systématiquement, ça risque de planter sur certains linkers
    
ulInitLibFat();

    
//Affiche quelques splashs ^^
    
ulShowSplashScreen(1);
    
ulShowSplashScreen(2);

    
//On va utiliser le touchscreen
    
ulSetMainLcd(0);
    
    
//Le rose pétant est la couleur transparente (masque des sprites)
    
ulSetTransparentColor(RGB15(31031));

    
//On charge notre image de Tails depuis la source active (FAT en l'occurence).
    
imgTails ulLoadImageFilePNG("/tails.png"0UL_IN_VRAMUL_PF_PAL4);

    
//Les coordonnées définiront le centre de l'image (pratique pour la placer directement au stylet)
    
ulImageSetRotCenter(imgTails);

    while(
1)
    {
        
//Lecture des touches
        
ulReadKeys(0);
       
        
//On place notre personnage à la même position que le stylet, comme ça il le suivra
        
imgTails->ul_keys.touch.x;
        
imgTails->ul_keys.touch.y;
       
        
//On commence le dessin
        
ulStartDrawing2D();
        
        
//On dessine un fond en dégradé
        
ulDrawGradientRect(00256192RGB15(0024), RGB15(000), RGB15(000), RGB15(0024));
        
        
//On dessine notre mignon petit perso sur l'écran
        
ulDrawImage(imgTails);
        
        
//Fin du dessin
        
ulEndDrawing();
        
        
//Attente de la VBlank (synchro à 60 fps)
        
ulSyncFrame();
    }

    return 
0;

Brunni est déconnecté   Réponse avec citation
Vieux 20/03/2007, 01h08   #9
Bobby Sixkilla
Maître Chinpoko-extra-mon
 
Date d'inscription: 10/11/2005
Localisation: Palaiseau (Rive sud)
Messages: 6 466
Voir les codes amis Nintendo DS
Par défaut

T'assures Brunni.
Bobby Sixkilla est déconnecté   Réponse avec citation
Vieux 20/03/2007, 01h11   #10
Arcadia
Modérateur saisonnier
 
Date d'inscription: 17/02/2006
Localisation: Compiègne
Messages: 2 942
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

Citation:
Envoyé par jujurackham
@Arcadia : tu n'arrêtes donc jamais de newser ?
Tant qu'il y a des nouveaux trucs sur le forum, moi ou Bobby on veille à en faire la promo à notre niveau, et le dodo passe après

Bravo Brunni, t'assures comme le dit si bien le su nommé Bobby !
__________________
.

Mes homebrews GBA : 1942 - Ghost'n Goblins




Mes autres passions, les flippers : Restauration d'un High Speed (Williams - 1985)
Arcadia est déconnecté   Réponse avec citation
Vieux 20/03/2007, 01h16   #11
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

Enfin tu le crée ce foutu topic
Au vu du code, c'est très similaire à OSlib et c'est que du bon
Yodajr est déconnecté   Réponse avec citation
Vieux 20/03/2007, 02h08   #12
Doud_
Membre confirmé
 
Date d'inscription: 12/11/2005
Localisation: Cambrai
Messages: 327
Par défaut

Félicitation Brunni!

Je viens de jetter un oeil sur les 2 exemples (sur ému malheureusement, j'ai oublié ma DS ) et ça a l'air très sympa!

En plus le petit bout de code posté donne vraiment envie de tester!

R.E.S.P.E.C.T
__________________
Peace
Doud_ est déconnecté   Réponse avec citation
Vieux 20/03/2007, 03h11   #13
Foxy
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 367
Par défaut


Genial !!!
__________________
Mes releases persos, etc...
Foxy est déconnecté   Réponse avec citation
Vieux 20/03/2007, 03h34   #14
mastertop101
Membre confirmé
 
Date d'inscription: 14/11/2005
Messages: 346
Par défaut

Cool..! Une autre lib et ayant, il me semble, une autre approche que les 2 autres (ce qui est bien)
Faudra penser à changer le logo palib dans les exemples par contre ;P
PAr contre, on peut s'attendre à quoi ? un réel concurrent ou un complément ayant des utilités spécifiques?

Dernière modification par mastertop101 ; 20/03/2007 à 03h39.
mastertop101 est déconnecté   Réponse avec citation
Vieux 20/03/2007, 08h12   #15
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 229
Par défaut

Merci encore

Alors non ce n'est pas un concurrent, mais plutôt un complément si j'ose dire (d'où le fait qu'elle est compatible avec PALib ). En fait l'avantage est que là on tire parti des capacités supplémentaires du GPU 3D, comme par exemple une transparence plus poussée (support du canal alpha, et les objets peuvent blender entre eux), un plus grand nombre de sprites (1536 quads, càd jusqu'à 1536 sprites, ou alors on mixe avec des maps, du texte et autres ), pas de limite quant au zoom (2x normalement), ni avec la taille des sprites (enfin si, mais c'est 2048 en largeur et hauteur donc bon). Enfin il est possible de dessiner des formes telles que des lignes, et de déformer librement les images. On pourrait imaginer des trucs sympa à la Yoshi's island par exemple (les effets spéciaux comme la planche qui tombe, les gros monstres, etc.)

Finalement, l'approche de µLibrary est aussi différente, j'ai essayé d'inclure en plus des fonctions bas niveau qui soient très proches du hardware. Par exemple on peut carrément faire des trucs du style pour ceux qui connaissent:
Code PHP:
ulDisableTexture();
ulVertexBegin(GL_TRIANGLES);
ulVertexSetColor(RGB15(3100));
ulVertexXY(x0y0);
ulVertexXY(x1y1);
ulVertexXY(x2y2);
ulVertexEnd(); 
Avec ça on dessine directement avec le GPU (pour info ça donne un triangle rouge non texturé entre les points (x0,y0), (x1,y1) et (x2,y2)).

J'ai mis en ligne la documentation doxygen si vous voulez un aperçu des fonctions, il faut aller sous l'onglet Modules:
http://brunni.palib.info/new/ulib/do...gen/index.html

[Edit] Excellent ta news Arcadia merci
Brunni est déconnecté   Réponse avec citation
Vieux 20/03/2007, 11h50   #16
foosh
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 208
Par défaut

ils t'ont pas encore embauché chez nintendo (ou ailleurs)? parce que ca m'a l'air d'etre au top encore...
foosh est déconnecté   Réponse avec citation
Vieux 20/03/2007, 15h24   #17
jujurackham
Membre confirmé
 
Date d'inscription: 26/11/2005
Localisation: Rouen, France
Messages: 812
Par défaut

Brunni, je crois que si tu étais une fille je serais tombé amoureux de toi

Plus sérieusement, je trouve ça génial !
__________________
[Projet GBA] Don't Erase Me !
jujurackham est déconnecté   Réponse avec citation
Vieux 20/03/2007, 15h55   #18
Arcadia
Modérateur saisonnier
 
Date d'inscription: 17/02/2006
Localisation: Compiègne
Messages: 2 942
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

Citation:
Envoyé par Brunni
[Edit] Excellent ta news Arcadia merci
Y'a pas de quoi
__________________
.

Mes homebrews GBA : 1942 - Ghost'n Goblins




Mes autres passions, les flippers : Restauration d'un High Speed (Williams - 1985)
Arcadia est déconnecté   Réponse avec citation
Vieux 20/03/2007, 15h55   #19
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 229
Par défaut

Merci de vos avis
Par contre est-ce que quelqu'un a essayé de coder avec?
Faites-moi part de vos difficultés, questions ou points que vous pensez qu'il y ait à améliorer
Brunni est déconnecté   Réponse avec citation
Vieux 20/03/2007, 16h09   #20
Noda
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: à montréal jusqu'au 4 mai, après retour en france ^^
Messages: 570
Par défaut

Miam, ca me donnerais presque envie de recoder mon homebrew avec tellement ca a l'air prometteur au niveau des effets je pense que pour mon prochain projet, je vais tater un peu de ta ulib
__________________
http://nodadev.wordpress.com
Noda est déconnecté   Réponse avec citation
Vieux 20/03/2007, 16h11   #21
Tembargo
Membre confirmé
 
Date d'inscription: 21/11/2005
Localisation: Tōkyō
Messages: 3 018
Voir les codes amis Nintendo DS
Par défaut

Clap Clap
__________________

Tembargo est déconnecté   Réponse avec citation
Vieux 20/03/2007, 16h29   #22
Beda
Thorgal
 
Date d'inscription: 15/02/2006
Localisation: 974
Messages: 479
Par défaut

J'y ai vite fait touché en la combinant avec la Palib, ça marche niquel.
Mais j'aimerais savoir comment profiter des 1536sprites .
Beda est déconnecté   Réponse avec citation
Vieux 20/03/2007, 19h20   #23
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 229
Par défaut

C'est normal, PALib reste PALib, c'est pas pour autant que ça va faire sauter la limite des 128 sprites. C'est lorsque tu fais le rendu avec µLib (ulDrawImage, etc.) que tu peux avoir jusqu'à 1500 sprites.
En fait, l'utilité de PALib est de faire des choses qui ne sont pas (encore) implémentées dans ma lib, c'est tout. Pour le reste, il vaut bien sûr mieux utiliser mes routines, sinon µLib perd son intérêt
Brunni est déconnecté   Réponse avec citation
Vieux 20/03/2007, 19h35   #24
birslip
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 353
Par défaut

Vous êtes fous les gens, encore une lib . J'essaye ça, faute d'avoir une psp je n'ai pas pu essayer oslib, je vais donc essayer de me rattraper sur celle ci. Sinon l'idée des multiples formats de fichiers est pas mal, mais j'imagine que ça se ressent au chargement?
Pour la transparence, c'est tout ce dont j'ai toujours rêvé! Merci
__________________
Mon super blog!
birslip est déconnecté   Réponse avec citation
Vieux 20/03/2007, 20h02   #25
Noda
Membre confirmé
 
Date d'inscription: 10/11/2005
Localisation: à montréal jusqu'au 4 mai, après retour en france ^^
Messages: 570
Par défaut

franchement, j'ai maté un peu vite fait, et j'adhère à 100% au concept

La PALib s'adresse principalement à un public débutant ou voulant se simplifier la vie au max mais du coup limite pas mal les possibilité et est quand meme pas mal surchargée de fonctions "inutiles" pour des codeurs un peu plus avancés.

du coup pour moi ta lib se positionne au bon niveau:
- la libnds c'est sympa, mais c'est vraiment pour la branlette mentale si vous me permettez l'expression, car la plupart du temps on va se coder soi meme une petite lib par dessus pour faire les opérations les plus courantes plus facilement sans avoir 100 lignes juste pour afficher un sprite
- la PALib c'est bien mais trop rigide et trop plein de superflu pour ceux qui veulent optmiser un peu
- la solution intermédiaire me semble bien être l'esprit de la lib: un peu comme sa lib perso qui vient se simplifier les fonctions de la libnds, sans pour autant enlever de possibilité au codeur

du coup j'espère que tu va rajouter quelques trucs, genre pour la gestion du son et des sprites/bg 2D, et ce serait vraiment la lib parfaite (a mon sens )

j'espère par contre que les sources seront dispo plus tard, c'est toujours utile
__________________
http://nodadev.wordpress.com
Noda est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h29.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince