Aller au menu du forum Aller au contenu du forum Aller à la recherche dans le forum
Logo Khaganat
Menu principal
Menu

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.

Voir les contributions Menu

Sujets - Liria

30 Juin 2014 à 14:37:35
Cliquez pour afficher le message
Bonjour
Voici une proposition pour l'écran de création des personnages en jeu :



Le fichier source svg est sur dropbox dans le dossier : "Dropbox/AuPendoReveur/Temp/Proposition-Ecran-Creation-Madi/"

Concepts et idées :
  • On rêve son avatar, d'où le titre de l'écran "Rêvez vos oublieux" ou peut être "Rêvez votre incarnation"
  • La notion de slot de personnage de ryzom est remplacée par celle de "Songe"
  • Détruire un avatar/slot revient à renvoyer ce songe dans les abysses des Brumes
  • Jouer c'est ... "rêver" ? s'incarner ?
  • Quitter le jeu c'est s'éveiller du songe ?
29 Juin 2014 à 11:31:56
Cliquez pour afficher le message
Je viens de terminer d'étudier le workflow de traduction des messages du moteur de jeu.
Cela m'amène à quelques réflexions que je vous livre brut de coffrage :

  • Il nous manque les fichiers sources servant à générer les fichiers des messages traduits. Cependant le format est identique voir très proche, et il est facile de recréer ces fichiers
  • Le workflow en lui même me semble adapté à une organisation d'entreprise, mais il me questionne en ce qui concerne un fonctionnement type "cathédrale du bazar". De ce coté, je pense qu'une véritable réflexion s'impose. Par exemple pour les fichiers de mots statiques, plutôt que d'avoir en source un fichier par langue, il me semble plus à première vue plus pertinent d'avoir qu'un seul fichier, avant autant de colonnes qu'il faut pour toute les langues. Ainsi cela évite d'avoir des incohérences entre les langues. Il me semble aussi qu'il nous faut des outils orientés web pour manipuler ces fichiers (un peu comme l'idée du projet DSWiki )
  • La dernière réflexion ne concerne pas vraiment le workflow de traduction, mais plutôt le workflow d'édition de datasheets du serveur. Je découvre en effet qu'il existe une commande "reload" sur le service "InputOutputService" (IOS) permet de recharger les fichiers de traduction sans avoir à relancer le serveur de jeu. Il me semble qu'il va falloir regarder aussi si on peut agir ainsi lors de l'éditions de certains datasheets. Pourvoir effectuer des changements sans  arrêter le serveur, serait une grande amélioration.
Cliquez pour afficher le message
Félicitation à Glorf dont le projet de remplacement de la libwww a été validé dans le cadre du GSoC 2014. A travers lui, c'est toute l'équipe de khaganat qui contribuera cet été à améliorer le code du serveur de jeu RyzomCore. *se dit qu'une statue glorfique doit déjà pousser dans le prairie aux statues*.

Trois projets liés à ryzomcore ont été acceptés cet été. Pour les trouver, rendez-vous sur la page des projets GSoC 2014 acceptés et filtrez sur l'organisation "worldforge" :

  • LibWWW replacement (Glorf) : The goal of this project is to replace the old "libwww" due to many problems (security, standard compliance, bugs ...) with a modern layout engine using webkit. There will be a new web IG window who will be able to work concurrently with the old one, using the old nel layout engine for HTML.
  • RyzomCore:Ryzom App Improvements  (shubevil) : The current open source App framework has no regulation of app and privilege security and has no way to dynamically introduce new apps. The improvements to the App framework should include adding a standard way for introducing new apps and management of access to apps through privilege levels.
  • [Ryzom Core] OVQT Tool Conversions and Improvements (dfighter1985) : Object Viewer QT ( OVQT ) is a tool that is intended to replace the legacy MFC based tools for Ryzom Core. Over the years there's been substantial effort put into converting the old tools into plugins of OVQT. The project I am proposing aims to finish some of those plugins, and polish others.

*Remet au Ra glorf un petit balai à la brosse en poils sacrés de mehteh.*
30 Décembre 2013 à 00:33:18
Cliquez pour afficher le message
Bonjour
voici dans ce post un script d'installation du client et des datas du jeu pour le serveur khanat.
A la base ce script ne devrait contenir que 4 lignes que vous pouvez d'ailleurs saisir à la main
dans le dossier où vous voulez installer le jeu :

# synchroniser le contenu du dossier 'data' avec celui du serveur ( 1,5Go, les mêmes fichier que ceux de ryzom )
rsync -avP lirria.khaganat.net::khanat-data/   ./data/
# synchroniser le contenu du dossier 'user' avec celui du serveur (les données spécifiques à khanat)
rsync -avP lirria.khaganat.net::khanat-user/   ./user/
# synchroniser le fichier "client_default.cfg" dans le dossier courant
rsync -avP lirria.khaganat.net::khanat-config/   ./
# synchroniser le binaire du  client (actuellement le binaire 32 bits officiel de ryzom)
rsync -avP lirria.khaganatnet::khanat-lin32bin/   ./

A cela il faut ajouter un fichier "client.cfg" qui devrait contenir au moins ces deux lignes :
RootConfigFilename   = "client_default.cfg";
LanguageCode         = "fr";

Cependant le script d'installation est plus "friend", car il va essayer d'installer le jeu
intelligemment (notamment en réutilisant le dossier 'data' d'une installation ryzom ou
khanat  pour minimiser le recours au réseau) et puis tout cela avec une zoli interface
en mode texte.

Minuit, ce n'est sans doute pas l'heure idéale pour une 'release', j'ai du rater pas mal
des coquilles, mais n'hésitez pas à le tester et mettre vos commentaires ici.
J'essayerai demain d'ajouter des screens avec un petit tuto après une bonne nuit de sommeil.

https://dl.dropboxusercontent.com/u/208 ... install.sh

Note : l'option 3 "Private (VPS for DEV purpose)" n'est pas opérationnelle pour le moment.
19 Décembre 2013 à 18:17:37
Cliquez pour afficher le message
Journal d'expérimentation

Aujourd'hui je voulais savoir comment réduire drastiquement la taille occupée par le dossier data de ryzom. L'idée est de se créer sa propre installation de khanat, sans les 1,5 Go de données du client officiel en fichier  compresssé. Mon regard se tourne en premier vers le client ryzom core

http://sourceforge.net/projects/ryzom/files/ :

ryzom_setup_644.exe    1.5 GB
ryzom_client_open.7z    652.6 MB

Plus que 600 Mo, je le récupère et l'installe sur mon poste puis compare  avec le dossier data du ryzom officiel.

Les fichiers packed_sheets (les data sheets) sont tous de tailles différentes, normal c'est ce qui devrait changer.
Les bnp (fichiers compressés contenant les modèles 3d et textures) sont tous les même (à une exception prêt).
Dans la version ryzom core, il manque les fichiers bnp des continent à savoir :

terre_*.bnp
zorai_*.bnp
tryker_*.bnp
sources_*.bnp
route_gouffre_*.bnp
primes_racines_*.bnp
nexus_*.bnp
matis_*.bnp
fyros_*
bagne_*

il ne reste que comme continent
newbieland_*.bnp

les fichiers bnp en relation avec le ring  "r2_*.bnp" on également été supprimés :

r2_buffer.dat       r2_forest_pz.bnp    r2_lakes_pz.bnp
r2_desert2.bnp      r2_jungle2.bnp      r2_misc.bnp
r2_desert.bnp       r2_jungle.bnp       r2_roots2.bnp
r2_desert_maps.bnp  r2_jungle_maps.bnp  r2_roots.bnp
r2_desert_pz.bnp    r2_jungle_pz.bnp    r2_roots_maps.bnp
r2_forest2.bnp      r2_lakes2.bnp       r2_roots_pz.bnp
r2_forest.bnp       r2_lakes.bnp        
r2_forest_maps.bnp  r2_lakes_maps.bnp  

J'ai quelques idées pour supprimer encore plus de données
par exemple le gros de l'espace disque est représenté par les tenues :

54M characters_animations.bnp
77M characters_maps_fy_hof_armor00_hr.bnp
85M characters_maps_fy_hof_armor01_hr.bnp
6,7M characters_maps_fy_hof_caster01_hr.bnp
9,6M characters_maps_fy_hof_cheveux_hr.bnp
55M characters_maps_fy_hof_civil01_hr.bnp
17M characters_maps_fy_hof_underwear_hr.bnp
11M characters_maps_fy_hof_visage_hr.bnp
66M characters_maps_fy_hom_armor00_hr.bnp
67M characters_maps_fy_hom_armor01_hr.bnp
856K characters_maps_fy_hom_barman_hr.bnp
4,0K characters_maps_fy_hom_casque01_hr.bnp
8,1M characters_maps_fy_hom_caster01_hr.bnp
13M characters_maps_fy_hom_cheveux_hr.bnp
86M characters_maps_fy_hom_civil01_hr.bnp
2,1M characters_maps_fy_hom_ruflaket_hr.bnp
5,4M characters_maps_fy_hom_underwear_hr.bnp
11M characters_maps_fy_hom_visage_hr.bnp
135M characters_maps_hr.bnp
87M characters_maps_ma_hof_armor00_hr.bnp
32M characters_maps_ma_hof_armor01_hr.bnp
8,1M characters_maps_ma_hof_casque01_hr.bnp
8,1M characters_maps_ma_hof_caster01_hr.bnp
12M characters_maps_ma_hof_cheveux_hr.bnp
87M characters_maps_ma_hof_civil01_hr.bnp
17M characters_maps_ma_hof_underwear_hr.bnp
12M characters_maps_ma_hof_visage_hr.bnp
25M characters_maps_ma_hom_armor00_hr.bnp
33M characters_maps_ma_hom_armor01_hr.bnp
4,0K characters_maps_ma_hom_casque01_hr.bnp
8,1M characters_maps_ma_hom_caster01_hr.bnp
13M characters_maps_ma_hom_cheveux_hr.bnp
43M characters_maps_ma_hom_civil01_hr.bnp
11M characters_maps_ma_hom_underwear_hr.bnp
12M characters_maps_ma_hom_visage_hr.bnp
91M characters_maps_tr_hof_armor00_hr.bnp
39M characters_maps_tr_hof_armor01_hr.bnp
4,0K characters_maps_tr_hof_casque01_hr.bnp
6,7M characters_maps_tr_hof_caster01_hr.bnp
12M characters_maps_tr_hof_cheveux_hr.bnp
87M characters_maps_tr_hof_civil01_hr.bnp
11M characters_maps_tr_hof_refugee_hr.bnp
16M characters_maps_tr_hof_underwear_hr.bnp
11M characters_maps_tr_hof_visage_hr.bnp
64M characters_maps_tr_hom_armor00_hr.bnp
38M characters_maps_tr_hom_armor01_hr.bnp
4,0K characters_maps_tr_hom_casque01_hr.bnp
6,7M characters_maps_tr_hom_caster01_hr.bnp
13M characters_maps_tr_hom_cheveux_hr.bnp
96M characters_maps_tr_hom_civil01_hr.bnp
23M characters_maps_tr_hom_refugee_hr.bnp
8,6M characters_maps_tr_hom_underwear_hr.bnp
11M characters_maps_tr_hom_visage_hr.bnp
107M characters_maps_zo_hof_armor00_hr.bnp
122M characters_maps_zo_hof_armor01_hr.bnp
4,0K characters_maps_zo_hof_casque01_hr.bnp
6,7M characters_maps_zo_hof_caster01_hr.bnp
12M characters_maps_zo_hof_cheveux_hr.bnp
98M characters_maps_zo_hof_civil01_hr.bnp
22M characters_maps_zo_hof_underwear_hr.bnp
6,9M characters_maps_zo_hof_visage_hr.bnp
113M characters_maps_zo_hom_armor00_hr.bnp
104M characters_maps_zo_hom_armor01_hr.bnp
4,0K characters_maps_zo_hom_casque01_hr.bnp
7,1M characters_maps_zo_hom_caster01_hr.bnp
13M characters_maps_zo_hom_cheveux_hr.bnp
48M characters_maps_zo_hom_civil01_hr.bnp
11M characters_maps_zo_hom_underwear_hr.bnp
6,8M characters_maps_zo_hom_visage_hr.bnp
41M characters_shapes.bnp
1,2M characters_skeletons.bnp
8,0K characters_swt.bnp

