[Rpgmaker2003 + Wolf4SDL] WolfRpgmaker

Avatar de l’utilisateur
Vincent
Dompteur de lions
Messages : 368
Inscription : 25 Nov 2011, 13:10

[Rpgmaker2003 + Wolf4SDL] WolfRpgmaker

Messagepar Vincent » 19 Jan 2016, 14:46

Le but du projet est d'intégrer le moteur de Wolfenstein dans Rpgmaker pour combiner les forces des 2 logiciels afin de produire des RPG en fausse 3D.
C'est un mix des 2 pour faire quelque chose de différent. :pioche:

Image

Le projet fonctionne de la façon suivante :
- Wolfenstein est le moteur de rendu, il affiche l'écran dans une surface SDL
- DynRPG affiche la surface SDL sur l'écran de jeu avec DynRPG
- Rpgmaker commande les actions typiques des RPG (menus, dialogues, mouvement des personnages) et communique à Wolf par l'intermédiaire de DynRPG

Objectifs atteints :
- Affichage de Wolf
- Mouvement dans Wolf
- Interaction basique entre Wolf et Rpgmaker
- création des maps Wolf sous Rpgmaker
- placement du héro dans Rpgmaker
- accès plus direct entre la surface SDL et Rpgmaker. Pour l'instant, je passe par un fichier (Cherry me tuerait s'il savait would be proud! :mdr: )
- synchro hero wolf/Rpgmaker
- placement des monstres sous Rpgmaker
- Cinématique
- Dialogue avec des NPCs
- Changement des graphismes des NPCs

Objectif à atteindre :
- Changement des textures dans Rpgmaker (ca se fera comme les monsters pour le début)
- Changement des textures dans Rpgmaker (ca se fera par chispet pour la version finale)
- Implémenter le changement de couleur des murs et des plafonds

Tests à faire :
- changer la résolution, voir si je peux pousser à 640x480 (au moins en fenêtré)

Help wanted :

Si quelqu'un a une bonne idée comment on peut incorporer les graphismes suivants de façon intelligente, je suis tout ouïe :
- des textures

Logs de développement :
15/01 : (proof of concept) affichage d'un rendu Wolf au cours du jeu Rpgmaker
16/01 : Affichage d'une animation Wolf
19/01 : Mouvement dans Wolf et première interaction basique (rpgmaker lance l'apparition d'un ennemi)
20/01 : Premiers essais de maps Rpgmaker intégrés dans Wolf
21/01 : Les héros dans Rpgmaker et dans Wolf sont synchro. Je bouge dans Wolf, ça fait bouger le héros dans Rpgmaker. J'ai pu lancer un dialogue rpgmaker dans Wolf. (j'aurais dû faire un screenshot)
28/01 : Le héros et les autres events sont bien présents dans Wolf et bougent bien comme leurs alter ego dans Rpgmaker. J'ai aussi optimisé l'affichage et maintenant ça va très vite. Je sens que je vais bien ramer sur l'import de sprites....
10/03 : Les personnages custom sont implémentés de façon tout à fait satisfaisante. Les couleurs en mode 32 bits fonctionnent correctement. Je travaille sur les murs.
Dernière édition par Vincent le 10 Mars 2016, 10:58, édité 7 fois.

Avatar de l’utilisateur
Vincent
Dompteur de lions
Messages : 368
Inscription : 25 Nov 2011, 13:10

[Rpgmaker2003 + DynRPG + Wolf4SDL] WolfRpgmaker

Messagepar Vincent » 19 Jan 2016, 14:49

