Nouvelle screenshot utilisant les shaders montrés hier.
Il y a donc le cel shading, le rendu de l'eau est obtenu par simple utilisation d'une normale map + cel shading.
J'ai ajouté une skybox et des nuages, mais l'effet n'est pas encore au point.
Comme d'hab, je suis ouvert à toute remarque :)
Je suis crevé, donc je vais faire court : j'ai refait le cel shader et le water shader.
N'hésitez pas à faire des remarques.
Bonne nuit !
Quelques nouvelles d'Aereven.
Mon BAC est dans deux semaines, ce qui explique la lenteur à laquelle avance le projet en ce moment.
La nuit dernière (oui... j'ai des horaires de programmation assez bizarres : 21h -> 4h), j'ai refait une bonne partie du code, le rendant plus clair.
Cela faisait suite à cette discussion sur le GCN.
Maintenant, parlons moins technique, et plus "game play".
Je vais dévoiler (woaaah, "dévoiler" rien que ça ! On se croirait à l'E3...) les personnages du jeu.
Ils sont 4, ils sont beaux, grands et forts, et sont dessinés par moi :

LLoyd
Chevalier humain. Né sur une petite ile au sud de Weserlin, dans le village de Falern.
Désireux de devenir Chevalier aux ordres du Roi, Lloyd va commencer son périple pour rejoindre la Grande Cité d'Arhest, là où réside le palais royal.
Après avoir fait ses preuves auprès des siens, il va tenter la traversée pour rejoindre le continent de Weserlin. Mais cette traversée ne sera pas de tout repos...
En tant que Chevalier, il est maitre dans l'utilisation des armes.
En harmonie avec celles-ci, les Armes Légendaires qu'il contrôle ont plus de chance d'utiliser leur pouvoir que les autres.
De plus, il est capable de sacrifier une grande partie de son énergie magique pour forcer une arme à utiliser son pouvoir.

Lysia
Invoqueuse humaine. Lysia est originaire de Varda et est depuis toute petite bercée par la magie de ces lieux. Elle fut élevée par les autochtones de Varda, les sages Arthan.
Ce qui peut expliquer sa tendance à regarder les autres humains de haut...
Depuis peu elle a commencé un périple pour explorer les ruines de la civilisation Zealan (ancêtres des Arthan)... Mais la traversée en mer n'est pas des plus calme : surtout à cause de cet humain, Lloyd.
Lysia est une Invoqueuse, sa force vient donc de sa faculté à invoquer sur le champs de bataille des créatures.
Si les premières créature qu'elle peut invoquer sont généralement spécialisées dans le soin ou l'altération d'état, elle deviendra petit à petit capable d'invoquer de grosses bestioles.

Linn
Mage arthan. Linn est une jeune fille de Varda qui n'a jamais aimé les humains. Si seulement ses parents n'avaient pas adoptés Lysia !
Solitaire par nature, elle s'est lancée seule dans une quête désespérée : rassembler les Armes Légendaires et rendre aux arthan leur gloire passée.
Elle ne peut pas croire que ces humains sans pouvoirs puissent être les maitres de Weserlin.
Linn est une Mage d'exception, même parmi les arthan qui sont sur le déclin.
Linn n'a rien à envier à un arthan des premier temps, les anciens maitres de Weserlin.
En ce sens, ses capacités magiques défensives sont aussi puissantes que les offensives. Elle peut aussi bien soigner et protéger qu'infliger de gros dégâts.
Paradoxalement, cette personne si solitaire est un membre indispensable pour le groupe.

Ithil
Maitre zealan. Les Zealan sont les premiers humanoïdes à avoir foulé le sol de Weserlin. Surement originaires d'une autre ile du Grand Océan ("l'Aereven"), ils ont apportés la civilisation à Weserlin, bâtissant de grands temples à l'honneur de la déesse de la lune, Luna.
On les dit aussi être les ancêtres des Arthan.
Ce sont eux qui ont forgés les Armes Légendaires, reliquats de leur puissance.
Mais les Zealan ont été anéantis, par un mal dont les origines sont inconnues des générations actuelles.
Il ne reste qu'une poignée de Zealan dans le monde, vivant dans leur repère, le Temple de Lune.
Les Zealan sont tous des Maitres. Ithil n'échappe pas à la règle.
Les Maitres sont très polyvalents.
Etant les créateurs des Armes Légendaires, leur utilisation leur est naturelle. Cependant ils ne peuvent pas utiliser d'autres armes.
Le cout nécessaire en magie pour libérer le pouvoir d'une Arme est faible.
Ils sont capables d'utiliser la magie offensive, et connaissent certaines invocations inédites.
De premier abord la plus puissante, la classe des Maitre a ses désavantages : une régénération lente de la magie, l'impossibilité d'utiliser un équipement conventionnel, et leur faible marge d'évolution.
Le début du jeu vous mettra dans la peau de Lloyd, cherchant à rejoindre Arhest. Il fera la connaissance de Lysia, et ils vivront quelques aventures avant de rencontrer Linn.
C'est alors qu'ils prendront conscience du mal qui approche, le mal qui a jadis éradiqué les Zealan, et partiront en quête de leur seule chance de salut : les Armes Légendaires.
C'est assez classique mais on s'en fout. Mon but n'est pas de révolutionner le monde des RPG, mais plutôt d'en faire un sympathique et agréable à jouer ;)
Nouvelle image du menu, cette fois c'est l'inventaire qui est à l'honneur :
L'inventaire est commun à toute l'équipe (4 personnages) et a une capacité de 100 objets.
Concernant les cases en haut, les jaunes sont pour l'équipement, les bleus pour les sorts et les rouges pour les familiers à invoquer.
(les petites icônes viennent du "RGSS" de RPG Maker XP)
Le menu du jeu :
(le visage vient de FF3, c'est juste un test, bien évidemment)
Oyé oyé ! Aereven est de retour, et en images !

Tout d'abord, parlons un peu des péripéties (ce devlog est là pour ça, non ?).
J'ai récemment abattu une bonne quantité de travail sur Aereven ( les révisions pour le Bac en sont d'ailleurs jalouses... >_< ) et suis arrivé à un résultat plus qu'encourageant.
Contrairement à ce que j'annonçais le 18 mars, la gestion des maps ne se fait pas par tiles.
Pourquoi ? D'abord en raison de performances, et puis parce que c'est assez liberticide.
Je suis donc revenu aux traditionnels meshs 3D, en utilisant le format DXS de DeleD.
Parlons-en, justement. Mon loader de fichiers DXS est désormais terminé, il gère désormais le multi-texturing et les lightmaps (ce qui n'était pas possible le 15 avril).
Cependant, j'ai été confronté à un autre problème, dû aux limitations de Irrlicht .NET CP (à moins que ce ne soit mon ignorance... possible aussi !) : impossible de créer soi même des meshs... et donc des TriangleSelector.
Bon, pour ceux qui ne connaissent pas Irrlicht, on peut résumer ça par un simple : "impossible de faire gérer les collisions à Irrlicht".
Du coup j'ai du le faire moi même. J'ai pour cela pris le code source d'Irrlicht 1.3 et récupéré les morceaux relatifs aux collisions et portés vers le C#.
De ce fait j'ai ma propre classe CTriangleSelector qui fait *presque* tout comme celle d'Irrlicht.
Dit comme ça, en quelques lignes, c'est pas bien méchant, mais ça m'a quand même bien occupé ^^.
Maintenant que j'ai une petite idée du scénario et des lieux que le joueur pourra visiter, j'ai commencé la carte du monde, et donc la modélisation de quelques lieux. Vous pourrez en voir un exemple dans la screenshot plus bas qui illustre cet article.
J'ai aussi amélioré le personnage de base, notamment au niveau des jambes (pareil, voir plus bas).
Mon souhait est de me rapprocher du style graphique de tout ces RPG qui arrivent sur Nintendo DS :
Eux sont limités par la taille des écrans et la puissance de la machine, moi par mes talents de graphiste et mon temps libre.
Plus les modèles sont simples et rapides à créer, mieux c'est pour moi.
Je vous laisse maintenant sur cette screenshot :
Petite note, juste en passant : si il manque au personnage en jeu quelques membres, c'est "normal". Tant que le modèle n'est pas finit à 100%, j'utilise dans Cinema4D des objets "Symétrie" pour les bras et les jambes, et ils ne sont pas pris en compte dans le jeu.
Voilà, à la prochaine pour de nouvelles aventures passionnantes (au moins^^) !
Bonjour à tous !
Sous ce jeu de mot stupide se cache un véritable problème : le spam.
Ces derniers temps le jeu des liens à fait son effet : les robots de spam ont trouvés ce site.
Comme ce blog a été entièrement programmé de ma main, il n'est pas aussi rôdé qu'un logiciel qui aurait fait ses preuves, en gros il n'avait aucune protection contre le spam.
C'est résolu, j'ai ajouté un petit champs lorsque l'on poste un commentaire.
Le but de la manipulation est simple, remplacer le texte préinscrit dans la case ("ici") par "421", la combinaison magique.
J'espère que ça ne vous fera pas renoncer à poster, et j'espère aussi que ce sera efficace contre ces foutus programmes publicitaires.
Et histoire de parler un peu d'Aereven, je vous sort une petite capture d'écran.

C'est une capture d'écran de la carte du monde, en cliquant sur le rond on peut se rendre au lieu souhaité. Une info-bulle apparait pour décrire le lieu.
Et voici une petite liste de ce qui a déjà été (re)fait :
— les outils et classes utilitaires : XML, Singleton, loaders DXS et ARA3D
— principaux managers : GraphicManager, GameManager, InputManager, etc.
— le gestionnaire d'états et pour le moment trois état : IntroState, GameState et WorldmapState.
— la gestion des maps, et sur la carte du monde, et en jeu.
— Gestion du temps : les minutes s'écoulent et le ciel change de couleur en fonction de l'heure de la journée. Cycle jour/nuit.
Voilà, j'y retourne !
Et encore une fois, merci pour le soutien que vous m'apportez à travers vos commentaires ! ;)
Bonjour !
Toujours dans le cadre du port de mes outils vers C#, je me suis penché sur un nouveau loader ("chargeur") pour les modèles 3D de DeleD.
Le format de DeleD, le DMF, est un format ASCII (que du texte) qu'il n'est pas facile d'interpréter... je cherchais donc de la doc' sur le site de DeleD.
Et c'est là bas que je me suis rendu compte que ma version de DeleD Lite n'était pas à jour !
Après l'update, je regarde un peu les nouveautés et *oh!*
En effet depuis je ne sais quelle version, DeleD a changé de format principal (le DMF reste compatible), c'est maintenant le DXS...
Ah, zut, je part décidément de zéro... J'ouvre donc un fichier DXS et à ma grande surprise, constate que c'est du XML !
Ô joie !
Après quelques heures de codage (j'ai perdu du temps à cause d'un bug dans ma classe XML), il est prêt !
De plus ce nouveau format permet une gestion des tags, petite phrase que l'on associe à un matériau ou un objet, de façon à les traiter différemment en jeu.
Peut-être diffuserais-je les sources de ce loader pour Irrlicht .NET CP, seulement il utilise certains mécanismes propres à mon application, sans parler de ma classe XML.
Donc si un jour j'ai le temps de faire le ménage, je publierai ça !
Ah, dernière note : j'aurais très bien pu ajouter la gestion des lightmaps dans mon application, je ne l'ai pas fait parce que je n'en aurai pas besoin.
Mon prochain objectif est de gérer les lumières dans mon application (il se peut que j'ai à tout refaire via un shader, Irrlicht n'étant pas super bien fait de ce côté là), et bien sur mon loader DXS gère aussi les lumières ^^
A bientôt !
Le projet n'est pas mort, c'est jusque que j'ai peu de temps en ce moment, et que le projet n'avance pas.
Je ne manquerai pas de vous tenir au courant dès que j'aurais quelque chose de nouveau.
Bonne soirée !
Je vous parlais dans la précédente entrée de mes interrogations quant à l'avenir d'Aereven.
Pour résumer, j'envisageais la possibilité d'alléger un peu le projet.
Les dernières semaines ont été assez éprouvantes scolairement, mais maintenant toute cela se calme, et je devrais savoir dans les alentours de la semaine prochaine si je suis pris à SupInfo.
Ce qui fait que maintenant j'ai un peu plus de temps libre et que je peux me remettre plus sereinement à Aereven.
J'ai donc réfléchis à certains changements.
Aspect graphique
Premièrement, le jeu reste un RPG 3D.
Seulement, toute la partie graphique à été simplifiée : le jeu est vu uniquement de dessus, les maps utilisent un système de "tiles", comme les jeux 2D.
En gros, bien que le rendu soit en 3D, la gestion du jeu se fait en 2D... et ça simplifie la vie !
Pour être plus en adéquation avec cette représentation, j'ai changé le style graphique d'Aereven en quelque chose de plus "cartoon".
Ça ne m'a pas demandé beaucoup de boulot puisque j'ai réutilisé un de mes modèles (style "super-deformed", comme dans les manga) et mon Cel-Shader.
Voici le modèle (amélioré) :

Aspect technique
Ensuite j'ai repris la programmation (presque) à zéro.
Pourquoi ? Il se trouve que depuis mes essais avec le C#, on est devenus très copains.
L'IDE (Visual C# Express) est vraiment excellente, ça change de Code::Blocks !
Et bien entendu, le langage en lui même est très pratique : simple mais puissant.
Pour la partie graphique, j'ai donc utilisé Irrlicht .NET CP d'Emmanuel Bossière, que je remercie pour son fabuleux portage.
Très vite j'ai pu reprendre mes marques.
J'ai porté certains de mes outils vers le C# (notamment mon loader de fichiers ARA 3D), et ça c'est fait sans embuches.
Le jeu fonctionne bien pour le moment, les performances sont correctes, bref : tout va bien. :)
Game-design
Les grandes lignes du scénario se précisent, mais je ne vais pas encore les évoquer parce que ça n'a pas d'intérêt à l'heure actuelle, et que c'est trop peu développé.
Cependant, j'ai clarifié le système de combat (chose restée en suspend pendant tout ce temps... -_- ).
Les combats se dérouleront au tour par tour, en opposant deux équipes.
Chaque équipe peut comporter de 1 à 4 membres.
Mais attention, c'est vous qui créez les membres de votre équipe, du look jusqu'au nom.
Chaque nouveau héros devra d'abord terminer le tutoriel (souvenez-vous de cette entrée) pour pouvoir faire parti de l'équipe.
Il n'y aura pas de système de classe, c'est vous qui décidez de l'utilité de votre personnage en combat.
Faire un personnage polyvalent sera possible mais pas forcement efficace, il faudra donc que vous exploitiez au mieux vos 4 héros pour qu'ils cumulent leurs forces et annulent leurs faiblesses.
Chaque héros pourra donc manier les armes, la magie et invoquer des familiers, tout dépend du rôle que vous lui attribuez dans le groupe.
Parlons des familiers maintenant, chaque héros pourra avoir jusqu'à 5 familiers : des monstres que vous pouvez invoquer pendant les combats.
Invoquer un familier consommera des points de magie, et il n'est possible d'en invoquer qu'un seul à la fois.
Avant de pouvoir invoquer quoi que ce soit, vous devez au préalable absorber l'âme du monstre en le combattant. Une fois l'âme en votre possession, la familier sera invoquable à chaque combats, à moins que vous ne choisissiez de le libérer.
Vous ne contrôlez pas votre familier, il se bat tout seul, mais vous pouvez le soigner à tout moment. Ressusciter un familier demande également de la magie.
Il y a un autre point du game play que j'aimerais développer : c'est un éventuel mode multi-joueur.
Ce mode multi-joueur mettra en scène une grande ville où pourront se retrouver et discuter tous les joueurs.
Les joueurs pourront vendre ou acheter des objets aux autres joueurs.
Le principal intérêt de cette ville-online, en plus de l'aspect "role play", est de permettre les combats entre joueurs via une arène.
Deux joueurs pourront alors s'affronter en opposant leurs équipes.
Toutefois, ce projet là est en option, il n'est pas dit que ce mode multi soit réellement présent dans le jeu : je verrai en temps voulu.
Mais en tout cas j'espère le réaliser, cette idée n'est pas étrangère au choix du C# : en effet ce langage est idéal pour les jeux en réseau.
Voilà pour le petit récapitulatif, comme d'habitude je vous ferai part de mon avancement en temps réel.
Bonne soirée !