« character_map_* » sont les textures des tenues. Il m'apparait que nous pouvons toutes les supprimer, ne gardant pour le moment que la tenue de refugié puis introduisant une à une nos tenues

Idem pour la faune

29M fauna_animations.bnp
112M fauna_maps.bnp
43M fauna_shapes.bnp
1,2M fauna_skeletons.bnp
4,0K fauna_swt.bnp

Pour le moment nous n'utilisons que le yubo, pourquoi garder toutes ces données inutiles ?
D'ailleurs de toute façon nous voulons  revoir les principes de nommages des textures et shape et autres éléments. Il est donc préférable de tout réintroduire  élément par élément en fonction des besoins et avec notre organisation de « fichiers » et « noms ». Cela permettrait entre autres de supprimer les références aux « noms » ryzomiens qui restent à mon sens propriétés de jeu ryzom même si les assets sont libres.

Mais avant de m'attaquer à tout cela, je voulais aussi revoir l'écran de sélection des personnages.

J'avais trouvé dans le dossier
« code/ryzom/common/data_leveldesign/leveldesign/Game_elem/CreatePerso » les datasheet définissant les caractéristiques des races de l'écran de création
$ ls
fyros_craftsman.starting_role  matis_craftsman.starting_role  _parent                         tryker.race_stats              zorai.race_stats
fyros_fighter.starting_role    matis_fighter.starting_role    tryker_craftsman.starting_role  zorai_craftsman.starting_role
fyros_harvester.starting_role  matis_harvester.starting_role  tryker_fighter.starting_role    zorai_fighter.starting_role
fyros_magician.starting_role   matis_magician.starting_role   tryker_harvester.starting_role  zorai_harvester.starting_role
fyros.race_stats               matis.race_stats               tryker_magician.starting_role   zorai_magician.starting_role

Ces datasheets référencent ceux du dossier
« code/ryzom/common/data_leveldesign/leveldesign/Game_elem/Creature/Npc/parent/_basics_3D »
pour les modèles 3D utilisés. Ce qui fait qu'il est facile de changer « l'apparence » de ces races en éditant ces fichiers :
_basics_3D$ ls
_fyros_female.creature  _homin_attack.creature    _karavan_male.creature  _matis_male.creature     _tryker_male.creature   _zorai_male.creature
_fyros_male.creature    _karavan_female.creature  _matis_female.creature  _tryker_female.creature  _zorai_female.creature
Mais voilà, ces fichiers permettent de définir les races de l'écran de création, mais pas d'indiquer au client la liste des races à proposer lors de la création. Je regarde dans le dossier « code/ryzom/common/data_leveldesign/primitives » qui doit contenir  les définitions globales du jeu, mais je ne trouve aucune référence aux mots « fyros », « matis », etc... Alors je me rends du coté du canal #ryzom sur freenode et on m'oriente plutôt vers les fichiers xml de définition des écrans d''interface. C'est à dire dans :
« code/ryzom/client/data/gamedev/interfaces_v3 » qui correspond au contenu du fichier « gamedev.bnp » dans le dossier data du client

Mon but est simple, j'aimerai que nous repartions sur des races à nous. La première étape consiste à virer les races existantes et de n'en garder que 2 ( 2 pour gérer  tous les aspects sélections ) et de diminuer de moitié la taille occupée par les assets des ces classes donc. Après des recherches, des tests, des « segmentation fault » en éditant les fichiers j'ai enfin trouvé la solution. Le fichier concerné s'appelle : « out_v2_appear.xml » qui décrit l'interface de l'écran de création des personnages :

J'ai finalement trouvé ligne 1840 et suivantes les boutons de la race « matis » et « tryker » dans le menu de création. Races que j'ai supprimé (oui c'est arbitraires ces deux races, mais fallait garder les zoraï  pour les PNJ déjà présents, et j'ai un perso fyros sur mon serveur de test *tire la langue* ).

<ctrl style="opt_button" id="fyros_but" posref="TL TL" x="60" y="-88" hardtext="uiCP_Specie_Fyros"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_select_specie|0"/>

<!--  remove the matis and tryker choice for species
<ctrl style="opt_button" id="matis_but" posparent="fyros_but" posref="BL TL" hardtext="uiCP_Specie_Matis"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_select_specie|1"/>

<ctrl style="opt_button" id="tryker_but" posparent="matis_but" posref="BL TL" hardtext="uiCP_Specie_Tryker"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_select_specie|2"/>
-->

<ctrl style="opt_button" id="zorai_but" posparent="fyros_but" posref="BL TL" hardtext="uiCP_Specie_Zorai"
onover="play_sound" params_over="name=specie_but_over"
onclick_l="proc" params_l="proc_select_specie|3"/>


<group id="logos" posref="TL TL" x="28" y="-80" h="380" w="44" >
<view type="bitmap" id="fyros" posref="TL TL" texture="opt_on_fyros.tga" global_color="false" />
<!--
<view type="bitmap" id="matis" posparent="fyros" y="" posref="BL TL" texture="opt_on_matis.tga" global_color="false" />
<view type="bitmap" id="tryker" posparent="matis" y="" posref="BL TL" texture="opt_on_tryker.tga" global_color="false" />
-->
<view type="bitmap" id="zorai" posparent="fyros" y="" posref="BL TL" texture="opt_on_zorai.tga" global_color="false" />
</group>
Au passage je trouve aussi comment ne garder qu'un seul fond, en l'occurence l'appartement fyros pour tous les écrans :

lignes 940 et suivantes :
<!-- Change Landscape -->
<action handler="set" cond="eq(@UI:TEMP:CHAR3D:PEOPLE,0)" params="target_property=ui:outgame:appear:char3d:env:name|value='outgame_fyros.ig'" />
<action handler="set" cond="eq(@UI:TEMP:CHAR3D:PEOPLE,1)" params="target_property=ui:outgame:appear:char3d:env:name|value='outgame_fyros.ig'" />
<action handler="set" cond="eq(@UI:TEMP:CHAR3D:PEOPLE,2)" params="target_property=ui:outgame:appear:char3d:env:name|value='outgame_fyros.ig'" />
<action handler="set" cond="eq(@UI:TEMP:CHAR3D:PEOPLE,3)" params="target_property=ui:outgame:appear:char3d:env:name|value='outgame_fyros.ig'" />

j'ai remplacé les « outgame_XXXX.ig » contenant les nom des fichiers 3D des apparts par ceux des fyros. Cela permettra d'avoir un client encore plus léger.

Résultat



Voila l'écran que l'appart est fyros malgré la création d'un personnage zoraï. De plus le menu de choix des races ne propose que « fyros » ou « zoraï ».

Cependant,  j'ai eu un problème après ces tests :
Citation$ ./khanat_client-2013-12-17
HEY!
XML reading failed!
Interface XML reading failed!
Some XML files are corrupted and may have been removed.
Ryzom may need to be restarted to run properly.
Would you like to quit now?
(Y)es or (N)o ?N
Erreur de segmentation

Systématiquement, mon client plantait lors de la connexion après sélection du personnage. Comme j'avais édité par mal de fichiers lors de mes expériences, j'ai remis une installation de base avec le client open ryzom. Même résultat. Finalement je suis repassé sur l'installation officiel en appliquant ma modification et là plus de plantage.

A priori les datas du client_open_ryzom sont trop anciennes et ne fonctionnent pas avec notre serveur de test. Du coup j'ai  recopié le dossier data du ryzom officile et j'ai supprimé manuellement tous les BNP retirés dans le client open_ryzom Cette fois cela fonctionne. Prochaines étapes, continuer à nettoyer les BNP pour fournir à Za un client occupant un espace minimum pour ceux ayant une bande passante réduite.

Pour les curieux, voila le fichier modifié de l'interface à copier dans le dossier "user" pour obtenir ce résultat ;
out_v2_appear.xml

Note : je n'ai fait que retirer les entrées du menu "matis" et "tyrker", le client continue de charger les données sur ces races pour le moment.
Cliquez pour afficher le message
Le yubo a-t-il le dromadaire pour ancêtre ? C'est une question de fond d'autant qu'il a l'air de survivre dans des environnements aux ressources rares comme le désert. Mais alors où stocke-t-il ses réserves de nourritures et d'eau ? N'aurait-il pas une bosse caché ? Il me fallait une réponse à cette question primordial qui hante mes nuits.

