Solarus Quest Creator [0.1.2] - Éditeur de Sprites

Démarré par Maxs, 06 Mai 2013 à 00:21

0 Membres et 1 Invité sur ce sujet

06 Mai 2013 à 00:21 Dernière édition: 14 Mai 2013 à 00:26 par Maxs
Solarus Quest Creator [0.1.2]

Présentation

Solarus Quest Creator (SQC) est un programme visant à éditer et créer des quêtes de jeu pour le moteur solarus. Celui-ci est développer en C++ par moi même, avec les bibliothèques Qt5 et Lua. SQC est sous license EUPL v1.1, les sources sont disponnible sur github.

Introduction

Il n'était pas prévu que je présente si tôt ce projet mais vu que les choses commencent à bouger avec le moteur de Christopho je me suis dit qu'il y aurait probablement plus d'un intéressé qui pourrait en faire bon usage ! :)

Bien sur le programme n'en est qu'à ses débuts, j'ai passé pas mal de temps à réflechir à la structure du projet et à m'imprègner du moteur de solarus.

Fonctionnalités

La seule fonctionnalité présente pour l'instant est la création et l'édition de Sprite, je me suis dit qu'il fallait coder en priorité ce qui n'est pas présent dans l'étideur de Christopho.

Bref, il est donc actuellement possible :

  • d'ouvrir une quête, afficher/éditer tout ses Sprites
  • de créer un nouveau Sprite
  • de supprimer un Sprite

L'éditeur gère les sprites faisant référence aux Tilesets et permet de visualiser le résultat du Sprite en temps réel.

Il manque encore peut être la possibilité de créer un sprite directement à partir d'un sélection dans la vue graphique et la possibilité d'en changer la couleur de fond.

Captures d'écran

Version 0.1.1
[spoiler]


[/spoiler]

Version 0.1.2
[spoiler]
Éditeur de Sprite, première révision :


Fenêtré d'options de l'éditeur :

[/spoiler]

Notes importantes

Il est clair que pour l'instant, je ne garantis pas un fonctionnement parfait de mon programme, c'est pourquoi je conseile à tout ceux qui souhaite l'utiliser pour un projet important de travailler sur une copie. Évitez également de travailler avec mon éditeur et celui de christopho en même temps dans le même dossier car le fichier project_db.dat pourrait être endommagé.

Téléchargements

Pour ceux qui sont sur Windows j'ai préparer une version compilée, la voici :

Solarus Quest Creator v0.1.2 - Windows

Pour ceux qui utilisent d'autres système je vous suggère de récupérer le projet sur github et de le compiler vous même. Il vous faudra CMake 2.8.9, Qt5 et Lua5.2.

Anciens téléchargements :

Solarus Quest Creator v0.1.1 - Windows

Utilisation

Mon programme requiert un dossier data, dans celui-ci doivent se trouver les données de quête du jeu. Pour ouvrir une quête, vous devez sélectionner le dossier contenant le dossier data ! Les fichiers requits sont projet_db.dat et quest.dat, ainsi que les sous dossiers sprites et tilesets avec leurs données correspondantes au project_db.




Voila, j'attends vos commentaires, remarques critiques, etc ...  :lol:
SQE developer

Woah ! Très utile en effet :P, si je comprend bien sa simplifie la tache en evitant de creer un .dat ?

06 Mai 2013 à 01:15 #2 Dernière édition: 06 Mai 2013 à 01:29 par Renkineko
Excellente nouvelle. Dommage que j'arrive à la "fin" de la démo que je suis en train de créer (uniquement disponible pour notre maître à tous, le but étant de tester mes capacités avant de me lancer dans l'aide d'un projet à la zmc :p). Mais je pense que pour plus tard il sera très utile ce petit programme.

J'essayerai de le récupérer et de testouiller un peu puis de t'en faire des retours. Je ferai comme pour le moteur Solarus et la quête ZSDX, je posterai directement sur Github si y a besoin.

