Dernières évolutions autour de 0 A.D.

Posté par  . Édité par BAud, ZeroHeure, olivierweb, Thomas Debesse, patrick_g, bubar🦥, Nÿco, palm123, claudex et come. Modéré par claudex. Licence CC By‑SA.
106
24
mai
2014
Jeu

0 A.D., le fameux jeu de stratégie historique en temps réel et en 3D, développé par Wildfire Games, avait fait l'objet d'une dépêche en décembre 2013. Les avancées des versions alpha 12, alpha 13, et — dans une moindre mesure — alpha 14 y avaient été développées.

0 A.D.

La sortie récente de la version alpha 16 de 0 A.D. est l'occasion de récapituler les évolutions de ce projet ambitieux sur ses trois dernières alphas.

NdM : 0 A.D. est un jeu libre dont le code source est sous licence GNU GPL v.2 tandis que le contenu artistique est sous licence CC-BY-SA.

Sommaire

0 A.D. Alpha 14 : Naukratis

0 A.D. Alpha 14 est sortie le 4 septembre 2013. Son nom de code est Naukratis, une ville du delta du Nil qui fut un important port de commerce, ainsi qu'un centre politique et religieux lors de la période couverte par 0 A.D. (-500 à -1 pour la Partie 1).

Naukratis

TL;DR : Le développement de Naukratis a été surtout focalisé sur le gameplay, avec l'apparition d'un nouveau bâtiment (la forge), de nombreuses technologies et bonus de civilisation, et l'introduction de changement radicaux dans le calcul des dégâts, de la ligne de mire et des revenus agricoles et commerciaux. Il s'est aussi focalisé dans une moindre mesure sur l'esthétique visuelle, avec l'implémentation de plusieurs effets graphiques (encore désactivés par défaut).

Naukratis apporte les changements suivants :

Code/interface utilisateur :

  • Bouton de héros : lorsque le joueur entraîne un héros, un bouton d'accès rapide apparaît dans l'interface pour pouvoir sélectionner celui-ci rapidement
  • Choix de la vitesse du jeu : on peut désormais changer la vitesse du jeu en cours de partie via un menu
  • Raccourcis clavier supplémentaires : des raccourcis claviers ont été ajoutés pour annuler, mémoriser une zone de la carte, arrêter une action
  • Affichage d'informations supplémentaires : une bulle affiche le nombre d'unités en garnison dans un bâtiment ou une arme de siège lorsqu'on appuie sur Ctrl, l'interface affiche le nombre maximum de bâtiments d'un certain type que le joueur est autorisé à construire, le nombre de ramasseurs est affiché lorsqu'on sélectionne une ressource

nouveautés interface

Code/gameplay :

  • Nouveau bâtiment : la forge. Ce bâtiment est dédié au développement de technologies liées à l'armement. Certaines technologies militaires de la caserne y ont été déplacées.
  • Armure exponentielle : introduction d'un nouveau système de calcul de la résistance des unités aux attaques :
    • On passe de : dégâts = attaque - armure
    • à : dégâts = attaque ⨯ 0,9^armure
    • Soit par exemple, avec une armure de 4, et une attaque de 8 :
    • 8 ⨯ 0,94 = 8 ⨯ 0,66 ≃ 5 points de dégâts

Ce nouveau système permet de mieux niveler la puissance des unités, d'éviter d'avoir des unités déjà fortes qui deviennent invulnérables, ou des unités faibles qui deviennent subitement fortes après une amélioration technologique. Détails

  • Fermes infinies : dans les versions précédentes, une ferme était grosso-modo une ressource qui pouvait être construite par le joueur pour 100 points de bois, et dont l'exploitation lui rapportait 2000 points de nourriture avant de s'épuiser. Désormais les fermes sont infinies, et leur taux de production diminue peu à peu lorsque des ramasseurs travaillent dessus, et remonte progressivement lorsque ceux-ci s'arrêtent. Le nombre de ramasseurs sur chaque ferme est maintenant limité à 5. Pour un revenu en nourriture à peu près stable, il est conseillé de mettre 2 à 3 ramasseurs sur chaque ferme.

Ce nouveau système oblige à construire beaucoup plus de fermes qu'auparavant pour garder une économie stable, et pousse les joueurs à une expansion territoriale plus agressive. Ce changement n'est pas définitif, d'autres modèles agricoles sont à l'étude.

  • Calcul de la ligne de mire et de la portée des unités et des bâtiments en fonction de l'altitude : celles-ci sont plus grandes si on est en hauteur par rapport à la cible, réduites si on est plus bas. Détails

portée couleur

  • Partage des gains de commerce : quand vous commercez avec un allié, vous produisez 50% de ressources en plus que lorsque vous commercez avec vous-même, et ces 50% sont partagés entre vous et votre allié.
  • Nouveau héros spartiate : Brasidas
  • Amélioration des points de ralliement : on peut désormais placer des points de ralliement pour des bâtiments en cours de construction, il est également possible de placer des points de ralliement via la minicarte.
  • Garnison des unités allées : un joueur peut maintenant placer des unités en garnison dans les bâtiments de ses alliés.

point de ralliement et Brasidas

  • Nouvelles technologies :

    • Paniers d'osier : ramassage de fruits 50% plus rapide
    • Vitesse de guérison 2 ("Serment d'Hippocrate" chez les grecs) et
    • Portée de guérison 2 ("Akademia" chez les grecs) : mêmes effets que Vitesse de guérison 1 ("Sphagia" chez les grecs) et Portée de guérison 1 ("Panthéon olympique" chez les grecs) de la phase 2, mais à la phase 3 (guérison +25 plus rapide, +4 de portée pour les guérisseurs)
    • Conscription : tous les soldats sont entraînés 25% plus rapidement
    • Déblocage des unités championnes ("Agèma" chez les grecs, "Regio Cohors" chez les romains) : permet d'entraîner des champions dans les casernes et les forteresses
    • Capitaines mercenaires celtes + Généraux mercenaires gaulois, Capitaines mercenaires lusitaniens + Généraux mercenaires celtibères, Capitaines mercenaires italiens + Généraux mercenaires italiens : les mercenaires celtes, ibères et italiens (respectivement) coûtent 25% de métal en moins. (carthaginois uniquement), appariés avec :
    • Alliance celtique + Hégémonie gauloise, Alliance ibère + Hégémonie hispanique, Alliance italienne + Hégémonie italienne : les mercenaires celtes, ibères et italiens (respectivement) s'entraînent 20% plus vite.
    • Pigeons voyageurs : augmente la ligne de mire des postes avancés de 50%
    • Recyclage des gravats : les murs sont construits 20% plus rapidement, et perdent 1 point d'armure, apparié avec :
    • Maçonnerie géométrique, murs contruits 10% plus lentement, +2 pts d'armure
    • Architectes navals : ("Architectes navals phéniciens" chez les carthaginois) le temps de construction des navires est réduit de 1 seconde
    • Agoge : la caserne et le syssition sont construits 2⨯ plus rapidement, mais ont 1 point d'armure en moins. (Spartiates uniquement)
    • Thesmophoria (fête de la fertilité) : les maisons peuvent produire des villageoises (grecs uniquement).
    • Rotation des cultures : augmente de 25% le rendement des fermes à proximité du moulin (celtes uniquement).
  • Nouveaux bonus de civilisation :

    • Celtes – Structures en bois : les bâtiments celtes sont contruit 20% plus vite, mais sont 20% moins résistants.
    • Carthaginois – Murs triples : les murs carthaginois sont 3⨯ plus résistants que ceux des autres civilisations, mais sont 2⨯ plus coûteux et 2⨯ plus longs à construire.
    • Mauryas –Murs de bois : les murs sont construits 20% plus vite, mais sont 20% moins résistants.
    • Les carthaginois ne peuvent maintenant plus construire qu'un seul type d'ambassade (déterminé par la première ambassade construite), mais peuvent commercer par la mer dès la première phase du jeu.
    • Athéniens – Chouette d'argent : minage du métal 10% plus rapide à chaque changement de phase.
    • Athéniens – Ligue du Délos : les navires de guerre sont construits 25% plus rapidement. Ce bonus devrait s'appliquer aux alliés aussi (le partage des bonus entre les équipes n'est pas encore ajouté au moteur).