Justement, cette nuit j'ai fait un rêve : les problèmes de formats des modèles 3D, la complexité des scripts de la pipeline de génération des data du jeu, tout cela m'avait fait oublier une vérité fondamentale : les scripts d'export des assets 3D lancent 3dsmax et utilisent une macro pour exporter des modèles 3d. Donc si je laisse de coté toute la partie collision, gestion des animations, lod, etc,  modifier un modèle 3D simple revient à l'éditer sous 3dsmax et cliquer sur le bouton "exporter au format « .shape »" de NEL (un mesh 3d) dans 3ds max.
Est-ce vraiment si simple ? Pouvais-je ainsi zapper toute la machine à gaz de la pipeline graphique pour modifier IG des objets simples ? Il me fallait en avoir le cœur net. Je repense alors à mon questionnement sur le yubo et je me dis que c'est l'occasion ou jamais de vérifier ma théorie sur son arbre d'évolution.

Dans la base des assets 3d libérés de ryzom je retrouve le fichier 3D du yubo :
W:databasestufftrykeragentsmonstersfamilierdagTR_MO_Dag.max
(note : TR => TRyker, MO => MOnster, Dag => nom du yubo dans les assets)
Il me faut vérifier que c'est bien ce fichier qui est utilisé IG sur silan. Je décompile les deux fichiers BNP du dossier data de ryzom «fauna_shape.bnp» et «fauna_skeletons.bnp» avec l'outil «bnp_make»  et effectivement dedans il y a dedans les deux fichiers : «TR_MO_Dag.shape» et «TR_MO_dag.skel».
A présent je passe sous 3DS Max, première étape il me faut trouver la fenêtre d'export du plugin NEL, après quelques tâtonnements je fini par y accéder :



Il me reste à éditer la bosse sur le dos du yubo puis exporter le modèle au format NEL «.shape» ( pour la mesh de l'objet) et au format «.skel» pour le squelette du yubo (il me semble qu'il faut aussi réexporter le squelette, car il doit indiquer les surfaces sur lesquels il agit, et celles-ci ont changé).



J'obtiens les deux fichiers « TR_MO_Dag.shape » et « TR_MO_dag.skel » (https://dl.dropboxusercontent.com/u/208 ... _Dag.shape et https://dl.dropboxusercontent.com/u/208 ... O_dag.skel) que j'ajoute dans le dossier « user » de ryzom. Il ne me reste plus qu'a croiser les doigts et espérer que j'ai eu raison. Je lance ryzom et me connecte à silan, dans la zone de chasse de yubos :



Eureka ! les yubos ont bien les dromadaires pour ancêtres !
Cliquez pour afficher le message
M'intéressant pour le moment à la construction d'un arbre de « stanzas » de combat pour débuter sur khanat, j'ai dû prendre ma feuille de papier et un stylo pour faire des simulations. Les conditions n'étant pas exactement les mêmes qu'en jeu, j'ai simplifié les mécanismes tout en restant au plus proche du fonctionnement réel du jeu de référence ryzom.

  • Chaque joueur dispose initialement de 1000 points de vie notés « PV ». Pour la faune, les PV sont spécifiques à chaque mobs. (Pas de regen automatique de vie en cours de combat).
  • Je découpe la simulation en tranches de 15 secondes. Cette durée me sert d'unité de mesure pour toutes les effets. Exemple les dommages d'une sort de feu correspondent en fait aux dégâts moyen de la stanza sur cette durée de 15 secondes. J'appelle cette unité de mesure « un tour de jeu/simulation ». La durée d'un buff ou d'un cooldown sera indiquée en tours de jeu.
  • Pas de barre de sève ou d'endurance. je parts du principe que chaque stanza est équilibrée (crédit) de manière à ce que la regen IG permette de relancer l'action au tour suivant.
  • Je considère pour le moment 2 équipements : une épée et un amplificateur dont les caractéristiques sont idéales : 100 % (donc aucun bonus/malus sur le calcul des dommages)
  • Les armures/bijoux se définissent en spécifiant un un taux de réduction fixe sur un type de dommage. Exemple, Réduction de 30 points sur les dégâts feu – pas besoin de pourcentage, il n 'y a pas d'augmentation de puissance avec les niveaux, et donc pas besoin de calculatrice)
  • Pas de notion d'esquive/parade pour le moment
  • j'utilise un dé à 6 faces pour tester des taux de réussite sur certaines actions particulières.
  • Pas besoin d'une calculette, à chaque tour de jeu il suffit de soustraire/ajouter la valeur des dégâts infligés ou soins prodigués aux points de vie de la cible. S'il y a équipement, ajouter/retier la valeur de la réduction des dommages.

Note les unités (durée d'un tour, cooldown, portée d'un sort, chance avec un d6...) de cette simulation ont une forte granularité. Cependant IG nous pourrions adapter cela plus finement. Du coup réussir à équilibrer les stanzas avec cette granularité garantie à priori un bon équilibrage IG.

Au niveau simulation, je note sur chaque ligne l'action jouée par chaque protagoniste, en alternant entres eux :

....
Tour 12 :
Liria lance « coup puissant » (DMG 50) sur Pendorid (75PV-50=25PV)
Pendorid lance « Auto-regen Vie » (+200PV, cooldown 5tours), 25PV+200=225PV
Tour 13 :
Liria lance « coup puissant » (DMG 50) sur La Pendo'Cite (225PV-50=175PV)
Pendorid ( 175 PV) lance « Vole de dentelle » (DMG 100, Cooldown 5tours)  sur Liria (100PV-100=0PV) =>Fin du combat.


Au final simuler ainsi sur papier est très similaire à poser à chaque fois sur la table la carte de la stanza jouée. Alors pourquoi ne pas en faire plutôt une version « Jeu de carte à collectionner » ? L'intérêt me paraît évident :
  • C'est plus amusant de tester avec un jeu.
  • On pourrait jouer les uns contre les autres via IRC/Forum et donc tester l'effet d'une nouvelle carte notamment en pvp ou en jeu d'équipe.
  • On peut aussi tester les combats contre chaque mobs qui a ses propres stanzas (cartes)
  • J'imagine un chemin initiatique : vaincre un mobs permet d'obtenir une nouvelle carte, qui va nous aider à combattre un nouveau mobs. Ainsi toutes les 2 semaines par exemples on essaye d'introduire une nouvelle carte, et donc inventer l'arbre des compétences en jouant aux cartes.

Partant de cette idée, j'ai donc tenter de reformuler cette simulation sous la forme d'un Jeux de Cartes à Collection.
( A suivre )
Cliquez pour afficher le message
J'ouvre ce post pour faire un résumé de réflexions sur un projet d'arbre de compétence et de stanzas de combat