Accessoirement, traînerais-tu sur IRC ? Je trouve ça plus simple pour demander des choses qui peuvent paraître obvious (après, Christopho te dira ptet que je suis chiant car je pose souvent des questions x) )

Edit : ah, apparemment pour l'instant on ne peut pas encore créer de sprites ennemis, si ? Ou alors je n'ai pas trouvé la bonne option (mais comme les menus sont peu nombreux j'ai des doutes sur cette dernière option :p ). C'est purement pour de la création de sprite npc pour l'instant ?

Edit2 : Alors là c'est purement une remarque personnelle, je ne sais pas si je suis le seul à tiquer dessus mais quand on ferme et que le programme demande si on veut sauvegarder, on peut s'attendre à une question avec comme réponse "oui", "non" et "annuler". Là, avoir "OK", "Save" et "Cancel" peut troubler car "OK" peut être assimilé à "oui je veux sauvegarder". Pas quand on lit le message, bien sûr, mais en règle général les messages sont souvent du genre "Votre travail n'est pas enregistré, voulez-vous le sauvegarder ?"... Bref, une question tournée avec un "No" (ou "Don't Save"), "Yes" (ou "Save") et "Cancel" me choquerait moins, après comme je disais c'est une remarque purement personnelle et je suis peut-être trop maniaque :p D'autant qu'il suffit de le savoir pour ensuite ne plus être perturbé mais du coup j'ai un peu flippé la première fois que j'ai vu le message :p


Citation de: MetalZelda le 06 Mai 2013 à 00:54
Woah ! Très utile en effet :P, si je comprend bien sa simplifie la tache en evitant de creer un .dat ?

C'est bien cela. :)

Citation de: Renkineko le 06 Mai 2013 à 01:15
Edit : ah, apparemment pour l'instant on ne peut pas encore créer de sprites ennemis, si ? Ou alors je n'ai pas trouvé la bonne option (mais comme les menus sont peu nombreux j'ai des doutes sur cette dernière option :p ). C'est purement pour de la création de sprite npc pour l'instant ?

En fait mon programme permet d'éditer tout les Sprites, seulement pour le moment il ne charge que ceux présent dans le fichier project_db.dat, les Sprites des ennemis sont en fait créer en jeu via les scripts lua. Il faudrait que je parcours les dossiers des Sprites pour pouvoir tous les afficher.

Tu peux pour l'instant ajouter temporairement ces Sprites dans le fichier project_db.dat pour pouvoir les éditer.

Citation de: Renkineko le 06 Mai 2013 à 01:15
Accessoirement, traînerais-tu sur IRC ? Je trouve ça plus simple pour demander des choses qui peuvent paraître obvious (après, Christopho te dira ptet que je suis chiant car je pose souvent des questions x) )

Je ne suis pas sur IRC, mais si tu en as un a me conseiller pourquoi pas. Dans un premier temps contacte moi par MP, je te donnerai mes adresses skype et/ou msn.

Citation de: Renkineko le 06 Mai 2013 à 01:15
Edit2 : Alors là c'est purement une remarque personnelle, je ne sais pas si je suis le seul à tiquer dessus mais quand on ferme et que le programme demande si on veut sauvegarder, on peut s'attendre à une question avec comme réponse "oui", "non" et "annuler". Là, avoir "OK", "Save" et "Cancel" peut troubler car "OK" peut être assimilé à "oui je veux sauvegarder". Pas quand on lit le message, bien sûr, mais en règle général les messages sont souvent du genre "Votre travail n'est pas enregistré, voulez-vous le sauvegarder ?"... Bref, une question tournée avec un "No" (ou "Don't Save"), "Yes" (ou "Save") et "Cancel" me choquerait moins, après comme je disais c'est une remarque purement personnelle et je suis peut-être trop maniaque :p D'autant qu'il suffit de le savoir pour ensuite ne plus être perturbé mais du coup j'ai un peu flippé la première fois que j'ai vu le message :p

J'essayerai de rendre le message plus clair, si tu as 'tiquer' dessus c'est que ça ne l'est pas suffisamment. Merci pour cette remarque ! :lol:
SQE developer

Je viens de tester, l'éditeur de sprites semble vraiment très bien :)
Citation de: Maxs le 06 Mai 2013 à 09:05
En fait mon programme permet d'éditer tout les Sprites, seulement pour le moment il ne charge que ceux présent dans le fichier project_db.dat, les Sprites des ennemis sont en fait créer en jeu via les scripts lua. Il faudrait que je parcours les dossiers des Sprites pour pouvoir tous les afficher.

Tu peux pour l'instant ajouter temporairement ces Sprites dans le fichier project_db.dat pour pouvoir les éditer.
Sur ce point je voudrais apporter une précision : tous les sprites, sons, musiques, maps, etc doivent être déclarés dans project_db.dat. Pour éviter justement d'avoir à parcourir des centaines de fichiers. project_db.dat indique aussi le nom de chaque ressource. Les ennemis manquent en effet dans le project_db.dat de zsdx, c'est un oubli, et donc ils n'apparaissent pas dans l'éditeur.
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

06 Mai 2013 à 09:38 #5 Dernière édition: 06 Mai 2013 à 09:40 par Renkineko
Citation de: Maxs le 06 Mai 2013 à 09:05
Citation de: Renkineko le 06 Mai 2013 à 01:15
Edit : ah, apparemment pour l'instant on ne peut pas encore créer de sprites ennemis, si ? Ou alors je n'ai pas trouvé la bonne option (mais comme les menus sont peu nombreux j'ai des doutes sur cette dernière option :p ). C'est purement pour de la création de sprite npc pour l'instant ?
En fait mon programme permet d'éditer tout les Sprites, seulement pour le moment il ne charge que ceux présent dans le fichier project_db.dat, les Sprites des ennemis sont en fait créer en jeu via les scripts lua. Il faudrait que je parcours les dossiers des Sprites pour pouvoir tous les afficher.

Tu peux pour l'instant ajouter temporairement ces Sprites dans le fichier project_db.dat pour pouvoir les éditer.


OK j'avais remarqué au final que je pouvais utiliser du sprite ennemi, au pire après je ferai seulement un copier coller du dat généré au bon endroit. Du coup nouvelle remarque : il faudrait pouvoir agrandir la fenêtre de prévisualisation, car pour les gros ennemis on ne peut pas bien voir si l'animation est parfaite ou pas (obligé de scroller pour voir qu'une partie de l'animation).

Citation de: Maxs le 06 Mai 2013 à 09:05

Citation de: Renkineko le 06 Mai 2013 à 01:15
Accessoirement, traînerais-tu sur IRC ? Je trouve ça plus simple pour demander des choses qui peuvent paraître obvious (après, Christopho te dira ptet que je suis chiant car je pose souvent des questions x) )

Je ne suis pas sur IRC, mais si tu en as un a me conseiller pourquoi pas. Dans un premier temps contacte moi par MP, je te donnerai mes adresses skype et/ou msn.

Pourquoi pas #solarus @ chat.solarus-games.org ? Vu que ton travail fait clairement partie de solarus, inutile de se disperser :p Sinon je suis aussi connecté sur irc.freenode.net mais je suis sur aucun chan en particulier (comme c'est un réseau avec pas mal de canaux d'aide et que j'y vais assez régulièrement, je suis toujours connecté et j'ai juste à cliquer sur les favoris pour être direct au bon endroit, donc je peux tout autant y créer un chan x) )

Citation de: Maxs le 06 Mai 2013 à 09:05

Citation de: Renkineko le 06 Mai 2013 à 01:15
Edit2 : Alors là c'est purement une remarque personnelle, je ne sais pas si je suis le seul à tiquer dessus mais quand on ferme et que le programme demande si on veut sauvegarder, on peut s'attendre à une question avec comme réponse "oui", "non" et "annuler". Là, avoir "OK", "Save" et "Cancel" peut troubler car "OK" peut être assimilé à "oui je veux sauvegarder". Pas quand on lit le message, bien sûr, mais en règle général les messages sont souvent du genre "Votre travail n'est pas enregistré, voulez-vous le sauvegarder ?"... Bref, une question tournée avec un "No" (ou "Don't Save"), "Yes" (ou "Save") et "Cancel" me choquerait moins, après comme je disais c'est une remarque purement personnelle et je suis peut-être trop maniaque :p D'autant qu'il suffit de le savoir pour ensuite ne plus être perturbé mais du coup j'ai un peu flippé la première fois que j'ai vu le message :p

J'essayerai de rendre le message plus clair, si tu as 'tiquer' dessus c'est que ça ne l'est pas suffisamment. Merci pour cette remarque ! :lol:

C'est pas tellement une question de message pas clair, le message est parfaitement compréhensible. Ce sont juste les boutons qui m'ont étonné (et par conséquent la formule de la question), mais si j'avais lu dès le début le message j'aurais eu aucun problème avec les boutons. Mais étant habitué à fermer du travail modifié sans l'enregistrer, j'ai un peu cherché le "no" x) bref, c'est pas super grave quoi :p


