[langage] Micro Lua Ds - Un Lua 100% Nouveau


Risike
 Share

Messages recommandés

0.png

Micro Lua DS qu'est-ce que c'est ?

Micro Lua DS est un homebrew pour Nintendo DS permettant de lire des scripts en Lua (plus précisément en Micro Lua). Ce Lua est 100% nouveau et n'a RIEN A VOIR avec dslua, un luaplayer sorti il y a déjà quelques temps sur DS.

J'ai écrit Micro Lua en partant de zéro (enfin des sources brutes de Lua 5.1.3). Vous pouvez donc avec cet homebrew lire des scripts utilisant TOUTES les fonctions de Lua 5.1.3 (www.lua.org pour plus de détails) ainsi que des dizaines de fonctions spécifiques permettant de créer très facilement des programmes et des jeux en 2D pour DS.

Micro Lua ne se base pas sur l'hardware 2D de la DS et sur la PAlib pour traiter la 2D comme DSLua. Il utilise le GPU 3D ce qui a pour avantage de n'avoir presque aucune limitation quand aux nombres d'objets affichés à l'écran et leur taille. L'inconvenant majeur est que les 2 écrans de la console sont utilisés en mode 3D et tournent donc à 30fps.

En écrivant Micro Lua j'ai essayé de m'approcher de ce que fait le Luaplayer sur PSP. La syntaxe est donc très proche mais est adaptée à la console de Nintendo (2 écrans, stylet...etc). Il y a aussi des fonctions en plus comme la possibilité d'effectuer des rotations, des zoom..etc sur les images.

Micro Lua comporte des modules de gestion de sprites et de maps qui simplifie énormément la création de jeux 2D. Les sprites et les maps ne sont limités ni en taille ni en nombre.

A qui s'adresse ce langage ?

A tous ceux qui aimerait développer sur DS et qui n'aiment pas la syntaxe du C.

A tous les déçus de DSLua qui jugeaient la syntaxe peu adaptée à un langage de script.

A tous ceux qui aiment le Lua.

Aux développeur Lua PSP qui possèdent une DS.

A tous ceux qui ont envi d'ouvrir leur esprit à de nouveaux horizons après avoir fumé un bon gros j.... euh...

Un exemple de code

Allez un petit exemple qui vous montre comment afficher une image de n'importe quelle taille et la fait bouger grace à la croix directionnelle ou au stylet.

img = Image.load("man.png", VRAM)

x = 10

y = 10

while not Keys.newPress.Start do

Controls.read()

if Stylus.Held then

x = Stylus.X

y = Stylus.Y

end

if Keys.held.Up then y = y + 2 end

if Keys.held.Down then y = y - 2 end

if Keys.held.Right then x = x + 2 end

if Keys.held.Left then x = x - 2 end

screen.startDrawing()

screen.blit(SCREEN_DOWN, x, y, img)

screen.print(SCREEN_UP, 0, 0, "Use the stylus or + to move the man")

screen.print(SCREEN_UP, 0, 8, "Press START to quit")

screen.print(SCREEN_UP, 0, 184, "FPS: "..NB_FPS)

screen.stopDrawing()

end

Vous remarquerez que l'on peut à tout moment dessiner sur l'écran de notre choix en précisant lequel.

Vous pouvez même utiliser les deux écrans comme un seul très facillement.

Pour plus de détails je vous invite à regarder la documentation, les tutos et les exemples.

Bien sur Micro Lua gère tout ce qu'un langage de ce style gère : les dessins d'images et de formes géométriques, les lectures/écritures de fichiers, les parcours de dossiers, le son (mod et compagnie pour le moment), les controles de la DS...etc

De quoi développer de bons petits jeux rapidement.

Quels sont les avantages de Lua (et de Micro Lua)

- Syntaxe très simple, idéale pour les débutants et confirmés

- Une programmation orientée objet même si la plupart des gens ne le savent pas

- Pas de limite de taille pour les images

- Pas de limite du nombre d'images à l'écran (bien sur si vous en affichez des centaines votre programme ralentira fortement)

- Pas de limite de taille de Rom. Une Rom faite maison ne peut pas dépasser 4Mo environ. Avec Micro Lua vous pouvez avoir autant de fichiers que vous voulez étant donné qu'ils ne sont pas inclus dans la Rom

- Un gestion des exceptions (erreur) à l'exécution de scripts

- Très rapide pour un langage de script. Vous allez devoir afficher beaucoup d'images pour voir baisser le compteur de fps

- Une gestion avancée des sprites animés et des maps pour les jeux 2D

... Et beaucoup d'autres

Dans la prochaine version

- Correction de bugs éventuels (et oui c'est une beta)

- Gestion du Wifi

- Gestion du rumble

- Gestion du motion

- Support de plus de fichiers audio (raw, mp3, wave, ogg...etc)

Bugs connus

- Les fonctions drawLine et drawRect ne fonctionne parfois pas :(

- Lorsque l'écran est recouvert de texte il clignote parfois

Ces bugs seront corrigés rapidement.

N'oubliez pas que c'est une version beta et que d'autres bugs peuvent éventuellement apparaître. Si c'est le cas n'hésitez pas à venir les reporter sur le forum.

Les liens

Téléchargement : ICI

Le site officiel : http://microlua.risike.com

Le forum vient d'ouvrir, il comporte une section française et une anglaise.

http://www.microlua.xooit.fr

EDIT : mon hébergeur commence à me casser les co****, le site est souvent down...

Modifié par Risike
Lien vers le commentaire
Partager sur d'autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Share