Pour se replacer dans le contexte, je fais référence à un MMO sans pexe et sans niveau. (voir le post : viewtopic.php?f=20&t=115 et le brouillon de sa synthèse http://khaganat.ninm.net/khamag/brouill ... _sans_pexe ), c'est à dire :

  • Plus de pexe : on remplace le farming des points d'expérience pour l'acquisition des sorts par une approche exploratoire du monde pour acquérir ces mêmes sorts/stanzas
  • Plus de niveau : c'est une évolution horizontale, le joueur va à la pêche aux stanzas  explore de plus en plus profondément le jeu, afin de découvrir de nouvelles actions. Ces stanzas, donc compétences, sont nécessaires pour s'enfoncer plus profondément dans les territoires [ces compétences simulent donc la notion de niveau]
Ma réflexion portait sur les stanzas de combat. j'ai mis de coté volontairement toutes les autres briques (métier, forage, etc...). Le point de départ de cette réflexion est  « comment construire un système de briques de combats viable sans notion de niveau  ».


Quelques pistes pour un systèmes de stanzas tactiques

Les capacités de dégâts des joueurs étant semblable initialement, ce qui va les distinguer c'est leur
 capacité à profiter de situations tactiques pour prendre l'avantage sur l'adversaire.  Le but ici es de ne pas ajouter des briques augmentant directement la puissance des « dégâts » . Sinon on retombe dans le travers de l'association de la puissance au niveau cité dans l'article sur le pexe :

« Un joueur niveau 100 ne connaissant rien aux mécanismes du jeu dans ryry mais spammant l'action [attaque automatique] vaincra par la simple règle de l'arithmétique des chiffres un joueur niveau 50 très bon stratège maîtrisant toutes les ficelles du jeu. Le mécanisme de pexe indexe la puissance d'un avatar sur la propension du joueur à passer du temps à farmer, reléguant l'aspect tactique aux calendes grecques et favorisant l'approche force brute. Ce même principe d'indexation de la puissance du joueur sur le « farming » confine le joueur causal au rôle de simple figurant dans lors des événements ou de tournois pvp du fait de son manque de puissance effective. »
[ source : http://khaganat.ninm.net/khamag/brouill ... _sans_pexe ]

Il me semble normal qu'un joueur qui s'engage et passe du temps à découvrir des stanzas, s'équiper ou comprendre les mécanismes du jeu soit plus fort qu'un joueur causal. Toutefois, gagner un combat ne dois pas être automatique. L'investissement du joueur doit être récompensé mais doit cependant permettre au joueur causal d'avoir une chance de gagner. Comment obtenir ce résultat ? Voici quelques idées :

  • point 1 : une action doit fournir des « points d'accroches » au joueur : c'est  à dire avoir un effet significatif en combat lui permettant de bâtir une stratégie sur son utilisation
  • point 2 : le gain de puissance induit par l'action ne doit pas être automatique et doit laisser à l'adversaire des solutions d'évitement
  • point 3 : les sorts doivent déployer toute leur puissance dans un cadre coopératif.

Pour illustrer ces principes, je vais détailler dans un contexte ryzomien un sort « tactique » inspiré du jeu dofus « Colère de Iop ». Anciennement le sort se définissait ainsi  : Colère de Iop inflige des dégâts de type terre monstrueux au corps à corps avec un risque d'échecs d'une chance sur deux. Ce sort rendait cette classe cheatée pour tanker et mortelle au corps à corps. Pas de possibilité d'évitement pour l'adversaire sauf prier pour le ½ chance d'échec du sort.

Ce sort à été modifié et sa nouvelle formulation ryzomienne pourrait être ainsi :

« Le sort génère une aura qui quadruple les dégâts de l'arme de corps à corps entre la 30e et la 60e seconde après son lancement. L'utilisation de l'arme de corps à corps avant la 30s seconde annule l'effet de l'aura. [Cooldown à définir et coût en crédit afin de limiter le spam d'un tel sort] »

Ce sort fournit un point d'accroche clair (point 1). Cependant cette nouvelle formulation, fait que le gain de puissance du sort n'est pas automatique pour le joueur.  Il doit anticiper et s'assure de pouvoir bloquer l'adversaire au corps à corps à l'instant de l'effet du boost (point 2). De même l'adversaire informé par un effet visuel [ une aura de colère autours du lanceur ] et le délai avant l'effet du boost à la possibilité de tenter de mettre en œuvre une parade (point 2). L'aspect coopératif n'est pas le point fort de ce sort même si dans un jeu en équipe les autres joueurs interviendront soit pour faciliter le blocage ou au contraire la fuite de la cible

A présent étudions un autre exemple inspiré du jeu dofus :

Soit les deux actions :
  • Furie : triple les dégâts avec une arme pendant 1 minute mais réduit la vitesse de déplacement de 2/3 pendant cette même période
  • Souffle : repousse en ligne sur une distance de 5m au maximum un joueur au corps à corps

Imaginons un Roi avec ces deux actions. Sur papier le second sort ne sert strictement à rien. Il ne génère aucun dégât et est même handicapant vu le contexte. Quand au premier sort, même s'il augmente sur papier la puissance du roi, il est clair qu'une stratégie d'attaque à distance permet d'éviter facilement le désagréable effet de ce sort, surtout vu la vitesse réduite du mobs.

A présent imaginons que ce Roi soit accompagné de gardes et qu'il est situé dans un lieu fermé. Retirons le sort « Souffle » du roi et attribuons le à ses gardes. Sur papier, ces gardes n'ont aucun pouvoir, et ne font aucun dégât. Mais la combinaison de ces deux sorts est mortelle pour un joueur qui s'aventure sans anticiper son placement face au roi. Il devra veiller à ne jamais se positionner entre un garde et le roi sous peine d'être poussé par le sort souffle contre le roi et subir les dégâts de l'attaque « Furie ».

Ici nous avons ce qu'on appelle dans le jargon des joueurs un « combo ». C'est une combinaison d'actions dont l'effet combiné est plus élevé que la somme des actions prises séparées. Formulé autrement ce sont des actions en « synergie ». De plus ces actions poussent à la coopération (point 3): sur un même joueur ces deux actions ne servent à rien, mais sur des joueurs différents elles deviennent complémentaires. Notons aussi  que l'actions « Furie » offre un effet clair (point 1), mais demande d'anticiper le placement pour en profiter (point 2) et permet par là à l'adversaire de trouver des solutions de parade.



Première conclusion

L'arbre des stanzas ne doit pas être une course à la puissance. Si on introduit des actions puissantes, elles doivent être contrebalancées par des contraintes équivalentes sur leurs utilisations pour respecter le point 2. La part belle doit être faite aux actions de soutiens, et nous disposons justement sur ryzom d'une liste assez longue de stanzas non ou peu exploitées :
  • coups ciblés
  • attention
  • sorts vampiriques
  • sorts débilitants
  • etc...

On pourrait croire qu'elles ne fournissent pas de « point d'accroche »  suffisant pour les exploiter en jeu et qu'il faudrait les rééquilibrer. Je pense qu'en fait la notion de niveau avec l'augmentation automatique de la puissance fait qu'il est plus intéressant d'acheter le sort de niveau supérieure que d'exploiter ces stanzas là. Sauf que dans un jeu avec niveau unique, les 10 % de puissance supplémentaire induite pas ces stanzas devient tout a coup relativement important.

( A suivre )
11 Septembre 2013 à 16:56:31
Cliquez pour afficher le message
Depuis des heures assis à la lisière de la jungle, il surveillait l'incessant cycle des déferlantes des Brumes.
Soudain il courut sur ce rivage du bout du monde, se pencha et empoigna la tablette brillante.
Le cœur battant il plongea dans la jungle avant le retour du mortel ressac. Là, il essuya et admira sa prise,
abaissant un instant sa garde. Aubaine pour un n'jébé affamé...



(cf. Le message sur la Mediateki)

Spoiler for Hiden:
pamoiprula'i **


Sur le mont du Rêve,
terre assaillie de Brumes,
l'automate rêveur farouchement campé,
surveille songeur l'irrésistible avancée.

L'entropie, séide des Brumes,
accumule victoire et succès.
Le  monde s'éteint,
asphyxié d' incertain.
Les Rêveurs se sont égarés.
Isolés, les Brumes les ont dévorés.
Puis leurs projets dévoyés,
leurs songes essoufflés,
 d'un autre monde engendrés,
le Rêve s'est disloqué.

Dernier à s'attarder,
son devoir lui est connu.
Ses yeux se décillent,
Il s'éveille au non-être,
afin d'accueillir  lirr'ia
et le néant sera.


** (signfie dernier-premier en lojban)
23 Août 2013 à 02:39:19
Cliquez pour afficher le message
Je profite de ce message pour revenir sur le projet « khanganat » et l'aborder au travers d'un rêve alternatif. Pour rappel, et cela n'est sans doute pas si évident que cela, « khaganat » n'est pas un projet de MMORPG. Même s'il en est le principal composant et le point de départ initial, très tôt nous l'avons envisager comme un méta projet, un lieu de créativité.  Le sujet Organisation du projet Khaganat tente justement d'énoncer ce principe via   un diagramme qui replace le MMO à sa place dans ce méta projet et ouvre le champ à des formes artistiques, des inspirations ludiques qui peuvent s'insérer dans ce monde :

Citation« Khaganat est un méta-projet, une graine originelle pour la construction d'un univers ludique et libre, un lieu fédérateur pour une communauté de créatifs désirant créer un monde  ouvert dans sa formalisation, dans ses outils de création et de conception mais aussi dans la mise à disposition de l'univers ainsi développé. Khaganat ambitionne également de permettre aux contributeurs d'utiliser ce qu'ils veulent du monde de khaganat dans leurs travaux propres, et faire fructifier à titre personnel leur investissement, en toute liberté. »

En un sens, c'est un projet très ouvert, et ce qui le délimite plus que le sujet (le background de l'univers),  c'est une philosophie, une vision éthique de ce monde et son rapport au libre. Cet aspect, nous avons tenté de le formaliser dans une charte commune. C'est une réflexion qui est toujours en cours. N'hésitez pas à donner votre avis, mais disons qu'elle tourne autours de deux thèmes : la mouvance « libre » et « l'exploitation de nos données personnelles et vie privée » dans le cadre la société numérique. C'est dire que « khaganat » dépasse de très loin le simple cadre d'un MMORPG.


Bref je vais enfin aborder le sujet réel de ce message. Le projet khaganat est vaste et nous avons tous envie de le lier à nos centre d'intérêts, parfois aussi à nos activités professionnelles. Et un point fondamental dans ce cadre est l'écriture. Le projet est donc  l'occasion pour certains de raconter des histoires, d'envisager des sagas autours de cet univers et ainsi de l'enrichir.
C'est ainsi que replaçant l'écriture au centre du projet je propose de l'aborder sous deux angles :

  • l'angle littéraire : l'écriture comme art prélude à khaganat ;
  • l'angle informatique : les outils d'écriture.


PARTIE I : L'écriture, un art au service  de l'univers khaganat


L'écriture d'histoires participe autant à la construction du monde que la réflexion sur le background, l'invention d'éléments de la Lore. Les histoires enrichissent la Lore qui en retour  fournit matière à de nouvelles histoires. Ainsi dans ma vision, « Univers » et « Histoires » sont intimement enchevêtrés, et se co-construisent.

La littéraire n'est évidement pas la seule manière de bâtir un tel univers. Il existe bien d'autres formes d'expressions toutes aussi légitimes : les esquisses, rough, illustrations, images de célestia, musiques, vidéo, gameplay,  ... etc. Si je le mets en avant, c'est qu'avant tout, les histoires sont un des ciments qui nous a attiré vers ce projet et c'est sans doute aussi la forme la plus *démocratique*  d'art : un crayon, du papier, de l'imagination, beaucoup l'huile de coude et un fragment d'univers surgit  mot après mot, l'esquisse s'affine, les contours prennent corps au rythmes des phrases pour donner vie aux rêves les plus fantastiques.

Les histoires constituent une manière ludique d'aborder l'univers de khaganat. Plaisir du lecteur qui découvre notre monde, mais aussi, et c'est un des buts de ce projet, amener celui-ci à devenir acteur de cet univers, passer du statut de bouquineur passif à créateur : prendre plaisir à donner vie aux créations de son imagination, faire partager son plaisir des histoires aux autres, et pourquoi pas, en vivre ?

Cette réflexion m'amène à l'idée que dans le cadre de notre projet, nous ne pouvons faire l'impasse sur cet art  (je ne dénigre pas les autres formes d'expressions, c'est simplement que c'est le plus facile pour moi ; celui que nous maîtrisons le plus à mon sens). De même que dans le cadre du MMORPG nous avons envisagé de fournir aux joueurs des outils pour co-créer le monde, l'animer, il me semble nécessaire de réfléchir aux outils à même d'aider les auteurs à ajouter leur briques à khaganat ou tout autre projets, vu que nous sommes dans une démarche « libriste ».

C'est donc tout naturellement que l'idée d'organiser un atelier d'écriture est venue sur le tapis. Hors le khanthon a été pensé dans cette optique, discuter en groupe d'un sujet commun, mais aussi organiser des sessions d'apprentissage : visite du serveur de jeu de l'intérieur, session de découverte du lojban, et pourquoi pas, une soirée d'exploration du monde fascinant de l'écriture ? Mais quelle forme pourrait prendre cet atelier ? Comment l'adapter à nos outils de communication : l'irc, les pad ... etc ? Et surtout, quel serait son contenu. Il vient naturellement à l'esprit des idées comme parler des principes d'écriture, des pièges à éviter, des trucs et astuces de la profession. Pas forcément un atelier avec une approche professoral, mais plutôt un lieu de discussion et d'échange sur ce thème.   Un atelier pour inciter tout et chacun à s'emparer des formes d'expression que représente les écrits. Pour citer yannk : « On peut tous être créatifs, et écrire est à la portée de beaucoup de gens. Peut-être pas tous des romans mais chacun son style de texte ».

Cependant aborder un tel sujet sous cet angle, c'est oblitérer tout la philosophie derrière ce projet. C'est sous exploiter sa dimension communautaire. Et d'ailleurs pourquoi faire un tel atelier ? Il existe des guides sur ce thème disponibles sur le web, des « master class » d'écriture réalisés par des auteurs célèbres. Justement en consultant une page de conseils aux écrivains en herbe de Bernard Weber je tombe sur ce paragraphe :

Citation...Le principal problème de l'écriture, c'est que c'est un acte solitaire absolu. On est seul avec sa feuille et soi même. Si on a rien à dire aux autres ni à se dire à soi même, l'écriture ne va que vous faire mesurer ce vide intérieur...