Sympa comme logiciel :)
J'espère que cela en aidera plus d'un.

Pour ma part, j'ai hâte de voir un éditeur du même genre intégré directement dans l'editeur officiel de Solarus et avec le mode preview comme tu as fait. :)

Citation de: Binbin le 06 Mai 2013 à 15:32
Sympa comme logiciel :)
J'espère que cela en aidera plus d'un.

Pour ma part, j'ai hâte de voir un éditeur du même genre intégré directement dans l'editeur officiel de Solarus et avec le mode preview comme tu as fait. :)

L'intégrer comme onglet dans l'éditeur de map sa le ferais non ?  ^_^
Pour ma part, sa m'aide beaucoup ^^

C'est prévu pour la 1.1 de faire un éditeur de sprites dans l'éditeur officiel : https://github.com/christopho/solarus/issues/135.

Je pense qu'a terme, on fusionnera les deux logiciels en un seul si Maxs est d'accord. On peut réécrire l'éditeur de tilesets et l'éditeur de maps en C++/Qt. La version java disparaîtrait alors pour le grand bonheur de tous :)
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

Citation de: Christopho le 06 Mai 2013 à 16:45

Je pense qu'a terme, on fusionnera les deux logiciels en un seul si Maxs est d'accord. On peut réécrire l'éditeur de tilesets et l'éditeur de maps en C++/Qt. La version java disparaîtrait alors pour le grand bonheur de tous :)