Il faut que je fasse une vidéo et un nouveau screenshot.
Le premier Screenshot est sombre car il est prit lors d'un fondu d'entrée (qui était super long à cause d'un bug sur une boucle).
C'est toujours très lent pour le moment car j'ai voulu d'abord faire tous les proofs of concept importants (affichage, mouvement et interactions) avant de faire de l'optimisation.

Avatar de l’utilisateur
Roi of the Suisse
Dompteur de lions
Messages : 375
Inscription : 20 Août 2011, 00:33
Localisation : Rennes aussi

[Rpgmaker2003 + Wolf4SDL] WolfRpgmaker

Messagepar Roi of the Suisse » 19 Jan 2016, 19:50

Oui il faut une vidéo !
Tu fais du C++ ? :kaeru:

Avatar de l’utilisateur
Vincent
Dompteur de lions
Messages : 368
Inscription : 25 Nov 2011, 13:10

[Rpgmaker2003 + Wolf4SDL] WolfRpgmaker

Messagepar Vincent » 20 Jan 2016, 14:12

Voilà le lien :

Quand je met la vidéo avec le tag video, ça me dit non reconnu. C'est normal ?
EDIT de Zim : J'ai édité avec un autre type d'adresse.
Zim >> Merci !

Oui, c'est du C++.
Donc aujourd'hui, j'ai rajouté l'ébauche du code qui nettoie la map (enlève tous les murs) et qui rajoute les miens.
Alors ça fonctionne par ID, les murs portent l'ID 11 (mur bleu dans Wolf) et les espèces de grilles portent l'ID 8 (mur avec la farce d'Adolf dans Wolf).

Donc la vidéo commence avec Wolf tel quel qui démarre.
Je passe en mode Rpgmaker, et je charge la map.
Je reviens sous Wolf et je suis dans ma map que j'ai créée sous Rpgmaker. :oups:

Je sais pas si ça se voit mais le déplacement est plus lent que d'habitude, c'est parce que je n'ai pas de moyen rapide de copier l'image de Wolf à Rpgmaker.
C'est jouable malgré tout et sur une vraie machine (pas mon épave qui me sert de pc) ça se voit probablement pas. ;)

Avatar de l’utilisateur
Roi of the Suisse
Dompteur de lions
Messages : 375
Inscription : 20 Août 2011, 00:33
Localisation : Rennes aussi

[Rpgmaker2003 + Wolf4SDL] WolfRpgmaker

Messagepar Roi of the Suisse » 22 Jan 2016, 09:28

Euh, je ne vois pas bien l'intérêt d'RPG Maker dans tout ça.
Pourquoi ne pas tout simplement utiliser un tableau au format CSV pour décrire le niveau ?
:coco:

Code : Tout sélectionner

01;01;01;01;01;01 01;00;00;00;00;01 01;00;00;00;00;01 01;00;01;01;00;01 01;00;00;01;00;01 01;01;01;01;01;01

Avatar de l’utilisateur
Vincent
Dompteur de lions
Messages : 368
Inscription : 25 Nov 2011, 13:10

[Rpgmaker2003 + Wolf4SDL] WolfRpgmaker

Messagepar Vincent » 24 Jan 2016, 15:06

Oui, si c'est juste pour faire un éditeur de niveau. Si je veux faire des cinématiques et des cbs. L'idée c'est plus de faire un jeu rpgmaker classique mais avec le moteur de rendu de wolf. Là je suis en train de préparer une vidéo qui illustre ça. :flute:

Avatar de l’utilisateur
trotter
Maître du château
Messages : 948
Inscription : 06 Avr 2011, 00:18

[Rpgmaker2003 + Wolf4SDL] WolfRpgmaker

Messagepar trotter » 24 Fév 2016, 00:32

Impressionant.

Le projet avance comment ?

Avec les textures des murs/du sol/des persos de RM ça sera vraiment super.

Avatar de l’utilisateur
trotter
Maître du château
Messages : 948
Inscription : 06 Avr 2011, 00:18

[Rpgmaker2003 + Wolf4SDL] WolfRpgmaker

Messagepar trotter » 24 Fév 2016, 00:43

Source du message
Si quelqu'un a une bonne idée comment on peut incorporer les graphismes suivants de façon intelligente, je suis tout ouïe :
- des ennemis
- des textures
Coder quelque chose en C++ pour récupérer le tileset, le découper et l'afficher dans wolfenstein à la place des murs bleus.
Source du message
Ca ne devrait pas poser trop de problème de s'adapter à la norme Rpgmaker et de faire 3 images pour la marche si nécessaire.
Pour les directions, par contre, je trouve que c'est plus tendu car même 8 directions c'est très peu.
Juste 4 direction déjà ce sera rigolo.
Pour les anims de blessure tu pourrais par exemple coder des tâches de sang en gros pixels quand on tire sur les charsets (coder, c'est à dire par devoir dessiner le charset avec du sang nous même). Et pour la mort un cadavre dans une flaque de sang indéfinissable, ou alors le charset déformé+taches de sang.

Ce qui serait vraiment super c'est que ça soit transparent pour le maker : il fait sa map, place ses PNJ et pouf ! Tout apparait comme il a mappé en 3D.

Avatar de l’utilisateur
Vincent
Dompteur de lions
Messages : 368
Inscription : 25 Nov 2011, 13:10

[Rpgmaker2003 + Wolf4SDL] WolfRpgmaker

Messagepar Vincent » 24 Fév 2016, 10:01

Ca avance très bien merci ! :pioche:

J'avais un problème de redimensionnement de sprites.
Quand Wolfenstein a besoin d'un sprite d'une taille plus petite que l'original (sprite éloigné), il ne fait qu'afficher que certains pixels de l'original.
Je ne voulais pas de ce système alors j'ai implémenté du redimensionnement bicubique (comme Photoshop quoi) mais c'était trop long, alors j'ai développé ma propre fonction bicubique.
Je bloquais sur ça depuis des semaines.

Là, ça me semble vraiment bien et super rapide.
Je continue un peu sur les animations et je vais pouvoir passer aux murs.
Justement pour les animations, j'ai du code qui gère les 8 directions, il faut que je puisse faire les 4 directions aussi.

Pour les animations, voici comment c'est prévu.

Tout commence par un fichier dans le repertoire monster qui représente le personnage ici c'est wguard.
Image

Ensuite il faut enregistrer le monstre dans la liste des "monstres".
Image
Ici j'ai enregistré Amazon qui va donc se trouver dans le répertoire Amazon (et portera Id 1) et wguard qui va donc se trouver dans le répertoire wguard (et portera Id 2).

Au démarage, mon plugin lit la liste des monstres et récupère les sprites portant le même nom que le monstre.
Image
Le plugin récupère tous les sprites de l'animation selon un standard (pas encore défini) mais ça sera un truc du genre nomMonstre_nomAnimation_direction_numeroImage.
Donc par exemple tu auras :
wguard_talk_9_0.png
Ce qui veux dire que c'est l'image pour l'animation talk (à utiliser quand le personnage doit s'exprimer à l'écran), la direction 9, et la première image de l'animation.

J'ai préféré faire des répertoires car au final, il risque d'y avoir énormément de sprites pour chaque monstres et donc c'est plus pratique comme ça.
Par contre, il y a quand même un défaut. Je devrais peut être retirer le nom du monstre dans le répertoire comme ça, on pourrait faire des packs de persos téléchargeables un peu comme Mugen.

Bon voilà, le monstre/NPC est enregistré dans Wolf et Rpgmaker.

Ensuite, comment l'utiliser ?
J'ai prévu un charset standard qui permet donc de sélectionner les animations comme on l'a besoin.
Image

En fait, le charset a 8 positions de 0 à 7 et à chaque position correspond une animation.
0 -> Automatique (Le plugin se débrouille pour charger l'animation selon ce qui se passe dans le jeu. Si le personnage est immobile alors c'est l'animation stand, s'il bouge c'est l'animation walk, s'il est mort, c'est l'animation dead, etc)
1 -> Stand : Il reste là à rien faire.
2 -> Walk : Animation de marche
3 -> Dead, il est plus walking là. Ah le vilain, jeu de mot nul. :!!:
4 -> Attack
5 -> Talk
6 -> Custom 1 (C'est une animation non standardisée pour les besoins spécifiques)
7 -> Custom 2 (pareil)

Pour les tâches de sang qui sortent du personnage, on pourrait faire un truc qui projette du sang, c'est vraiment pas un problème. Il faut juste le faire.
Je pensais à du découpage de pixels aussi, genre le personnage se retrouve coupé en deux au sol ou ce genre de choses. (je dois avoir un problème à la tête pour penser à ce genre de choses. :shock: )
Le sang pourrait aussi se répandre.

Je pourrais récupérer les tilesets RpgMaker tel quel mais ça serait probablement trop petit.
Même dans Wolf, c'est des tilesets en 64x64. Sur Rpgmaker, je crois que c'est du 24x24 non ?
Je peux faire un test sous xBR dès que le code des murs fonctionne.
https://unindented.org/articles/pixel-a ... on-part-2/

Pour le fait de réutiliser les ressources Rpgmaker, ce que je peux faire pour les sprites c'est réutiliser les monstres Rpgmaker. Ca fera juste un sprite mais ça permettrait que si le programme détecte l'utilisation du Charset en question, ça te met automatiquement le personnage dans le jeu.
Pareil je pourrais faire ça pour les décors.
Néanmoins, je pense que ça n'est pas possible de reprendre les décors tel quel. Il faut mieux les prendre un par un et les importer.
Après éventuellement, faire une sorte de RTP WolfRpgmaker où ça fait le lien sans rien faire.


Revenir vers « Vos jeux »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité

cron