Cela me fait réagir. Je ne prétends pas savoir mieux qu'un auteur vivant de son travail  ce qu'est la solitude de l'écriture. J'ai cependant la prétention de croire que notre vision peut changer ce paradigme. Construire l'univers de khaganat via des histoires n'est pas un acte solitaire qui se fait dans son coin. Ce monde est un univers communautaire, collaboratif et ouvert. Cela à mon sens change la manière d'approcher l'écriture. Tout d'abord dans l'échange d'idées, les discussions autours  du monde, son invention qui n'est plus l'œuvre d'une personne. Il n'est plus possible d'attribuer la paternité d'une idée à quelqu'un. Chaque échange avec les autres, chaque questionnement, nous  permet de faire vivre et évoluer notre vision du ce monde, le peupler d'êtres. L'écriture éminemment solitaire devient indissociable de cette réflexion collective. C'est cette approche de l'écriture que j'aimerais questionner, qui pourrait être le centre d'un tel atelier :

  • Comment écrire sur un monde qui nous ne appartient pas
  • L'écriture à plusieurs mains : pistes et erreurs à éviter
  • etc...

L'atelier ou le khanahton n'aurait pas pour vocation de répondre à ces questions, mais plutôt de poser un cadre pour débattre de ce sujet. La thématique reste à  défricher car là encore je pense que notre expérience est peu commune, encore que l'expérimentation de Zatalyz sur l'écriture d'histoires à plusieurs mains est importante pour ce thème. Indirectement le questionnement sur la licence pour nos publications, et nos réticence à permettre à d'autres de s'approprier nos personnages est en rapport directe avec cette problématique de co-écriture d'un univers commun. Comment construire un univers libre que chacun peut s'approprier et changer à sa guise tout en respectant l'œuvre des autres ? L'idée d'une charte d'écriture émise lors de nos discussions sur les licences de médiatéki est une piste qui me semble prometteuse.

Au final pour résumer cette première partie en quelques phrases :
  • Khagamat est un méta projet, un univers communautaire, un lieu d'expression artistique ou d'inventions ludiques comme le MMO Khanat.
  • L'écriture d'histoire est un élément important dans la construction de cet univers
  • Réfléchir à un atelier d'écriture ou comment s'approprier ce  moyen d'expression (ou d'autres) me semble pertinent dans le cadre de ce projet,
  • Écrire sur l'univers Khaganat est particulier car cela s'intègre dans une démarche de construction communautaire. C'est un terrain nouveau à défricher

