Tag Archive for jeu

image_pdfimage_print

Lecture – “Enterprise Games” de Michael HUGOS aux éditions O’REILLY

J’ai commencé un livre qui m’a été conseillé, ENTERPRISE GAMES : Using Game Mechanics to Build a Better Business. Ce livre est une étude sur le management de projet et comment améliorer la conduite de projet avec des techniques modernes de jeux. On ne parle pas ici de jeux dans le monde du travail (serious gaming) ni de jeux à des fins commerciales, même si cette étude ne serait pas complète sans passer un minimum dessus. On l’entend quand même citer Ian BOGOST – “Gamification is Bullshit”.

182837.strip.sunday

Dilbert – http://www.dilbert.com/2013-05-19/ de Scott ADAMS

Michael HUGOS – l’homme derrière la plume

Michael HUGOS est l’auteur de ce livre. Il a travaillé comme directeur des systèmes d’information avec plusieurs (parfois gros) clients pour trouver des solutions élégantes à des problèmes complexes. Pour ses travaux il a remporté plusieurs prix comme le CIO 100 Award, le InformationWeek 500 Award et le Premier 100 Award. Il a écrit des articles pour un magazine “Doing Business in Real Time”. Il est l’auteur de 7 livres dont le populaire “Essentials of Supply Chain Management”.

Couverture

Enterprise Games: Using Game Mechanics to Build a Better Business – couverture

Sa vision du jeu (dans le monde du travail)

Le monde progresse et le travail progresse en même temps. Les technologies entrent dans la vie active. Michael HUGOS pense qu’ignorer ces changements et les possibilités qui vont avec, sont autant d’opportunités ratées et d’avantages laissés aux adversaires. Michael HUGOS s’inspire des jeux actuels, notamment des MMORPG et a identifié 4 piliers qui sont applicables dans le management des systèmes d’information. Il réfute les systèmes comme le travail à la chaîne et le cloisonnement des informations de la société qu’il juge dépassés et encombrants. Les nouveaux médias qui sont apparus, les progrès en télécommunications, l’accès à internet plus répandu sont autant d’outils et de points clefs qui nous obligent à revoir notre façon de travailler. Et pour ceux qui ne le font pas, la concurrence le fera. Il est temps de sauter à bord, le train est déjà en marche.

les 4 pilliers

Michael HUGOS nous présente tout au long de son ouvrage 4 piliers pour améliorer le workflow d’un projet. Ces 4 piliers sont les fondements des jeux (en general).

  • the Goals – les objectifs

Les objectifs doivent être définis. Il est important que tous les membres du projet sachent ce qu’on leur demande et sur quels critères on évalue le succès du projet. De plus compléter ces objectifs doit être positif, améliorer l’entreprise et améliorer leur quotidien. Il faut impliquer les employés.

  • the Rules – les règles

Les règles sont les outils et méthodes utilisables pour réaliser et atteindre les objectifs. Il ne faut pas hésiter à voir large. Il est important de laisser de la marge de manoeuvre aux employés et de leur donner un maximum de visibilité et de pouvoir pour accomplir leurs objectifs. Les employés seront plus concernés et plus motivés.

  • the Feedback – le retour d’informations

Le feedback est sans doute le point le plus important de ces 4 piliers. Ce point découle de l’avancée des nouvelles technologies et les moyens de communication moderne. En effet, avec les smartphones et les progrès d’internet, beaucoup de gens sont en connexion permanente. Un accès au feedback, en temps réel, partout et pour tous est la clef de la responsabilisation des employés et de la confiance qu’on leur apporte. Le feedback doit présenter à tous les employés : où ils en sont par rapport au objectifs, où en est le projet en général par rapport aux objectifs, où en sont les autres par rapport aux objectifs. Dans son livre, Michael HUGOS parle de faire passer l’employé de simple engrenage à membre de l’équipe à part entière.

  • the Participation – la participation

Enfin, le dernier pilier présenté par Michael HUGOS, la participation doit être volontaire. Une participation obligatoire va à l’encontre de la responsabilisation et de la prise d’importance de l’employé. Si votre nouveau système est vraiment meilleur, les gens migreront d’eux même sans réticences. Sinon, leur critiques seront votre feedback pour proposer mieux.

business on a world map

Pourquoi lire ce livre ?

Le constat de l’évolution de l’entreprise et de notre société est grave et des solutions commencent à émerger. Même si la vision de Michael HUGOS ne vous convient pas, la réflexion sur l’état des choses est important et un exemple des solutions à venir est intéressant à observer. Selon Michael HUGOS, les entreprises sont de moins en moins attachées à leur employés. Il en découle que les employés sont de moins en moins attachés à leur entreprise. Si les employés ne sont pas mieux valorisés, ils seront sous productifs ou partiront vers des entreprises qui leur feront plus confiance. Au travers d’exemples et de réflexions personnelles sur ses projets, Enterprise Games, présente une voie d’avenir qu’on aurait tort de se priver d’explorer.

PlayN une librairie multi-plateforme pour développer des jeux

Logo PlayN

Quel développeur n’a jamais rêvé de développer son propre jeu vidéo ? Je pense même que la majorité des développeurs s’y sont risqués, que ce soit à leurs instants perdus, ou lors de projets d’étudiants. Toujours est-il que ce rêve d’enfant hante sûrement une majorité d’entre nous.