Oh oui !

14 Mai 2013 à 00:26 #10 Dernière édition: 14 Mai 2013 à 00:31 par Maxs
Salut à tous ! Je viens donner quelques nouvelles de mon projet. :)

Tout d'abord, j'ai implémenté un système de sélection, les direction doivent maintenant être crées à partir d'une sélection.
J'ai ajouté quelques options pour les vues graphiques, certaines sont directement accessible via la barre d'outil, les autres via une fenêtre.
Il y a une meilleure interactivité entre les vues, celles-ci se rafraîchissent instantanément (sans affecter les action) et la vue graphique se centre automatiquement sur une direction lorsque celle-ci est sélectionnée.
Et j'ai également retravaillé l'interface pour que le prévisualiseur de Sprite puisse être redimensionné si besoin.

Voici une capture d'écran de l'éditeur de Sprite :

[spoiler][/spoiler]

Et une capture d'écran de la fenêtré d'options :

[spoiler][/spoiler]

J'ai également recréé presque tout les icones ! Sur ces captures, il n'y a que les icones 'undo' et 'redo' qui ne sont pas de moi.  ^_^

Voici un téléchargement pour windows de cette nouvelle version :

Téléchargement complet : SQC v0.1.2 - Windows
Exécutable seul : sqc-0.1.2.exe