( *regarde l'heure* : pour la seconde partie, cela attendra quelques jours ;) )
10 Juillet 2013 à 10:47:54
Cliquez pour afficher le message
Le canal #khanat et le lieu privilégié des discussions et des débats sur les thèmes du l'univers khaganat. Dans un monde idéal, cela devrait être suivi d'une synthèse immédiate sur le forum ou d'un article sur le wiki. Cependant la réalité est tout autre : impératifs IRL,  manque de recul,  discussion inachevée qui demande encore de la la réflexion, etc. Il y a bien des raisons justifiées ou non qui font que cela relève le plus souvent de l'utopie. Le cas le plus flagrant est sans doute l'émergence d'une idée qui va se matérialiser par des palabres, critiques, contre-propositions étalées dans le temps.Cependant à un moment, il s'avère nécessaire de formaliser cela, de fixer les idées sur papier afin de pousser plus loin la réflexion. C'est à ce moment que l'on se retrouve devant un choix cornélien :  relire plusieurs semaines ou mois de log pour retrouver les échanges pertinents, ou partir sur ses souvenirs propres qui souvent sapent dans les idées et propositions des autres.

Ce que je propose c'est de tenir à jour un petit fichier d'index sur dropbox "FreeNode-Khanat-Signets.txt". Une petite ligne par sujet  nous rappelle quand une discussion importante sur le thème a eu lieu


Citation de: "Freenode-Khanat-Signets.txt"* 09/07/2013 [après midi et soirée] Les noms (cognomen) des mobs
* 09/07/2013 [soirée] le niveau des mobs / jeu tactiques et stanzas

Cela ne demande aucun effort de concentration, prend à peine 30s de notre temps et peut nous aider dans le futur.
Note : si une idée a émergé la soirée du 09/07 mais qu'on ne l'a pas noté car nous n'avons pas perçu immédiatement son importance, si nous en reparlons les jours suivants, rien n'empêche d'ajouter une ligne à posteriori  dans ce fichier.
Cliquez pour afficher le message
Synthèse du khanathon du 28/06/2013

Le khanathon a démarré avec la question initiale de Zatalyz : « quelles sont les fonctionnalités dont nous aurions besoin sur le forum khanat/khaganat ? » mais a immédiatement dévié sur un aspect technique suite à la remarque de Yannk : « quels sont les contraintes et limitations pour intégrer ces applications web en jeu via le webig ? ».


La fenêtre WebIG  (CTRL-K) du client ryzom  est tout simplement un mini-navigateur implanté dans le code du jeu et basé sur la bibliothèque « libwww ». Cette fenêtre de navigation ne possède pas de zone de saisie des URL (barre d'adresse) et charge par défaut la page « app.ryzom.com ». L'ajout de nouvelles applications proposé par l'écran de configuration du WebIG, consiste tout simplement à donner l'url d'un nouveau site.
Note : Si vous voulez vous amuser à naviguer sur le web via le WebIG, il suffit pas exemple d'ajouter le site google.com dans les applications afin de pouvoir vous passer de la barre d'adresse mais atteindre malgré tout n'importe quelle site référencé par le moteur de recherche.

Une application dédiée ryzom ou plus concrètement un site web conçu pour ryzom profite du fait que le client ryzom transmet à chaque requête URL vers le site des informations sur l'identité du joueur IG.  Il peut donc fournir  des fonctionnalités dédiées au joueur : messagerie IG, forum, métier, etc. Cette application web doit également pourvoir détecter si la connexion se fait en dehors du client de jeu (nom du navigateur et absence de l'identifiant du joueur dans la requête) pour  demander à l'internaute de s'identifier via un compte joueur.


Cependant si nous voulons intégrer les sites web que nous développons pour le projet  dans le client   de jeu, il faut prendre en compte les limites de mini-navigateur.

Le mini navigateur web inclut dans le client ryzom est construit sur la librairie « Libwww » (http://www.w3.org/Library/). C'est (ou c'était?) la librairie officielle du consortium W3C pour fournir les fonctionnalités analyse du cote HTML et de communication réseau pour construire un navigateur web. Cependant cette librairie date de 1999 et sa dernière MAJ date de janvier 2004. De fait elle ne reconnaît que le format HTML 4 et fournit un support très limité pour le CSS. De plus javascript n'est pas pris en compte du coup chaque page est statique ce qui nous renvoie à des technologies préhistoriques  pour le web.

Voila les contraintes à prendre en compte. De fait utiliser un application web et la rendre disponible IG implique :
  • modifier les thèmes/feuilles de style pour n'utiliser que la nome HTML4/CSS1
  • exploiter l'identifiant du joueur fournit par le navigateur pour auto-connecter le joueur sans lui demander de s'identifier
  • faire une croix sur le confort d'utilisation lié à la l'intégration de javascript.

Notes :
  • Si l'application web  se base sur javascript pour ses fonctionnalités de base (et non pas juste une amélioration du confort) (cf. point 3), alors on peut éliminer cette application, elle n'est pas compatible webig.
  • le point (1) n'est pas si rédhibitoire, après tout le thème/sytle devra de toute façon être revue pour harmoniser l'aspect visuel de toutes les applications WebIG.
25 Juin 2013 à 15:04:23
Cliquez pour afficher le message
Bonjour, avec l'augmentation du nombre de participants sur le canal #khanat, je me dis qu'il est peut être pertinent de rappeler quelques règles de bon sens dans ses relations avec les autres. En m'inspirant des idées de la "dynamique sociale de Debian", je vous propose une charte pour le canal IRC :

Le canal #khanat est le lieu premier d'échanges sur le projet khaganat. C'est le média privilégié pour apprendre à se connaître dans le respect de chacun. C'est assurément l'endroit attitré pour poser vos questions et solliciter l'aide sur des problèmes que vous n'avez pu solutionner seul(le). Mais c'est également le germoir à idées, le terrain idéal pour une première analyse. Un lieu où confronter vos idées et profiter des visions plurielles des  autres pour vous enrichir  et ainsi pousser plus loin votre propre réflexion.  Afin de faire de ce canal un endroit agréable où il fait bon vivre et débattre, voici quelques rappels de bon sens :

  • La civilité est l'essence de rapports agréables :
     
    • La courtoisie est de mise dans tous vos échanges.
       
    • Le respect de la vie privée de chacun est un élément fondamental.
       
  • Nous sommes tous bénévoles :
     
    • Ainsi vous ne pouvez requérir d'une autre personne qu'elle réalise un travail pour vous.
       
    • Et comme dans tout projet libre, si vous voulez que quelque chose soit fait, c'est à vous de montrer l'exemple.
       
    • Vous devez faire preuve d'autonomie, l'attention des autres est une ressource rare, chacun ayant par ailleurs une vie privée en dehors du projet.
       
  • Le plaisir à bâtir un univers ensemble est la force motrice du projet :
     
    • Prêtez attention aux contributions des autres, en plus de motiver chaque participant,  vous vous enrichirez mutuellement de ces échanges.
       
    • Vos contributions n'ont de sens que si les autres les apprécient, alors penchez-vous sur les remarques, elles visent à vous faire donner le meilleur de vous même.
       
    • Chacun peut apporter sa contribution, que ce soit corriger une virgule dans un texte ou aider à configurer un forum... Tout compte !
       
    • Contribuer c'est  aussi être un moyen d'apprendre de nouvelles choses : apprendre le lojban, à raconter des histoires, utiliser un wiki, etc...
       

[Edit Yann: Coquilles corrigées]
23 Juin 2013 à 16:08:15
Cliquez pour afficher le message
Le but de ce sujet est de synthétiser via un schéma l'organisation  du projet Khaganat afin d'aider les participants à s'y retrouver. A terme l'idée est d'en faire une un image intégrée à la page de présentation, une image épurée et cliquable qui nous redirigerait vers la bonne page : forum, wiki, etc...

Avertissement : Le schéma ne reflète pas l'organisation actuelle mais définit plutôt un idéal. Aujourd'hui les présentations des wiki sont intimement lié au projet de Jeu MMO qui est  l'instance de notre univers. Cependant cet univers a été imaginé pour servir de germe à des créations artistiques et ludiques de toutes natures. Au travers de ce schéma le but est  justement d'abstraire cette idée d'univers du jeu khanat (MMO).


Vision: Khaganat est un méta-projet, une graine originelle pour la construction d'un univers ludique et libre, un lieu fédérateur pour une communauté de créatifs.

Pour présenter « khaganat » j'ai repris l'approche  du wiki : découvrir,contribuer, organiser


  • Découvrir / Jouer : il s'agit d'une vision externe, celle d'une personne découvrant khagant au travers des aspects ludiques : lecture des histoires, le monde MMO, etc.
  • Contribuer / Participer : l'étape suivante pour notre curieux lecteur/joueur  pourrait être de prendre une part active à la construction de l'univers. Cette section tente d'identifier les projets en cours et l'oriente vers les pages wiki correspondantes
  • Organiser / Administrer : cette section permet d'identifier les outils sur lesquels s'appuie le projet et renvoie également vers les pages de configuration / installation / aide pour ces outils.






Note : l'image SVG pour édition est disponible sur dropbox dans le dossier Media : khagant-meta-projet.svg
08 Mai 2013 à 15:43:45
Cliquez pour afficher le message
Bonjour
Voici une petite histoire qui sert d'introduction à une Lore alternative et une proposition de GamePlay.
Je posterai cette seconde partie un autre jour.

=======


[fragment]
Je cours à en perdre haleine.
Mes poumons me brûlent, mais je ne peux, je ne veux m'arrêter.
Mon cœur bat à la chamade.
J'arrive à peine à respirer et mon sang qui se glace dans mes veines.
La peur, la terreur me noue ma gorge me donne des ailes.

[flash-back]
Que n'avais-je pris la fuite à ce moment ? Ce regard aurait dû m'alerter, mais déjà l'instinct de chasse avait pris le dessus. Pourquoi n'avait pas compris, que c'était moi la proie ? Au lieu de cela, émoustillée par le délicieux spectacle, mes yeux détaillait son corps, remontait vers son visage.  C'est alors que je constatais, à mon grand effroi, que son regard était figé dans le mien. L'instant d'un éternité, j'eus l'impression d'être un livre ouvert. J'aurais dû fuir, mais j'étais hypnotisée par ses lèvres sensuelles qui s'approchaient de moi et me murmurèrent : « sauvez-moi ! ».

[fragment]
Je cours encore et toujours
Il faut me faut fuir, loin de cette chose.
Je dois me perdre dans les dédales.
Mais ne suis-je pas déjà perdue ?
Mais pourquoi l'avais-je écouté ?
Pourquoi ne l'ai-je pas écouté ?

[flash-back]
Qui connais les limites ? Qui sait jusqu'où l'horreur peut aller ? Où commence et finit les frontières des brumes ? Des événements anodins peuvent y prendre une toute autre dimension. Des événements insignifiants peuvent s'y révéler terrifiants. Certaines vérités doivent rester secrètes. Mais son regard avait abattu mes barrières l'une après l'autre. Mon cœur battait à tout rompre et les brumes du désir obscurcissait déjà mon jugement. Je n'avais plus la force de lui résister, de résister au puissant appel de mes sens, à son étau voluptueux sur moi. J'étais piégée dans ce rêve sensuel, toute volonté anesthésiée. Je l'aurais suivi jusqu'aux mines de sel de Salargug. L'enfer surgit de là où on l'attend le moins, de ses lèvres sensuelles, de sa voix érotique qui écartera le voile des brumes interdites, me révélera le cauchemar dans toute sa clarté.


[fragment]
Mon souffle est heurté, erratique.
Je cours sans ralentir.
Mes jambes me cuisaient,
Mes pieds se font lourds.
Mais je ne m'arrête pas.
Je ferme les yeux.
Je continue, encore, toujours...

[flashback]
Je buvais ses paroles comme du lait de branaz. Son obsession, son cauchemar n'étaient pour moi qu'un prétexte à ma quête ardente. Ses lèvres me parlaient de sa phobie des miroirs de passage, de ces Ra's qui devenaient soudain autres. Alors je pressais sa main dans la mienne, frémissant au contact de sa peau. Ses yeux exprimaient toute l'horreur de découvrir la « possession ». J'y plongeais  mon regard possédée par toute autre chose, perdant toute raison, tous mes repères de bienséances. Son corps tremblait à l'évocation de ces créatures maléfiques venant d'au-delà des brumes. Je me rapprochais davantage, augmentant encore mon trouble, sentant ma gorge se nouer.  Saisissant soudain mon état, ses phalanges se crispèrent sur mon bras, me tirant, m'emmenant voir « la vérité ». Pourquoi n'ai-je pas su retenir sa main ? Pourquoi l'avoir suivi ?


[fragment]
Je cours sans savoir où je vais, yeux fermés, tête baissée, tête blessée.
Je cours à en perdre haleine.
Je cours pour me vider les pensée.
Je m'essouffle pour voiler la douleur.
Je cours pour ne plus penser à ces larmes qui voilent mon regard.

[flashback]
Je sentais tout son être frémir d'angoisse, crier son désir d'être ailleurs, mais ses yeux scrutaient implacablement les Ra's alentour à la recherche d'un signe obscur pour moi. L'emballement du bramaz nous surprit, projetant son corps contre le miroir de passage. Ses mains s'accrochèrent de  désespoir à là rampe sans empêcher l'énergie du miroir de les traverser un instant. Ses yeux croisèrent à nouveau mon regard. Derrière ses pupilles brûlait une autre flamme. Je faisais face à son cauchemar. Je faisais face à présent à mon cauchemar. Ces yeux me fixèrent et je su que cette créature avait pris son être, me connaissait à travers son esprit, me voulait.


[fragment]
Maintenant ils savent.
Ils savent pour moi.
Je suis la seule, la dernière à  savoir.
A présent c'est moi la proie...
C'est moi qui cours à perdre haleine
Je les sens si proche.
Je sens cette chose collée à moi.
Je suis à bout souffle mais la rage m'anime.
Je fais face et crie :
Vous êtes avide de ma vie.
Vous vous nourrissez de mes sensations.
Vous ne ferez pas de moi une marionnette.
Vous ne ferez pas de moi un pantin désarticulé.
Je ne vous laisserais pas tirer sur les fils,
Vous...

...Votre connexion sur le serveur de jeu est Ok.
Votre avatar est sous contrôle.
12 Avril 2013 à 10:42:42
Cliquez pour afficher le message
Dans une chorégraphie stylisée, il se déplace sur cette scène chargée. Évitant les obstacles, il se penche, distribue sourires et paroles, puis reprend sa danse incessante. Installée sur la terrasse du café, j'admire ses jambes longues et élégantes, ses bras vigoureux, et sa tenue immaculée de serveur en livrée blanche. Nos regards se croisent. Ses grands cils font ressortir ses prunelles sombres et profonde. Il s'approche de moi un sourire aux lèvres. C'est alors que la question fuse sans que je puisse me retenir : «Aimez-vous la petite reine ? ». Sa bouche s'entrouvre de surprise. Embarrassée je fixe ses yeux, ses pupilles d'un noir de jais. Prise d'un brusque vertige, j'ai l'impression de me noyer dans son regard interrogateur. Je chancelle, puis tombe pour me réveiller subitement la tête affalée sur le table.  Je jette un œil vers le parallélépipède rouge et noir qui trône sur le bureau. Quelles associations d'idées ont pu me faire rêver d'un serveur tournant à la force, des mollets, d'un homme pédalant pour maintenir le serveur à flot ? Je secoue la tête, il est temps que je me replonge dans la configuration de cet autre serveur : ryzom core.

A suivre.
08 Février 2013 à 01:49:25
Cliquez pour afficher le message
janv. 31 13:01:22 <Liria>   Bonjour, j'ai une petite question si cela ne te dérange pas sur le package object_viewer_qt que tu proposes  dans la liste de binaires windows sur dev.ryzom.com ?  J'ai le message au lancement (après une installation sur windows 7 64bits) : ovqt_plugin_landscape_editor_r.dll : Cannot load library C:/Program File (x86)/Object Viewer QT/plugins/ovqt_plugin_landscape_ditor_r.dll: Le module spécifié est introuvable.
Hors la dll est là avec celles des autres plugins, as tu une idée de l'origine du problème ?

janv. 31 13:07:05 <Molator>   salut
janv. 31 13:08:05 <Molator>   on va vite savoir :)
janv. 31 13:08:08 <Molator>   c'est bon
janv. 31 13:08:18 <Molator>   pour les modules
janv. 31 13:08:28 <Molator>   il faut que les dll soient dans le dossier plugin
janv. 31 13:08:35 <Molator>   et chaque module doit avoir un fichier xml de version
janv. 31 13:09:43 <Liria>   C'est le cas
janv. 31 13:09:54 <Molator>   il y a un module que je n'avais pas mis
janv. 31 13:10:00 <Liria>   et le fichier xml contient le bon nom
janv. 31 13:10:03 <Molator>   parce qu'il plante ovqt si les subst ne sont pas définis avant
janv. 31 13:10:16 <Liria>   ah
janv. 31 13:10:25 <Molator>   je relis mon post
janv. 31 13:10:58 <Molator>   http://dev.ryzom.com/projects/ryzom/wik ... ortWindows
janv. 31 13:11:28 <Molator>   non c'est pas celui la
janv. 31 13:11:33 <Molator>   ca devrait fonctionner
janv. 31 13:12:55 <Liria>   Oui là j'ai utilisé ton installeur directement
janv. 31 13:13:00 <Molator>   c'est sans doute lié aux dernières versions
janv. 31 13:13:03 <Molator>   ah
janv. 31 13:13:06 <Molator>   c'est ma version que tu testes ?
janv. 31 13:13:13 <Liria>   oui
janv. 31 13:13:24 <Molator>   je l'ai compilé sous xp
janv. 31 13:13:32 <Molator>   je teste sous 7 voir si j'ai le même souci
janv. 31 13:13:57 <Molator>   j'ai le même message
janv. 31 13:15:08 <Molator>   je regarde les dépendences du plugin
janv. 31 13:15:24 <Molator>   c'est en général directx
janv. 31 13:15:56 <Molator>   on utilise directx 9 mais semble-t-il sous 7, directx 11 qui inclut le 9 10 et 11, a des différences
janv. 31 13:15:59 <Molator>   enfin pour 7
janv. 31 13:16:20 <Liria>   O_o oui en effet
janv. 31 13:18:55 <Molator>   en attendant que je sache pourquoi c'est pas 100% compatible tu peux enlever ce plugin, si tu t'en sers pas
janv. 31 13:19:02 <Molator>   sinon il faut tout recompiler sous 7
janv. 31 13:19:38 <Liria>   oui, c'est jutement le plugin que je voulais tester :)
janv. 31 13:19:48 <Molator>   ah ;)
janv. 31 13:19:51 <Liria>   Bon je vais voir du coté de georges qt alors
janv. 31 13:20:20 <Molator>   j'étais sous xp 64 pendant longtemps
janv. 31 13:20:35 <Molator>   et depuis que je suis sous 7, j'ai pas pris le temps de réinstaller mon environnement de dev
janv. 31 13:20:52 <Molator>   vs2008 refuse de s'installer, je pense que je vais travailler avec des VM
janv. 31 13:21:23 <Liria>   VM pour compiler ?
janv. 31 13:21:31 <Molator>   oui
janv. 31 13:23:00 <Molator>   dès que je bricole j'ai des surprises pour compiler :)
janv. 31 13:26:00 <Molator>   le plugin utilise qtopengl4.dll
janv. 31 13:26:05 <Molator>   que j'ai pas inclus dans mon package
janv. 31 13:26:15 <Molator>   j'oublie souvent que j'ai les dll quand je compile
janv. 31 13:26:36 <Molator>   je teste avec
janv. 31 13:26:37 <Liria>   ah il n'est pas dans l'install
janv. 31 13:26:43 <Molator>   non
janv. 31 13:26:59 <Molator>   mais j'ignorais que dnk utilise cette lib :)
janv. 31 13:27:12 <Molator>   je pensais qu'il passait par NeL
janv. 31 13:27:52 <Liria>   Je vais la copier pour tester alors
janv. 31 13:27:57 <Molator>   dnk ou sfb
janv. 31 13:30:17 <Liria>   Ca marche chez moi  !
janv. 31 13:30:19 <Liria>   merci
janv. 31 13:30:25 <Molator>   de rien
janv. 31 13:30:25 <Liria>   Si tu l'ajoute à ton package
janv. 31 13:30:43 <Molator>   oui ?
janv. 31 13:30:43 <Liria>   ajoute le fichier ObjectViewerQt.ini
janv. 31 13:30:52 <Liria>   avec cette partie :
janv. 31 13:30:59 <Liria>   [DataPath]
janv. 31 13:30:59 <Liria>   RemapExtensions=png, tga, png, dds
janv. 31 13:31:06 <Molator>   justement non
janv. 31 13:31:12 <Molator>   :)
janv. 31 13:31:14 <Liria>   Ah pourquoi donc ?
janv. 31 13:31:16 <Molator>   je l'ai mis dans le tuto
janv. 31 13:31:35 <Molator>   parce qu'un developpeur a fait modifier pour que ce soit pas automatique
janv. 31 13:31:45 <Molator>   mais oui pour la plupart d'entre nous c'est necessaire
janv. 31 13:31:50 <Molator>   je peux le mettre exemple peut etre
janv. 31 13:32:14 <Liria>   ou l'ajouter en commentaire avec le texte  de ton tuto
janv. 31 13:32:25 <Liria>   car quand on test on à pas toujours un accès internet
janv. 31 13:32:59 <Molator>   ok :)
janv. 31 13:33:06 <Liria>   C'est pas classique mais je fais souvent ces tests sur mon portable quand je suis en train ..... donc internet ...
janv. 31 13:33:23 <Liria>   teste*
janv. 31 13:33:38 <Molator>   tu as à raison
janv. 31 13:44:49 <Liria>   When opening a shape with OVQT, if you've got no texture, you will probably have to enable extension remap.
janv. 31 13:44:49 <Liria>   Edit Application DataRyzomCoreObjectViewerQt.ini or AppDataRyzomCoreObjectViewerQt.ini and add:
janv. 31 13:45:03 <Molator>   oui
janv. 31 13:45:06 <Liria>   tu parles du dossier C:userxxxappdata ?
janv. 31 13:45:11 <Molator>   mais je viens de voir que le chemin sous 7 est faux
janv. 31 13:45:14 <Molator>   oui
janv. 31 13:45:16 <Molator>   c'est ca
janv. 31 13:45:41 <Liria>   Bon il faut le créer alors car il n'existe pas chez moi
janv. 31 13:47:24 <Molator>   AppDataRoamingRyzomCoreObjectViewerQt.ini sous 7
janv. 31 13:48:26 <Liria>   pfff j'aurais du regarder là ....
janv. 31 13:52:26 <Liria>   Ah tient j'ai une lib png trop récente aussi :
janv. 31 13:52:28 <Liria>   2013/01/31 13:51:15 WRN NLMISC::setPNGWarning : Application built with libpng-1.4.4rc04 but running with 1.5.4
janv. 31 13:52:28 <Liria>   2013/01/31 13:51:15 WRN NLMISC::CBitmap::readPNG : failed to create the png read struct
janv. 31 13:53:39 <Molator>   :)
janv. 31 13:54:03 <Molator>   ou il faut j'ajoute la lib dans le package aussi
janv. 31 13:54:13 <Liria>   Bon j vais essayer de trouver la dll et la mettre avec  ovqt
janv. 31 13:57:11 <Liria>   j'ai pas regardé pour tga/dds  mais ca risque d'être le cas (encore que dds et tga n'ont pas évolué depuis une éternité)
janv. 31 14:02:12 <Molator>   il te faut la lib que j'ai dans mon dossier qt je suppose
janv. 31 14:03:29 <Liria>   il n y a pas de libpng14.dll
janv. 31 14:04:28 <Molator>   kervala m'a dit qu'on pouvait maintenant mélanger stl et stlport
janv. 31 14:04:38 <Molator>   qu'il avait modifié le nécessaire
janv. 31 14:04:56 <Molator>   donc en principe plus besoin de qt stlport
janv. 31 14:04:56 <Molator>   je regarde pour la lib
janv. 31 14:05:13 <Molator>   les logs précisent quel module appel la lib png ?
janv. 31 14:06:12 <Liria>   Je suis dans l'onglet object viewer
janv. 31 14:07:26 <Liria>   NLMISC::CBitmap::readPNG c'est au niveau NEL ?
janv. 31 14:07:31 <Liria>   sinon dans les logs rien
janv. 31 14:08:27 <Liria>   ah voila un log plus précis dans le fenetre de ovqt :
janv. 31 14:08:28 <Liria>   2013/01/31 13:51:02 DBG NLQT::CSoundSystem::initGraphics : CSoundSystem::initGraphics
janv. 31 14:08:28 <Liria>   2013/01/31 13:51:15 INF NLMISC::CFileContainer::addSearchPath : PATH: CPath::addSearchPath(C:Program Files (x86)Object Viewer QTexamplespingoo, 0, 0): adding the path 'C:/Program Files (x86)/Object Viewer QT/examples/pingoo/'
janv. 31 14:08:28 <Liria>   2013/01/31 13:51:15 INF NLQT::CObjectViewer::setCurrentObject : set current entity pingoo
janv. 31 14:08:28 <Liria>   2013/01/31 13:51:15 WRN NLMISC::setPNGWarning : Application built with libpng-1.4.4rc04 but running with 1.5.4
janv. 31 14:08:28 <Liria>   2013/01/31 13:51:15 WRN NLMISC::CBitmap::readPNG : failed to create the png read struct
janv. 31 14:08:35 <Molator>   ca peut être au niveau de NeL ou de QT
janv. 31 14:08:36 <Molator>   je pense plutôt à QT
janv. 31 14:08:49 <Liria>   => DBG NLQT
janv. 31 14:09:41 <Molator>   j'ai le même message en fait
janv. 31 14:12:09 <Molator>   kervala met à jour les dépences régulièrement
janv. 31 14:12:24 <Molator>   différence de version entre les dépendences
janv. 31 14:12:26 <Molator>   et windows
janv. 31 14:13:55 <Molator>   en somme il faudra que je recompile et que je fasse mieux :)
janv. 31 14:16:23 <Liria>   *hésite* non, en somme faudrait que MS fasse du bon boulot et assure la compatibilité ascendante :)
janv. 31 14:17:35 <Molator>   :)
janv. 31 14:22:08 ?   Molator has quit (Ping timeout: 255 seconds)
08 Février 2013 à 01:26:44
Cliquez pour afficher le message
Par curiosité j'ai effectué quelques tests avec l'écran de création de personnages. En utilisant des textures modées pour le masque le déroulement de l'animation avec les effets d'émotions du visage fonctionne très bien. Du coup  ce n'est pas une vidéo, mais c'est bien implanté IG. J'ai donc questionné Kervala sur l'irc #ryzom pour en savoir plus :





