Bonsoir messieurs, mesdames et autres,
Je poste ce soir pour faire un peu le point de ce qui a été fait, ce qui doit être fait, ce qui va l'être sous peu. En ce moment, j'essaie au maximum de programmer au moins une heure par jour (même si je n'y arrive pas chaque jour ;)).
Ce qui a été fait :
- pas mal d'implémentations (notamment Creature, EvolvedCreature, Inventory ...)
- le système de "game states"
Pour plus d'infos, le code peut être parcouru là (le code en ligne peut avoir jusqu'à trois heures de retard, les modifications uploadées ne sont pas visibles immédiatement)
Ce qui va être fait sous peu (de manière un peu plus précise) :
- l'implémentation de Samoth::RaceManager::init() (charger les races depuis un fichier xml)
- l'implémentation de Samoth::FactionManager::init() (charger les factions depuis un fichier xml)
Ce qui doit être fait (important) :
- finir d'implémenter les constructeurs de Player, Creature et EvolvedCreature
- disposer d'un système d'exceptions
Ce qui reste à faire, de manière un peu moins pressée : implémenter des classes ou finir de le faire (Script, ItemManager, Area, Pathfinding, ...)
Voilà , j'ai tenté de résumer du mieux que j'ai pu ...
Une heure par jour on peut
Une heure par jour on peut dire que tu es motivé !
J'ai rien compris de ce que tu as écrit mais j'imagine que c'est tout à fait normal, en tout cas je suis bien content de voir que le projet progresse !
_baloOo, nain grateur de posterieur
RaceManager::init() est
RaceManager::init() est implémentée (et vu que FactionManager::init() est similaire, elle devrait aussi être faite sous peu).
Les races et leurs caractéristiques sont donc désormais chargées depuis un fichier XML.
Une idée que j'ai eue, à voir si elle est envisageable : pour choisir la langue du jeu, pourquoi ne pas modifier le fichier resources.cfg ? par exemple, si pour le groupe de resources "Data" (fichiers du jeu), je spécifie, entre autres, "../media/data/en/", alors le jeu sera en anglais (la version anglaise des fichiers étant chargée). En revanche, si je spécifie "../media/data/fr/", au chargement, ce seront les fichiers de la VF qui seront lus.
27-11-2005
FactionManager::init() est implémentée. Du coup, je me suis rendu compte qu'il était important de faire un système de log assez vite (à la bas,e c'est growsam qui m'en a parlé, et il s'est proposé pour le faire :)) histoire de garder trace de ce qui se passait durant le chargement.
à cette adresse (ce sont les xml, pas les xsd)
C'est frustrant, ça :
C'est frustrant, ça : depuis deux jours, je sèche sur un problème stupide, mais stupide ...
En fait, pour pouvoir faire fonctionner l'inventaire, il faut créer l'interface (même une version temporaire, et totalement vouée à changer) dudit inventaire. Pour CEGUI, il y a un éditeur, mais apparemment, il y a un problème : rien ne s'affiche ...
Je suis en train de faire
Je suis en train de faire joujou avec CEGUI et l'inventaire, histoire de faire quelque chose de fonctionnel (pour le moment, c'est plutôt bien parti, mais guère achevé). Le seul problème, c'est que même si, une fois fini, ça marche bien, ce sera moche : j'utilise les styles par défaut de CEGUI.
Evidemment, après, modifier le style et les images est aisé ; n'empêche que pour le moment, c'est moche.
tant pis si c'est moche du
tant pis si c'est moche du moment que c'est fonctionnel. je pense qu'on aura aucun mal à modifier les graphismes en temps voulu (ça doir plus ou moins ressembler aux graphismes d'un site web non ?)
_baloOo, nain grateur de posterieur
Oui, c'est relativement
Oui, c'est relativement aisé à modifier (il faut juste faire attention à ne pas modifier les noms des différentes parties utilisées, par exemple "container", mais à part ça, tout peut être changé).
En même temps, quand je dis moche, c'est moche :P
En avant-dernière, voici
En avant-dernière, voici l'inventaire (presque) fini (de commencer ?) !
Featuring : drag and drop, noix de coco, et menus aussi beaux qu'une boîte de conserve.
Astuce : vous pouvez cliquer sur les images.
c'est très bien tout ça
c'est très bien tout ça !
_baloOo, nain grateur de posterieur
Quelques améliorations
Quelques améliorations aujourd'hui, même si ça reste moche. Je viens de me rendre compte qu'il allait falloir modifier un peu la classe Player, vu que c'est mieux si on définit quelque part la possibilité pour le joueur d'avoir une image.
Sans ça, afficher ladite image, c'est dur.
Honnêtement, elle pête ton
Honnêtement, elle pête ton interface. Par contre, ça m'étonne que t'aies jamais joué à Morrowind :p.
Mais je trouve que ça fait vachement style "rajouté par dessus" la vie et les points de loyauté, faveurs divines etc.
Le style de l'interface est
Le style de l'interface est tout sauf définitif, Fixateur (et r4ps ?) planchent dessus, théoriquement ;)
Pour Morrowind, j'y ai joué, en fait : une minute trente, du réveil dans la cale au bug qui faisait redémarrer mon ordinateur en boucle.
Yep bon boulot (oui artus
Yep bon boulot (oui artus n'est pas mort :$) Par contre la police n'est pas assez lisible à mon gout :/ ;)
Joli taff sinon ca me rappel mon travail avec ncurses pour faire un affichage en temps réel d'une cabine d'ascenceur :D
Pour modifier la police, il
Pour modifier la police, il suffit de larguer un .ttf dans le dossier qui va bien, et de modifier le fichier fonts.cfg pour l'enregistrer ;)
Par contre, actuellement, je suis en train d'installer Ogre et compagnie sous windows, et ce n'est pas la joie (je ne suis pas sur mon ordinateur) : Ogre, Windows et Code::blocks, c'est prise de tête.
J'ai finalement réussi à
J'ai finalement réussi à tout installer (j'avoue, j'ai triché, j'ai installé le SDK précompilé de Ogre 1.1.0rc2).
Du coup, je me retrouve avec Ogre Dagon, et non plus Ogre Azathoth, ce qui me permet de corriger des petits problèmes (dans Dagon, quelques bouts de l'interface d'Ogre ont changé).
Après mise à jour des
Après mise à jour des images et modèles sur le CVS (parce qu'en fait, les fichiers binaires, il vaut mieux les transférer en mode binaire si on veut les avoir non corrompus à l'arrivée), j'ai pu compiler le truc actuel.
Il suffit de décompresser ce fichier quelque part en l'exécutant, puis d'aller dans le dossier "bin" ainsi créé et de lancer "buri.exe". Si ça foire, penser à regarder les logs (Ogre.log, CEGUI.log et Samoth.log) en quête d'indications.
Il y a apparemment parfois des problèmes avec DirectX et/ou OpenGL : si l'un des deux provoque un plantage du programme, il vaut mieux retenter avec l'autre. Pour cela, il faut, avant de relancer, il faut supprimer le fichier ogre.cfg : sinon, la même configuration est reprise.
Ah, au fait : au début, quand la souris ne bouge pas : appuyer sur la barre espace, pour la suite.
Apparition d'une classe,
Apparition d'une classe, ConfigManager, pour stocker, charger et sauver la configuration actuelle. Au lieu d'un fichier "ogre.cfg", on a désormais un fichier "config.xml", par défaur dans "save/", qui contient en gros les mêmes options - plus une, plutôt utile : la vitesse de la souris.
Exemple : <config> <defaultrenderer name="directx9" /> <renderer name="directx9"> <frequency value="60" /> <antialiasing value="0" /> <resolution width="640" height="480" depth="16" /> <fullscreen enabled="No" /> <vsync enabled="No" /> <floatingpoint mode="Fastest" /> </renderer> <mouse speed="2.0" /> </config> La classe n'est pas tout à fait finie (il manque des fonctions pour, par exemple, avoir les liste des différentes options possibles), mais c'est déjà gloabelement fonctionnel.
Ah, sinon, j'ai ajouté le code d'un module d'Ogre (un peu modifié afinqu'il compile), dotSceneInterface, pour pouvoir charger les [fichiers .scene | http://www.ogre3d.org/wiki/index.php/DotScene]. Il me reste à voir comment y lier le moteur physique, un gros morceau.
Beau boulot jeune padawan .
Beau boulot jeune padawan ;).
Je n'ai pas fini le
Je n'ai pas fini le chargement des scènes (en fait, il reste toujours à intégrer le moteur physique :/), mais je mets en ligne sur le CVS ce que j'ai fait dès demain.
Bon réveillon :)
La vue Troisième Personne
La vue Troisième Personne est quasiment fonctionnelle. Je ne mets cependant pas de screenshot ici, vu qu'il reste un défaut majeur : le modèle du nain, que j'utilise pour les tests, a été exporté sous Ogre avec un petit défaut, au niveau de son orientation (axes Z et Y inversés entre Blender et Ogre). Du coup, il est couché, en vue 3e personne, comme s'il nageait :P
Je viens de charger la scène créée par Masterconker. En dehors du fait que les noms des textures et des matériaux soient particuliers (il faut éviter les accents, les espaces et les caractères spéciaux, sinon ça pose problème ! ;)), le souci en fait, est au niveau du modèle physique associé : il faudrait ne pas avoir une mesh unique, mais plusieurs meshes, je crois, histoire d'avoir un solide par mesh.
Ou alors, j'ai pu créer un solid Opal pour ta scène, à l'aide d'une fonction (que je n'ai pas écrite, hein). Le problème est que ladite fonction ne gère que les entités possédant au maximum une submesh. La tienne en a 29 :P (soit je dois essayer d'adapter la fonction, ce qui n'est pas gagné, soit il faut utiliser moins de submeshes, quitte à diviser la mesh unique en plusieurs meshes)
M'enfin, trêve de bavardages, voici les screenshots de cette scène :
Bravo ! \o
Bravo ! \o
Je suis en train
Je suis en train d'implémenter la possiblité de récupérer des objets sur le sol, et d'en dropper. C'est quasiment fini; après, il faudra que je voie comment intégrer le placement des objets au .scene (chaque item ayant un script qui lui est associé, je devrais sans doute intégrer le système de script squirrel, du coup).
Voici quelques screenshots, rien de transcendant, mais bon ;) (ah, oui, j'ai fait les tests dans la vieille scène toute moche rouge, mais c'est juste parce qu'on y repère plus facilement les drops :p)
L'objet (qui flotte dans l'air, je ne lui ai pas associé de modèle physique pour les tests)
La souris passe dessus
Menu via un clic droit (un clic gauche le place directement dans l'inventaire)
Il est dans l'inventaire (c'est une épée, même si ça ne se voit pas, vu que je lui ai associé une vignette de hache par paresse ...)
Moi je suis pour la
Moi je suis pour la hache-épée, arme ô combien négligée ^^
En tout cas bravo! (ça me fait penser que j'ai des trucs à traduire au fait...)
Bien joué . T'as fait
Bien joué :p.
T'as fait comment en gros ?
Quand tu es en mode "jeu"
Quand tu es en mode "jeu" (à opposer au mode "menu" :en mode menu, ta souris peut aller trifouiller dans l'inventaire, mais le perso ne se déplace pas ; en mode "jeu", le curseur est centré au milieu de l'écran), à chaque mouvement de la souris, on effectue un "raycast" dans Ogre, qui retourne l'ensemble des MovableObjects (sélectionnables, c'est à dire les modèles 3D des items ou personnages) rencontrés par le rayon projeté. Ensuite, il suffit de récupérer le plus proche, de retrouver, à partir du modèle, l'objet auquel il appartient et de le sélectionner avec "showBoundingBox( true )" (une fonction de base dans Ogre).
Comme d'hab', dit comme ça
Comme d'hab', dit comme ça ça semble semble.
alors le fichier est
alors le fichier est uploader sur le ftp de samoth mais il faudrait que tu te connecte a msn stp c@c.
J'ai chargé ta nouvelle
J'ai chargé ta nouvelle scène (en réduisant tout d'un facteur 10, parce que c'était trop grand pour le petit bonhomme :p), et ça marche assez bin, a priori (les modèles physiques du magasin et de l'église sont bien générés, sauf le toit de l'église, apparemment).
Par contre, j'ai un problème de textures depuis que j'ai installé la dernière version d'Ogre, donc je ne peux pas vraiment faire de screenshots :/
Problème corrigé ; voici
Problème corrigé ; voici deux screenshots (au passage, j'ai dà» modifier les textures pour les redimensionner en puissances de deux) :
Magasin ! à‡a tombait bien, je n'ai plus de dentifrice.
Zut, la tuile !
Papa, papa, j'aime pas la messe ...
Je recopie le log du CVS que
Je recopie le log du CVS que je viens d'envoyer (c'est en anglais, avec probablement quelques incorrections, mais je suis crevé)
---
- Cleaning of PlayState.cc
- Creation of Map class, and implementation of Area class (to be enhanced)
- First (not finished yet) implementation of game loading and map loading
Now, it's better than before (:
---
Le CVS de sourceforge vient
Le CVS de sourceforge vient de se remettre à fonctionner, alors je viens de remonter les modifications que j'ai faites :
- intégration de OIS (Object-Oriented Input System) au lieu du système d'input d'Ogre (qui, à la base, n'était prévu que pour les démos d'Ogre et n'est pas pérenne)
- implémentation de load(), loadMap(), loadDynamic(), loadScene() et loadPlayer() [pas fini, mais bien avancé]
Reste aussi à faire save(), qui peut être utile.
Je viens de comprendre d'oà¹
Je viens de comprendre d'où venait (et de résoudre) un "bug" très gênant dans la vue Première personne !
En fait, c'était juste dà» à une ligne de code ... il fallait ajouter "mExtendedCamera->setTightness( 1.0f );" (sinon, par défaut, la valeur était 0.01, d'où des mouvements très ralentis de la caméra, qui avaient pour conséquence de rendre impossible un changement d'orientation brutal).
Vu le temps que j'ai passé à chercher d'où ça venait, j'ai envie de me mettre une baffe. Mais en fait non, ça fait mal.
Et un nouveau binaire à
Et un nouveau binaire à tester !
Je copie-colle un post que j'ai fait dans deux blogs :
--
Comme je n'ai accès à un ordinateur* sous Windows que pendant mes vacances, j'en profite pour compiler une version win32 ; comme ça, je peux prouver au monde entier que, non, je ne vis pas dans un monde imaginaire. Au fait, si vous croisez Azraël, dites-lui que je l'attends pour manger samedi.
Ce binaire est compilé à partir de la version actuelle de développement ; du coup, il n'est pas parfait. Entre autres défauts, on peut citer le fait que ce n'est même pas une pré-anté-alpha-RC1, qu'on ne peut quasiment rien faire, et que c'est moche.
Si vous souhaitez le tester (le binaire), il suffit de télécharger et de dézipper ce fichier (13.9 Mo). Toutes vos critiques sont les bienvenues, bien entendu, et je me ferai personnellement un plaisir de venir vous casser les dents.
* C'est un bien grand mot. Ce truc pourrait également être qualifié de boulier.
--
Au passage, j'ai tâché -sans trop de subtilité- de faire un peu de réclame pour attirer des gens.
alors il y a quelque bug qui
alors il y a quelque bug qui sont les suivant :
_il y a de gros bug de texture !!
_c'est horrible!!!(cette scene est 15x plus belle dans 3ds max)
_il est impossible de changer de resolution car apres je ne peu plus lancer le jeu .
_sinon si tu pouvais integrer dans les mode graphiques de l'anisotropie car les texture sont vraiment trop flou.
Sinon je trouve que tu as fait du bon boulot!:d
- Oui, j'ai vu, pour le
- Oui, j'ai vu, pour le stextures clignotantes (et je ne sais pas d'où ça vient).
- Oui, mais en même temps, on ne peut pas jouer dans 3dsmax ;) : là , apparement, les textures sont assez kitsches, c'est le plus gros défaut
- Ca ... si tu as changé les options, tu peux les restorer en remettant le config.old.xml à la place du config.xml (un message te le dit quand tu valides les nouvelles options).
- faudra que je voie, mais ça dépend surtout d'Ogre, en fait.
PS : merci :)
pour les bug des textures
pour les bug des textures c'est de ma faute (je corrige la scene et je te la donne quand tu te connecteras a msn),sinon chtite question de combien veux-tu que j'agrandisse ma scene?
EDIT a 18h30 :c@c si tu est la connecte toi a msn stp.
A la demande de
A la demande de masterconker, j'ai ajouté une option pour activer/désactiver l'anisotropie dans config.xml (Ogre le permet, il s'agissait juste d'intégrer ça au fichier xml). En revanche, on ne peut pas encore le modifier dans les options de jeu.
J'ai aussi remarqué que la
J'ai aussi remarqué que la police est belle mais illisible. Sinon, lorsqu'on met en TP et qu'on bouge la souris partout, le nain se retourne. Donc, une fois retourné, quand on retourne en FP la souris est inversée.
Encore une chose, pourquoi tu ne mets pas le nain à la verticale ? Babycool m'a dit qu'il suffisait d'utiliser une fonction toute simple, ça devrait pas être très long.
Stou.
La police, effectivement,
La police, effectivement, est à la fois très jolie et très inadaptée. Faudra la changer, mais, tant qu'à faire, j'attends pour changer à la fois la police et l'interface.
D'autre part, je viens de modifier en local -encore une fois- le fonctionnement de la vue 3e personne : il est maintenant, en principe, impossible de se retourner. Le syndrôme tortue ne devrait plus poser de problèmes.
Enfin, pour le nain à la verticale, c'est en effet simple : il suffit soit de trois rotations successives, soit d'une seule, avec un quaternion :
Le problème, c'est que ce n'est pas "propre" : c'est totalement dépendant de ce modèle-ci, et ça devrait disparaître avec d'autres. Tant que j'espérais avoir un perso droit rapidement, je me disais que ce n'était pas la peine (il m'a fallu, en plus, faire une petite modif au niveau des SceneNodes du personnage). Mais bon, c'est vrai que ça fait désordre, alors je l'ai remis.
Je ferai un binaire aujourd'hui, avec anisotropy (je ne sais pas si ça marche, cet ordi ne pouvant pas le faire fonctionner), et ces deux problèmes réglés.
Eu j'aimerais te donner la
Eu j'aimerais te donner la scene avec les bugs de texture corrigée peux-tu me donner l'addresse du ftp ...sur msn ou par mail stp.
Personnellement, je trouve
Personnellement, je trouve que ça se voit qu'il y a du boulot et que c'est encourageant, malgré les quelques bugs. Là , même si c'est pas marrant et qu'il n'y a rien, je trouve que ça ressemble à un jeu vidéo :).
EDIT : j'ai repéré quelques bugs et maladresses :
-L'église est coupée en deux à sa base (elle ne touche pas le sol).
-Utliser les touches multidirectionnelles pour se déplacer c'est chiant. Faudrait mettre ZQSD, c'est à¼ber plus pratique !
-On ne peut pas diriger la visée vers le haut
-C'est horriblement lent !
-Les différents bugs de collisions que chacun aura remarqué (sà»rement liés à l'absence de moteur physique)
-Le fait qu'il n'y ait pas un petit menu "commandes" (pas besoin de donner la possibilité de changer les touches pour l'instant, c'est juste pour que l'on sache quelles fonctions sont intégrées ... Oopa !)
Bon, je crois que c'est déjà pas mal.
PS : j'ai remarqué que je n'étais pas le premier à avoir ce problème de lenteur (cf. ton blog). Si ça peut t'aider, là (http://www.ogre3d.org/wiki/index.php/Basic_Tutorial_4) ou là (http://www.ogre3d.org/wiki/index.php/Basic_Tutorial_4) (je sais plus c'est le quel), il y a un tuto pour expliquer comment séparer les déplacement à la framerate . Mais normalement ça ne devrait pas être ça, vu que tu dis que sur ta bouse ça va super vite : si c'était lié au framerate, ça devrait être le contraire ! Mais bon, au cas où.
c@c j'ai une question :
c@c j'ai une question : quand tu lance ma nouvelle scene dans ogre
est-ce que tu vois sur le sol un enorme plaque de pierre (le sol dela place),ou plusieur plaque de pierre car j'ai appliquer plusieur fois la meme texture sur le sol pour donner une 40ene de dalle sous 3ds je les vois mais sur le basic mesh viewver je vois une enorme dale faisant la longueur et la largeur du plan .(sinon si tu pouvais te connnecter a msn)
Je viens de passer une heure
Je viens de passer une heure pour mettre la nouvelle version de la scène ; quelques remarques :
* Il reste des textures avec des dimensions "hybrides" (i.e, pas en puissances de deux), qu'il m'a fallu redimensionner :
CLOUD2.JPG
le vitrail (du coup, j'ai dà» le remplacer par un autre)
bois-vertical.jpg
brick.bmp
elmleaf.tga
PLATEOX2.JPG
Thermal & Moisture.Roof Tiles.Spanish.Red.jpg
Thermal & Moisture.Roofing & Siding Panels.Wood Batten.New.jpg
Walker.jpg
* pas mal des fichiers de textures comprennent encore des espaces
* Dans le .material, plusieurs matériaux existent avec le même nom, ce qui provoque des erreurs (par exemple, "Resource with the name Matériau_#6997/04_-_Par_défaut already exists.. "). J'ai regroupé tous les matériaux ayant le même nom dans la même définition de matériau, mais je ne suis pas sà»r que c'était ce qu'il fallait faire.
* apparemment, les meshes des bâtiments contiennent encore plus d'une submesh (la création des modèles physiques à partir des .mesh est toujours aussi ... aléatoire, d'où les bugs dont parlait babycool). Au pire, je peux tenter d'assigner aux bâtiments des formes physiques simples, genre cube, si tu préfères.
* enfin, le ciel est très sombre, ce qui rend la scène elle-même très sombre - même avec une luminosité ambiante de 1.0, ce qui est le maximum.
Enfin, en dépit de tout ça, je la préfère maintenant :)
PS : une seule dalle.
je ne comprend pas sur 3ds
je ne comprend pas sur 3ds mes textures sont "bonne" ,pour les dimensions des textures the gimp ne fonctionnait pas et les autres sont payants .si tu pouvais me donner le .exe pour que j'identifi le problem.(tu peut te connnecter a msn?).
Ps : je suis degouter ça sers de trop pour texturer (l'histoire des dalles).
oups c'etait moi au-dessus
oups c'etait moi au-dessus (j'imagine que tu le savais deja mais bon).je ne comprends pas tres bien pourquoi le ciel est si sombre chez moi il ne l'est pas enfin sur 3ds en tout cas,pour les mesh et submesh : en faite je prends tout les elements d'un batiment je l'ai attache en une entiter je la renomme et je repette l'action pour tout les elements de la scene (c'est a dire magasin,skybox,environement,eglise,arbre etla maison)puis j'exporte le tout ,sinon il y a une option dans mon exporter ou il est dit export physics en .xode ptetre que le .scene ne suffit pas pour gerer la pysique .Je voudrais savoir aussi si les bugs de texture sont toujours la .Excuse moi pour les texture de mauvaise dimension.Si il ne faut pas faire ça dit le moi :p.
Je ne sais pas vraiment,
Je ne sais pas vraiment, pour les submeshes : quand tu les "attaches en une entité", il faudrait les fusionner, je pense (pas juste les lier), de sorte qu'ils ne fassent plus qu'un seul objet.
Mais je pense que je vais plutôt tâcher de créer des modèles physiques simples à la main, à base de cubes, ce sera moins problématique.
(Pour le .xode : c'est un autre format pour exporter les données physiques, différent de celui utuilisé par opal-ode ;))
Les bugs de textures : comme la scène est plutôt sombre, je n'en vois pas qui me saute aux yeux. Je vais regarder plus attentivement cet après-midi, promis.
ben en faite je fait tout
ben en faite je fait tout correctement, comme dans un tutos que j'avais trouver pour utiliser l'exporter parsque les attacher signifi aussi les fusionner.
Juste pour vérifier, je
Juste pour vérifier, je viens de faire ça, pour tester :
Samoth::Log::getSingleton().logMessage( "Nombre de submeshes pour 'church' : " + Ogre::StringConverter::toString( mSceneMgr->getEntity( "church" )->getMesh()->getNumSubMeshes() ) );
(Ca affiche le nombre de submeshes de la mesh "church" (j'ai renommé "église" en "church"). Résultat, dans Samoth.log : 18:06:53:Nombre de submeshes pour 'church' : 17 Mais ce n'est pas grave, je vais modifier le .physics pour mettre des modèles physiques créés manuellement.
PS : j'ai remplacé la texture du ciel par celle-ci (
), pour éviter les problèmes de mauvais raccordement
PPS : j'ai également trouvé d'où venait la faible luminosité, c'est réglé
PPPS : de plus, en cherchant sur le wiki d'Ogre, j'ai vu comment faire en sorte de plaquer une texture plusieurs fois : maintenant, il y a plusieurs dalles
PPPPS : je crois également avoir trouvé un moyen d'éviter la différence de vitesse entre les ordis, mais il faudra que je vérifie
(5P)S : ah, voici un exemple d'artefacts : [ici|http://pix.nofrag.com/1a/80/209d01d72059f4dce09499946a42.html] et [là |http://pix.nofrag.com/31/73/84fec44f84b97e8db341b6fd1978.html]
alors , je viens d'uploader
alors , je viens d'uploader ma nouvelle scene,(la maison est plus jolie,et j'ai supprimer environ 6000polys en otpimisant),j'ai testé un truc pour fusionner les submeshes je ne sais pas si ça va marcher mais on peu essayer ,sinon pour les artefact j'ai essayé de deplacer un peu les models concernés (je ne vois que ça a faire).Et aussi je voudrais savoir si tu peu uplaoder un nouveau .exe avec la nouvelle scene :p .
D'ac, je vais mettre un
D'ac, je vais mettre un nouveau binaire en ligne demain. Juste un détail : tu as modifié quelque chose au niveau des textures, ou juste les .mesh ? (ça me prend un certain temps pour corriger les noms des textures, donc, si ça n'a pas changé, c'est toujours ça de pris ;))
Pour les submeshes : ce n'est plus la peine, je viens de tester, et mettre un parallélépipède rectangle comme modèle physique marche aussi bien, voire mieux ( pour le moment, je n'ai fait que l'église, mais ça fonctionne).
alors j'ai rajouter 2 ou 3
alors j'ai rajouter 2 ou 3 texture ,j'ai renommer toute les texture mais tu peu recuperer tes anciennes texture sinon pour le .material je ne sais pas d'ou viennent toutes ces erreurs a cause des materiaux qui ont le meme nom,j'ai renommer tout les materiaux que j'utilise (comme d'habitude).vivement demain :d .
EDIT: tu me previens dés qque les chargements d'interieur sont pres comme ça je rafermerai tout les batiments et je commencerais a faire les interieurs.Et pour les artafacts il faut mettre les couleurs en 32 bits et le bug disparait.
J'ai fait le binaire,
J'ai fait le binaire, corrigé deux-trois trucs. Je suis en train de mettre à jour le CVS, et j'uploaderai le .exe juste après.
PS : merci, pour l'astuce du 32 bits ;)
Voici un autre exécutable,
Voici un autre exécutable, dans lesquels certains bugs ont été, je l'espère, corrigés. Avec un peu de chance, j'en ai introduit d'autres.
Entre autres modifications :
- le modèle physique de l'église est désormais défini "à la main", histoire d'éviter les problèmes en tentant de le générer à partir du modèle 3D.
- le système de vue troisième personne a été légèrement modifié
Et d'autres trucs.
Vous pouvez le télécharger, le tester et en faire des sushis à cette adresse.
Chez moi, ça me met, quand
Chez moi, ça me met, quand j'essaie de dézipper, que le fichier est corrompu. Tu pourrais réessayer de le compresser ?
Same player uploads again. A
Same player uploads again.
A 16 Ko/s, compte encore un quart d'heure, et ça devrait être bon.
Euh, alors ça vient ?
Euh, alors ça vient ? :p
Ben, si tu lis mon
Ben, si tu lis mon précédent message, tu vois que c'est bon. Quand je l'ai écrit, j'étais au début de l'upload, et je disais que ça me prendrait environ quinze minutes.
L'upload est fini depuis un bail, donc, j'ai même eu le temps de retélécharger le zip pour vérifier qu'il se décompressait bien :)
alors il reste encore
alors il reste encore quelque bugs :
_quelque bugs de texture(je m'en charge),
_le nain ne touche pas le sol ,
_quand on veut ce deplacer en diagonale la camera tremble,
_seul l'eglise a un physique ,
_quand on appui sur page up le nain monte en vertical.
_impossible de changer de resolution car le je plante au demarrage ,de meme pour la langue.
sinon il manque une touche de saut ,il faudrais aussi un lisez-moi pour apprendre les touches du clavier,l'inventaire n'est pas implanter dans la scene ,la skybox est un peu pale.Sinon c'est du tres bon boulot:d.
alors niveau 3d je fixe quelque objectifs pour la prochaine mise a jour de la scene(pour babycool et moi):
_inclure 2 nouvelle maison
_recommencer a zero l'eglise (si j'ai le courage)
_inclure un petit marcher au centre de la place .
je voudrais savoir combien de fps tu fais dans cette scene,et aussi si on ne pourrais pas augmenter la config minimal. gg c@c
* le nain ne touche pas le
* le nain ne touche pas le sol : oui, c'est juste une histoire d'ajustement (le modèle physique du sol est trop haut, heureusement, il est invisible)
* seule l'église a un modèle physique : oui, j'ai pas encore fait les autres (faire le sien m'a pris environ 40 minutes, parce qu'il s'agit d'ajuster un gros parallélépipède rectangle ... invisible. Heureusement, il y a une astuce)
* PGUP : ce n'est pas le comportement normal ? Je veux dire, eh bien, il saute. Tu penses qu'il devrait aller dans quelle direction ?
* La langue, c'est normal (français pas encore implémenté, ce n'est pas une priorité vu la quantité actuelle de texte dans la scène). Par contre, la résolution, je veux bien avoir le Ogre.log après le plantage (tu as essayé en changeant de résolution et de renderer (OpenGL/DirectX) ?)
* Touche de saut : PGUP ?
* Lisez-moi (Readme.txt, à la racine du .zip) :
Controls :
- 'T' to switch Third Person/First Person view
- 'U' to switch orientation mouse mode/free mouse mode (to use interface)
- Key arrows to move, PGUP to jump (you can manually customize it by editing config.xml, but you'll need to know OIS' keycodes)
- Escape to exit the play state (press the key twice to exit, one for pause ('P' resume play state))
* Inventaire : si, il l'est (il faut appuyer sur U, et tu peux le lancer ; rappuyer sur U te repasse en mode "souris déplacement")
Je fais, sur la machine où je suis*, et en 800*600@32bits, 39 FPS de moyenne.
* P3 551 MHz, 320 Mo SDRAM, Radeon 7000, Windows XP Pro.
PS : juste, quand tu modifieras la scène : tu peux récupérer les textures de l'exécutable, avec leurs noms ? (genre tiles.jpg au lieu de "Masonry[...]Tiles.jpg" ? Comme ça, je n'aurai pas à les renommer la prochaine fois ;)
Et bravo, pour la scène :)
_la touche de saut:je
_la touche de saut:je n'avais pas remarquer mais il saute mais beaucoup trop lentement,et si on reste appuyer on peut monter a la hauteur que l'on veut et il ne retombe pas .
_ pour la config tu fait 39 fps dans une scene toute simple avec aucun effet donc imagine la plus detaillé.
_pour l'inventaire je retire ce que j'ai dis il y en a bien un ,mais une touche pour y acceder directement ne serais pas plus simple?
_il y a des erreurs de lancement,qui nous oblige a le faire tourner en compatibiliter windows 95.
je voudrais savoir combien de polys il y a dans la scene.je voudrais implanter aussi des lumieres as-tu un moyen de rendre les ombre statiques?
EDIT:j'ai oublier de te dire que tu as appliqué trop(beaucoup) de fois la texture de l'herbe ,et ce serais bien que tu applique plusieur fois la texture (mansory je crois) sur le sol de la maison et la fontaine.
* saut : Je vais
* saut : Je vais l'accélérer ;pour la chute, je ne sais pas trop comment faire, mais je vais essayer de l'accélérer (en augmentant la gravité, par exemple).
* config : tu as vu le fodure de guerre dont je dispose ici, aussi : non seulement c'est très limité pour les jeux, mais en plus, il y a Windows XP dessus, il n'a pas été formaté depuis un an, et il y a pas mal de programmes gourmands de lancés.
* inventaire : si, sans doute : faudra que j'y pense :)
* compatibilité : je ne compile pas via Visual Studio (qui mettrait encore plus l'ordinateur sur les genoux, et exige n Go pour l'installation) mais avec Code::Blocks. Il me manquait du coup quelques DLL, que j'ai récupérées tant bien que mal, etc. Bref, ce problème, je pense que c'est dà» à mon environnement de compilation pour Windows.
Je ne sais pas comment obtenir le nombre de polygones total de la scène ; en revanche, j'ai accès au nombre de polygones affichés à chaque frame.
Ca varie entre 2644 et 49137 (triangles : un polygone, pour Ogre, est un triangle, pas un parallélogramme), en restant la plupart du temps aux alentours de 20000.
Ah, et sinon, je cite Sinbad (principal développeur d'Ogre), depuis ce thread :
Total number of polys is pretty much irrelevant until you start getting into the millions and hitting the vertex throughput limit. Lots of people think it's a good overall metric on scene complexity, but in truth it's such a crude measure that it's meaningless. This has been said many times here too. GPUs like small numbers of highly detailed objects. They hate zillions of little ones. Read any paper on geometry batching for why (nVidia has one on their site) or search these forums.
PS : d'accord, je modifie le .material pour cela. Pour les textures, tu as lu mon précédent post-scriptum, en ce qui concerne les noms des fichiers ? (utiliser les fichiers de texture renommés, à l'avenir)
Masterconker et moi allons
Masterconker et moi allons commencer à afire les bruitages (il a tout le matériel pour :)). Tu pourrais commencer à les implémenter quand ?
Je rajoute ça (intégrer le
Je rajoute ça (intégrer le sous-système audio) aux priorités ;)
Je viens d'intégrer un
Je viens d'intégrer un système de "zones".
Une map se compose de x*y zones, les zones étant de même taille. Quand le joueur se déplace sur la map, il passe d'une zone à l'autre.
à‡a permet, par la suite, de coder un affichage de minicarte, et c'est également nécessaire pour tout le qui est pathfinding, sorts de zone, et pas mal d'autres trucs.
T'y es finalement arrivé .
T'y es finalement arrivé :). Vu que c'est sur deux axes seulement, est-ce que ça marche quand il y a deux étages ? Ca fait l'effet sur les deux étages Oopa ?
Non, ça ne gère qu'un seul
Non, ça ne gère qu'un seul niveau (coordonnées 2D). Chaque map devra ne comporter qu'un étage (par exemple, monter des escaliers équivaut à entrer dans une nouvelle map).
Et maintenant que j'ai pu sortir des urgences, j'ai réslu le problème que j'avais avec le pathfinding : le pathfinding "neutre" est implémenté (ne tient compte que du poids des différentes zones)
Illustration
L'itinéraire rouge correspond aux "poids" rouges des zones, l'itinéraire vert aux poids verts. Si aucun poids n'est spécifié sur l'image, c'est 1.
Niveau pathfinding, il reste à faire le "couard" (évite les ennemis) et le "tête brà»lée" (le contraire).
Eskellent ! C'est peut être
Eskellent !
C'est peut être déjà fait je ne sais pas, mais il faudrait mettre dans les contraintes de modeleurs que les maps doivent contenir qu'un seul étage.
Fait aujourd'hui (en
Fait aujourd'hui (en anglais, trop fatigué pour retraduire le changelog ;)) :
Ainsi, pour ajouter un effet (censé durer jusqu'au prochain repos) :
J'ai également implémenté
J'ai également implémenté MetamEffect (nécessaire pour tout ce qui est métamorphose). Par contre, pas testé, donc si ça se trouve, en ajouter un à une créature transforme l'ordinateur en concombre.
De plus, je me suis attelé au chargement des joueurs/animaux/pnj depuis des fichiers xml. Je pensais que ce serait rapide, mais j'ai un peu déchanté : avant de les charger, il faut d'abord coder le système de sérialisation (c'est-à -dire, en gros, de sauvegarde en xml). Comme je l'ai mis plus haut, c'est fait pour Thing et Creature, et désormais également pour Animal.
Je suis en train de le faire pour les classes Inventory et Equipment, et EvolvedCreature, ce qui devrait permettre de le faire pour Player assez facilement. Ensuite, il restera à faire l'étape inverse : hargement depuis les données ainsi sauvegardées, ce qui risque également d'introduire quelques difficultés (avant de restorer l'état "attaque Untel" d'une créature, par exemple, il faut être sà»r qu'Untel a été lui-même chargé).
Un peu chiant, mais nécessaire :/
Pour la lecture des .zip, il
Pour la lecture des .zip, il n'y avait aucun problème, Ogre le gère de manière transparente (grâce à zziplib), qui permet de consulter les archives zip. En lecture seule.
Vu que je suis en train de coder la sauvegarde, il a bien fallu que je cherche comment écrire des .zip, de préférence de manière élégante (c'est-à -dire avec le moins d'efforts possible, et le code le plus clair possible). J'ai successivement testé :
- une source sous licence zlib/png qui avait l'air très intéressante, mais qui avait le défaut de ne pas fonctionner, même après trois heures de modifications.
- une source qui fonctionne très bien, mais qui s'est révélé ne pas faire exactement ce que je voulais (elle enregistre des données compressées avec l'algorithme zip, mais pas une structure de fichier zip). C'est frustrant, parce que je n'ai mis qu'une demi-heure à l'intégrer, elle.
Et, enfin, je suis tombé sur une bibliothèque qui fait exactement ce qu'il faut, qui a un design simple et clair, et qui, malheureusement, n'est plus développée depuis 2001 : Zipios++. Le standard C++ a légèrement changé depuis, et les compilateurs beaucoup, donc j'ai dà» modifier à nouveau le code.
Et ça marche : je peux sauvegarder les données dans des fichiers dans un .zip facilement !
En fait, avec en plus le système de sérialisation, voici comment enregistrer les données du joueur dans un fichier "player.xml", zippé dans test.zip :
Du coup, pouvoir sauvegarder une map / un jeu, à partir de ça, ne devrait plus être trop dur. Après, faudra quand même coder la/les fonctions permettant de recréer les entités à partir de ces données ...
Mais là , pizza.
je viens d'uploader la
je viens d'uploader la nouvelle eglise sur le ftp de samoth donc si tu veux y jeter un coup d'oeil .
Je vais le faire ce
Je vais le faire ce week-end, alors (enfin, essayer, à la base, je rentre chez moi, loin de la civilisation, pour deux jours)
Je suis toujours sur la
Je suis toujours sur la sauvegarde/restoration des différentes entités (objets/joueur/créatures ...)
C'est marrant, j'ai l'impression que plus j'en fais, plus la liste des choses à faire grossit ;)
(en principe, le chargement du joueur devrait être bientôt finie, par exemple demain ou après-demain, et ça aura déblayé pas mal de boulot pour celle des autres choses).
Désolé du retard ... J'ai
Désolé du retard ...
J'ai corrigé quelques problèmes dans la sérialization au format XML, et j'ai - je pense, je n'ai pas complètement testé - réussi à obtenir un chargement du joueur à peu près correct.
Il reste quand même à implémenter le chargement des sorts, et puis ensuite des PNJ. Et à tester.
Voici, juste pour illustrer, le résultat de la sauvegarde, actuellement, du joueur au format xml.
Ah, et, Masterconker, je ne t'oublie pas : j'ai un peu zappé la nouvelle église ces temps-ci, mais j'y pense. Avec un léger pincement de culpabilité, en plus :/
Enfin !
Pfiouuu ... la restoration du joueur est désormais testée, et ça marche.
J'ai passé au moins six heures ces deux derniers jours à buter sur une erreur incompréhensible, après avoir changé la version d'Opal (bibliothèque pour le moteur physique) vers une plus récente. En fait, il s'avère que c'est dà» à une nouvelle version d'une bibliothèque utilisée par Opal, pour lire le XML,
Bref, que du bonheur. D'un autre côté, maintenant, je sais utiliser (très basiquement) un débuggueur, et ça risque de m'être utile ...
de mon coté j'ai refais
de mon coté j'ai refais quelque bruitage avec l'aide d'un ami et j'ai ameliorer les anciens ce qui nous fait un total de 9 bruitage (cliue dans le menu,coup d'epée 1 et 2,bruit d'une epée sorti de son fourreau,marche lente,marche rapide,ouverture de l'inventaire ,et lorsque l'on boi une potion).
le pack est bientot fini il ne me reste plus qu'a trouver une texture pour les 2 portes et a exporter (tu peux me redonner les liens pour les texture gratuite car mes marques page ce sont affacer pour je ne sais quelle raison) .Sinon j'ai commencer un nouveau magasin ,et c'est tout :p.
Pour les textures, je te
Pour les textures, je te conseille de faire un tour sur ce topic (spécialement le deuxième lien). Quelques exemples :

merci
merci :d
le pack de l'eglise est pret
le pack de l'eglise est pret ,je l'ai testé avec le basic mesh... aucune erreur au lancement :d.(je te file la scene des que tu te connectes sur msn).
Je suis rentré en Bretagne,
Je suis rentré en Bretagne, mais j'ai pu détourner le nouvel ordinateur qui y trône pour travailler.
Je devrais pouvoir mettre en ligne un nouveau binaire demain, je l'ai testé ce soir et il fonctionne. Seul problème : j'ai "oublié" à Paris le .material pour le Bonhomme de Neige, donc, Masterconker, si tu passes par là ... tu me l'envoies par mail ?
Ah, et aussi, j'ai modifié (un tout petit peu) la partie son pour pouvoir jouer les .ogg en boucle. Il reste un problème : si on fait un screenshot (F12), la musique de fond s'arrête (je crois voir pourquoi, il faudra que je trouve comment l'empêcher : le son (OpenAL) est dans un thread séparé, mais en faisant un screenshot, on bloque momentanément le thread d'Ogre, celui qui s'occupe de remplir le buffer utilisé par OpenAL, donc on atteint la fin du buffer)
Alors : - Masterconker est
Alors :
- Masterconker est parti en vacances pour 3 semaines, donc on va pas le revoir de si tôt (\o/ ?).
- Je vais m'arranger pour aller chez lui et t'envoyer ce qu'il faut
- A quand un forum avec plusieurs pages ?
- C'est les vacances bordel !
T'en fais pas, je me suis
T'en fais pas, je me suis débrouillé (recréé le .material à partir des images, que j'avais, elles). Pour les vacances, je sais, mais être près de la plage quand il fait moche, c'est assez frustrant.
Problème résolu (en fait,
Problème résolu (en fait, c'était simple, mais il ne faut pas le dire) : la musique continue quand on fait un screenshot (utile).
C'était juste un problème de buffering : la musique continuait d'être jouée, mais le screenshot demandait du temps pour se faire, donc le fichier musical n'était plus lu pendant un bref laps de temps. Du coup, il n'y avait plus de musique à lire, et elle stoppait.
J'ai augmenté le nombre (de 2 à 4) et la taille (de 4096*8 à 4096 * 32) des buffers, en espérant que ça règle le problème partout (certains ordinateurs sont plus lents, pour faire des captures d'écran ; au pire, on augmentera encore un peu la taille des buffers).
Le problème du strafing
Le problème du strafing (déplacement sur la gauche ou la droite) est résolu (l'affichage était très saccadé, c'était assez atroce :)).
Je mets à jour le CVS avec la nouvelle version du code, qui le corrige.
Désolé de n'avoir pas
Désolé de n'avoir pas été très actif ces derniers temps, j'étais occupé à mourir sous le soleil ;)
Dernières nouvelles : deux classes sont théoriquement terminées, SpellManager et ItemManager. Elles permettent de définir des "types d'items" (ou de sorts), et de créer des objets de ce type par la suite.\Par exemple, un fichier comme celui-ci : <?xml version="1.0"?> <item_set> <piece_armor> <id value="great_iron_helmet" /> <thumbnail value="none" /> <script value="plop" /> <name value="IronMan's Helmet" /> <model value="-" /> <description><![CDATA[It's only an ugly helmet, but i use this to test some things : <><<&?]]></description> <armor value="5" /> <weight value="1.5" /> <subtype value="helmet" /> </piece_armor> <weapon> <id value="scythe" /> <thumbnail value="none" /> <script value="plop" /> <name value="Little Death Scythe" /> <model value="-" /> <description><![CDATA[Yes, Death has children. They're not very nice, and they've got scythes too.]]></description> <weight value="1.0" /> <subtype value="double_weapon" /> </weapon> </item_set> Permet de définir deux items ; ensuite, il devient possible de créer directement des objets "great_iron_helmet" et "scythe".\Prochaine étape : faire en sorte que les fichiers .items et .spells soient automatiquement lus au chargement.
Voilà , c'est fait : les
Voilà , c'est fait : les fichiers .items et .spells, situés dans le dossier media/data, sont automatiquement chargés.\Même que c'est loggué dans Samoth.log, au cas où : 16:24:38: Attempting to load definition item set from resource "test.items" ... 16:24:38: Item set loaded (2 items found).
Ajouté la possiblité de
Ajouté la possiblité de désactiver l'audio (pour le moment, seulement via config.xml)
Bugfixes assez importants dans l'inventaire.
Une partie (la plus facile)
Une partie (la plus facile) des objectifs est accomplie :
Ceacy :
finaliser tout ce qui est chargement/sauvegarde; créer un outil facilitant la création des fichiers .structure ; implémentation du système de changement de zone (map) ; commencer à intégrer le système de scripting.En somme, le changement majeur visible, c'est qu'en chargeant la map par défaut, en bougeant le joueur, en quittant le "jeu", puis en revenant, on trouve le joueur où on l'avait laissé.
Et si des objets ont été mis par terre, ils y demeurent.
J'ai commencé (et fini, je
J'ai commencé (et fini, je crois, ou presque) le système de changement de maps. Par exemple, j'ai modifié le fichier de définition de map working.map : <portals> <portal x="9" y="9" xdest="14" ydest="10" mapdest="" /> </portals> Résultat : il y a un rectangle rouge à la position (9,9) de la map (il me reste à vérifier que c'est bien la bonne position, que le rectangle n'est pas un peu décalé, en fait). Quand on va dessus, eh bien ... on se retrouve à la position (14, 10).\Je me suis amusé environ deux minutes à me téléporter, comme ça.
En théorie, le même système permet de changer de map : si l'attribut "mapdest" a une valeur, on ne change pas seulement de position, mais aussi de map (à condition qu'il existe une map avec l'identifiant demandé, sinon, c'est une belle erreur qui va s'afficher).
en grand) | http://pix.nofrag.com/e0/41/c6d7648e8c234aefa403302cd285.html
Je m'en doutais, il y avait
Je m'en doutais, il y avait effectivement un problème dans le placement de la "zone rouge".\J'ai modifié le code en conséquence (et, au passage, j'ai réglé une erreur de code liée à une inattention de ma part - un "x" au lieu d'un "y" ;), et j'ai modifié la constante de friction dans le modèle physique du joueur : il "glisse" mieux sur le sol) :
// The used mesh is centered on the position it's placed ; so, this position must be the center of the area. float x = ( 0.5 + static_cast<float>( mOrigin.x ) ) * static_cast<float>( AREA_SIZE ); float z = ( 0.5 + static_cast<float>( mOrigin.y ) ) * static_cast<float>( AREA_SIZE ); Ogre::Vector3 pos( x, 1.0f, z );[/code]
En gros, toute la subtilité est dans le "0.5" rajouté. Un petit dessin pour expliquer ce que ça change :\[Schéma |
]