Je pense que je ferai encore une ou deux versions avant de passer à la 0.2 qui sera consacré à l'éditeur de Tileset ! :)
En attendant, j'aimerai peaufiner ce qu'il y a déjà et avoir encore quelques retour.
SQE developer

Impossible de mettre une grandeur de grille supérieure à 99 (bloque à 2 chiffres)... Certains boss étant très larges, c'est assez handicapant. D'autant qu'en size on peut saisir en milliers de pixels, il faut donc une certaine cohérence entre la grille et la size :p

A la limite, maintenant qu'on peut faire une sélection il faudrait peut-être rendre ça plus explicite avec un message, je sais pas trop où, pour indiquer que l'éditeur attend qu'on fasse une sélection. Car désormais quand on fait "nouvelle direction", il attend qu'on fasse une sélection et ça peut troubler de ne pas voir apparaître la nouvelle direction dans la liste car on n'a pas encore sélectionné.

Aussi il pourrait être utile de pouvoir sélectionner à posteriori pour modifier une direction (car actuellement la sélection ne permet que l'ajout). Donc un bouton modifier (un icône crayon fait l'affaire généralement) au milieu de l'icône + et de l'icône -, lorsqu'on termine la sélection on fait l'icône d'édition et ça met à jour juste la size sans toucher au nombre de frame, de colonnes, tout ça... Juste la size modifiée et hop c'est bon :)

En dehors de ça j'aime beaucoup cet éditeur et là il commence à avoir de la gueule :]


Je suis d'accord avec les suggestions de Renkineko.
En tout cas l'éditeur de sprites fait vraiment pro, bravo :)
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

Merci pour ces réponses. :)

Pour la limite de la taille de la grille, c'est un oubli de ma part et ce sera corrigé rapidement.

Quand à l'édition d'une direction par sélection, j'y ai déjà pensé et ce n'est pas forcément évident, mais j'aurai de toute façon besoin de cette fonctionnalité pour l'éditeur de Map (qui viendra plus tard), je vais donc me pencher un peu plus sur la question avant de continuer.  ^_^

Finalement pour le message informant l'utilisateur qu'il doit effectuer une sélection lors de l'ajout d'une direction; et bien je ne sais pas du tout ou le mettre ! Si quelqu'un à une idée. :lol:
SQE developer


Je développe sous Linux ! Et mon programme tourne mieux dessus d'ailleurs. :lol:

Mais si par la tu entends le fait que je propose un build tout prêt, et bien oui c'est prévu. Mais pour le moment je n'ai pas le temps (et le courage) de le faire pour toutes les distributions existantes. Je l'ai fait pour Windows, car habituellement quand on utilise ce système on ne sait pas forcément compiler.

Je le proposerai surement lorsque la version 0.1 sera cloturée ! :P

En attendant je te suggère de compiler toi même (il te suffit d'avoir Qt5, Lua et CMake). Les explications sont dans le fichier 'readme'. ^_^
SQE developer

Ouais mais avoir Qt5 c'est pas totalement trivial. Binbin : je pourrai te montrer comment faire la prochaine fois qu'on geeke.
Maxs : il faudrait aussi qu'on puisse utiliser Lua 5.1 ou 5.2 au choix. Pour parser les fichiers de données des quêtes, il n'y a pas de raison d'imposer 5.2.
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus


Je viens de finir de documenter les spécifications des fichiers de tilesets et de maps, ce qui manquait jusqu'à présent. Ça devrait t'aider pour l'éditeur :)
Format des tilesets : http://www.solarus-games.org/doc/1.0.2/quest_tileset_data_file.html
Format des maps : http://www.solarus-games.org/doc/1.0.2/quest_map_data_file.html
Chaîne Twitch : diffusion en direct de sessions de développement de Solarus, de création de jeux, de parties de jeux vidéo.
Chaîne YouTube : replays des diffusions en direct, tutos Solarus
Compte Twitter : pour être au courant des nouveautés
Chat Discord : pour discuter en direct avec la communauté Solarus

Excellent ! ça devrait en effet bien m'être utile. :)
SQE developer