févr. 07 13:28:39 <Liria>   Tient je me pose une question. As tu remarqué dans la partie création des avatars sur ryzom, surtout pour les zoraïs où cela est flagrant
févr. 07 13:29:24 <kervala>   les bugs de textures ? :p
févr. 07 13:29:26 <Liria>   le bouton "play" lance une animation avec des émotes faciaux
févr. 07 13:29:32 <kervala>   ah oui :)
févr. 07 13:29:36 <kervala>   elles existent. C'est super facile à les activer en plus. F.aut juste charger l'anim et elle se joue
févr. 07 13:30:10 <Liria>   Justement vu le fonctionnement des émotes IG je me suis toujours dit qu'il devait avoir prévue une coté mouvement faciales, sinon ce n'est pas cohérent.
févr. 07 13:30:16 <kervala>   par contre, c'est des grosses animations. Donc ça ne peut pas être utilisé pour juste une emote. Par contre, les morphs du visages, c'est peut-être plus adapté :) Tu as un morph pour sourire,  pour fermer les yeux, etc... Tu peux mettre une value de 0.0 à 1.0. C'est comme ça que le clignotement des yeux sont fait.
févr. 07 13:31:06 <Liria>   Mais dans ryry ce sont des anim enf ait ? Animation au sens 3dsmax avec squelette, etc... ?
févr. 07 13:31:25 <kervala>   oui.  Comme dans Poser je sais pas si tu sais comment ça fonctionne
févr. 07 13:31:39 <Liria>   Ah c'est très lourd en effet. mais le morphing ce serait différent.
févr. 07 13:32:03 <kervala>   donc une animation, c'est une liste de délais avec les valeurs de chaque morphs :)
févr. 07 13:32:04 <Liria>   plutôt une distorsion d'une image 2d ?
févr. 07 13:32:25 <kervala>   pour le visage du moins
févr. 07 13:32:36 <Liria>   oui pour le visage
févr. 07 13:32:43 <Liria>   c'est vraiment ce qui manque IG
févr. 07 13:32:43 <kervala>   si tu bouges la tête, c'est pas une animation faciale mais du squelette. Donc tu peux contrôler tout ce qui est bouche, yeux, nez, etc... :)
févr. 07 13:33:19 <Liria>   donc pour l'écran de création ils ont refait un squelette dédié pour les visages ?
févr. 07 13:33:49 <kervala>   non ils ont juste faire une playlist de morphs pour l'expression du visage :)
févr. 07 13:33:21 <kervala>   ce que je comptais faire en 2008, c'était que quand on parle ça analyse le texte pour activer des morphs.
févr. 07 13:33:50 <Liria>   Ah je connaissais un outil qui faisait l'inverse. A partir d'un fichier sonore, il décompose les phonèmes pour l'animation des lèvres
févr. 07 13:34:15 <kervala>   donc dans mon exemple, quand on parle, ça devrait bouger les lèvres :)
févr. 07 13:34:17 <kervala>   voilà
févr. 07 13:34:24 <Liria>   Pratique si tu veux faire de l'animation avec blender par exemple.
févr. 07 13:34:34 <kervala>   et si on met un smiley ou une emote, ça met une expression en rapport :)  Genre sourire, pas content, etc... Ca sert pas à grand chose de faire une animation pour juste 1 morph à chaque fois. Le corps, c'est plus compliqué avec un morph :p Genre le gars bouge juste l'axe 7 du bras :p axe Z par 7 :s
févr. 07 13:38:55 <Liria>   Si ce n'est que des morphs poue l'animation du visage,  cela devient possible de la mettre en place IG lié aux émotes
févr. 07 13:40:01 <kervala>   oui :)
févr. 07 13:41:05    Liria laisse son esprit rêver
févr. 07 13:41:11 <kervala>   bah non, mais dans la création de perso, l'animation faciale est gérée exactement comme une animation du squelette, donc c'est pas trop comme ça qu'on devrait faire IG. Par contre, le code du clignotement des yeux est un bon exemple :) Et ça c'est IG. Suffit de remplacer l'index des yeux par un autre morph :)
févr. 07 13:41:49 <Liria>   oui je l'ai remarqué en effet
févr. 07 13:42:14 <kervala>   mais oui c'est faisable
févr. 07 13:42:16 <Liria>   celui de la bouche par exemple ? Coté data du client ?
févr. 07 13:42:39 <kervala>   oui
Cliquez pour afficher le message
Les  MMORPG  se basent sur un moteur 3d avec rendu réaliste, mais savez vous que l'on peut obtenir des effets saisissants qui changent la nature de notre rapport avec le monde sans pour autant toucher à une ligne de code (c'est pas tout à fait vrai, mais vous risquez d'être surpris par la facilité à le faire).Je vais vous en présenter en rapport avec des zones du jeu :

