Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Sortie de FunLabyrinthe 5.0
Jeu de labyrinthe basé sur le projet Sepi, de Sjrd

Le , par sjrd

35PARTAGES

0  0 
Nouveau : FunLabyrinthe 5.0.1

Nom : FunLabyrinthe
Version : 5.0.1
Langue : Français (le multi-lingue n'est pas attendu avant longtemps)
Site Web : http://www.funlabyrinthe.com/

Description :
C'est un jeu de labyrinthe original où le joueur devra affronter plusieurs épreuves, récolter des objets qui lui permettront d'atteindre la victoire.
Des labyrinthes sont fournis mais vous pouvez en créer vous-même grâce à l'éditeur de labyrinthes. Le plus drôle étant de créer les labyrinthes les plus difficiles, et de défier vos amis !
On peut aussi créer des labyrinthes automatiquement grâce à un générateur.
La nouvelle version 5.0 est une refonte totale du projet, à partir de 0, utilisant le projet Sepi comme moteur de script. Elle permet des personnalisations infinies !

Fonctionnalités :
Ah ah ! Des fonctionnalités, il y en a trop pour les citer En effet, grâce aux langages de scripts Delphi et FunDelphi, on peut créer ce qu'on veut dans FunLabyrinthe. On peut créer de nouvelles cases, de nouveaux effets, de nouvelles énigmes, de nouveaux tout !
Il faut le voir pour le croire

Documentation et aide
Compatibilité : Win32 uniquement (Linux avec Wine, voir note ci-dessous sur la page de téléchargement)
Nécessite : stand alone
Télécharger FunLabyrinthe
Licence : GNU GPL
Les sources : disponible dans le SVN sur SourceForge.net (nécessite Sepi, Unicode SynEdit, GIFImage, GraphicEx et Graphics32, développé avec Delphi 2009 Win32)

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Baptiste Wicht
Expert éminent sénior https://www.developpez.com
Le 11/07/2006 à 20:49
Juste pour te dire que tes 2 liens pour le téléchargement dans ton site ne marchent pas

J'ai téléchargé depuis sourceforge, je te dirai ce que j'en pense ensuite
0  0 
Avatar de Baptiste Wicht
Expert éminent sénior https://www.developpez.com
Le 11/07/2006 à 21:02
J'ai installé et testé, et franchement, je suis bluffé

Les possibilités sont gigantesques, tu peux presque (et je suis même pas sûr qu'il a sa place ici) tout faire, c'est vraiment l'excellent boulot

Bon par contre, c'est vraiment pas facile, avec tous les objets spéciaux, les étages, les ascenceurs, c'est impossible de s'y retrouver

Par contre, une petite chose à déplorer, je trouve que c'est quand même la petite taille de l'écran. Tu as certainement tes raisons d'avoir fait une taille pareille, mais je trouve que c'est dommage....

Un grand Tu le mérites
0  0 
Avatar de sjrd
Expert éminent https://www.developpez.com
Le 11/07/2006 à 21:21
Citation Envoyé par wichtounet
Juste pour te dire que tes 2 liens pour le téléchargement dans ton site ne marchent pas
Exact C'est corrigé

Citation Envoyé par wichtounet
J'ai installé et testé, et franchement, je suis bluffé

Les possibilités sont gigantesques, tu peux presque (et je suis même pas sûr qu'il a sa place ici) tout faire, c'est vraiment l'excellent boulot

Ton "presque" a bel et bien sa place... Il ne l'aura plus dans la prochaine version

Citation Envoyé par wichtounet
Bon par contre, c'est vraiment pas facile, avec tous les objets spéciaux, les étages, les ascenceurs, c'est impossible de s'y retrouver
Oui, je me suis fait la réflexion il y a quelques temps... Moi j'ai suivi toute l'évolution du programme (6 ans de travail ), donc c'est évident pour moi. Mais j'imagine qu'un nouveau venu doit peiner. Je devrais prendre le temps de concocter un vrai didacticiel : un qui explique au fur et à mesure les nouveaux types de cases rencontrés...

Citation Envoyé par wichtounet
Par contre, une petite chose à déplorer, je trouve que c'est quand même la petite taille de l'écran. Tu as certainement tes raisons d'avoir fait une taille pareille, mais je trouve que c'est dommage....
De quelle taille parles-tu ? Le nombre de cases que l'on voit, ou la largeur/hauteur des cases elles-mêmes ?

Dans le premier cas, c'est un choix tactique qui a fait ses preuves... Il ne peut plus changer (enfin si c'est prévu pour la version suivante, mais seulement si le concepteur du labyrinthe l'autorise)...

Dans le second cas, ce fut un choix effectué également il y a très longtemps. La version 1.0 possédait des cases de 50x50 px. Cela a été réduit à partir de la version 2.0 à 30x30 px. Depuis la version 4.0, il n'est plus possible de le changer, puisque chacun peut dessiner ses propres cases...

Sur ce, je vais de ce pas tester ton programme
0  0 
Avatar de Baptiste Wicht
Expert éminent sénior https://www.developpez.com
Le 11/07/2006 à 21:28
Citation Envoyé par sjrd

Ton "presque" a bel et bien sa place... Il ne l'aura plus dans la prochaine version
Eh ben, ca promet d'être beau

Citation Envoyé par sjrd
De quelle taille parles-tu ? Le nombre de cases que l'on voit, ou la largeur/hauteur des cases elles-mêmes ?

Dans le premier cas, c'est un choix tactique qui a fait ses preuves... Il ne peut plus changer (enfin si c'est prévu pour la version suivante, mais seulement si le concepteur du labyrinthe l'autorise)...

Dans le second cas, ce fut un choix effectué également il y a très longtemps. La version 1.0 possédait des cases de 50x50 px. Cela a été réduit à partir de la version 2.0 à 30x30 px. Depuis la version 4.0, il n'est plus possible de le changer, puisque chacun peut dessiner ses propres cases...
Je parlais du nombre de cases affichées à l'écran, donc en fait la taille de l'écran. C'est vrai que dans le cas d'un petit labyrinthe ca rend le jeu moins facile, mais dans le cas de grand labyrinthe, ca serait plus agréable d'avoir une interface plus grande.

Le mieux serait une taille variable en fonction de la taille du labyrinthe sur lequel on joue

Citation Envoyé par sjrd
Sur ce, je vais de ce pas tester ton programme
0  0 
Avatar de sjrd
Expert éminent https://www.developpez.com
Le 11/07/2006 à 21:56
Citation Envoyé par wichtounet
Je parlais du nombre de cases affichées à l'écran, donc en fait la taille de l'écran. C'est vrai que dans le cas d'un petit labyrinthe ca rend le jeu moins facile, mais dans le cas de grand labyrinthe, ca serait plus agréable d'avoir une interface plus grande.

Le mieux serait une taille variable en fonction de la taille du labyrinthe sur lequel on joue
Il faut bien comprendre que nombre de labyrinthes font reposer leur intérêt stratégique sur cette taille de zone de 7x7 cases, affublée d'une bordure de 1 case à l'entour (bordure qui n'existait pas au tout début d'ailleurs, dans la version 1.0).

C'est pourquoi cette taille ne pourra être modifiée que sur autorisation spéciale de l'auteur du labyrinthe, qui aura donc dû prévoir celui-ci en fonction
0  0 
Avatar de sjrd
Expert éminent https://www.developpez.com
Le 17/02/2007 à 17:47
Je remonte ce topic d'outre-tombe, pour fêter la nouvelle version de mon système de postage de labyrinthes sur Internet.

Ca se passe là : http://sjrd.developpez.com/programme...y/labyrinthes/

Devant la liste grandissante des labyrinthes, j'ai ajouté une gestion des catégories, de fichiers multiples, d'avertissement de nouveaux labyrinthes par e-mail, etc.

Trois labyrinthes ont également une mention spéciale qu'il m'est réservé de décerner.

Pendant ce temps, je continue de travailler sur la version 5.0, qui commence à donner bien Mais il est encore trop tôt pour une version alpha.
0  0 
Avatar de Ceylo
Membre éprouvé https://www.developpez.com
Le 21/02/2007 à 20:41
Salut,

Il m'a l'air super ton jeu (d'après les screens et les descriptions), mais dommage que ça soit du Delphi... parce que du coup, ton jeu n'est pas portable Mac (j'aurais bien aimé le porter). Et vu que je ne connais pas le delphi, donc aussi la façon dont il fonctionne, je ne pourrai pas convertir le code en C (ou Objective-C). Enfin bon... ça m'avait l'air bien...

Bon développement tout de même
0  0 
Avatar de sjrd
Expert éminent https://www.developpez.com
Le 23/02/2007 à 9:08
Ben oui, y'a des gens comme ça, qui sont fans de Delphi, et on se demande pourquoi...

Oui, si on veut, c'est dommage pour ceux qui tournent sous autre chose que Windows, mais bon. C'est un choix, et c'est surtout un jeu : la majorité de mon "public" tourne sous Windows.

Il reste FreePascal et Lazarus pour compiler sous Linux, mais je n'ai pas encore essayé. Je réserverai ça à la version en cours de développement, qui un peu beaucoup plus propre (au niveau du code) que celle-ci.

en tout cas de ton message
0  0 
Avatar de sjrd
Expert éminent https://www.developpez.com
Le 10/07/2009 à 0:27
Whaouh ! Deux ans et quatre mois depuis le dernier post. J'en ai mis du temps à développer la version 5.0 !
Mais ça y est, elle est là !

La version bêta de FunLabyrinthe 5.0 est disponible en téléchargement (installateur) dans le premier post de ce thread.

Comme je l'avais dit, maintenant FunLabyrinthe repose complètement sur Sepi, mon projet de moteur de script orienté objet. Du coup, il est possible de concevoir de nouvelles cases à partir de cases existantes, par l'héritage, etc. Tout ça avec un langage simple, adapté spécialement à FunLabyrinthe (baptisé le FunDelphi, car il tient du Delphi pour un certain nombre de choses).

Comme il n'y a pas encore de fichier d'aide, je vais expliquer les grands points ici.

Ce qui change par rapport à la v4.x :

1. Plus d'éditeur d'actions

Il n'y a plus d'éditeur d'actions, car l'éditeur de labyrinthes prend toutes ses fonctions.

2. Les composants de case

Chaque case est composée de 4 composants : terrain, effet, outil et obstacle. Le premier est obligatoire, les autres optionnels. Chaque composant a son utilité et son "sens" :

  • Le terrain, c'est l'herbe, le mur, l'eau, etc. C'est ce qui détermine si on a le droit de marcher dessus ou non : herbe oui, mur non, eau seulement si on peut "aller sur l'eau" (GoOnWater, voir plus bas : les actions).
  • L'effet, c'est ce qui détermine ce qui se passe quand on tombe sur la case. Un effet reste en place généralement (il ne disparaît pas). La flèche, par exemple, pousse dans une direction. Un trésor fait gagner le joueur.
  • L'outil, c'est un objet que l'on ramasse quand on tombe dessus. Il disparaît donc, et le joueur dispose d'un nouvel objet. Exemple : l'outil Clef d'or disparaît et donne au joueur un objet Clef d'or (qu'il emporte avec soi).
  • L'obstacle, c'est une chose qui se met par dessus tout et qui empêche le joueur de venir sur la case. Un obstacle peut en général être détruit si on peut effectuer la bonne action. Exemple : un Bloc en or peut être détruit si on peut "ouvrir un verrou doré" (OpenGoldenBlock, voir plus bas : les actions).

Cette distinction est en soi, je crois, la plus grande révolution dans FunLabyrinthe. Auparavant, les boutons persos prenaient tous ces concepts en charge dans le même code, ce qui était impossible à maintenir. Voyez par exemple le code du labyrinthe Murs et Murets, encore en ancien mode.
C'est en analysant la façon dont fonctionnaient les cases existant dans FunLabyrinthe 4.x que j'ai isolé ces quatre composantes, qui existent maintenant de façon naturelle dans FunLabyrinthe 5.0.

3. Les actions

Pour faire certaines choses (aller sur l'eau, ouvrir un verrou), le joueur doit être capable de faire des actions. Il existe des actions standard (GoOnWater, OpenSilverLock, etc.) mais on peut définir ses propres actions. Généralement, les terrains et les obstacles testent si un joueur est capable d'effectuer une action donnée.
Il y a deux choses qui permettent à un joueur d'effectuer une action : les objets qu'il possède, et les plug-in qui lui sont greffés. Je reparlerai des plug-in plus tard.
Le joueur dispose d'une liste d'objets, chacun avec son nombre d'exemplaires. Certains objets permettent, si on les possède (en nombre suffisant, parfois), d'effectuer une action. Par exemple, l'objet SilverKeys permet, si le joueur en possède au moins une, d'effectuer l'action OpenSilverLock. Ceci au prix de perdre une clef. L'objet Buoys (bouées) permet, sans la perdre, d'aller sur l'eau (GoOnWater). Les objets sont généralement obtenus en ramassant les outils qui correspondent.

4. Les plug-in

On peut greffer des plug-in au joueur. Les plug-in permettent de faire un bon nombre de choses, entre autres :

  • Permettre au joueur d'effectuer des actions (le plug-in BuoyPlugin permet d'aller sur l'eau) ;
  • Modifier l'affichage du joueur (le plug-in BuoyPlugin affiche une bouée autour du pion) ;
  • Modifier la vue du joueur (le plug-in ViewRestriction restreint la vue du joueur - voir le labyrinthe Catacombes) ;
  • Réagir à l'appui de l'une ou l'autre touche du clavier ;
  • Etc.

Les plug-in sont très présents dans FunLabyrinthe 5.0. En effet, le joueur, en lui-même, ne possède aucun comportement. Il y a même un plug-in pour afficher les messages au joueur (en modifiant sa vue et en interceptant les appuis sur des touches du clavier).

5. Les attributs

Le joueur peut avoir plusieurs attributs : une table de hashage chaîne -> entier. Les attributs permettent d'ajouter des "champs" non existant à la base à l'objet TPlayer. Exemple, l'attribut ViewRestrictionRadius définit le rayon du cercle dessiné par le plug-in ViewRestriction (à nouveau, voir Catacombes).

Le langage FunDelphi

Ici vient la seconde avancée majeure de FunLabyrinthe 5.0 (ou première, je ne suis pas très sûr).

Dans FunLabyrinthe 3.0 à 4.x, il y avait l'éditeur d'actions qui permettait de programmer des cases personnalisées avec de petits scripts du genre :
Code : Sélectionner tout
1
2
Remplacer Case 4 3 4 ;
Message {Un trésor est apparu sur la case (4, 3, 4).}
Avec l'avènement de FunLabyrinthe 4.0 et des cases personnalisables, les limites de ce langage primitif sont très vite apparues. Il a donc été nécessaire de revoir en profondeur le systèmes de scripts.

C'est alors que j'ai compris que j'avais besoin d'un moteur de scripts réel (pas le petit interpréteur codé sur le tas de la 4.x) qui devrait permettre carrément de créer des classes, classes qui devraient s'interfacer de façon transparente avec le code natif du programme.

Évidemment, c'est impossible : il est impossible de créer des classes pendant l'exécution d'un programme. Et de fait, aucun moteur de script existant pour Delphi (TMS Scripter Studio, Pascal Script, etc.) ne le permettait. C'est comme ça que j'ai commencé le projet Sepi. Projet de moteur de script orienté objet pour Delphi.
Dans ce projet, je suis parvenu à faire l'impossible : créer des classes pendant l'exécution du programme, avec ses méthodes, virtuelles ou non, héritant de classes natives du programme, surchargeant éventuellement des méthodes virtuelles de ces classes natives, etc.

À présent, Sepi a été mis en oeuvre en environnement réel, avec FunLabyrinthe 5.0.

Il existe donc un nouveau langage dans FunLabyrinthe, le FunDelphi, qui est spécialisé pour FunLabyrinthe. Voici comment on peut définir un objet MasterKeys (passe-partout) qui permet d'ouvrir à la fois les verrous argentés (OpenSilverLock) et dorés (OpenGoldenLock) :
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
unit SpecialKeys;

uses
  FLBCommon; // définit les attributs OpenSilverLock et OpenGoldenLock

components
  // L'objet
  MasterKeys: TMasterKeys;

  // Et l'outil qui donne cet objet
  MasterKey: TObjectTool(
    ObjectDef: MasterKeys,
    FindMessage: 'Tu as trouvé un passe-partout : tu peux ouvrir tous les blocs.'
  );

// La classe TMasterKeys qui définit le comportement
object TMasterKeys
  name 'Passe-partout'; // le nom du composant
  image 'SpecialKey'; // le nom du fichier image

  action OpenSilverLock, OpenGoldenLock then
    Player discards 1 Self;
end;

end.
Cette petite unité, ajoutée comme fichier source dans un labyrinthe, compilée, puis ajoutée comme Unité utilisée, ajoutera un outil MasterKey à la palette des composants de l'éditeur. Et vous pourrez constater qu'il donne un objet MasterKeys qui permet d'ouvrir aussi bien les blocs en argent que les blocs en or.

Des exemples plus complets sont disponibles dans les labyrinthes Catacombes et Ca-Glisse.

Ce langage est compilé et interprété par Sepi.

Bon je vais en rester là ce soir, je repasserai probablement donner d'autres explications demain, et peut-être déjà répondre à vos questions
0  0 
Avatar de sjrd
Expert éminent https://www.developpez.com
Le 10/07/2009 à 22:30
Suite à une demande que j'ai eue par un autre canal, il est maintenant possible de modifier la taille de zone d'une carte après qu'elle a déjà été créée.

Autres changements :

  • Le "dehors" n'est plus une case complète mais un simple terrain ;
  • On ne peut mettre que des terrains à l'extérieur du labyrinthe ;
  • Lorsque vous placez un escalier sur la carte, l'escalier correspondant à l'étage supérieur/inférieur est mis aussi ;
  • Quelques corrections de bugs de cohérence entre la version 4.x et les composants de compatibilité 4.x de la 5.0.
0  0