Code/moteur :

  • Son : le gestionnaire de musique a été partiellement réécrit et amélioré, avec gestion des playlists (et couplage à la détection de batailles introduite dans l'Alpha 13). L'interface utilisateur s'enrichit de retours sonores lorsqu'on clique sur les boutons.
  • Gestion des ancres et des props flottantes : les grosses unités (béliers, balistes, cavaliers…) et les accessoires attachés aux bâtiments (props) suivent la pente du terrain (au lieu de rester à l'horizontale). Pour les props, seuls quelques bâtiments sont compatibles pour l'instant (les plus récents : forges, bâtiments ptolémaïques).
  • Gestion des auras (héros ou bâtiments qui changent certaines caractéristiques des unités à proximité). Les auras elles-mêmes ne sont pas encore implémentées.
  • Gestion de la régénération de points de vie.
  • Assouplissement des restrictions de construction des murs/palissades en fonction du terrain : il est maintenant possible de prolonger un mur sur quelques mètres dans un obstacle infranchissable (falaise, étendue d'eau), et ainsi prendre avantage du terrain pour empêcher les ennemis de passer. TL;DR : les murs servent enfin à quelque chose :o

murs, murs avec pathfinder, props flottantes

Code/éditeur :

  • Nouveau modificateur de terrain : Atlas se dote d'un outil permettant de faire des montagnes pointues.

Code/Performances :

Lors du développement de la version alpha 13, les problèmes de performances de 0 A.D. ont été considérés comme un bug prioritaire. Cette version avait alors vu apparaître des petites optimisations de calcul et une nouvelle IA légèrement plus rapide.

Dans Naukratis, les principales améliorations se situent au niveau du calcul de l'exploration de la carte et de la désactivation du tri de distance des objets transparents. Cette dernière optimisation est particulièrement significative sur les cartes contenant des forêts denses.

Art/objets :

  • Forges : ajout des forges ibère, romaine, celte, carthaginoise, perse, grecque, maurya.
  • Prêtre maurya.
  • Embellissements divers : ajout de quelques effets graphiques sur la quasi-totalité des bâtiments et cartes (diffuse maps, ambient occlusion maps, normal maps, parallax maps, specular maps), ajout de variations spécifiques aux factions sur certains bâtiments.

forges

Art/animations :

  • Naufrages plus réalistes : les bateaux oscillent légèrement avant de couler.
  • Décollage et atterrissage plus réalistes pour les unités volantes (en principe, il n'y a pas d'unités volantes dans 0 A.D., mais dans Atlas ou en utilisant des code de triche, on peut faire mumuse avec un joli Mustang P-51).

mustang

Art/cartes :

  • Nouveau scénario : Gold Oasis 3
  • Nouveau scénario : Sahel

Art/musique et son :

Communauté :

  • Compatibilité Clang/LLVM : 0 A.D. peut maintenant être compilé avec Clang/LLVM
  • Nouveau nom : 0 A.D. : Empires Ascendant est maintenant le nom officiel de 0 AD Partie 1.

logo 0ad

  • Levée de fonds : la sortie de l'alpha 13 a été l'occasion pour Wildfire Games de mettre en place une levée de fonds pour accélérer le développement du jeu, notamment en ce qui concerne la résolution des problèmes de performances. Une campagne de dons a été mise en place sur Indiegogo, avec un objectif de financement flexible de 160 000$ et une durée de 45 jours.

Plus d'informations dans la section dédiée.

0 A.D. Alpha 15 : Osiris

0 A.D. Alpha 15 est sortie le 24 décembre 2013. Son nom de code est Osiris, dieu principal du panthéon égyptien.

Osiris

TL;DR : C'est probablement sur le plan artistique qu'Osiris apporte ses plus gros changements, avec l'arrivée des égyptiens comme onzième faction du jeu. Le gameplay et l'interface utilisateur sont aussi à l'honneur, avec l'ajout de notifications sonores dans l'interface, l'introduction des escarmouches et surtout l'apparition d'un lobby multijoueur.

Osiris apporte les changements suivants :

Code/interface utilisateur :

  • Lobby multijoueur : un lobby (ou salle d'attente) multijoueur, interface permettant aux joueurs d'organiser un match à plusieurs, a été intégré au jeu. Ce lobby repose sur le protocole XMPP en se connectant à un MUC donc, situé sur les serveurs de Wildfire Games. La fonctionnalité d'hébergement de match prend en charge aussi l'UPnP désormais.

lobby

  • Nouveau type de match : escarmouche. Les escarmouches sont comme des scénarios (donc avec des cartes faites à la main, et non générées automatiquement), où les joueurs peuvent choisir les factions avec lesquelles ils joueront. La plupart des cartes utilisées pour les scénarios ont une version "escarmouche".
  • Notification d'attaque : une notification visuelle (point clignotant sur la carte) et sonore avertit le joueur qu'il est attaqué.
  • Notification de fin de recherche technologique : une notification sonore signale au joueur qu'une technologie a fini d'être recherchée ou qu'un changement de phase a été effectué.

Code/gameplay :

Le Design Document complet sur le wiki.

En résumé, les égyptiens sont très proches des macédoniens sur le plan militaire : avec leurs machines de guerre et leurs piquiers, ils héritent de la puissance et du savoir-faire de l'armée d'Alexandre en terme de siège et de contre-cavalerie. Ils se rapprochent aussi des carthaginois par leurs capacités à recruter des mercenaires de diverses peuplades méditerranéennes et à utiliser des éléphants de guerre au combat. La possibilité de construire un phare, qui élimine le brouillard de guerre sur l'ensemble des zones maritimes, et de mettre à flots le redoutable Tessarakontère, véritable forteresse flottante, devrait leur assurer une quasi-suprématie sur les mers.

Sur le plan économique, des bâtiments de base (maisons, dépôts, corrals) gratuits ainsi que de puissantes technologies agricoles devraient leur donner un gros avantage sur les autres factions.

Leurs trois héros sont Ptolémée Ier (éléphant de guerre), Ptolémée IV (lancier de cavalerie) et Cléopâtre VII (archère). Leur merveille est le temple d'Edfu.

Égyptiens

  • Auras : les auras des temples ont été implémentées (ils soignent maintenant les unités à proximité), les auras des monuments ibères aussi (les unités dans leur champ de vision ont +2 d'attaque tranchante en mélée et +3 d'attaque perçante à distance), ainsi que la plupart des auras des héros. Ces auras ne sont par contre plus visibles au sol, cette fonctionnalité a été retirée temporairement.
  • Nouvelle unité pour les romains : les auxiliaires de cavalerie légère ("Sociae Equitis"). Il s'agit de javelinistes de cavalerie, une unité qui leur faisait défaut jusqu'ici.
  • Nouvelle restriction de construction pour les tours : celles-ci doivent désormais respecter une distance minimale entre elles.
  • Ajout d'un ordre escorter (une unité)/garder(un bâtiment).
  • Mises en garnison facilitées : les navires se déplacent jusqu'à la côte lorsqu'on veut mettre des unités en garnison à l'intérieur, et le point de ralliement d'un bâtiment peut désormais être placé sur ce bâtiment. Les unités nouvellement entraînées y seront automatiquement placées en garnison.

auxiliaires

  • Nouvelles technologies :

    • Armure matelassée ("Spolas") : l'infanterie gagne 1 point d'armure contre les armes tranchantes, et
    • Bouclier contre-plaqué ("Aspidiskè" chez les grecs) : l'infanterie gagne 2 points d'armure contre les armes perforantes
    • Linothorax ("Linothorakes") : l'infanterie gagne 1 point d'armure contre les armes tranchantes, et
    • Bouclier renforcé ("Aspides" chez les grecs) : les lanciers d'infanterie gagnent 1 point d'armure contre les armes perforantes
    • Armure d'écailles ("Lorica Squamata" chez les romains): l'infanterie gagne 1 point d'armure contre les armes tranchantes, et
    • Revêtement de bouclier en bronze ("Chrysaspides" chez les macédoniens, "Chalkaspides" dans les autres factions grecques) : les lanciers d'infanterie gagnent 1 point d'armure contre les armes perforantes
    • Cuirasse de bronze ("Lorica Musculata" chez les romains) : l'infanterie gagne 1 point d'armure contre les armes tranchantes, mais coûte 10% de métal en plus, et
    • Boucliers d'argent ("Argyraspides" chez les grecs) : les lanciers d'infanterie gagnent 2 points d'armure contre les armes perforantes, mais coûtent 20% de métal en plus
    • "Tradition archère": pour bénéficier du talent des archers perses et mauryas, il faut désormais rechercher cette technologie, qui donne 10 points de portée en plus, mais aussi 20% de points de vie en moins et 20% de temps d'entraînement en plus à tous les archers.
    • Convois de marchands : les charrettes de commerce sont 25% plus rapides
    • Transports équestres (perses uniquement) : permet d'entraîner des unités de cavalerie depuis des trirèmes phéniciennes
  • Nouveaux bonus de civilisation :

    • La limite de construction des ambassades carthaginoises passe de 1 à 2, on peut donc en construire deux du même type ou deux différentes (sur les trois existantes).
    • Les bretons bénéficient du moulin rotatif, comme les gaulois.
    • Les gaulois ont désormais la taverne, qui donne +10 points de population, et permet de recruter une nouvelle unité spéciale, les fanatiques nus.

taverne

Code/moteur :

  • Gestion des technologies pouvant modifier la vitesse des unités
  • Gestion de la vitesse relative et de l'expansion des particules

Code/IA :

  • Nouvelle version d'Aegis.

Code/Performances :

Le travail sur la résolution de performances du jeu initié lors de l'alpha 13 se poursuit, avec une optimisation assez importante du moteur de rendu et un lot d'optimisations mineures liées à l'interface utilisateur. Avec ces améliorations on peut gagner une bonne dizaine de FPS en début de jeu sur certaines machines. Les performances restent cependant très mauvaises en milieu-fin de partie et au cours des combats.

Art/objets :

  • Bâtiments ptolémaïques : maisons, statues, forteresse, centre ville, temple, dépôt de nourriture, entrepôt, tours, phare (bâtiment spécial, basé sur le phare d'Alexandrie), murs et portes, Temple d'Edfu (merveille), marché (brouillon), forge, port (brouillon), corral, caserne.
  • Unités ptolémaïques : lancier de cavalerie (cavalerie championne), chamelier (cavalerie légère), archer, Ptolémée IV.
  • Charrette de commerce maurya
  • Chandragupta Maurya
  • Différentiation des factions gauloise et bretonne : nouvelles maisons et nouveau marché gaulois, nouvelle caserne et nouvelles tours bretonnes
  • Diverses améliorations sur les modèles des bâtiments celtiques
  • Merveille bretonne : Stonehenge
  • Nouvelles variations pour les temples et les tours carthaginois
  • Fermes en 3D
  • Nouvel animal : tigre du Bengale (modélisé et animé)

chandragupta,stonehenge,tigre

Art/animations :

  • Nouvelles animations pour les éléphants d'Asie, tigre

Art/cartes :

  • Nouvelle carte aléatoire : Mainland. Optimisée pour éviter le lag (arbres espacés, pas d'eau…)
  • Nouvelle carte aléatoire : Sahel
  • Amélioration de la vitesse de génération de certaines cartes aléatoires
  • Carte d'escarmouche exclusive : Vallée alpine

Alpine Valley

Art/musique et son :

Art/autre :

  • Ajout de nouvelles citations pour l'écran de chargement. Celles-ci sont issues de Wikiquote. Mais ça ne sert à rien, parce que les cartes se chargent tellement vite qu'on a pas le temps de lire :o

Communauté :

  • Une plateforme de traduction a été mise en place, pour une internationalisation future de 0 A.D. Les traducteurs peuvent d'ores et déjà contribuer (mais gardez en tête que le jeu est amené à changer beaucoup).
  • Levée de fonds : voir ci-dessous!

Amélioration des performances et campagne de dons

Lors du développement de l'alpha 13, la résolution des problèmes de performances était devenue une tâche prioritaire. L'équipe des développeurs de Wildfire Games avait identifié les principaux problèmes de performances et s'était donnée une série d'objectifs pour les résoudre :

  • Pathfinder affreusement lent. Principale source de lag. Provoque des ralentissements en milieu-fin de partie, quand le maximum de population a été atteint et que beaucoup d'unités sont sur la carte. Provoque aussi de grands pics de lag insupportables (freeze) lorsque de grosses armées se déplacent ou se combattent.
  • IA très lente. La réécrire partiellement en C++ pourrait être une solution
  • unitAI lente. là aussi, joue sur les ralentissements en cours de combat.
  • Moteur de rendu vieillot. Nécessite de passer à OpenGL 2.1, laisser tomber les ARB shaders. Gros travail, qui va conduire à abandonner la prise en charge de vieux GPU.
  • Rendu de l'eau très lent. Source d'importants ralentissements sur les cartes maritimes.
  • Code Javascript généralement peu optimisé
  • Le jeu est monothreadé car le moteur est très ancien. La résolution de ce problème nécessite de résoudre les autres problèmes de perfs d'abord (ce qui est plus facile quand le jeu est en monothread).
  • La subdivision spatiale n'est pas optimale (je sais pas vraiment ce que c'est, mais apparemment il y en a besoin pour optimiser AI ou unitAI).

Peu de temps après, RedFox, un ancien membre l'équipe de développement de 0 A.D. réapparaît sur les forums, proposant de travailler à la résolution des problèmes de performances du moteur. L'équipe décide d'exploiter au mieux ses compétences poussées en développement en l'embauchant à plein temps.

RedFox suggère de nombreuses améliorations, en plus de celles qui étaient déjà envisagées par l'équipe, comme l'implémentation d'un Quadtree pour accélérer le détecteur de collisions, un cache binaire pour les fichiers XML, la réécriture de UnitAI en C++, etc.

Redfox publie ensuite sur les forums des rapports réguliers de l'avancée de son travail.

Devant un départ aussi prometteur, Wildfire Games décide de mettre en place une levée de fonds via Indiegogo pour pouvoir financer le travail de Redfox plus longtemps.

Et à partir de là c'est le gros bordel.

Le fundraiser ne donne pas les résultats escomptés. L'objectif minimal (40 000 $ pour payer 6 mois de travail sur les problèmes de performances) n'est pas atteint.

Redfox publie son travail sous la forme d'un "megapatch", très difficile à exploiter, l'équipe lui demande de le diviser en plusieurs patchs, ce que Redfox commence à faire. Philip, qui travaille à la migration du projet sur git, place le megapatch sur une branche git afin de faciliter cette tâche.

Pendant tout ce temps, un autre contributeur, Tan Kuranes, fait son apparition et publie une poignée de patchs censés améliorer les performances.

Il devient difficile pour l'équipe de tester et de valider les patchs.

Peu après, les news sur l'avancée du travail de Redfox s'interrompent. L'équipe de développement communique peu sur le sujet, le reste de la communauté s'interroge. On apprendra quelques mois plus tard que Redfox a décidé de ne plus travailler sur le projet, car il a retrouvé du travail ailleurs, et que la période de travail que lui proposait Wildfire Games à l'issue de la levée de fonds lui semblait trop courte.

Philip continue à travailler un peu sur la dissection du megapatch de Redfox, mais ayant de moins en moins de temps à consacrer au projet, il finit par arrêter peu de temps après.

Résultat : le fundraiser et le travail de Redfox n'ont pas eu les conséquences espérées. La quantité de travail abattu est colossale, mais une bonne partie de ce qui a été produit est quasiment inexploitable. Le projet 0 A.D. se retrouve dans la même situation que lorsque Philip avait travaillé à réécrire le pathfinder jusqu'à ce qu'il n'y ait plus d'argent et qu'il ne puisse plus s'y consacrer à plein temps pour finir le travail.

Mais malgré ces péripéties peu encourageantes, le projet continue d'avancer.

D'autres membres de l'équipe poursuivent le travail de migration vers git, amorcé par Philip.

Wraitii et d'autres contributeurs continuent d'améliorer les performances par petits incréments.

La dernière grosse amélioration en date est la mise à jour du moteur javascript, Spidermonkey, de la version 1.8.5 à la version 24. Bien que cette mise à jour n'apporte rien de positif en terme de performances, elle est nécessaire pour la résolution d'autres problèmes critiques (dont des problèmes qui impactent les performances).

0 A.D. Alpha 16 : Patañjali

0 A.D. Alpha 16 est sortie le 17 mai 2014. Son nom de code, Patañjali, évoque un linguiste indien du IIIème siècle avant J.-C..

Alpha 16

TL;DR : Les grosses avancées de cette version Alpha 16 se situent avant tout au niveau du code. La mise en place de l'internationalisation et la mise à jour de Spidermonkey sont le fruit d'un travail énorme qui s'est étalé sur plusieurs alphas. Même si les bénéfices de la mise à jour du moteur javascript ne se font pas encore sentir pour l'utilisateur final, celle-ci laisse présager de bonnes nouvelles concernant les performances des alphas suivantes. Sur le jeu en lui-même, on peut noter l'implémentation de la cloche du village, un lot de nouvelles technologies et de nombreux changements esthétiques qui améliorent toujours un peu plus l'expérience des joueurs.

Patañjali apporte les changements suivants :

Code/interface utilisateur :

  • Internationalisation : la gestion de l'i18n a été implémentée, et des traductions complètes sont déjà disponibles dans 12 langues !
  • Nouveau look pour l'interface utilisateur : un redesign complet de l'interface est en cours, et quelques changements ont été intégrés dans cette alpha (principalement esthétiques pour l'instant). Note: certains boutons ont été déplacés, donc oubliez vos vieux réflexes.
  • Cloche de village / Retour au travail : de nouveaux boutons dans le centre-ville permettent de mettre en garnison automatiquement les unités se trouvant à proximité et de les renvoyer au travail ensuite. Cette cloche dispose de deux niveaux d'alerte permettant de mettre en garnison les simples citoyens ou les citoyens-soldats, suivant les besoins.
  • Gestion centralisée des échanges commerciaux : désormais, la nature et la quantité des ressources à échanger se fait via une fenêtre dédiée, plutôt qu'en assignant manuellement une ressource à chaque marchand

cloche et gestion des échanges

  • Gestion des routes de commerce : il est désormais possible de définir des points de passage sur le chemin des charrettes de commerce.
  • Améliorations cosmétiques diverses : le bouton de héros dispose d'une barre de vie et clignote lorsque le héros est attaqué, et nouveaux curseurs symbolisent l'ajout et le retrait d'un point de ralliement

route de commerce

Code/gameplay :

  • Nouvelle unité spartiate : la cavalerie alliée grecque ("Hippeús Symmakhikós"). Il s'agit de lanciers de cavalerie. Les spartiates se sont également vu accorder les oxybèles.
  • Réduction de la puissance d'attaque des garnisons : seule l'infanterie à attaque distante augmente le nombre de flèches lancées par les bâtiments. L'intérêt de mettre des fantassins et des cavaliers en garnison s'en trouve considérablement réduit.

spartiates

  • Nouvelles technologies :

    • Armure de fer ("Sidi̱ró Panoplía" chez les grecs et dérivés, "Lorica Ferrea" chez les romains) : +2 d'armure contre les armes tranchantes et les armes perforantes pour tous les héros, mais ceux-ci coûtent 50 points de métal en plus
    • Médecins militaires : les unités organiques voient leurs points de vie se régénérer lentement (de pair avec les offrandes, qui augmentent de 50% la vitesse de soin des garnisons des temples)
    • Logistique romaine (romains) : élimine la dégénérescence des camps retranchés et des contrevallations
    • Mercenaires {celtes,ibères,italiens} avancés, suivis de
    • Mercenaires {celtes,ibères,italiens} d'élite : promeuvent tous les mercenaires celtes, ibères et italiens au rang avancé et au rang d'élite, respectivement, les rendant plus fort au combat, mais moins efficaces pour ramasser des ressources
    • Infanterie de citoyens-soldats avancée, suivie de Infanterie de citoyens-soldats d'élite, et Cavalerie de citoyens-soldats avancée, suivie de Cavalerie de citoyens-soldats d'élite : technologies similaires pour promouvoir les citoyens-soldats au rang avancé et au rang d'élite, respectivement.
    • Modification de Cuirasse de bronze et Boucliers d'argent (quatrième paire de technologies d'armure) : ces technologies concernent maintenant uniquement les champions (au lieu de toute l'infanterie)
    • Métier à tisser : +50% de point de vie pour les citoyennes (apparié avec Thesmophoria introduite dans Naukratis)
  • Bonus de civilisation :

    • Implémentation de deux bonus : ceux apportés par le théâtre grec (+20% d'expansion territoriale pour tous les bâtiments) et le palais perse (versement automatique d'une petite quantité de chaque ressource à intervalle régulier).
  • Nouvelle faction : Les séleucides ont été intégrés dans le jeu, en tout cas pour ce qui est de la partie code et données non-artistiques. Les bâtiments et les unités utilisent actuellement des modèles grecs et perses, certains brouillons d'unités séleucides ont déjà été inclus. Les caractéristiques de cette faction, encore susceptibles de changer, seront développées dans une prochaine dépêche.

Code/moteur :

  • Mise à jour de Spidermonkey : l'interpréteur javascript utilisé dans le jeu passe de la version 1.8.5 à la version 24. Cette mise à jour est le fruit d'un gros travail de la part d'Yves (un des principaux développeurs de Wildfire Games), qui dure depuis au moins l'alpha 14. Malheureusement elle n'apporte pas le gain de vitesse escompté, elle aurait même parfois tendance à réduire les performances ! Cette mise à jour était malgré tout nécessaire pour plusieurs raisons :
    • l'équipe ne pouvait pas se permettre de maintenir une version obsolète du moteur javascript,
    • les nouvelles versions de Spidermonkey apportent des fonctionnalités intéressantes (certaines pourraient aider les développeurs à améliorer les performances),
    • le travail effectué pour cette mise à jour permettra de mettre à jour Spidermonkey plus facilement par la suite. Des tests ont déjà montré qu'avec la version 26, les régressions de performances introduites lors du passage à la version 24 disparaissent. Un travail de mise à jour à la version 31 est déjà en cours.

Pour les décideurs pressés, trois graphiques comparant les performances du jeu avec les différentes versions de Spidermonkey, dans un replay non-visuel sur la carte Oasis 4 avec quatre IA Aegis (sur 15 000 tours pour le troisième graphique) : version 24, version 26, version 31.

  • Implémentation d'une condition de victoire par la merveille, en vue de créer un jour de nouveaux types de matchs (autres que le combat à mort).
  • Malus de précision variable : le malus de précision des unités à attaque distante dépend désormais de la distance par rapport à la cible.

Code/IA :

  • Améliorations et corrections de bugs diverses : Aegis est maintenant plus intelligente, gère mieux ses échanges commerciaux et se débrouille mieux dans les batailles
  • Nouvelle IA : Petra. Celle-ci n'est pas vraiment nouvelle puisqu'elle est basée sur Aegis et utilise la même API, mais apporte d'importants changements sur la façon dont elle gère ses ressources.

Code/Performances :

Côté performances, 0 A.D. alpha 16 apporte aussi son lot d'améliorations, dont la principale devrait être une optimisation du calcul de la portée des unités.

Art/objets :

  • Bâtiments ptolémaïques : marché, port, Klēroukhia.
  • La Klēroukhia (colonie militaire) remplace maintenant le camp de mercenaires chez les égyptiens. Alors que ce dernier était une sorte d'ambassade/caserne pouvant être construite en territoire neutre, la colonie est une sorte de camp militaire doté d'une influence territoriale, à mi-chemin entre le camp retranché romain et le centre-ville. Il est à peu près sûr que les séleucides disposeront de cette même colonie militaire ; en revanche, les égyptiens pourraient revenir au camp de mercenaires dans les futures versions.
  • Unités ptolémaïques : bateau de pêche, piquier, citoyenne, mise à jour des éléphants de guerre, prêtre, birème, trirème, quinquérème, navire marchand, Cléopâtre.
  • Nouvelle merveille carthaginoise : le Mausolée d'Atban est remplacé par le temple de Ba'al Hammon
  • Nouveaux modèles et variations : tours romaines, dépôts de nourriture gaulois et carthaginois, corral ibère
  • Ornements : tentes, épaves de bateaux
  • Animaux : faucon, crocodile du Nil, loup d'Eurasie

batiments carthaginois

égyptiens

Art/animations :

  • animaux : requin, grand éléphant d'Afrique, loup, oiseaux en vol.

bactria

  • les animations pour les formations tortue et syntagme sont prêtes. Dis gon b gud :) Cependant il s'agit d'une modification purement cosmétique, les formations ne sont pour l'instant pas exploitables en situation de combat.

tortue

Art/cartes :

  • Nouvelles escarmouches : Rivière de savane, Baie de l'Acropole, Bactriane.

Art/musique et son :

Communauté :

  • L'équipe de développement a mis en place un serveur Jenkins. Le rôle de cet outil est de tester automatiquement la compilation et le fonctionnement du logiciel dans diverses configurations après un nouveau commit. Cela permettra aux développeurs de repérer rapidement les commits qui introduisent des bugs critiques dans des configurations exotiques et de les corriger avant que de nouveaux changements basés sur le code buggué ne soient faits.

  • Comme pratiquement tous les jeux libres ici bas (100% libres, ou du moins qui tentent de l'être :/ ), 0 A.D. souffre de problèmes de saioukonafoutulaisources quand vient le temps de réutiliser les fichiers de travail d'un modèle, d'une texture, d'une animation, d'une musique, etc. La plupart des données artistiques issues des vieilles alphas sont dépourvues de sources. Pour remédier à ce problème, les développeurs ont mis en place un dépôt Art_source où les contributeurs de données artistiques sont invités à déposer les sources de leurs créations.

Conclusion :

Le point sur les performances javascript

Les mauvaises performances de la version 24 de Spidermonkey ont désagréablement surpris les développeurs du jeu. Celles-ci sont dues au fait que l'interpréteur javascript de Mozilla a surtout été optimisé pour accélérer le code javascript typiquement utilisé par les sites web, qui diffère beaucoup de celui utilisé dans le jeu. Des régressions de performances sur certains types de code sont donc apparues dans Spidermonkey sans que personne ne s'en soucie. Les développeurs de Spidermonkey ont depuis été notifiés de ces régressions et les ont corrigées. Les développeurs de 0 A.D. testeront désormais les versions de développement du moteur javascript, et collaboreront avec Mozilla pour s'assurer que les futures versions de Spidermonkey soient bénéfiques aux performances du jeu.

Qu'attendre de 0 A.D. alpha 17 ?

  • Le prochaine version du moteur javascript Spidermonkey devrait sortir en juillet. Elle sera donc très certainement incluse dans l'alpha 17. Cette fois, le nouveau moteur javascript devrait apporter des améliorations de performance significatives.
  • De nouvelles améliorations d'interface, les développeurs continuant à travailler sur le nouveau GUI
  • Un lot de nouvelles contributions artistiques pour la faction séleucide, qui devrait être annoncée officiellement
  • Petra devrait s'améliorer pour devenir l'IA par défaut. … et plein d'autres choses ! \o/

Contribuez !

Quel que soit votre domaine de compétences, vous pouvez contribuer à 0 A.D. . Il y a de la place pour tout le monde ! \o/

  • Vous connaissez le C++ ou le javascript ? Vous avez des compétences en programmation dans le domaine des jeux 3D ? Aidez à améliorer le code !
  • Vous maîtrisez Blender ? Vous pouvez dessiner des textures, concevoir des modèles et les animer ? Proposez vos embellissements ou vos icônes, animez la faune et les soldats, ou participez à la modélisation de la faction séleucide !
  • Vous jouez d'un instrument acoustique ? Vous composez de la musique traditionnelle ou symphonique ? Contactez Omri Lahav et contribuez à la bande originale de 0 A.D. !
  • Vous êtes plus branchés MAO ? Vous pouvez créer, enregistrer et mixer des sons ? Aidez à donner vie aux cités antiques et aux terres vierges de 0 A.D. !
  • Vous étudiez les langues anciennes ? Vous connaissez la prononciation de mots latins, grecs, hébreu, sanskrits ou gaéliques ? Aidez à donner de la voix aux unités du jeu !
  • Vous êtes passionné d'histoire antique ? Venez discuter sur les forums et proposer vos améliorations en matière de gameplay ou de graphisme !
  • Vous êtes plutôt calé géo ? Familiarisez-vous avec l'éditeur et concevez des cartes réalistes et fun à jouer !
  • Vous parlez plusieurs langues dont l'anglais ? Participez à la traduction et à la documentation !
  • Vous savez compiler un logiciel ? Téléchargez la version SVN et profitez des nouvelles améliorations et des nouveaux bugs avant tout le monde ! \o/
  • Vous utilisez un OS kipulapomme ? Aidez les développeurs à faire des binaires stables pour MacOS !
  • Vous voulez aider à faire connaître 0 A.D. ? Vous aimez faire de jolis screenshots ? Participez à l'élaboration de dépêches de qualitaÿ sur LinuxFr.org ! \o/

Aller plus loin

  • # Bravo

    Posté par  . Évalué à 10.

    Félicitations pour cette très bonne news.
    C'est un beau travail et les captures illustre parfaitement l'article.

  • # Dommage

    Posté par  (site web personnel) . Évalué à 8.

    Quand je vois les scrinechautes, le soin qui a l'air d'être apporté à tous les détails, je me dis que c'est dommage de ne pas jouer à ce jeu. Mais je joue peu, quasiment que des vieux RPGs, je n'ai jamais eu la patience ou la technique pour les jeux de stratégie…

    Vous étudiez les langues anciennes ? Vous connaissez la prononciation de mots latins, grecs, hébreu, sanskrits ou gaéliques ? Aidez à donner de la voix aux unités du jeu !
    Vous êtes passionné d'histoire antique ? Venez discuter sur les forums et proposer vos améliorations en matière de gameplay ou de graphisme !

    J'ose à peine imaginer les trolls dans ces domaines là, du genre des dizaines de pages sur un poil de couille de différence de prononciation d'un juron par les paysans Hittites du sud quand ils se font piquer par un moustique,

    Prochainement, je vous proposerai peut-être un commentaire constructif.

    • [^] # Re: Dommage

      Posté par  . Évalué à 5.

      Si seulement il y avait assez de contributeurs pour ça ! Pour l'instant toutes les unités du jeu parlent grec, et à part une petite divergence dans les forums sur la prononciation du latin il n'y a pas de troll à l'horizon. Il faut dire que la plupart des langues du jeu sont des langues mortes et enterrées, donc il faut surtout faire preuve d'imagination. Par exemple on n'a plus aucune trace des langues parlées par les celtes et les carthaginois, donc dans le jeu il est prévu de les faire parler en gaélique et en hébreu, qui parmi les langues connues sont celles qui s'en rapprochent le plus, respectivement.

      Quant aux moustiques, il n'est pas prévu d'en ajouter dans le jeu. :/

      *splash!*

      • [^] # Re: Dommage

        Posté par  . Évalué à 5.

        Surtout que les moustiques, faut calculer des nuées, et ça risque de pomber les perfs… tosson, les moustiques, ça a toujours fait chier le monde. Sauf peut-être SpiderMonkey… Spider… bref.

        • [^] # Re: Dommage

          Posté par  (site web personnel) . Évalué à 5.

          Sans compter qu'il faut modéliser les parasites dans les moustiques…

          Prochainement, je vous proposerai peut-être un commentaire constructif.

        • [^] # Re: Dommage

          Posté par  . Évalué à 4.

          Surtout que les moustiques, faut calculer des nuées, et ça risque de pomber les perfs […]

          Têt' pas. Avec les simulations de particules on pourrait simuler des nuées de moustiques, non?

    • [^] # Re: Dommage

      Posté par  (site web personnel) . Évalué à 10. Dernière modification le 24 mai 2014 à 22:12.

      prononciation d'un juron par les paysans Hittites du sud quand ils se font piquer par un moustique,

      Ca ressemble un peu à l'anglais:

      • oh moskito!
      • hit it!

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

  • # nimages

    Posté par  . Évalué à 10. Dernière modification le 24 mai 2014 à 20:37.

    Je suis content qu'elles vous plaisent parce que je me suis bien fait ch

    surtout pour les gifs.

    Celles qui viennent de play0ad.com et de moddb.com ne sont pas de moi, ce sont des screenshots officiels. Celles qui sont hébergées sur toile-libre.org sont de moi, à l'exception de la tortue romaine, qui vient d'un screenshot officiel.

    PS: Merci à tous les contributeurs ! _o/

    *splash!*

    • [^] # Re: nimages

      Posté par  (site web personnel) . Évalué à 5.

      surtout pour les gifs

      Vivement la gestion de la balise video sur linuxfr!

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

      • [^] # Re: nimages

        Posté par  . Évalué à 5.

        et audio, pour intégrer les musiques dans l'article.

        *splash!*

      • [^] # Re: nimages

        Posté par  . Évalué à 4.

        C'est pas tellement l'optimisation gif qui m'a donné le plus de fil à retordre en fait, c'est plus le montage/sélection des séquences/découpage…

        *splash!*

      • [^] # Re: nimages

        Posté par  (site web personnel) . Évalué à 1.

        Avec DRM

    • [^] # Re: nimages

      Posté par  (site web personnel) . Évalué à 6.

      Oui super images ! et merci pour cet article, c'est vraiment intéressant de pouvoir suivre l'évolution du jeu comme ça.

      J'y ai rejoué, c'est vraiment bien fait. Deux petites choses :
      -Je me suis un peu énervé avec les unités qui se remettent en formation dès qu'on donne un ordre groupé, même en plein combat.
      - J'ai fait une partie où l'adversaire IA n'a pas abandonné jusqu'à ce que je doive trouver sa dernière unité sur la carte et la détruire, un peu long !

      Sinon super, merci encore.

      • [^] # Re: nimages

        Posté par  . Évalué à 4.

        Je suis d'accord. C'est un vrai problème de devoir trouver la dernière unité.

      • [^] # Re: nimages

        Posté par  . Évalué à 3.

        Je me suis un peu énervé avec les unités qui se remettent en formation dès qu'on donne un ordre groupé, même en plein combat.

        En fait les développeurs ont fait ce choix parce que les unités sont supposées mieux se battre lorsqu'elles sont en formation. Actuellement, ce n'est pas le cas, car les bonus de formation ne sont pas encore implémentés. Lorsqu'ils le seront, les unités auront des stats différentes selon la formation qu'elles adoptent. Par exemple, les unités en formation tortue seront quasiment invulnérables aux flèches, les unités en formations phalange et syntagme seront presque invulnérables à toute attaque de front et auront un bonus accru contre la cavalerie, mais seront très vulnérables à toute attaque de flanc, etc. La vitesse des unités doit changer aussi selon la formation (et ça, il me semble que c'est déjà implémenté).

        Mais actuellement ce comportement est plus agaçant qu'autre chose. Et encore, le code de regroupement des unités est plus intelligent dans l'alpha 16 que dans les précédentes, avant c'était pire.

        J'ai fait une partie où l'adversaire IA n'a pas abandonné jusqu'à ce que je doive trouver sa dernière unité sur la carte et la détruire, un peu long !

        Ça c'est un bug connu. Les développeurs doivent implémenter des conditions de victoire plus fines (plutôt que "éliminer toutes les unités et les bâtiments militaires de l'ennemi"). En attendant tu peux toujours afficher le developer overlay (Alt+D) et révéler toute la carte pour trouver les dernières unités (il doit sûrement y avoir aussi un code de triche pour ça). Mais ça gâche un peu le plaisir du jeu. Sinon tu fais tout plein de petits groupes d'unités de cavalerie légère et tu leur demandes de ratisser la carte et éliminant tout ennemi rencontré en faisant des Ctrl+Shift+Clic droit un peu partout sur la minimap.

        *splash!*

        • [^] # Re: nimages

          Posté par  . Évalué à 3.

          invulnérables à toute attaque de front et auront un bonus accru contre la cavalerie, mais seront très vulnérables à toute attaque de flanc

          Du coup, en plus de l'emplacement, il faudrait pouvoir spécifier la direction dans laquelle les unités se mettent en place.

          « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

          • [^] # Re: nimages

            Posté par  . Évalué à 3.

            Ben actuellement la direction, elle est déterminée par le segment entre le point d'origine et le point où tu cliques. Mais comme tu n'as pas d'indicateur visuel, c'est pas évident à gérer effectivement. Quand tu as une ligne de 300 spartiates qui dépasse des deux côtés de ton écran et que tu les fait avancer d'un mètre, tu n'as aucune idée de la direction dans laquelle ils vont se placer. À mon avis ils devraient implémenter un système de clic-and-drag : on clique droit sur le sol, ça trace un point, on glisse, ça trace une flèche donnant la direction, et on relâche le clic. Certains RTS ont ça.

            En plus, ça permettrait d'implémenter correctement la charge (cavalerie, infanterie, éléphants…) : la longueur de la flèche déterminant la distance sur laquelle les unités vont charger.

            *splash!*

        • [^] # Re: nimages

          Posté par  . Évalué à 1.

          Moi je prend toutes mes unités en formation dispersée. Avec une centaine de soldats on couvre presque un quart de la carte, et un plus ils courent pour se mettre en formation !

          bépo powered

    • [^] # Re: nimages

      Posté par  (site web personnel, Mastodon) . Évalué à 3.

      Je suis content qu'elles vous plaisent parce que je me suis bien fait ch

      surtout pour les gifs.

      Si tu es du coté de Toulouse le week-end prochain, passe discuter de GIFs animées au THSF, on a quelques fans du 89a qui feront des trucs qui clignotent…

  • # chapeau bas !

    Posté par  (site web personnel) . Évalué à 10.

    Personnellement, au-delà de la qualité de la dépêche, je suis surtout épaté par les graphismes. Il a vraiment de l'allure, ce jeu ! Ça donne envie de jouer !

  • # Campagne de dons

    Posté par  . Évalué à 1.

    Peu après, les news sur l'avancée du travail de Redfox s'interrompent. L'équipe de développement communique peu sur le sujet, le reste de la communauté s'interroge. On apprendra quelques mois plus tard que Redfox a décidé de ne plus travailler sur le projet, car il a retrouvé du travail ailleurs, et que la période de travail que lui proposait Wildfire Games à l'issue de la levée de fonds lui semblait trop courte.

    En effet, la communication de l'équipe a été plutôt catastrophique.

    J'ai moi-même fait un don, et nous étions censés recevoir les perks en Décembre.
    Les recevoir plus tard ou même pas du tout ne me gêne pas, mais j'aurais aimé être mis au courant (je leur avais envoyé un mail pour plus de renseignements, vue l'absence d'infos sur leur site, mais la réponse était plutôt du genre succincte).

    • [^] # Re: Campagne de dons

      Posté par  . Évalué à 3.

      Ils ont envoyé un mail aux donateurs le 14 décembre :

      We have just been notified that all of the funds from the Indiegogo fundraiser have safely arrived. The funds came in several installments and the whole process took some time.
      Unfortunately, because of the delays, we won't be able to keep our promise to deliver perks by Christmas. However, now that we have the funds, we will get started on fulfilling perks immediately. You can expect them in the beginning of 2014.
      Sorry and thank you for understanding.

      Mais pas d'annonce depuis.

      *splash!*

      • [^] # Re: Campagne de dons

        Posté par  . Évalué à 2.

        En effet.

        J'avais envoyé le mail dont je parle fin Février.

        Sinon, il y a quelques détails sur leur site dans un message daté du 25 Avril :

        Part of these funds are planned to go towards buying the perks we promised our donors. We will be distributing surveys to our donors shortly to make sure which perks they want. Then we will budget accordingly.

        We know donors have been waiting for their perks for a long time. We sincerely apologize for the long delay in perk fulfillment.

  • # Javascript

    Posté par  . Évalué à 3.

    Le jeu est donc écrit en Javascript ? Avec SpiderMonkey, le moteur de Mozilla, si j'ai bien compris ?
    Mais pourquoi ?
    Je ne suis maintenant plus étonné des problèmes de performances sur mon ordinateur avec la version Alpha IX : Ides of March. ^_^

    • [^] # Re: Javascript

      Posté par  . Évalué à 3.

      Le jeu est donc écrit en Javascript ?

      Seulement certaines parties.

      « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

    • [^] # Re: Javascript

      Posté par  . Évalué à 6.

      Uniquement l'IA, et la logique du jeu. Enfin, les IA car il y aplusieurs bots disponibles.

      Le code du moteur est en C++. C'est un schema classique pour les moteurs de jeux que d'avoir le moteur en C++ et la logique en un langage de script, que ça soit lua, javascript ou un truc interne comme QuakeVM.

    • [^] # Re: Javascript

      Posté par  . Évalué à 5. Dernière modification le 25 mai 2014 à 12:40.

      Pour la "moddabilité". Les développeurs du jeu ont choisi javascript pour certaines parties du jeu (le moteur est en C++) pour faciliter la création du mods.

      *splash!*

      • [^] # Re: Javascript

        Posté par  (site web personnel) . Évalué à 4.

        L'intégration d'un langage de script est surtout utile pour permettre le modding d'un jeu pwivateur. Avec un jeu libre, un simple système de greffons ne ferait-il pas l'affaire?

        Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

        • [^] # Re: Javascript

          Posté par  . Évalué à 3.

          Jean Sairien. Il faudrait demander aux développeurs parce que là je ne suis pas assez calé sur le sujet pour te répondre.

          *splash!*

        • [^] # Re: Javascript

          Posté par  . Évalué à 6.

          Je suis loin d'être convaincu. Déjà, ça réduit la simplicité de distribuer les mods (il faut compiler pour chaque architecture et chaque compilateur pour lequel le jeux est compatible). Ensuite, pour le développement, c'est plus compliqué de recharger proprement un mod en JS qu'en C++. Enfin, ça évite le problème de sandbox (éviter que le mod fasse des accès mémoires tout pourri qui fasse cracher le jeux par exemple).

          « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

          • [^] # Re: Javascript

            Posté par  . Évalué à 2.

            Même si je suis d'accord sur l'ensemble, je tiens à nuancer un peu ton propos.

            il faut compiler pour chaque architecture et chaque compilateur pour lequel le jeux est compatible

            Pour l'architecture, c'est vrai ( quoique, sur une multi-arch ia64, on peut exécuter du i386… mais ce serait dommage ). Pour les compilateurs, c'est partiellement vrai.
            La difficulté dans un système de plug-in écrit en C++ est de ne pas casser l'API bien sûr, comme pour tout langage, mais aussi l'ABI, ce qui est plus compliqué.
            Mais plus compliqué ne signifie pas impossible, une méthode régulièrement utilisée est d'exposer une API C-style, qui est un langage dont l'ABI est stable ( évidemment, il n'y a pas de méthodes virtuelles, déjà, et l'ordre de résolution des paramètres d'une fonction est imposé par le standard, contrairement au C++ ), et d'ensuite refaire une bibliothèque C++ qui l'encapsule si on tiens à retrouver les avantages du C++ ( exceptions, type-safety, notamment ).
            Cette méthode permets aussi de pouvoir créer des plug-ins dans d'autres langages, il suffit de créer la lib d'encapsulation correspondante.
            Du coup, au final, cette façon de faire permettrait au contraire de faciliter les mods, puisqu'on ne restreindrait plus le langage utilisé au javascript ( qui a, j'ai l'impression autant d'admirateurs que de détracteurs ) mais à tout langage capable d'appeler du C. C'est à dire, la majorité de ceux que je connais.

            D'autres jeux, je pense notamment à unvanquished, utilisent des machines virtuelles en C, et la dernière fois que j'ai mis le nez dans ce jeu la, la possibilité d'utiliser LLVM au lieu de QVM était une piste pour permettre un code plus C++ tout en restant exécutable d'une archi à l'autre ( quoique j'ai un doute, on peut vraiment exécuter le même binaire sur un amd64 et sur un proc ARM? À vérifier tiens ).

            Pour le problème de sandbox… c'est la même chose en JS non? Je veux dire, l'isolation doit toujours se faire, même si pour le coup, c'est une outil externe qui le fait… et sûrement partiellement j'imagine, je doute qu'il n'y ait aucune protection dans le code lui-même.
            En C++ c'est vrai que ça me semble pas évident, il faut à tout le moins surcharger new, delete ( qui sont des opérateurs comme les autres ) pour, je dirai, si je devais faire un truc pareil, interdire tout appel à delete et forcer un retour de std::unique_ptr du new.
            Dur, mais à vue de nez, semble faisable et éviter quelques problèmes ( quoique unique_ptr expose potentiellement le pointeur interne via la méthode get. Il faudrait probablement restreindre ce smart pointer pour interdire certains appels, mais ça ne me semble pas infaisable ).

            Je précise et j'insiste, que c'est juste une idée en passant, je n'ai pas étudié son bien fondé ni sa faisabilité. En plus, je doute très fortement que 0AD soit écrit en C++11. Et pour cause, il me semble que le dev à commencé bien avant.

            • [^] # Re: Javascript

              Posté par  (site web personnel) . Évalué à -1.

              Pour le problème de sandbox… c'est la même chose en JS non?

              Je ne vois pas trop l'intérêt du sandboxing. Si tu n'as pas confiance dans un mod, il ne faut pas l'installer.

              Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

              • [^] # Re: Javascript

                Posté par  . Évalué à 4.

                Ce n'est pas qu'une question de confiance, c'est plus une question de jouabilité. Tu évite par exemple des accès mémoire foireux qui feront cracher le jeux, c'est une défense contres les développeurs peu consciencieux, pas les développeurs méchants. Après, tu peux très bien dire que tu t'en fout et que les gens n'ont qu'à tester les mods mais c'est pénible pour les joueurs d'avoir à tester plusieurs mods, pour se rendre compte qu'il y en a qui est inutilisable quand tu dépasse 200 unités par exemple.

                Bien sûr, ça ne résout pas tous les problèmes, loin de là, mais ça permet d'en éviter une partie.

                « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                • [^] # Re: Javascript

                  Posté par  (site web personnel) . Évalué à -2.

                  Bien sûr, ça ne résout pas tous les problèmes, loin de là, mais ça permet d'en éviter une partie.

                  Le jeu est en C++, non? Les accès mémoires à coup de raw pointers, c'est fini depuis 1742.

                  Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

                  • [^] # Re: Javascript

                    Posté par  . Évalué à 3.

                    En théorie, oui.

                    Dans la pratique, je ne suis pas si sûr. Il me semble par exemple avoir vu dans flare-rpg des raw pointers utilisés à coups de new/delete il y a de cela bien 2 ans ( ==> attention au memory leaks humains donc ).

                    Je me souviens aussi clairement que la première fois que j'ai entendu parler de smart pointers, c'était bien après mes études, grâce au fait que je fouine sur le net au sujet de comment améliorer mes connaissances sur ce langage ( je suis encore si loin d'être un expert… encore de nombreuses années à fouiller en perspective, miam ).

                    Si on enseignait encore aux étudiants en 2005 l'utilisation de raw pointers en C++, penses-tu que ceux-ci utilisent des smart pointers?

                  • [^] # Re: Javascript

                    Posté par  . Évalué à 3.

                    C'est un truc qui est facile à imposer dans le dépôt du jeu, pas pour les mods justement (oui, ça se surcharge et tout mais c'est du boulot).

                    « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                    • [^] # Re: Javascript

                      Posté par  (site web personnel) . Évalué à 4.

                      La charge de travail d'écrire un petit guide sur les bonnes pratiques à respecter pour écrire un greffon me semble infiniment moindre que celle pour créer une sandbox robuste.

                      Sachant qu'un codeur bourrin pourra toujours mettre le jeu à genoux simplement à allouant des millions d'objets à chaque tick, sandbox ou pas sandbox.

                      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

                      • [^] # Re: Javascript

                        Posté par  . Évalué à 3.

                        La charge de travail d'écrire un petit guide sur les bonnes pratiques à respecter pour écrire un greffon

                        Qui ne sera pas lue ou peut être que si mais ça devient de la spéculation. Tu peux parier sur le fait que les gars qui font des mods seront propres ou tu peux croire que n'importe qui va s'y lancer. Les deux sont des alternatives possibles, tu ne peux pas reprocher le choix de parier sur l'un par l'équipe de dev.

                        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                        • [^] # Re: Javascript

                          Posté par  (site web personnel) . Évalué à 3.

                          Est-ce bien le critère qui a fait choisir le scripting js aux développeurs de 0ad? Jean Doute.

                          Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

            • [^] # Re: Javascript

              Posté par  . Évalué à 3.

              Du coup, au final, cette façon de faire permettrait au contraire de faciliter les mods, puisqu'on ne restreindrait plus le langage utilisé au javascript ( qui a, j'ai l'impression autant d'admirateurs que de détracteurs ) mais à tout langage capable d'appeler du C. C'est à dire, la majorité de ceux que je connais.

              Et tu retrouve un problème de compatibilité pour tous les langages non natif. Si quelqu'un développe un mod en python3, il faut que l’interpréteur soit installé et accessible sur la machine du joueur. Si lua est installé, il faut que ce soit la bonne version de l’interpréteur[1], si tu veux deux mods qui nécessitent deux versions de lua, ça devient compliqué.

              Pour le problème de sandbox… c'est la même chose en JS non? Je veux dire, l'isolation doit toujours se faire, même si pour le coup, c'est une outil externe qui le fait… et sûrement partiellement j'imagine, je doute qu'il n'y ait aucune protection dans le code lui-même.

              De base, le JS a quand même accès à bien moins de fonction.

              Dur, mais à vue de nez, semble faisable et éviter quelques problèmes ( quoique unique_ptr expose potentiellement le pointeur interne via la méthode get. Il faudrait probablement restreindre ce smart pointer pour interdire certains appels, mais ça ne me semble pas infaisable ).

              Bien sûr, c'est sans doute faisable, mais c'est un gros boulot pour un bénéfice assez limité.

              « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

              • [^] # Re: Javascript

                Posté par  . Évalué à 1.

                Et tu retrouve un problème de compatibilité pour tous les langages non natif.

                C'est un fait. Après… c'est vrai que je me suis peut-être trop habitué à ne plus être sous windows et à avoir des paquets qui vérifient de façon simple et efficace la présence des dépendances.
                D'un autre côté, même si tu embarques un langage natif ou pas, tu te retrouveras toujours avec des problèmes de dépendances, des gens qui essayerons d'utiliser un mod fait pour une version du langage interprété qui ne correspond pas à celle avec lequel le jeu à été compilé, par exemple. En natif, tu as le souci des libs installées.

                De base, le JS a quand même accès à bien moins de fonction.

                Le problème n'est pas d'avoir accès à moins de fonctions, mais à quel point elles sont user-proof ainsi qu'a quel point le code appelant est résistant aux erreurs, et ça, il faut bien le gérer quelque part. Par exemple, ValyriaTear qui utilise du lua n'est pas spécialement résistant, et j'ai expérimenté des crash dus à des erreurs dans le code lua. Forcément, vu que c'est pas compilé dans un binaire, la vérification doit se faire au runtime, et on peut se retrouver avec des versions foireuses.
                Autre exemple, il y a encore pas si longtemps, voir des navigateurs bugguer à bloc à cause d'un code JS foireux n'était pas hors-norme. Et de gros bugs sont au moins aussi frustrant pour le joueur qu'un crash propre ( on surcharge std::terminate pour qu'il fasse une autosave, si on a une appli suffisamment exception-safe, au moins le joueur n'a peut-être pas perdu tout son temps… ) selon mon opinion très personnelle de joueur.

                Bien sûr, c'est sans doute faisable, mais c'est un gros boulot pour un bénéfice assez limité.

                C'est pour ça que j'ai dit que je suis d'accord et que mon objectif n'était que de nuancer.
                Les systèmes extensibles, ce n'est jamais simple à faire, entre la stabilité nécessaire de l'API et les protections du jeu contre le système d'extensions, et c'est encore pire quand les dites extensions sont modifiables sans re-linker le binaire, puisqu'on a alors plus aucune garantie quant à leur validité.
                Attention, je ne dis pas que les langages interprétés sont mal, juste que chacun voit le juste milieu entre vitesse d'exécution, sécurité de l'extension ( pas au sens attaque, mais au sens bug ), souplesse ( quel langage? ) et autres paramètres.

                • [^] # Re: Javascript

                  Posté par  . Évalué à 3.

                  C'est un fait. Après… c'est vrai que je me suis peut-être trop habitué à ne plus être sous windows et à avoir des paquets qui vérifient de façon simple et efficace la présence des dépendances.

                  C'est valable aussi sous Linux, si tu as besoin de Ruby 1.8 et que ta distrib ne fournit que la 2.1, c'est problématique.

                  D'un autre côté, même si tu embarques un langage natif ou pas, tu te retrouveras toujours avec des problèmes de dépendances, des gens qui essayerons d'utiliser un mod fait pour une version du langage interprété qui ne correspond pas à celle avec lequel le jeu à été compilé, par exemple. En natif, tu as le souci des libs installées.

                  Si tu prends Python ou JS, la compatibilité ascendante n'est pas trop mauvaise (même si elle est loin d'être parfaite). Les risque d'utiliser un mod pour une version n qui ne fonctionne plus en n+1 est donc faible. Après, s'il font n'importe quoi avec l'API, il faut s'amuser à recoder le même système que firefox.

                  « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                  • [^] # Re: Javascript

                    Posté par  . Évalué à 1.

                    C'est valable aussi sous Linux, si tu as besoin de Ruby 1.8 et que ta distrib ne fournit que la 2.1, c'est problématique.

                    Oui, mais au moins tu connais le problème, vu que les systèmes de gestion de paquet savent faire la différence entre 2 versions et exiger une version "au minimum" et/ou "au maximum".
                    Sous windows, il faut faire des vérifications manuelles, si je me souviens bien.

            • [^] # Re: Javascript

              Posté par  (site web personnel) . Évalué à 3.

              sur une multi-arch ia64, on peut exécuter du i386

              Tu voulais dire « sur une multi-arch amd64, on peut exécuter du i386 » je suppose, parce qu’il me semble que l’Itanium (ia64) n’a pas de compatibilité ia32.

              ce commentaire est sous licence cc by 4 et précédentes

  • # Dure réalité

    Posté par  . Évalué à 10.

    J'ai installé le jeu puis me suis fait une petite partie pour essayer.

    Premier constat : on retrouve tout de suite ses marques même après 8 ans d'abandon de Age Of Empire ou autre STR. J'étais donc tout content de créer mes paysans, récolter des ressources, faire une première armée.

    Dure réalité : Je me suis fait tanné bien gentiment par l'ordinateur lorsqu'il a décidé qu'il en avait assez de moi. (il était en normal).

    Merci bien pour cette dépêche.

    • [^] # Re: Dure réalité

      Posté par  . Évalué à 1.

      Pareil pour moi. :-P

      • [^] # Re: Dure réalité

        Posté par  . Évalué à 1.

        Allez hop, perdu en 20 minutes… Pas le temps et de ressources pour construire tout ce que l'ennemi a construit…

        • [^] # Re: Dure réalité

          Posté par  . Évalué à 0.

          En ce qui me concerne, après avoir fait quelques parties, je me suis rendu compte que le mode normal est trop difficile pour moi.
          Le mode sandbox est trop facile, mais le mode facile est faisable !

  • # a propos du megapatch

    Posté par  . Évalué à 2.

    bonjour, merci pour cette dépêche de qualitay.
    Je n'y connais pas grand chose en programmation, mais j'aimerai comprendre comment le "megapatch" de Redfox n'est pas exploitable par le reste de l'équipe ? est-ce une question de compétence ? ou de non compatibilités avec les patchs de Tan Kuranes ?

    Également, le fait qu'ils n'est pas reçu assez d'argent lors de la campagne de crowfounding , était-ce du aux choix de la plate-forme l'hébergeant ?

    merci

    • [^] # Re: a propos du megapatch

      Posté par  . Évalué à 4.

      J'imagine que quand on distribue une série de correctifs sous la forme d'un seul gros patch c'est une galère à débugguer. Tu appliques le patch, tu vois des bugs, tu veux savoir d'où ils viennent, et là c'est comme chercher une aiguille dans une botte de foin.
      Enfin j'imagine, hein, je ne m'y connais pas plus que toi en programmation. Si il y a des DLFPiens qui maîtrisent un peu mieux le sujet ils sont les bienvenus dans l'espace de rédaction ! \o_

      Après je sais que le projet manque de bras pour tester les patchs. À chaque release, il y a des dizaines de tickets de bugs marqués [PATCH] qui sont repoussés à l'alpha suivante, parce que les développeurs n'ont pas eu le temps de les tester. Certains patchs de Tan Kuranes ont été intégrés, d'autres ont été rejetés, mais la plupart sont encore en attente de review.

      Également, le fait qu'ils n'est pas reçu assez d'argent lors de la campagne de crowfounding , était-ce du aux choix de la plate-forme l'hébergeant ?

      Je ne pense pas, IndieGogo étant une plateforme connue, et probablement la plus populaire pour le financement participatif de jeux vidéos indépendants.

      Alors si je me mets en mode pessimiste ça donne :
      C'est dû au fait que personne n'en a rien à foutre des jeux vidéos libre : les gamers ne s'intéressent pas libre et les libristes ne jouent pas aux jeux vidéos.
      Mais ça n'apporte pas grand chose. :/

      Alors on peut noter le fait que la campagne était très ambitieuse : demander 160 000$, c'était placer la barre très haut pour un jeu si peu connu. Heureusement qu'ils ont choisi un financement flexible. Ensuite il y a le fait que l'argent ne servait pas à rendre le jeu possible, mais à accélérer son développement. Le fait que le jeu serait développé quoi qu'il arrive a peut-être moins motivé les donateurs.

      Mais c'est difficile d'analyser les résultats d'un fundraiser, j'ai pas de réponse toute faite à ta question.

      *splash!*

      • [^] # Re: a propos du megapatch

        Posté par  . Évalué à 5.

        Le jeu à des contributeurs divers et variés, qui modifient une base de code unique en y envoyant de petits patchs, modifiant le moins de ligne possible.
        Du coup, on arrive à avoir une bonne idée rapidement et même sans comprendre le code de ce que fait le patch, grâce à son intitulé.
        Comme ils "commitent" régulièrement leurs modifications, les conflits sont rares et simples à résoudre, encore une fois surtout grâce à l'intitulé des commits.

        Si un contributeur fait "silence radio" ( en terme de modifications visibles du code, je parle ) pendant 1 mois, et modifie, disons, 100 lignes par jour ( pas énorme, je précise, 100 lignes par jour ). Comptons 20 jours de travail dans un mois. Ça 2000 lignes à lire, et à intégrer avec les modifications qui ont eu lieu entre temps.
        A savoir que quand on travaille sur une ligne, un diff peut l'afficher de plusieurs façons différentes:

        • insertion de code: ligne ajoutée
        • suppression de code: ligne supprimée
        • modification de code: ligne ajoutée, puis ligne ajoutée

        Pas forcément super lisible, surtout que parfois la modification est de l'ordre de 1 caractère sur une ligne de 60 caractères de large.

        Et bien entendu, ces 2000 lignes ne sont pas monolithiques, mais éparpillées partout dans plusieurs fichiers. Vu le jeu, je dirai plusieurs dizaines de fichiers.

        Ces modifications peuvent être de l'ordre du bug-fix et de l'ajout de fonctionnalités "simples", là, ça reste aisé: de petits blocs par-ci par-là. Mais ça peut aussi être structurel, comme 0AD est en alpha, l'API n'est pas stable.

        Tout ça, ça rends difficile l'intégration du travail dans l'existant.

        Pour finir, je doute très fortement que le patch se limite à "seulement" 2000 lignes changées entres autres parce que si j'ai bien compris il à bossé 6 mois ( donc déjà 12K lignes ).

        Maintenant, j'insiste: le KLoC ( Kilo Lines of Code, milliers de lignes de code ) est une métrique complètement stupide et inutile, à destination des gens qui croient que plus il y a de lignes dans un programme, plus il y a de travail. En réalité, le plus dur est de faire du code simple.

        • [^] # Re: a propos du megapatch

          Posté par  . Évalué à 6.

          Maintenant, j'insiste: le KLoC ( Kilo Lines of Code, milliers de lignes de code ) est une métrique complètement stupide et inutile, à destination des gens qui croient que plus il y a de lignes dans un programme, plus il y a de travail. En réalité, le plus dur est de faire du code simple.

          C’est tellement vrai ça. Je suis encore étudiant en info embarqué, et le plus dur sur une carte électronique, ce n’est pas de réaliser un asservissement de position, mais d’allumer une +@-[]%# de LED !

          bépo powered

        • [^] # Re: a propos du megapatch

          Posté par  . Évalué à 4.

          Cela dit avec des gestionnaires de version distribués (comme git), les modifications peuvent en un mois faire un diff de plusieurs milliers de lignes, ça n'empêche pas le développeur d'avoir committé chez lui plein de petites modifications unitaires, de sorte que les bugs introduits soient facilement traquables (avec un git bisect).

    • [^] # Re: a propos du megapatch

      Posté par  . Évalué à 4. Dernière modification le 26 mai 2014 à 21:28.

      Pourquoi ce "megapatch" est inutilisable ? Les précédents commentateurs ont répondu de façon générale, grosso modo :

      • Le code évolue en parallèle du patch, donc la gestion des conflits sur un gros patch devient une souffrance avec le temps.
      • Il est difficile de savoir quelle partie du patch introduit certains bugs.

       

      Dans le cas présent, c'est le mode de fonctionnement du développeur qui me semble plus que douteux :

      • développement en loup solitaire, avec des résumés plus ou moins détaillés et plus ou moins hebdomadaires ;
      • pas de dépôt public du code, mais des envois ciblés de patchs ;
      • "attaque" sur une douzaine de fronts à la fois  ;
      • pas de focalisation jusqu'à ce qu'un sujet soit traité, mais progrès en mode "papillon butinant au gré de ses plaisirs".

      Un exemple : en parallèle de plusieurs modifications visant à améliorer les performances, le développeur a commencé à migrer le format d'encodage des chaînes dans le code pour passer à UTF-8 natif. Cette opération a été menée par à coups et pas jusqu'à son terme. Personnellement, un développeur de ce genre me semble nuisible s'il n'est pas très strictement encadré—j'espère que personne ne dit cela de moi dans mon dos !

      Pour compléter, je traduis un message de Philip [aka Ykkrosh] qui semble être le principal chef de projet de 0AD. Le texte date de fin octobre, après des semaines de travail du megapatch, et à un moment où personne ne remettait publiquement en cause l'utilité de ce travail :

      Étant donné que le megapatch est actuellement presque complètement inutilisable (j'ai commencé à essayer de le découper, mais presque chaque modification qu'il introduit introduit des bugs et remplace du code fonctionnel par des procédés foireux - avec bien sûr de vrais progrès (notre code initial est aussi foireux) mais ces progrès ont tout de même besoin de nombreuses corrections et sont mêlés à d'autres modifications […]. J'espère qu'il y a aussi un plan pour s'assurer que le travail futur aura un objectif plus productif ?

  • # Raccourcis claviers

    Posté par  (site web personnel) . Évalué à 2.

    Je viens de faire une partie. C'est très sympa. On retrouve les sensations d'un Age of Empire.

    Par contre, les raccourcis clavier par défaut posent problème sur un clavier azerty et il n'y a pas d'options dans le jeu pour régler ça.
    J'ai trouvé qu'il fallait modifier son fichier ~/.config/0ad/config/user.cfg et rajouter ceci :
    hotkey.camera.left = "Q"
    hotkey.camera.rotate.cw = "Ctrl+LeftArrow"
    hotkey.camera.rotate.up = "Ctrl+UpArrow"
    hotkey.camera.up = "Z"
    hotkey.session.queueunit.1 = "W"

    C'est pas grand chose à faire mais c'est mission impossible pour un utilisateur lambda je pense. Est qu'il n'est pas possible de mapper les touches QWERTY par défaut sur le layout du clavier de l'utilisateur (demander à Xorg ou GNome par exemple ce qui est utilisé) par défaut?

    • [^] # Re: Raccourcis claviers

      Posté par  . Évalué à 3.

      Ah ben ça doit être impossible parce que je ne connais pas un seul jeu libre où je ne suis pas obligé de remapper le clavier après l'install !

      *splash!*

    • [^] # Re: Raccourcis claviers

      Posté par  . Évalué à 2. Dernière modification le 26 mai 2014 à 01:03.

      Pour avoir du faire le même type de modif pour le clavier bépo, et m’être renseigné auprès des devs, c’est un bug de la SDL. En effet cette librairie ne fourni pas d’abstraction du code de la touche, uniquement du caractère. Ce qui fait qu’il est impossible pour un programme utilisant la SDL – sans ajouter une couche d’abstraction maison, couche ne pouvant de toute façon pas être universelle – de dire : « le caractère situé en haut à gauche du clavier sert à activer l’action A ».
      Il me semble que j’avais lu dans les docs de la SDL que c’était dû au fait que la SDL est disponible sur des tas d’architectures y compris celle qui ne possèdent pas de clavier 104/105 touches. C’est donc un bug classé par la SDL comme étant non pris en charge, et c’est très pénible quand on est pas en qwerty !

      bépo powered

      • [^] # Re: Raccourcis claviers

        Posté par  (site web personnel) . Évalué à 3.

        Ce que tu dis me surprend : il me semble que la SDL permet cela (peut-être que depuis la version 2 par contre, je ne sais pas quelle version utilise 0 A.D.) en utilisant des "scancodes" plutôt que les "keycodes", les premiers correspondant à l'emplacement physique de la touche, tandis que les deuxièmes correspondent au caractère. Ainsi SDL_SCANCODE_A devrait toujours correspondre à la touche à droite du S, donc au Q sur un clavier azerty.

      • [^] # Re: Raccourcis claviers

        Posté par  . Évalué à 6.

        et m’être renseigné auprès des devs, c’est un bug de la SDL.

        ha non, je ne pense pas non…
        En general c'est un bug du developpeur. parce qu'il y a deux manieres de savoir sur quelle touche on à appuyé, une maniere physique et une logique :

        • en interrogeant event.key.keysym.sym on obtient le code de touche physique (SDLK_a pour la touche 'a', en fait c'est surtout pratique pour chopper les touches telles que SDLK_ESCAPE, SDLK_TAB etc…)

        • en interrogeant event.key.keysym.unicode on optient le code du caractere donnée par le systeme d'exploitation qui corresponds à la touche appuyé du clavier.

        Pour un americain, il se trouve que c'est la même chose, biensûr… il va naturellement utiliser la 1ere exclusivement.
        Mais la SDL (je dev encore en 1.2) permet tres bien de recuperer les bonnes informations a travers le layout du clavier défini dans l'OS. avec la 2eme methode donc.

        C'est vrai que c'est un peu plus chiant pour le dev, il faut déjà faire un SDL_EnableUNICODE(1) et puis en fonction de ce que tu veux faire tu attaque un static_cast(char)(event.key.keysym.unicode & 0x7F) …

        mais non, c'est pas un bug, c'est de l'ignorance/flemardise du dev…

        • [^] # Re: Raccourcis claviers

          Posté par  . Évalué à 1.

          • en interrogeant event.key.keysym.sym on obtient le code de touche physique (SDLK_a pour la touche 'a', en fait c'est surtout pratique pour chopper les touches telles que SDLK_ESCAPE, SDLK_TAB etc…)
          • en interrogeant event.key.keysym.unicode on optient le code du caractere donnée par le systeme d'exploitation qui corresponds à la touche appuyé du clavier.

          Et un de ces deux moyens permet-il de savoir où physiquement se trouve la touche appuyée ? Car pour moi le principal problème n'est pas de savoir la lettre correspondante, mais la localisation de la touche pour pouvoir faire des contrôles du type WSAD (clavier US) ou ZSQD (clavier FR).

          • [^] # Re: Raccourcis claviers

            Posté par  . Évalué à 4.

            C'est clair que nullepart il n'est question de position "relative" (la touche à droite de 'D'), ni même de coordonées GPS.

            et heuresement…

            Mais un jeu bien fait, tu peux quand même (re)définir les touches, que ca soit ingame ou en éditant un fichier de conf.
            Voyons les 2 possibilités :

            • redefinition ingame :
              Là, quelquesoit le mode de lecture de la touche (phy/logique) ca marche (car le dev va forcement lire la touche de la même manière durant la partie et durant l'écran de de refinition des touches, ou alors il est un peu con)

            • redefinition fichier de conf.
              Là il faut bien faire attention, et l'utilisation de la methode logique (event.key.keysym.unicode) est donc obligatoire, car il faut bien que ca corresponde au caractere qui aura été saisi dans le fichier avec son editeur de texte favori)

            Alors c'est sûr que si le dev, n'a pas prévu de redefinition, c'est cuit. On ne peux pas demander si a SDL ni au systeme d'expoloitation de deviner la position GPS de la touche hein… question de logique.

            • [^] # Re: Raccourcis claviers

              Posté par  . Évalué à 3.

              Je dois être idiot, mais je vois pas en quoi c'est si farfelu d'imaginer une position relative. La plupart des OS affichent un joli clavier avec la disposition des touches dans les paramètres, donc il doit bien y avoir la disposition des touches quelque part dans les fichiers systèmes.

              En quoi est-ce aberrant de vouloir mapper les touches par rapport à leur position sur le clavier plutôt que par rapport à ce qu'il y a écrit dessus ? Plein de jeux exploitent ça (les jeux en First Person, les jeux de plateforme, les puzzle games, etc… en fait je vois peu de jeux qui n'utilisent pas ce genre de système), dans une bibliothèque telle que la SDL ça pourrait être utile non ?

              • [^] # Re: Raccourcis claviers

                Posté par  . Évalué à 4.

                Et ces claviers virtuels affichés par l'OS ne correspondent pas forcément avec le clavier physique, il suffit de voir la gueule d'un clavier Lenovo pour voir que ce n'est pas facile. Et encore, c'est loin d'être aussi bizarre que des clavier de portable avec la touche < à côté de l'espace ou les touches pgup/pgdown un peu partout.

                « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                • [^] # Re: Raccourcis claviers

                  Posté par  . Évalué à 3.

                  Je suis d'accord sur le principe, mais dans 99% des cas cela éviterait à l'utilisateur d'avoir à remapper ses touches (voire 100% des cas car dans la plupart des jeux les touches spéciales qui sont celles qui ne sont pas à la bonne place n'ont aucun effet). Si jamais l'utilisateur a un clavier différent, alors il reste la possibilité de proposer une config remapping in-game.

                  L'expérience utilisateur serait grandement améliorée.

              • [^] # Re: Raccourcis claviers

                Posté par  . Évalué à 2.

                mais je vois pas en quoi c'est si farfelu d'imaginer une position relative

                Ce que tu demande c'est une "carte" du clavier, avec des coordonnées pour chaque touche… c'est un écran tactile que tu veux en fait, une tablette quoi.

                le clavier sur lequel je tape est un azerty classique, mais dont les touches PgUp/PgDown/home/inser/del est différent du classique. Mais dans mon système, il n'est pas indiqué comme particulier. avec ton idée de position relative, il faudrait impérativement le coder… alors qu'en fait il fait ce pour quoi il est prévu : il renvoie les bons keycode quand on appuie sur une de ces touches.

                donc, non désolé, c'est pas une super idée je trouve.

                • [^] # Re: Raccourcis claviers

                  Posté par  . Évalué à 4. Dernière modification le 27 mai 2014 à 09:30.

                  Argument vraiment pauvre… les touches dont on parle dans les jeux sont la plupart du temps les lettres, qui elles sont dans la majorité des cas toujours au même endroit (hors clavier TypeMatrix, et encore je suis sûr que la différence ne gênera pas).
                  A trop vouloir faire quelque chose d'universel on rends la vie de l'utilisateur compliquée alors qu'on pourrait faire bien plus simple.

                  Personnellement quand j'installe un jeu "pour tester" j'aime bien ne pas avoir à remapper mes touches WSAD pour pouvoir me déplacer convenablement. Il m'est arrivé de passer plus de temps à trouver le menu pour changer cela que de temps effectif de jeu (parfois le jeu n'est pas dans une langue qu'on maîtrise…).

                  Mais bon, si les développeurs préfèrent que le "corner case" de la touche Page Up (jamais utilisée dans aucun jeu, du moins pas en utilisation "géographique") de certains claviers atypiques soit géré de façon universelle plutôt que de fournir une bonne expérience "out of the box" dès l'installation du jeu, alors j'arrête de me battre… après tout quand on fait un jeu c'est pas pour l'utilisateur…

                  • [^] # Re: Raccourcis claviers

                    Posté par  . Évalué à 1.

                    parce que les claviers n'ont pas été concu que pour les jeux, même pas du tout à la base.
                    Alors toi ce qui t'interresse c'est 4 touches, ok, pour un autre c'est 6 autres touches… et pour ceux qui ne jouent pas c'est… toutes les touches.
                    Donc, il faudrait quoi ?

                    Que le dev du jeu prenne en compte tous les layout de clavier dans son jeu (pour que tu n'ai pas a redefinir les touches dans l'ecran qu'il a prevu a cet effet), même pour 4 touches c'est lourds (rien que pour le clavier FR, tu as 50% de tes touches qui posent probleme : W et A)

                    ou alors :

                    Que le systeme prennent en compte la position relatives des touches. ok, mais il ne vont pas le faire pour mr Strash uniquement, hein… donc pour toutes les touches, et donc on retombe sur mon argum "tres faible" : il faudrait que tous les clavier de la création soit codé et identifiable (ha oui, tiens : comment je trouve le type de clavier, par exemple là c'est un dell, mais j'en ai plein des dell, certains avec des touches media, d'autres plutot classique…)

                    donc, désolé, l'idée te semble bonne, mais comme tu n'es pas le seul concerné, ben c'est un peu plus compliquer que traiter 4 touches, et d'ailleurs si personne n'a entrepris une telle aventure il y a peut être une raison…

                    Il ne s'agit pas juste de balancer que le "jeu c'est pour l'utilisateur", mais de proposer une implementation, moi je n'en trouve pas de valable… et toi tu propose concretement un truc ?

                    • [^] # Re: Raccourcis claviers

                      Posté par  . Évalué à 2.

                      Déjà, je parles de la SDL, pas d'une bibliothèque générale, mais d'une bibliothèque qui est beaucoup utilisée dans les jeux.

                      Donc je propose tout simplement de supposer vrai la disposition que tout bon OS affiche dans les paramètres clavier. A partir de là lorsque tu lances ton jeu la configuration des touches de contrôle est définie par rapport à cela.
                      Dans 99% des cas cela se traduira par une expérience de jeu satisfaisante pour le joueur.
                      Dans le reste des cas il reste la possibilité de redéfinir les touches dans un menu config du jeu.

                      C'est si irréaliste que ça ?

                      • [^] # Re: Raccourcis claviers

                        Posté par  . Évalué à 2. Dernière modification le 27 mai 2014 à 11:03.

                        Parce que tu part d'un postulat faux :

                        Donc je propose tout simplement de supposer vrai la disposition que tout bon OS affiche dans les paramètres clavier.

                        c'est ce que je me tue a ecrire : non, aucun OS n'affiche le vrai layout, il affiche le layout de base pour FR_fr

                        ce n'est pas magique : les constructeurs de clavier n'envoient aucune information concernant la disposition des touches par usb. A partir de là, le systeme ne sais rien.. enfin presque, il sait un truc, l'utilisateur lui a donné que c'est un clavier azerty, voilà.

                        Et non, sous pretexte que les p'tit jeux n'ont besoin que de 4 touches, ils ne developpement pas un truc a minima, parcequ'il y aura toujours des râleurs pour qui ca n'ira pas. beaucoups de jeux en ont bien plus.

                        Sinon, je dirais que si tu ne veux pas remapper, le peripherique idéal dans ce cas, c'est encore la manette, ca fait pour ca en plus…
                        c'est pris en compte dans SDL (même en version 1.2) et c'est assez facile a gerer en plus, donc l'ideal pour les ptit jeux où la problematique est le déplacement (tes 4 touches), on a rarement besoin de remapper la croix directionelle d'une manette :)

                        • [^] # Re: Raccourcis claviers

                          Posté par  . Évalué à 3.

                          Je sais bien que ce n'est pas le vrai layout que l'OS affiche, c'est un layout de base, une approximation. Mais dans 99% des cas c'est une approximation suffisante.

                          On est dans le pur exemple d'un cas où, comme on ne peut pas être parfait, on choisis de ne rien faire. Entre avoir à remapper 1 touche tout les 100 cas et remapper systématiquement car le jeu suppose que j'ai un clavier US, je trouve que la 1ère solution est la bonne.

                          Mais bon, j'abandonne, tu ne veux pas écouter ce que je dis.

                          • [^] # Re: Raccourcis claviers

                            Posté par  . Évalué à 5.

                            Mais dans 99% des cas c'est une approximation suffisante.

                            C'est toi qui fait les sondages politiques ?

                            « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                            • [^] # Re: Raccourcis claviers

                              Posté par  . Évalué à 1.

                              C'est toi qui fait les sondages politiques ?

                              J'aurais bien mis 100%. Cite moi 1 seul jeu où la position des touches "spéciales" (celles qui sont parfois déplacées par les fabricants de claviers pour des raisons de place ou d'ergonomie) a une quelconque importance. A ce moment là je commencerais peut être à mettre en doute mon 99%.

                              • [^] # Re: Raccourcis claviers

                                Posté par  . Évalué à 3.

                                Ok.

                                Might and magic VI

                                Tu peux te remettre en cause, merci.

                                Allez, je suis grand prince, je t'en cite un second: duke nukem

                                • [^] # Re: Raccourcis claviers

                                  Posté par  . Évalué à 2.

                                  J'ai joué à ces deux jeux et je ne me rappelle pas que la position des touches avait une importance (hors WSAD pour duke nukem), tu peux me dire ce qu'il en était exactement ? For "science" ?

                                  • [^] # Re: Raccourcis claviers

                                    Posté par  . Évalué à 1.

                                    Vu que je me suis remis à might and magic, et que je me souviens à peu près de duke:

                                    les touches pour orienter la vue sur l'axe vertical, et pour voler, sont affectées par défaut aux touches:

                                    • supprim et pg down pour la vue
                                    • inser et pg up pour monter/descendre quand on vole ( sort de vol pour MM6, jetpack pour duke )
                                    • [^] # Re: Raccourcis claviers

                                      Posté par  . Évalué à 1.

                                      Ok, donc ça n'est pas un bon exemple, dans ce cas là la position de la touche sur le clavier n'a pas d'importance.

                                      • [^] # Re: Raccourcis claviers

                                        Posté par  . Évalué à 3.

                                        Bien sûr que si. Si insert et pgup ne sont pas suffisamment proche, ça devient compliqué à utiliser.

                                        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                                        • [^] # Re: Raccourcis claviers

                                          Posté par  . Évalué à 2.

                                          Hum… effectivement. Dans ce cas là il faudra remapper effectivement. J'ai bien fait de ne pas mettre 100% ;)

                                  • [^] # Re: Raccourcis claviers

                                    Posté par  . Évalué à 2.

                                    Pour les touches WSAD personne ne s'est penché sur le problème parce que ce sont des touches que la plupart des gens va forcément remapper de toute façon. Déjà aucun gamer n'utilise les touches de 1 à 0 pour les armes, en général on les remappe sur des touches plus proches des touches WASD. Il y a même des gens qui remappent sur SEDF. Après pour les gros joueurs y'a les souris à boutons et le keypads main gauche.

                                    Comme le ferait remarquer devnewton<, ce serait moins hypocrite de remplacer l'écran d'accueil par l'écran d'options lorsqu'on démarre le jeu, vu que c'est par là que tout le monde passe au début !

                                    Moi j'aimerais bien une liste des layouts les plus utilisés, qu'on pourrait sélectionner dans un menu plutôt que de se taper la configuration à la main (quitte à l'affiner après).

                                    *splash!*

                                    • [^] # Re: Raccourcis claviers

                                      Posté par  . Évalué à 3.

                                      Comme le ferait remarquer devnewton<, ce serait moins hypocrite de remplacer l'écran d'accueil par l'écran d'options lorsqu'on démarre le jeu, vu que c'est par là que tout le monde passe au début !

                                      En fait, ce n'est pas tout à fait vrai, d'abord on joue avec les touches par défaut pour trouver celles qui seront utiles de remapper.

                                      « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                                      • [^] # Re: Raccourcis claviers

                                        Posté par  (site web personnel) . Évalué à 2.

                                        Et pour connaître les touches par défaut, il te faut aller dans le menu des options!

                                        Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

                                        • [^] # Re: Raccourcis claviers

                                          Posté par  . Évalué à 6.

                                          Les jeux bien fait comme newton adventure te présente les touches essentielles au début du jeu.

                                          « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                                    • [^] # Re: Raccourcis claviers

                                      Posté par  (site web personnel) . Évalué à 4.

                                      Comme le ferait remarquer devnewton<, ce serait moins hypocrite de remplacer l'écran d'accueil par l'écran d'options lorsqu'on démarre le jeu, vu que c'est par là que tout le monde passe au début !

                                      D'ailleurs certains jeux, comme Ittle Dew, ne démarrent pas sur la fenêtre du jeu directement, mais lance une petite boite de dialogue qui permets de choisir des paramètres qui pourraient faire crasher le jeu si mal configurés, comme la résolution.

                                      Dans Newton Adventure et Ned et les maki, on appelle ça un safe launcher:

                                      safe launcher

                                      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

                              • [^] # Re: Raccourcis claviers

                                Posté par  . Évalué à 3.

                                Je ne joue plus depuis longtemps, donc je ne me souviens pas des noms mais j'ai eu un jeu avec wasd pour déplacer les perso et les flèches pour déplacer la vue. Et il y avait des actions sur les touches pgup/pgdown, vu qu'elles étaient à côté des flèches (au dessus de ← et →), j'appuyais dessus par erreur, c'était pénible. J'ai aussi des actions sur < qui se retrouve à côté de la touche espace sur certains clavier, j'ai aussi dû le remapper. Il y a des jeux qui utilise la touche pause pour faire une pause, cette touche a tendance à disparaître sur les claviers.

                                « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

                          • [^] # Re: Raccourcis claviers

                            Posté par  . Évalué à 2.

                            Dans certains jeux, notamment les jeux de stratégie en temps réél, il y a beaucoup de raccourcis clavier. Regarde dans Warzone 2100 il doit bien y en avoir un cinquantaine.

                            Dans 0 A.D., ce sont les touches nécessitant des modificateurs qui posent problème, parce qu'elles ne sont pas gérées. La touche "." qui permet d'afficher les travailleurs inactifs nécessite d'appuyer sur Shift, du coup sur 0 A.D. il ne se passe rien, donc il faut la remapper sur ";". Pareil pour les touches "[" et "]" qui permettent de faire tourner les bâtiments avant de les placer, et qui nécessitent d'appuyer sur AltGr.
                            Et ne parlons même pas des touches numériques, les plus importantes dans un RTS (puisqu'elles permettent d'assigner des groupes), que tous les français remappent systématiquement sur le NumPad, je suppose.

                            *splash!*

                          • [^] # Re: Raccourcis claviers

                            Posté par  . Évalué à 7.

                            Mais bon, j'abandonne, tu ne veux pas écouter ce que je dis.

                            Je ne suis pas dev systeme, ni même dev sdl, convainc-les donc… eux.

                            Visiblement tu veux un truc, tu viens d'avoir une petite idée que tu trouve pas mal, mais la seule chose que tu fais c'est râler, moi je cherche juste à t'expliquer, je ne sais pas si tu as vu le nombre de clavier différents, http://fr.wikipedia.org/wiki/Disposition_des_touches_des_claviers_informatiques (us, fr, suisse, roumain, russe, hebreu, toutes les langues asiatiques, les dvoraks, pebo, arabe, hongrois, grec, bulgare, turc : et là je ne cite que ceux qui sont vraiment très differents les uns des autres !)

                            T'es 4 touches tout le monde s'en tape, tu restes persuadé qu'avec 4 touches tu peux jouer a 99% des jeux (ha ha ha).
                            Mais bon heureusement pour ton amour propre, un type qui passe par la et qui cherche a t'expliquer pourquoi ça n'a pas été fais te servira a te réconforter : c'est de sa faute "il ne veux pas t’écouter", tu vas pouvoir dormir tranquille ;)

                            La prochaine fois je te laisse dans ton ignorance et ton délire.

                      • [^] # Re: Raccourcis claviers

                        Posté par  . Évalué à 5.

                        Bon, je m'incruste, mais j'ai vu des trucs qui m'agacent dans ce thread.

                        Petite liste:

                        • la touche pg up n'est jamais utilisée par les jeux ==> alooooooors, duke nukem, might and magic, divers autres FPS ( je me souviens aussi que certains jeux libres et récent utilisent ces touches en config alternative pour le coup, mais pour pas dire d'ânerie je ne vais pas citer de noms. Je vous encourage à aller dans aptitude, et consulter la vue par debtags->jeux et fouiner du côté des jeux quake-like… ) que je connais ne doivent pas être des jeux. En réalité, je la vois souvent utilisée par ceux qui préfèrent les touches flêchées au ZQSD. Et j'en connais plusieurs ( j'ai même connu de bons joueurs dans ce cas, pas juste des "noobs" ), qui utilisent les touches appropriées et non pas ZQSD.
                        • la SDL est faite pour les jeux ( raccourcis très rapide de "la SDL, pas d'une bibliothèque générale, mais d'une bibliothèque qui est beaucoup utilisée dans les jeux" ). MOUAHAHAHAHAHAHA!!!!!! Si je l'enlève de ma machine actuelle ( je suis au boulot ) je casse blender, gimp, makehuman ( bon ok, ces 3 logiciels ne me servent que pendant les pauses, j'avoue ), virtualbox, et mplayer. Combien de jeux dans cette liste? Et je gage que si j'avais un DE classique au lieu d'une machine minimaliste je casserai bien plus de choses. Au passage, j'en profite que les touches ZQSD sont utilisées par blender pour diverses choses, mais sûrement pas pour déplacer la vue ( a minima: S pour Scale, Z pour activer/désactiver le mode filaire).
                        • c'est à la SDL de gérer les layout. Archi faux, encore une fois. La SDL est, je cite, "a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware ". Autrement dit, elle existe pour permettre aux dev d'utiliser le matos sans s'occuper de l'OS. Le matos en question n'est pas nécessairement un PC, d'ailleurs la SDL fonctionne sur des tablettes, entres autres, si je ne m'abuse. Cette ( bonne ) lib n'est pas encore un bloatware, et je prie que pour ça soit le cas encore longtemps, parce qu'un accès vidéo simple, c'est vital quand on a pas envie de se cogner 30 pages de docs de divers OS/framework pour faire un truc aussi simple que changer la couleur d'un unique pixel. Les layout ne font pas partie des choses de bas niveau, ne t'en déplaise.

                        Je vais donc insister lourdement: la SDL n'est pas faite pour les jeux, il se trouve juste que certains jeux connus s'en servent, parce que ce n'est pas un bloatware et que contrairement à nombre de framework, elle n'impose aucun outil.
                        Merci donc de la conserver simple et efficace, sans qu'elle ne fasse de choix par défauts àlacon (tm) en fonction du baromètre. C'est tellement agréable d'avoir un tournevis qui juste tourne des vis dans le sens et à la vitesse demandés… (Merci à toi Sam Lantinga, qui à rendu la facilité de dessiner sur un écran à des dev passés du mode réel au mode protégé o/ )

                        Mais comme la critique est facile, je vais te suggérer une solution.
                        Plutôt qu'utiliser des touches lettrées pour des déplacements, utilises donc les touches fléchées, qui sont faites pour ça. Si elles sont trop loin des autres touches de ton clavier, modifie donc ton layout pour les mettre au milieu du bloc principal ou achètes un clavier dédié au jeu, et ensuite, tu auras le droit de râler qu'une config par défaut ne prenne pas en charge ton layout, n'utilise pas les touches pour l'usage pour lequel elles ont été conçues.
                        Enfin, je tiens à signaler à l'aimable assistance que certains jeux, tels que flare, sont capables, moyennant contribution, d'intégrer diverses configurations par défaut ( il fut un temps ou un français avait contribué une disposition qui lui convenait sur le wiki de flare. Depuis, cette disposition à été intégrée dans un jeu de configurations paramétrables.).
                        Par contre, ce n'est pas détecté par défaut, il s'agit d'un choix de l'utilisateur. Ça peut paraître stupide, mais, comme je l'ai indiqué, la configuration "locale" en question à été faite pour convenir à son auteur uniquement, puis partagée au cas où d'autres la trouveraient utile. Au passage, si quelqu'un veut un truc automatique pour la france, rien ne l'empêche de créer un package sélectionnant la config française par défaut, comme c'est le cas notamment pour firefox ou libre office… après c'est sûr, il y a plus de boulot que pour poster sur un forum )

                        En même temps, pourquoi certains francophones utilisent-ils dvorak, bépo, diverses dispositions qwerty, voire même, comble de l'horreur, des dispositions azerty non franco-françaises? Mais quels idiots… les autres, les français azerty classiques représentent 99% des utilisateurs et on se fait chier avec eux? ( oupa )

                        Je gage que 0AD ne crachera pas sur les contributions de la dite aimable assistance. Par contre, je doute que critiquer sur un forum quelconque ( pas celui de 0AD donc, dans ce cas précis ) sans connaître les problèmes techniques derrière permettra d'améliorer les choses. Peut-être que je me trompe.

                        • [^] # Re: Raccourcis claviers

                          Posté par  . Évalué à 2.

                          la touche pg up n'est jamais utilisée par les jeux

                          Je n'ai pas dit ça, j'ai dit que la position de ces touches sur le clavier n'a pas d'importance quand elle est utilisée. Contrairement à WSAD qui est très important qu'elle ai une configuration en forme de flèches.

                          la SDL est faite pour les jeux ( raccourcis très rapide de "la SDL, pas d'une bibliothèque générale, mais d'une bibliothèque qui est beaucoup utilisée dans les jeux" ).

                          Merci de raccourcir mes propos pour démonter un argument. Je dis bien "beaucoup utilisée dans les jeux"…

                          Un dernier pour la route:

                          Plutôt qu'utiliser des touches lettrées pour des déplacements, utilises donc les touches fléchées

                          Heu… tu as déjà joué à des jeux pour dire une ânerie pareille ?

                          • [^] # Re: Raccourcis claviers

                            Posté par  . Évalué à 1.

                            Pour le dernier point, une petite liste non exhaustive des jeux auxquels j'ai joué sur PC, mais qui sont assez peu connus à voir ta réaction:

                            • age of empires
                            • dune II
                            • command and conquer
                            • battle for wesnoth
                            • duke nukem
                            • master of magic
                            • unvanquished
                            • nexuiz
                            • flare-rpg
                            • dungeon keeper ( 1 et 2, mais le 1 était bien plus fun )
                            • battlefield 2142
                            • medal of honor allied assault
                            • mortal combat
                            • red eclipse
                            • unreal tournament

                            Je continue la liste ou ça te suffit?

                            Pour les jeux de stratégie, c'est en général les touches fléchées, pour les FPS classiquement c'est ZQSD bien que j'aie connu d'excellents joueurs qui utilisent les flêches parce qu'ils préfèrent le clavier numérique pour changer les armes. Et j'en connais même un qui utilise esdf, bah oui, plus de touches à portée…
                            Et pour les jeux bâtards style dungeon keeper, qui mixent STR et FPS, idem, amuses toi à te passer des touches fléchées pour voir?

                            Du coup, je te renvoie la question: tu as déjà joué à des jeux avant?

                            • [^] # Re: Raccourcis claviers

                              Posté par  (site web personnel) . Évalué à 1.

                              Je n’utilise jamais les touches fléchées dans un jeu, et quand un jeu me force à utiliser ces touches et que je ne peux pas changer, je ne joue pas au jeu. C’est trop insupportable, plus que le plaisir même de jouer.

                              Si la souris est nécessaire et que ce sont les touches fléchées qui sont utilisées, j’arrête tout de suite de jouer. Si la souris n’est pas nécessaire et que je peux utiliser ma main droite pour jouer sur les flèches du clavier, je donne une seconde chance au jeu, mais rapidement j’abandonne parce que je n’ai jamais éduqué ma main droite à jouer avec des flèches sur un clavier. Ma main droite est experte à la souris, au trackball, au trackpoint, à l’écriture à la plume, au dessin au pinceau, au crayon, à la frappe de caractère au kilomètre, mais ma main droite ne sait pas jouer, avec les contraintes de réflexe, de vitesse et de réactivité qu’un jeu demande.

                              ce commentaire est sous licence cc by 4 et précédentes

                              • [^] # Re: Raccourcis claviers

                                Posté par  (site web personnel) . Évalué à 9.

                                Ça va, t’es pas trop psycho-rigide, toi…

                              • [^] # Re: Raccourcis claviers

                                Posté par  . Évalué à 0.

                                Et donc, toi tu es le modèle de référence?

                                Ah bah merde alors, moi qui considère que la diversité et la compatibilité avec elle c'est bien, je vais devoir revoir mes standards…

                                • [^] # Re: Raccourcis claviers

                                  Posté par  (site web personnel) . Évalué à 3.

                                  Je n’ambitionne ni d’être une référence, ni d’être un modèle, uniquement un exemple, un cas d’usage.

                                  Dans la vraie vie on s’habitue à certains usages et ceux qu’on ne pratique pas peuvent devenir rebutant quand on s’y remet. C’est d’autant plus vrai quand on est un joueur occasionnel comme moi et que tout ce qu’on veut c’est se faire plaisir vite fait sur un jeu.

                                  « occasionnel », « vite fait », « faire plaisir », trois choses qui ne sont pas compatibles avec une prise en main contrariante.

                                  L’omniprésence de la souris dans l’informatique moderne fait que mon expérience du clavier dans un jeu vidéo est une expérience de gaucher. Me forcer à être droitier pour jouer au clavier est contrariant. Il faut d’abord que je réapprenne à jouer de la main droite avant de jouer au jeu, j’ai plus vite fait de jouer à un autre jeu.

                                  Je ne suis qu’un exemple, mais mon profil de joueur occasionnel ne doit pas être rare non-plus.

                                  De la même manière, je joue essentiellement sur PC et pas sur console, parce que j’ai arrêté de pratiquer la manette il y a plus de dix ans. Quand je me retrouve à l’occasion avec une manette entre les mains, j’ai l’impression d’être une poule avec un canif. Je pourrait m’y remettre, et probablement rapidement, mais comme l’occasion de jouer à une console avec une manette ne se présente que deux fois l’an pendant 30min, la partie s’arrête avant que je n’ai repris le coup de main. J’hésite parfois à m’acheter une manette pour jouer à des jeux sur émulateur, mais je sais que ce ne sera pas inné : j’ai conservé le souvenir des jeux passés, mais pas ma capacité à y jouer.

                                  Je pourrais faire un effort, il n’est pas grand… c’est juste que le joueur occasionnel que je suis n’a pas envie d’investir plus de temps là dedans, c’est une des particularités du joueur occasionnel. Personne ne m’oblige à jouer à un jeu qui me demande un apprentissage.

                                  Les seuls jeux auxquels je dois pouvoir jouer avec les flèches du clavier sont pacman et tetris, parce qu’il y a le poids de la tradition d’une part, et d’autre part, et surtout, je me lasse avant d’atteindre un niveau qui demande une bonne dextérité.

                                  ce commentaire est sous licence cc by 4 et précédentes

                            • [^] # Re: Raccourcis claviers

                              Posté par  . Évalué à 5. Dernière modification le 27 mai 2014 à 22:27.

                              Voyons ce que j'ai sur mon windows là :

                              • litle big adventure (1 et 2)
                              • dark reign
                              • blur (a moitié, on accélère/freine avec A/Q mais tourne avec les les flèches. Mention spéciale ce jeu détecte mon type de clavier et propose A/Q en FR comme quoi c'est possible, mais offre tres peu de possibilité de remap)
                              • openttd
                              • dune 2000 (déjà cité avec dune II)
                              • simcity4 (mais c'est valable dés le 1)
                              • starcraft 1
                              • opentyrian
                              • warcraft2 et 3

                              Dans 99% des cas cela se traduira par une expérience de jeu satisfaisante pour le joueur.

                              Je suis d'accord avec ton ratio : 99% mais dans mon cas c'est 99% des jeux n'utilisent pas QWSD, mais les fleches, ça doit venir du fait que je ne joue pas a des FPS.

                              Donc on peut dire tout et son contraire, mais moi je ne fais pas de mon cas une généralité.

                              Cette ( bonne ) lib n'est pas encore un bloatware, et je prie que pour ça soit le cas encore longtemps, (…..) Les layout ne font pas partie des choses de bas niveau, ne t'en déplaise.

                              Merci, je n'aurai pas dit mieux.
                              Ce qui me permet de boucler sur mon propos initial : il n'y a pas de bug dans la SDL, le dev du jeu peut très bien coder plein de chose lui même (l'écran de redéfinition étant la moindre des choses a mon avis).

                              PS : d'ailleurs, je regarde un peu la sdl 2.0 j'avais peur justement qu'ils l'alourdissent, mais je dois dire que ça m'a l'air d'être du bon boulot. t'en penses quoi ?

                              • [^] # Re: Raccourcis claviers

                                Posté par  . Évalué à 1.

                                Je suis d'accord avec ton ratio : 99% mais dans mon cas c'est 99% des jeux n'utilisent pas QWSD, mais les fleches, ça doit venir du fait que je ne joue pas a des FPS.

                                Pour être un joueur de tout style sauf point and click et jeux de sports (arcade, jeu de baston un peu, FPS, STR, strat en tour par tour, rpg, roguelike…), j'insiste sur le fait que dans tous les styles il existe plusieurs gameplay.
                                Notion par contre fortement oubliée ce millénaire, à mon grand regret: de nos jours, les jeux d'un même style se ressemblent tous à l'exception des graphismes. On est loin des années 90, et même si je vais faire mon vieu con, c'est dommage, les jeux semblent usinés, faits à la chaîne, et c'est rare d'en trouver des originaux ( bien que ça existe, borderlands par exemple ne ressemble à rien d'autre, et est exceptionnel ).

                                PS : d'ailleurs, je regarde un peu la sdl 2.0 j'avais peur justement qu'ils l'alourdissent, mais je dois dire que ça m'a l'air d'être du bon boulot. t'en penses quoi ?

                                J'ai regardé très très vite fait, à diverses reprises. Je me suis senti un peu largué parce que l'API change radicalement, mais en effet, ça à l'air d'être une refonte clean, qui se "contente" de se mettre au goût du jour niveau matos ( utilisation d'opengl, possibilité d'avoir plusieurs fenêtres, support—il me semble—de plus de boutons de la souris et pas de juste 2+molette… ) ainsi qu'un rafraîchissement d'API.

                                Perso, étant dev C++, je regarde aussi pas mal du côté de SFML ( qui ne gère pas non plus les layouts, pour le coup ) qui est un concurrent direct de la SDL ( et supposément ce qui rendu du peps au dev de la SDL, à cause d'une grosse diff de perf ). De ce côté, même si la V1 était complètement chaotique niveau conventions de codage, la v2 semble plus clean, et me donne presque envie de faire un poc ( genre un truc basique: pong ou casse brique ) sur les 2 libs histoire d'avoir un comparatif d'utilisabilité… j'aime bien les 2 libs en fait, et je me sens un peu comme l'âne de Buridan XD

                                • [^] # Re: Raccourcis claviers

                                  Posté par  . Évalué à 4.

                                  Ouais la lib de Laurent Gomila, j'avais suivis au depart le commencement de l'aventure, un truc de fou. chapeau a l'artiste.

                                  Apres c'est un feeling perso, c'est juste que je me suis senti un peu plus drivé qu'avec la sdl, exemple la classe sf::Sprite.
                                  Cette classe integre "tout", c'est pas con, ca aide bien…
                                  Mais j'aimais faire le boulot : mon objet n'etait pas un "sprite", mais par ex un "perso" qui posséde des caracteristiques telle que coordonnées, numero de sprite, etc… Du coups ca me genait d'avoir des coordonnées aussi dans le sprite, avant il suffisait de changer celles du perso, maitenant il faut en plus ajuster celle du sprite du perso… Aussi je dois être trop vieux : j'aime pas avoir plein de données membres que je n'utilise pas (ou qui font doublons) tous ces octets perdu :)

                                  Bon, en fait il faudrait peut etre que je jete un coups d'oeuil une fois que j'aurait tout passé en sdl2…. dans longtemps ;)

                                  Mais franchement je suis content que ça ait bien pris, c'est un boulot remarquable.

                                  • [^] # Re: Raccourcis claviers

                                    Posté par  . Évalué à 2.

                                    Je suis d'accord sur ce qui est des octets perdus… maintenant, dans la SDL, je doute que tu utilises tous les membres.

                                    Après, pour ce qui est des tailles de sprites, ça se défend dans le sens ou, la SFML n'est pas faite ( comme la SDL 2 j'ai l'impression ) pour gérer des sprite à l'ancienne, mais des textures openGL.
                                    Donc, avoir un personnage qui agrège un sf::sprite n'est pas stupide, idem pour les tailles différentes: ton perso, il mesure 3 unités logiques en hauteur ( pifomètre ) et 1 logique en largeur. Ton sprite, lui, est censé s'adapter à la largeur de ton écran… donc les dimensions seront potentiellement variables, et n'ont ( théoriquement ) aucun impact sur la détection des collisions.
                                    Séparer ça, ça permets de faire un jeu… comment ils disent dans le web déjà? bref, qui s'adapte à la taille des écrans. Ah! Responsive dizaine…

                                    Après, je suis d'accord, on est plus pilotés par cette lib, mais on l'est aussi plus en C++ par le langage qu'en C.
                                    Mais bon, pour finir, quand j'ai essayé d'utiliser SFML ( ancienne stable ), ça sentait trop le prototype pas adaptable sur pleins de choses, donc j'ai pas insisté plus. Par exemple, il était impossible de récupérer les dimensions d'une image que l'on aurait chargée d'un fichier de ressources. Ou alors, j'ai pas trouvé comment faire, ni en lisant la doc, ni en lisant les sources. Mais ça à été corrigé depuis.

                          • [^] # Re: Raccourcis claviers

                            Posté par  . Évalué à 5.

                            Heu… tu as déjà joué à des jeux pour dire une ânerie pareille ?

                            Je confirme que les touches fléchées, c'est bien pour jouer à Newton Adventure ou I Have No Tomatoes, mais pour un FPS ou un RTS, c'est une horreur.

                            *splash!*

                        • [^] # Re: Raccourcis claviers

                          Posté par  . Évalué à 3. Dernière modification le 27 mai 2014 à 12:43.

                          blender

                          D'ailleurs si il y a des gens ici qui arrivent à utiliser Blender sur un clavier dépourvu de pavé numérique, je veux bien qu'ils me donnent leur mapping ! _o/
                          Parce que sur mon pc portable je me suis pris la tête deux minutes à essayer de reconfigurer les touches sans conflit puis j'ai vite laissé tombé et je suis repassé sur mon fixe.

                          *splash!*

        • [^] # Re: Raccourcis claviers

          Posté par  . Évalué à 3.

          Je viens de faire une recherche, apparemment la méthode 1 est une amélioration de la SDL 1.3, qui était d’après ce que j’ai compris la version en cour de dev de l’actuelle SDL 2.0 (je ne connait pas très bien cette librairie).

          Mais la SDL (je dev encore en 1.2) permet tres bien de recuperer les bonnes informations a travers le layout du clavier défini dans l'OS. avec la 2eme methode donc.

          C'est vrai que c'est un peu plus chiant pour le dev, il faut déjà faire un SDL_EnableUNICODE(1) et puis en fonction de ce que tu veux faire tu attaque un static_cast(char)(event.key.keysym.unicode & 0x7F) …

          mais non, c'est pas un bug, c'est de l'ignorance/flemardise du dev…

          Ce que tu dis est tout simplement faux dès que tu as un layout non standard. Toutes les personnes avec un clavier dvorak (les différentes version anglaises, le bépo pour le français, le néo pour l’allemand…) se retrouveront le bec dans l’eau avec ta méthode. Avec la méthode 1 en revanche il n’y a pas de problème.
          Par exemple sur mon clavier la première ligne (celle sur laquelle il y a sans doute écrit azertyuiop sur le tiens), j’ai bépoèvdlj. Comment veux-tu que les devs le devinent ? Et encore, mon clavier est suffisamment standard pour être dans xorg.

          PS : j’ai retrouvé un rapport de bug concernant cette discussion : http://trac.wildfiregames.com/ticket/2043

          bépo powered

          • [^] # Re: Raccourcis claviers

            Posté par  . Évalué à 2.

            Je viens de faire une recherche, apparemment la méthode 1 est une amélioration de la SDL 1.3, qui était d’après ce que j’ai compris la version en cour de dev de l’actuelle SDL 2.0

            non, je code avec cette lib (donc je la connais un peu) c'est bien en version 1.2 ( non pas en 1.3/2.0)

            Le rapport de bug signale que dans les versions de dev de la sdl 2.0 il y avait un bug sur certaines touches, c'est du au recodage quasi-complet de la lib, ca ne signifie en rien que ça ne marchait pas avant (d'ailleurs il est précisé qu'en version 1.2 ces touches spéciales étaient dans le block des SDLK_WORLD*)

            Ensuite, je ne sais pas ce que tu apelles "methode 1", je préfère les nommer "logique/unicode" et "physique/scancode".
            Je ne sais pas laquelle te semble ne pas marcher, mais le fait que tu trouves que l'une est OK, va bien dans le sens : si le dev veux le faire, il peut, ce n'est un bug de la sdl.

            Moi je préconise personnellement la possibilité de modifier les touches ingame, c'est à dire que le dev va lire les scancode (par exemple) et attribuer ces scancode à des actions. Par exemple, pour definir "tirer", dans l'ecran de redefinition l'utilisateur appuiera sur la touche X de son clavier (peu importe où elle se trouve) le clavier retourne un code (par exemple SDLK_F1). Durant le jeu, le moteur recevra ce même scancode SDLK_F1 et accomplira l'action correspondante : tirer. c'est simple.

            L'autre solution maintenant:
            Celle qui passe par l'OS, ca marche aussi (mais c'est vrai que j'ai pas essayé de pebo) ca se base sur le principe que le systeme est bien parametré (c'est à dire que le clavier pebo est reconnu comme tel) quand sdl reçoit un code unicode, alors oui on risque de recevoir des caracteres tordus, mais quand l'utilisateur appuye sur la touche A de son clavier, le caractere unicode recupé est bien un 'a' quelque soit la position de cette touche. ensuite si le dev ne veux pas s'encombrer avec des caractère sur 16 bits, c'est son affaire (et je le comprends d'ailleurs) mais la encore rien d'impossible : ce n'est pas un BUG, c'est jusque que c'est penible. Moi, dans ce cas, je coupe (avec & 0x7F) ce qui laisse de coté les caractères non accentué. mais de toute facons je n'utilise cette solution que quand je ne désire pas faire d’écran de modification de touche.

            voilà.

            • [^] # Re: Raccourcis claviers

              Posté par  . Évalué à 3.

              Je reformule ce que je voulais dire.

              1 - Avoir la possibilité de remapper ses touches
              2 - Avoir une configuration utilisable par défaut

              Pour les logiciels/jeux utilisant les caractères (t pour tirer, r pour recharger, …) il faut utiliser la méthode "logique/unicode".

              Pour les jeux/logiciels où la position des touches physique est importante (le T inversé pour se déplacer / la ligne du haut ou il y a communément des chiffres pour une liste ordonnée d’item…), il faut que le jeu/logiciels utilise la méthode des "physique/scancode".
              Avec cette méthode, il ne peut pas y avoir de conflits, car pour la majorité des claviers les touches suivante ont le même emplacement : les touches fléchés, la ligne du haut (ou il y a des chiffres), le T inversé des gamers, la barre espace, la touche maj et la touche contrôle. Cette méthode fonctionne sur 100% des claviers standards quelquesoit le mappage (azerty, bépo, dvorak), et les développeurs peuvent se renseigner un tout petit peu sur les « touches qui bougent d’un clavier à l’autre ». D’ailleurs c’est assez facile, ces touches sont (en azerty) µ, </> , page up/down, suppr, origin/fin, pause, imprécran/système, inser/ menu. Toutes les autres sont vraiment presque fixe. Si on prend en compte les claviers ergonomique ils faut rajouter quelques touches en plus ($ en azerty notamment). Et pour le coup je sais de quoi je parle vu que je participe activement au projet bépo.

              Actuellement 0ad utilise la méthode "logique/unicode" alors que seul la position physique des touches est importante. C’est donc un non-sens. De plus cela oblige à remapper la très grande majorités des touches si on utilise un clavier standard (donc physiquement le même que celui du développeur à l’exception de la touche <), mais avec un mappage non qwerty-US. Je ne comprends pas en quoi c’est un problème d’utiliser la position physique des touches plutôt qu’un caractère.

              De plus, tu dis que

              si le dev ne veux pas s'encombrer avec des caractère sur 16 bits
              Ce qui représente sur mon clavier au moins 4 touches (àéèç), et c’est très agaçant, alors qu’il n’y a aucune raison que je ne puisse pas les utiliser.


              Je tiens à préciser pour avoir beaucoup bidouiller les claviers physique, que le signal reçu par l’OS est une position de touche physique (méthode "physique/scancode"), et que c’est l’OS qui s’occupe de faire la conversion vers les caractère unicode (méthode "logique/unicode"). Donc je ne voit pas en quoi c’est un problème que la SDL fasse un binding vers ces codes physique fournis par l’OS (on peut les voir avec xev sous linux).

              bépo powered

              • [^] # Re: Raccourcis claviers

                Posté par  . Évalué à 4. Dernière modification le 27 mai 2014 à 23:01.

                Ce qui représente sur mon clavier au moins 4 touches (àéèç), et c’est très agaçant, alors qu’il n’y a aucune raison que je ne puisse pas les utiliser.

                oui je suis d'accord, c'est pas bien malin.

                Actuellement 0ad utilise la méthode "logique/unicode" alors que seul la position physique des touches est importante.

                c'est juste, et d'ailleurs on le voit sur [ et ] c'est pénible a souhait.

                Du coups j'ai été un peu vite, j'avais en tête un jeu que j'ai codé… mais c'est vrai que j'utilise la technique "unicode/logique" pour mon leveleditor mais pas le jeu lui-même (faut dire, j'ai mis les actions sur space/L-ctrl/shift). Du coups dans le cas du leveleditor, ce n'est plus la position physique mais bien la touche qui compte : raccourcit "a" pour "add". voilà…
                c'est forcement beaucoups moins applicable dans le cas d'un jeu.
                mea culpa.
                la technique en elle-même reste valable (modulo les caractères àéèç…) mais pas trop pour les jeux, tu avais raison, merci d'avoir insisté.

  • # remarques

    Posté par  . Évalué à 0.

    Bonjour,
    j'ai essayé ce jeu…
    bien sur c'est même pas une beta, donc je suis indulgent sur plein de truc (manques, perf, plantage)

    Mais par contre il y a un truc de domage : l'utilisation de la langue d'origine (donc morte).
    je veux dire, je suis content de savoir comment on dit paysant en gaulois, mais ça alourdis (oui je sais, c'est aussi ecrit en français a coté, mais j'ai choisit de jouer en "francais", pas en "gaulois") c'est domage, ca donne l'impression que la traduction à été supervisé par un prof d'histoire. Ca donne un coté intello… pourtant les joueurs c'est quand même pas tous des profs d'histoire non ?
    D'ailleurs, j'ai testé le mode multi, et je peux vous assurer que ceux contre qui j'ai perdu, ne jouaient pas pour l'aspect historique, ils n'ont pas cherchés à upgradé leur ville, non ils ont torchés la partie en 2 minutes : création d'unité et messacre : "it's a strategy game".

    Sinon, en mode solo, j'ai eut le plaisir d'upgrader ma ville et mes technologies, mais j'ai perdu quand même, au bout de 4 heures… trop dur ce jeu…

    • [^] # Re: remarques

      Posté par  . Évalué à 3. Dernière modification le 26 mai 2014 à 12:26.

      Ca donne un coté intello… pourtant les joueurs c'est quand même pas tous des profs d'histoire non ?

      Euh… presque. Les devs de Wildfire Games sont des mordus d'histoire antique et sont tous abonnés à Ancient Warfare Magazine (ou un truc comme ça). :P

      je veux dire, je suis content de savoir comment on dit paysant en gaulois, mais ça alourdis (oui je sais, c'est aussi ecrit en français a coté, mais j'ai choisit de jouer en "francais", pas en "gaulois")

      De toute façon même la traduction française ne t'apportera rien. Il n'y a que quelques classes d'unités citoyens-soldats dans le jeu (je passe sur les champions et les unités de siège): les lanciers d'infanterie, les épéistes d'infanterie, les javelinistes d'infanterie, les archers d'infanterie, les lanciers de cavalerie, les épéistes de cavalerie, et les javelinistes de cavalerie (certaines factions ont des trucs en plus, comme des frondeurs à la place des archers, mais bon ça change pas grand chose). Donc du coup pour désigner tes unités tu ne diras pas "hoplite mercenaire lybien de rang basique" mais "lancier d'infanterie carthaginois niveau 1". Quand on cause stratégie, on zappe le côté histoire-géo et on utilise les noms génériques, sans quoi on ne s'y retrouve plus, sauf si on est un joueur invétéré.

      D'ailleurs, j'ai testé le mode multi, et je peux vous assurer que ceux contre qui j'ai perdu, ne jouaient pas pour l'aspect historique, ils n'ont pas cherchés à upgradé leur ville, non ils ont torchés la partie en 2 minutes : création d'unité et messacre : "it's a strategy game".

      Ah mais c'est historique aussi : les Romains n'ont pas attendu l'Empire pour conquérir Carthage. /o\
      Certaines factions sont même particulièrement adaptées pour harceler leurs ennemis par des attaques éclair (je pense notamment aux ibères, spécialisés dans la guérilla).

      Quand on joue il faut trouver le bon dosage entre "se battre" et "développer son économie".

      Sinon, en mode solo, j'ai eut le plaisir d'upgrader ma ville et mes technologies, mais j'ai perdu quand même, au bout de 4 heures… trop dur ce jeu…

      Tu peux choisir des niveaux de difficulté pour l'IA. Et préfère Aegis, Petra est redoutable.

      *splash!*

  • # Performances

    Posté par  . Évalué à 1.

    Bon, bah si les perfs ont été nettement améliorées, je pourrais peut-être arriver à déplacer mon curseur dans l'écran d'accueil.

    Pour le coup, j'ai 2 questions:

    • le menu options, a-t-il enfin été implémenté pour pouvoir régler les options graphiques? La dernière fois que j'ai essayé, ce n'était pas le cas ( la 13, je crois ? )
    • est-il maintenant possible de jouer en fenêtré? Par qu'avec mes 2 écrans dont les résolutions et la forme géométrique diffèrent, le fait de ne pouvoir jouer qu'en full screen est juste complètement bloquant.

    Enfin, je réessayerais dès que je pourrais, quelles que soient les réponses à ces questions, ce jeu à l'air tellement prometteur sur le papier…

    • [^] # Re: Performances

      Posté par  . Évalué à 5.

      le menu options, a-t-il enfin été implémenté pour pouvoir régler les options graphiques? La dernière fois que j'ai essayé, ce n'était pas le cas ( la 13, je crois ? )

      Oui, mais sur pas mal de configurations ça peut faire planter le jeu. Chez moi en tout cas ça crashe quand je veux désactiver ou activer GLSL.

      Si tu veux activer GLSL (donc tous les effets graphiques cools qui permettent de faire de jolis screenshots), il vaut mieux éditer le fichier de config par défaut. Sous linux c'est ~/.config/0ad/config/default.cfg, il faut le copier dans ~/.config/0ad/config/local.cfg et l'éditer comme détaillé ici : http://www.wildfiregames.com/forum/index.php?showtopic=17534&hl=whizbang#entry272946

      Les fonctionnalités GLSL sont encore expérimentales (c'est pourquoi elles sont désactivées par défaut) et nécessitent un bon GPU avec de bons drivers (c'est à dire que si chez toi ça rame dès l'écran d'accueil je te le conseille pas :P ).

      est-il maintenant possible de jouer en fenêtré? Par qu'avec mes 2 écrans dont les résolutions et la forme géométrique diffèrent, le fait de ne pouvoir jouer qu'en full screen est juste complètement bloquant.

      Ça a toujours été possible si je ne m'abuse, il y a une option pour ça dans le fichier de configuration. Sinon tu devrais pouvoir utiliser Alt+Enter pour basculer entre les deux modes.

      *splash!*

      • [^] # Re: Performances

        Posté par  . Évalué à 2.

        Je t'avoue que je ne m'étais jamais penché sur le fichier de configuration, pour le coup, alors que c'est un truc que je fais quasi-systématiquement pour mes outils habituels.
        J'imagine qu'il s'agit la de la différence entre outil et jeu, moins envie de me prendre la tête pour un jeu que pour configurer mes outils de tous les jours :) ( et c'est un tort, probablement )

      • [^] # Re: Performances

        Posté par  (site web personnel) . Évalué à 2.

        J'arrive à jouer avec un GPU intégré Intel HD4600. La qualité visuelle est très bonne à mon avis.
        J'ai aussi un double écran. Mais en mode fullscreen, le jeu prend la largeur des 2 ecrans plutot que d'utiliser qu'un écran. Du coup, je suis obligé de désactiver mon second écran avant de jouer. (J'utiliser les drivers libre Intel sur Debian testing à jour)

        • [^] # Re: Performances

          Posté par  (site web personnel) . Évalué à 2.

          Alt+Enter te permet normalement de passer en mode fenêtré. C'est ce que je fais pour mon poste muni de 2 écrans. Mais c'est vrai que la gestion multi-moniteurs ce n'est pas encore ça malheureusement.

  • # Install Debian

    Posté par  . Évalué à 0.

    Salut
    Bonjour
    Sur la page d'install pour debian il est noté


    Debian

    0 A.D. is available in Debian’s repositories since Debian 7.0 Wheezy.

    Install the package (requires root privileges):

    apt-get install 0ad

    Le truc c'est que dans les dépots debian ce n'est qu'une vielle version (la 11 si je comprend bien), donc la préocédure est fausse si tu souhaites installer la version16 via cette commande.

    Pas de critique sans solution :-)

    Contournement soit étre en débian SID pour avoir la version 16, soit attendre la wheezy-backports qui est actuelement en 15 et dans ce cas il faut activer le dépot backports et forcer l'installation avec ce dépot.

    Merci en tout cas pour ce beau jeux.

    • [^] # Re: Install Debian

      Posté par  . Évalué à 4. Dernière modification le 26 mai 2014 à 20:22.

      Le truc c'est que dans les dépots debian ce n'est qu'une vielle version (la 11 si je comprend bien), donc la préocédure est fausse si tu souhaites installer la version16 via cette commande.

      Ben ils ont juste dit que 0ad était dispo dans debian, pas que la toute dernière version de 0ad serait toujours dispo dans la branche la plus obsolète de debian.
      Ce qui de toute façon serait impossible, vu que les versions alpha de 0ad sortent à un rythme bien plus rapide que les versions stables de debian.

      Contournement soit étre en débian SID pour avoir la version 16

      Il me semble que les dépôts testing (actuellement jessie) sont suffisants pour avoir la version alpha 16 de 0ad.

      soit attendre la wheezy-backports qui est actuelement en 15 et dans ce cas il faut activer le dépot backports et forcer l'installation avec ce dépot.

      Je ne pense pas que la version alpha 16 sera backportée vers stable, à mon avis l'alpha 15 sera la version la plus récente que tu pourras trouver dans wheezy-backports. Comme indiqué dans la dépêche l'alpha 16 s'accompagne d'une mise à jour de Spidermonkey vers la version 24, ça nécessiterait que Spidermonkey 24 (je crois que c'est le paquet libmozjs) soit backporté dans Wheezy, avec toutes ses dépendances, ce qui est difficilement imaginable.

      D'une manière générale si tu veux jouer aux jeux vidéo dernier cri, debian stable n'est probablement pas le bon choix. Debian testing, ou une distro en rolling release, sont probablement plus adaptés.

      *splash!*

      • [^] # Re: Install Debian

        Posté par  (site web personnel) . Évalué à 2.

        D'une manière générale si tu veux jouer aux jeux vidéo dernier cri, debian stable n'est probablement pas le bon choix. Debian testing, ou une distro en rolling release, sont probablement plus adaptés.

        Y a un autre choix d'OS vraiment plus adapté pour jouer aux jeux vidéos dernier cri, mais je vous laisse chercher :-D

        • [^] # Re: Install Debian

          Posté par  . Évalué à 3.

          Archlinux ? ;-)

          "Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)

      • [^] # Re: Install Debian

        Posté par  (site web personnel) . Évalué à 2. Dernière modification le 26 mai 2014 à 23:36.

        La 0.16 est dans testing… et tu as les derniers drivers libres à jour.

      • [^] # Re: Install Debian

        Posté par  . Évalué à 0.

        Je dirai même plus : la 0.16 est dans wheezy-backports.

  • # IA des troupes

    Posté par  (site web personnel) . Évalué à 2.

    Je trouve que mes troupes font n'importe quoi quand je leur dis d'attaquer.
    La formation explose et elles se mettent à se déplacer super vite en pagaille mais pas pour se rapprocher de là où j'ai cliqué.

    • [^] # Re: IA des troupes

      Posté par  . Évalué à 3.

      La formation explose

      Les formations n'ont été implémentées qu'au niveau graphique. Elles n'offrent aucun bonus et, comme expliqué dans la dépêche, sont inexploitables en combat (la formation est rompue lors du contact avec l'ennemi).

      elles se mettent à se déplacer super vite en pagaille mais pas pour se rapprocher de là où j'ai cliqué.

      Si elles se mettent à courir, c'est peut-être parce qu'elles cherchent à se regrouper avec d'autres unités hors-champ. Vérifie si tu n'as pas une unité du groupe qui est resté coincée près d'un bâtiment ou d'une forêt, ça peut venir de là.
      Si elles s'éparpillent à vitesse normale, c'est en général parce qu'elles sont encerclées par des unités à attaque distante et qu'elles cherchent à les poursuivre. Pour en venir à bout il faut soit faire du micromanagement, soit utiliser des unités plus adaptées (cavalerie ou javelinistes).

      *splash!*

      • [^] # Re: IA des troupes

        Posté par  . Évalué à 2.

        oui j'ai remarqué ce phenomene : j'ai une troupe de 15aine de soldat. (qui avance en ligne, de face)

        A promixité d'une tour enemie, que clique sur la tour pour qu'ils l'attaquent et là ça bouge dans tous les sens pour se retrouver quasiment dans la même configuration (de face) mais on a perdu du temps a se replacer.

        C'est genant, mais bon c'est une alpha…

        • [^] # Re: IA des troupes

          Posté par  . Évalué à 3.

          Règle simple : il ne faut pas utiliser les formations (sauf pour les screenshots ou pour faire une battue en fin de jeu, voir un commentaire plus haut).

          Le seul intérêt stratégique des formations actuellement c'est pour créer un mur de boucliers humains, lorsqu'on n'a pas d'autre solution. Vous mettez toutes vos unités en mode "idle" pour qu'elles ne se déplacent pas et ne se battent que dans une unité ennemie est à leur portée.

          Si vous voulez une illustration regardez dans les Scénarios, sélectionnez le type de carte "Démo" et choisissez la carte "Nous sommes légion" ("We are legion" dans la version originale). C'est une carte de type combat (juste des soldats, pas de bâtiments ni de quoi développer une économie), avec un bataillon de soldats thébains qui fait face à quatre groupes de soldats romains aux statistiques surboostées (un groupe de légionnaires marianiques, deux groupes de légionnaires impériaux et un groupe de centurions impériaux) en plein désert. Le seul moyen rapide de gagner est de diviser l'armée romaine et de combattre les groupes de légionnaires un par un, en plaçant ses javelotistes derrière une ligne de fantassins thébains immobiles (c'est l'occasion d'essayer la formation "en carré"). Les javelotistes vont mitrailler les romains pendants que ceux-ci essayent de percer les lignes de votre infanterie. Vous essuierez de lourdes pertes, mais vous aurez une chance d'éliminer tous les légionnaires.

          *splash!*

  • # Un manuel ?

    Posté par  . Évalué à 5.

    Savez-vous où trouver un guide/manuel/tuto sur 0ad ?

    J'ai voulu tester le jeu il y a quelque temps, et après ma première branlée au bout de 20 minutes, j'ai voulu trouver des conseils sur comment bien débuter. Le seul truc que j'avais trouvé c'est ça, qui m'a l'air un peu ancien et pas très complet. Du coup, j'ai refait une autre partie, et j'ai abandonné le jeu à la raclée suivante.

    Je trouve qu'il manque vraiment un guide "Comment bien débuter" / "Conseils stratégiques"

    • [^] # Re: Un manuel ?

      Posté par  . Évalué à 10.

      Je trouve qu'il manque vraiment un guide "Comment bien débuter" / "Conseils stratégiques"

      C'est un reproche qu'on pourrait faire à la plupart des jeux libres, notamment ceux inspirés de jeux non-libres. Les développeurs n'imaginent pas qu'on puisse jouer à leur jeu pour la première fois sans avoir joué au jeu dont ils se sont inspirés.
      Ou parfois ils y pensent, mais "écrire le manuel du jeu et coder un didacticiel" se situe en général après "sortir la version 1.0" sur leur TODO list. Et ça se comprend, quand on se rend compte à quel point le gameplay peut varier entre les différentes version alpha et beta d'un jeu.

      Je vais essayer de décrire le concept du jeu rapidement :

      Le gameplay de 0 A.D. est très inspiré de Age of Empires I et II, où le joueur a le choix entre un grand nombre de factions qui ne diffèrent que par leurs unités spéciales, leurs bâtiments spéciaux, leurs technologies spéciales et leurs bonus de civilisation. Les unités de base, les bâtiments de base et les technologies de base sont quasi-identiques pour tout le monde.

      0 A.D. ajoute à cela le concept des citoyens-soldats, aussi présent dans Age of Mythology : des unités qui peuvent à la fois se battre et effectuer des tâches économiques.

      Typiquement, le joueur commence une partie avec un centre-ville, quatre citoyennes et cinq citoyens-soldats, dont quatre fantassins et une cavalerie légère, et 300 points de chacune des quatre ressources (nourriture, bois, pierre et métal). Les citoyennes sont des unités peu chères, très faibles, et ne pouvant effectuer que des tâches purement économiques : ramasser des ressources, réparer des bâtiments et des unités mécaniques, et construire des bâtiments non-militaires. Elles permettent surtout d'aider le joueur à démarrer son économie en début de jeu. Les citoyens-soldats à pied peuvent effectuer tout type de tâche économique, y compris construire des bâtiments militaires. Les citoyens-soldats montés peuvent seulement se battre et chasser.

      Le challenge, durant les premiers instants du jeu, est de développer son économie plus vite que ses adversaires. Pour cela il faut aussitôt assigner ses unités à des tâches économiques : leur demander de construire un dépôt de bois/minerais, un dépôt de nourriture, et d'amasser des ressources. Les ressources les plus importantes lors de la première phase du jeu sont les ressources de base : la nourriture et le bois. Dans le centre-ville, le joueur peut entraîner des citoyennes et des citoyens-soldats : il est conseillé de les assigner le plus vite possible à la collecte de la ressource dont on a le plus besoin.
      Les unités collectent des denrées en allant les extraire d'une ressource naturelle (arbre, buisson, animal sauvage ou domestique, mine…) et en les déposant dans un point de collecte (dépôt de bois/minerais, dépôt de nourriture, centre ville, port). Il est donc judicieux de placer ses points de collecte le plus proche possible des ressources naturelles, et d'utiliser des unités véloces pour une collecte rapide. Dans les bâtiments appropriés, on peut également développer des technologies accélérant l'amassage d'un type de ressource.
      Attention la plupart des technologies font en fait partie d'une paire de technologies : développer l'une empêche de développer l'autre, il faut donc faire un choix. Le choix est d'autant plus difficile que certaines technologies apportent une amélioration dans un domaine et une régression dans un autre domaine (mais cela concerne surtout les technologies militaires).

      La création de nouvelles unités sera vite compromise à cause de la limite de population. Il est nécessaire de construire des maisons très tôt dans le jeu pour ne pas être bloqué par cette limite (sachant que la limite globale de population, celle que vous avez fixé dans l'écran de choix du match, ne pourra pas être repoussée). Il est important de noter que les maisons des civilisations "citadines" (grecs, romains, carthaginois, perses) sont plus chères, plus encombrantes, et apportent un plus grand bonus de population que les maisons des civilisations "rurales" (celtes, ibères, mauryas).

      La création de nouvelles unités peut aussi être accélérée par la construction d'une ou plusieurs casernes. Quand on peut se le permettre, il est judicieux d'entraîner des citoyens-soldats à la caserne pendant que le centre-ville entraîne des citoyennes par exemple. Il est aussi possible d'accélérer l'entraînement des unités en les entraînant par lots (avec la touche Shift).

      Des raids ennemis en début de jeu peuvent paralyser l'économie et conduire à une défaite rapide. Entraîner des unités à attaque distante et les mettre en garnison dans un bâtiment dès que l'ennemi est en vue permettra à ces unités de tirer sur l'ennemi tout en étant protégées. Sinon, une dizaine de fantassins de base (lanciers, le plus souvent) sera très efficaces en mêlée, à condition de les regrouper avant l'attaque. Le tout est d'agir suffisamment tôt : pour cela, il peut être très utile d'avoir quelques avants-postes bien placés (même s'ils se font détruire à chaque raid).

      0 A.D. ajoute aussi le concept de frontière et de territoire.

      En gros lorsqu'on pose un centre-ville, celui-ci crée une influence territoriale dans un rayon tout autour de lui. Une frontière de la couleur du joueur délimite ce territoire. À l'exception des avants-postes, des ports et des centre-villes, qui peuvent être construits en territoire neutre, tout bâtiment doit être construit sur le territoire du joueur. Si le centre-ville est détruit, l'influence territoriale permanente qu'il générait disparaît, et les bâtiments restants se retrouvent isolés, et perdent progressivement leurs points de santé jusqu'à ce qu'ils soient détruits.
      Il existe trois moyens d'agrandir son territoire en territoire neutre :

      • placer de nouveaux centre-villes, qui généreront un nouveau territoire, qui sera concaténé au précédent s'il est assez proche
      • placer des bâtiments en bordure du territoire existant, qui déplaceront la frontière proportionnellement à leur influence territoriale
      • passer à la phase suivante, ce qui accordera un bonus territorial à tous les centre-villes du joueur

      Le changement de phase se fait dans le centre-ville. Cela revient à rechercher une technologie extrêmement coûteuse en ressources et en temps de développement, mais qui permet de débloquer de nouveaux bâtiments, de nouvelles unités et de nouvelles technologies. Il est donc essentiel de lancer le passage à la phase supérieure dès qu'on a les ressources pour le faire.
      Notez qu'en plus des ressources (800 de nourriture et 800 de bois pour passer de la phase I à la phase II), le passage à une phase supérieure nécessite en plus de construire un certain nombre de bâtiments de la phase courante.

      Dès la deuxième phase (la phase des villes), les ressources minières ne peuvent plus être ignorées. Il est essentiel d'assigner des travailleurs à la collecte de métal et de pierre. Le passage à la phase des cités (troisième phase) coûte 1000 points de métal et 1000 points de pierre. Il nécessitera la construction d'un bâtiment crucial : le temple, généralement coûteux en pierre. C'est également à la phase des villes que le joueur commence à étendre son territoire en plaçant de nouveaux centre-villes (500 de bois, 500 de métal, 500 de pierre), à construire des fortifications coûteuses en pierre, et à développer le commerce (chaque charrette de commerce coûte 80 points de métal). Chez certaines factions c'est aussi l'occasion d'embaucher des unités mercenaires, très coûteuses en métal.

      C'est aussi à la phase des villes que les joueurs peuvent construire une forge. Celle-ci débloque des technologies coûteuses en métal boostent les statistiques des citoyens-soldats au point que face à eux, les citoyens-soldats de la phase des villages ne feront plus le poids. Il est donc crucial de développer les technologies militaires de la forge, ne serait-ce que pour pouvoir continuer à faire face aux raids ennemis.

      Il faut aussi noter qu'au fur et à mesure de l'évolution dans les phases, l'économie et l'armée se spécialisent de plus en plus. L'économie des chasseurs-cueilleurs de la phase des villages n'est plus viable, et doit laisser place à une économie d'élevage et d'agriculture. Les citoyens-soldats évoluent aux rangs avancé et élite, devenant meilleurs au combat mais moins bons dans les tâches économiques. La mise en place de routes commerciales annonce la fin du paradigme "la population est composée d'unités à tout faire" et le début de la spécialisation, avec des unités dédiées aux tâches économiques d'un côté, des unités dédiées aux tâches militaires de l'autre, et une diminution progressive de la proportion de citoyens-soldats dans la population.

      À la phase des cités, le joueur peut construire des forteresses et des bâtiments spéciaux, et exploiter tout le potentiel des spécificités de sa faction. Il commence à entraîner des champions, qui sont incapables d'effectuer des tâches économiques, mais sont redoutables sur le champ de bataille. Son territoire commence à rencontrer celui de l'ennemi, les frontières se font face. Il renforce ses défenses pour protéger ses routes de commerce, son ennemi fait de même. L'utilisation d'armes de sièges n'est plus une option. Détruire les villes ennemies est devenu le seul moyen de faire bouger les frontières.

      La fin du jeu est plus un jeu de cache-cache, et cela gâche un peu le plaisir. Chacun a sa technique : utiliser la formation "dispersion", ratisser la carte à coup de attack-move successifs (Ctrl+Maj+Clic), ou multiplier les postes avancés dans les zones inexplorées. Une fois la dernière unité tuée, on peut consulter ses statistiques de match.

      Note : je n'ai parlé ici que du cas général et des bases du jeu, je n'ai pas parlé des cartes spéciales (cartes maritimes, cartes "forteresse", cartes avec des trésors, cartes désertiques avec des ressources rares, etc.), et je n'ai pas parlé des spécificités de chaque faction (villes fortifiées des ibères, bonus de population des mauryas et des perses, malus de population des spartiates, contrevallations romaines, etc.), qui nécessitent bien entendu d'adapter un petit peu sa stratégie à chaque fois.

      Enfin, si tu regardes dans les Scénarios, type de carte "Démo" je crois, il y a un truc qui doit s'appeler "Tutoriel d'introduction", qui donne quelques petites indications sur comment démarrer une économie avec les spartiates pour aller éliminer une armée immobile au nord de la carte. Par contre c'est une démo, il n'y a pas grand chose et c'est pas garanti que ça marche sans bug.

      *splash!*

      • [^] # Re: Un manuel ?

        Posté par  . Évalué à 2.

        Merci pour ta réponse.

        Je connaissait le principe du jeu, mais il me manquait quelques conseils stratégiques comme "par quoi commencer".

        Du coup, il ne reste plus qu'à m'y remettre.

  • # Voix pour les unités du jeu

    Posté par  . Évalué à 6.

    Vous étudiez les langues anciennes ? Vous connaissez la prononciation de mots latins, grecs, hébreu, sanskrits ou gaéliques ? Aidez à donner de la voix aux unités du jeu !

    Pour ça, je vous conseille de vous rapprocher du projet Tatoeba. Tatoeba est plus porté sur les langues modernes, mais pas que. Vous pourrez sans doute y recruter des contributeurs. Ou mieux, vous pourriez carrément ajouter les phrases des unités dans Tatoeba (auquel cas elles devront être placées sous licence CC-BY). Vous pouvez commencer par poster un message sur le Mur pour vous présenter à la communauté et expliquer ce que vous voulez faire.

  • # Jouer pendant la pause pour optimiser le jeu !

    Posté par  . Évalué à 1.

    Je viens de lire les nombreux commentaires de cet article : c'est très éclairant pour jouer ! J'y ai appris des tas de choses qui vont m'aider dans le jeu, j'ai hâte d'essayer cela.

    Maintenant il y a une fonctionnalité qui manque vraiment pour diminuer mon stress. Dans Age of Empires II, on pouvait mettre la pause, puis faire tout un tas d'actions : sélectionner des troupes, changer leur statut, les envoyer attaquer une base ennemie… Ensuite, on pouvait faire des dizaines d'actions comme celle-ci, avant de relâcher la pause.

    Ainsi, le temps de jeu actif était fortement mis à profit, et ça permettait d'être le plus efficace possible.

    Dans Age of Empires II, c'était vraiment le seul moyen pour moi de gagner contre une IA forte. Je trouve dommage de ne pas pouvoir avoir ce type de gameplay dans 0ad car ce serait vraiment beaucoup plus simple !

    À noter qu'une réponse partielle à ce besoin est de ralentir la vitesse du jeu.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.