Le rendu d'une scène 3d se fait en dessinant des milliers de triangles représentant les surfaces des objets 3d. Une option simple d'un moteur consiste à désactiver le rendu des textures.Il ne reste plus que les droites reliant les sommets des triangles.  Je me rappelle d'un jeu "Dungeon Siege" qui avait une option de ce type pour le débogage. C'était cependant tout à fait jouable (exemple l'image ci-dessous qui par contre ne cache pas les zones d'arrière plan)



J'imagine très bien un rendu de la zone des rêves en mode fil de fer, on peut aussi envisager d'autres effets, comme les rendus type peinture à l'huile, ou des effets de distorsions. Un effet qui sans doute pas adapté à cette zone, est le rendu type peint à la main que l'on retrouve dans le FPS sous linux Warsow



Un autre type de rendu qui me fascine est le mode crayonné. Cela reprend les techniques de gravures anciennes d'imprimerie ou on dessinait des traits plus au moins épais pour le rendu les ombres.





C'est un type de rendu qui irait parfaitement bien avec le décor de la prairie aux statues.

Pour finir une petite précision tout de même. Par "effet de rendu" je parle du procédé utilisé pour colorier les surfaces des objets 3d. Cet effet n'est pas obtenu en modifiant la texture, mais calculé dynamiquement en fonction de la scène 3d. A vos plumes si vous en connaissez d'autres ou si vous pensez que cela peut être fun pour Khaganat.
02 Février 2013 à 18:01:26
Cliquez pour afficher le message
Ce texte est le copier/coller d'un PAD concernant un projet de bibliothèque IG débuté par Kaiyo et Vrana
Voici le lien vers l'original : http://sync.in/lj0ZGxDijF
Certains points ont bloqué ce projet : essentiellement, le fait que la position d'un joueur n'est  mise à jour qu'une fois pas heure lorsque nous y accédons via l'API ryzom public du WebIG

Raison de ce message : relancer ce projet dans le cadre de Khaganat
====

Projet : Parchemins d'Atys
Par les chemins de l'écorce
 
Concept :
Il s'agit de rendre accessible en jeu (IG) des documents concernant Atys au joueur. Au gré de ses pérégrinations le joueur pourra découvrir des parchemins, les consulter, les annoter, ou même en mettre à disposition. A contrario de l'encyclopédie qui concentre en un seul lieu les connaissances profanes et cryptiques, le principe de cette bibliothèque est de lié un parchemin à un lieu. Ainsi la découverte et la consultation est intimement lié à la position dudit joueur.
 
Afin d'expliciter le fonctionnement de cette bibliothèque, nous allons détailler des cas d'utilisation puis nous listerons les fonctionnalités de l'application.

1) Fonctionnement Basique
L'application affiche dans une fenêtre une carte de la zone où est située le joueur ainsi que les parchemins visibles du joueur sur cette carte.
Le joueur peut consulter le parchemin en le sélectionnant sur la carte ou dans la liste prévue à cet effet sur le volet latéral de la fenêtre >> Cela afficherait les titres des ouvrages par lieu, et seuls ceux "génériques" seraient lisibles de n'importe où (couleur spécifique/icône).
Le joueur peut aussi naviguer sur cette carte, comme il le ferait avait sa Map pour consulter d'autres parchemins déjà découvert par lui mais situés dans d'autres lieux. >> Je pense que l'accès aux parchemins ne devrait être possible que pour ceux du lieu ou le personnage se trouve, ou de ceux dans son inventaire, sinon on n'a accès qu'à un résumé (fourni par l'auteur ou écrit par soi-même mais limité en taille)
On peut transporter un certain nombre d'ouvrages maximum, et en stocker dans sa bibliothèque (qu'on peut poser où on veut ? car chaque homin a un appartement à un endroit différent, donc il vaut mieux laisser libre les gens de la mettre où ils veulent). Comme le nombre sur soi est limité, il faut faire des choix. => Possibilité de faire certaines choses pour augmenter la taille de son sac ?

2)  Fonctionnement  basique+
Le joueur peut ajouter certains de ces documents dans une liste d'accès rapide (documents préférés) afin de les retrouver pus rapidement >> Créer un inventaire dédié aux documents, avec deux volets : un sur soi, limité en taille (X documents à la fois) et un autre chez soi, pas limité en taille.
Le joueur peut annoter un parchemin. l'annotation fonctionne de la même manière que l'ajout d'un parchemin, sauf que cette annotation est liée au parchemin de base (donc même possibilités sur l'annotation : privé, public, limité à une catégorie de joueurs, etc...)

3) Fonctionnement avancé :
Le joueur peut déposer de nouveaux parchemins sur l'écorce. Il ne peut éditer que ceux qu'il a dans son inventaire ou ceux de l'endroit où il est ? Peut-il déposer n'importe où ? SI oui comment cela signale-t-il qu'un document se trouve dans les parages ? Si non,  dans quoi peut-on les déposer ?
Un parchemin s'éditera de la même manière qu'un message sur le forum ou un document wiki (à voir sur le format BBcode/Wiki)
Un joueur peut modifier un parchemin existant s'il en est le propriétaire
Un joueur peut effectuer une recherche sur les document (es critères de recherche sont explicités dans la partie fonctionnelle)

4) Fonctionnement d'administration
Intégrer ici les fonctionnalités d'administration  de la bibliothèque :
- suppression de documents,
- limitation des accès d'un joueurs
- bannissement.
- etc.

=========================================================

Partie fonctionnelle:

1) Qu'est ce qu'un parchemin
Un parchemin est un document texte pouvant contenir :
- des mises en formes (gras, couleur, etc...)
- des images ( où les héberger ? ...)
- des liens ( liens vers d'autres parchemins ? )
On peut envisager donc d'utiliser l'approche "BBcode" propre aux forum, ou plutôt l'approche "Wiki" pour saisir ces parchemins
Ce parchemin est décrit aussi par des méta-données qui peuvent servir à le  localiser/retrouver
- Un titre
- Une liste de mots clefs
- Une liste de thèmes (hiérarchie prédéfinie style Dewey mais spécifique, ex : /Lore/Zoraï/Masque/Cérémonie )
- Un/des auteur(s) : ce n'est pas le joueur  mais les auteurs du document : exemple les 4 chefs des nations pour le traité de paix
- Une date : ce n'est pas la date de publication, mais cette du document, par exemple la date de signature du traité de paix
- Localisation : une hiérarchie sous la forme : /atys/pays/région/zone/coordonnées
Exemples :
/Atys/Jungle/Zora/Daïsha/X:3.3435,Y4.565656
/Atys/Encyclopédie <= lieu indépendant de la situation géographique
Note : un document n'a pas forcément une localisation exacte : il peut être rattaché à chacun de ces niveaux hiérarchiques : zone, région, pays
- Mode de découverte :
* Immédiatement visible
* Visible qu'une fois trouvé par le joueur
* découverte mode chasse aux trésors ( même chose que précédemment, mais on archive les dates de découvertes par les joueurs pour le classement final )
- Mode de consultation d'un parchemin
* Le parchemin est consultable de n'importe où
* Le parchemin n'est consultable que dans un rayon de X mètres autours du lieu où il est situé
- Droits d'accès à un parchemin
* privé : le parchemin n'est accessible que du joueur
* guilde : le parchemin est accessible uniquement aux membres d'une guilde
* nation/apatride (en fonction de la nationalité du joueur)
* faction (neutre, tenant, kami, marau, ...)
* titre ( en fonction du titre, cela permet de limiter aux Éveillés par exemple )(penser aux titres féminisés)
* amis
* liste de personnes
Mode de diffusion
* Lisible oui/non (le joueur peut en lire le contenu)
* Copiable sur soi oui/non (le joueur peut se faire une copie à l'identique dans son sac à documents, s'il a assez de place)
* Empruntable oui/non (le joueur peut transférer l'exemplaire dans son sac à documents, s'il a assez de place)
Licences Mentions légales Accueil du site Contact