Nous avons aujourd’hui la chance de vivre une véritable révolution du monde vidéo ludique grâce à l’explosion du marché des smartphones et des tablettes. Le marché du jeu vidéo est en train de changer du tout au tout. Là où il y a quelques années il fallait débourser plusieurs dizaines d’euros pour acheter le moindre jeu vous pouvez maintenant trouver de véritables perles à moins de 1 euro. Les raisons de cette baisse de prix sont multiples, tout à d’abord le nombre de client potentiels à explosé, les temps de développement ont été réduits et de nouveaux mécanismes de paiement sont apparus (publicité, micro paiement in-app, …). Seul point noire à ce nouvel écosystème : la multitude de périphériques existants sur le marché et du coup la segmentation du marché.

Cette diversité contribue bien sûr à dynamiser et à étendre le marché mais il rend le travail des développeurs très compliqué. Il leur faut adapter leurs développements au plus grand nombre d’appareils (même s’ils se contentent en général de l’adapter aux plus vendus). Heureusement il existe aujourd’hui plusieurs frameworks qui permettent de développer facilement un jeu qui tournera sur un grand nombre de plateformes. Je vous propose aujourd’hui de découvrire rapidement l’une d’entre elle : PlayN 1

Présentation

Ce framework est issu du travail de Google, elle permet l’écriture d’application directement compatibles avec Java, Android, HTML5, Chrome, iOS et Flash. L’avantage d’une telle librairie est évidemment la simplicité de portage du code d’une plateforme à une autre. Si vous avez bien travaillé c’est en général transparent.

Afin de travailler avec PlayN il vous faudra :

  • Eclipse
  • Java 1.6+
  • Un client Git
  • Maven 3+
  • Idealement un environnement de développement Android et/ou iOs si vous voulez développer pour mobiles.

L’architecture standard d’un projet PlayN est assez simple. Elle repose sur Maven. Vous avez un projet principal composé de modules. Dans ces modules vous avez un module “core”, qui contient 90% de votre code, et un module par plateforme cible qui contiendra le code spécifique à chacune. En règle général vous n’aurez pas trop à y toucher, PlayN s’occupe de (presque) tout.

L’avantage de l’environnement de développement de PlayN est son côté multi-plateforme. En effet comme PlayN est capable de faire tourner votre code dans un environnement Java vous pourrez tester/debugger votre code directement sur votre ordinateur de développement. Fini les galères de déploiement sur un appareil connecté en USB, la lenteur du remote débuggeur. Bien entendu cela ne vous dispensera pas totalement de tests sur les appareils cibles, mais au moins le gros du travail est effectué sur une machine rapide. Autre avantage non moins important : vous pourrez utiliser tous vos outils habituels pour tester/debugger/profiler vos développements.

Le code

Le développement d’un jeu avec PlayN commence par une classe implémentant l’interface Game. Cette classe contiendra toute la logique de votre jeu dans seulement deux methodes.

En effet lorsqu’un jeu PlayN est demarré une sorte de boucle infinie se lance :

while (true) {
  game.update(...);
  game.paint(...);
}

Vous l’aurez sûrement compris, la méthode update s’occupera de mettre à jour l’état des objets de votre jeu, et la méthode paint dessinera à l’écran ce qu’il y a dessiner.

Une troisième méthode doit être implémentée : <code>public int updateRate();</code>. Cette méthode défini avec quelle période (en ms) vous voulez appeler la méthode update. Attention cela ne définit pas la fréquence des appels à paint. Paint sera toujours appelée aussi souvent que possible. paint et update prennent toutes deux en paramètre un float contenant le temps exact écoulé depuis le dernier appel. Dans paint ceci vous permettra d’interpoler l’état de vos objets entre deux appels à update, et dans update à savoir combien de temps s’est exactement écoulé depuis le dernier appel. Si vous ne faites pas d’interpolation dans paint vous risque de ne pas avoir d’animations fluides. En effet si vous faites du code simulant la chute d’une balle, sans interpolation cette dernière ne sera dessinée qu’aux positions calculées dans la méthode update. Imaginez un balle de 20 pixels de large qui se déplace de 50 pixels à chaque appel à update toutes les 50ms. Dans ce cas vous aurez une balle qui “saute” de 50 pixels en 50 pixels.

Architecture graphique

PlayN étant une libraire destinée à développer des jeux son API sert essentiellement à gérer des graphismes. Pour cela elle découpe l’affichage en couches (Layers). L’API définit un layer de base (root) qui contient une hiérarchie de layers. Les layers sont dessinés de manière automatique par l’API. Les layers peuvent être manipulés de manière simple par des transformations affines (rotations, déformations, déplacements, …).

Il existe plusieurs type de Layers dans PlayN :

  • ImageLayer : un layer représentant une image chargée à partir d’un fichier (PNG, BMP, …)
  • Canvas : un layer représentant une image où vous dessinez à la main (ou juste dessiner à la main)
  • ImmediateLayer : un layer dont le rendu est fait directement dans le framebuffer
  • SurfaceLayer : un layer dont le rendu est fait off-screen puis copié dans le framebuffer

Les contrôles

Tout jeu se doit d’interagir avec l’utilisateur. Pour cela PlayN propose plusieurs mécanismes de contrôles. L’API sait parfaitement gérer un clavier, une souris ou un écran tactile. Pour cela rien de plus simple, il suffit d’utiliser les objets de la classe PlayN correspondants à ce que l’on veut faire : PlayN.pointer(), PlayN.mouse(), PlayN.keyboard() et de jouer avec. L’API se veut assez simple et vous trouverez facilement ce que vous cherchez. Sachez juste que les points d’entrées aux différentes fonctions de l’API sont en général dans la classe PlayN qui n’est grosso-modo qu’un gros réservoir de méthodes statiques.

Conclusion

Si vous voulez réaliser votre vieux rêve d’enfant je vous conseille vivement d’aller jeter un coup d’oeil à cette librairie vraiment bien faite. En quelques heures vous pourrez obtenir vos premiers résultats et peut être même un mini jeu.