Journal de dévelopement

Ce blog est consacré à Links of Power, un mmorpg que je développe durant mes temps libres. L'histoire se déroule dans un futur proche alternatif où l'exploration, la conquête et la découverte sont au quotidien. Dans cette univers en pleine expansion, des conflits naissant ont fait surgir un fléau gangrénant. Des mondes inconnus sont révélés.. et ce ne sont pas toujours les meilleurs.

Links of Power pour WP7


Cette fois ci, c'est la bonne ! Après avoir amorcé le projet en 2004, et après avoir exploré diverses possibilités, je remet Links of Power sur la table ! Le projet sera dédié à Windows Phone 7 et je suis vraiment très excité à l'idée de le mener à terme.

Retour sur les précédentes versions :

La version C++ direct X était une belle réussite d'un point de vue graphique. Le moteur 3D était capable de charger dynamiquement de très grandes cartes, d'afficher des objets et était doté d'un bon nombre d'effets réalisés avec les shaders.

Point faible du projet, le gameplay était absolument inexistant :) La réalisation de tout les objets 3D me demandait beaucoup trop de temps alors j'ai tenté une autre approche, avec SilverLight (la version alpha à l'époque), puis avec WPF.

Les résultats ne m'ont jamais satisfait et j'ai préféré revenir à la version 3D pour laquelle j'avais tout de même plus d'affinité.. bien que le gameplay soit toujours inexistant :)

Quand finalement je me suis rendu compte qu'il manquait une trame, un univers à raconter, je me suis mis à écrire. J'ai réuni des amis, et nous avons longuement imaginé des mondes et des scénarios.

Aujourd'hui, l'univers de Links of Power est très très riche. Je me suis toujours efforcé de ne pas trop en dévoiler avant d'avoir une version 3D alpha du jeu disponible. Mais cette version ne viendra pas. Pas maintenant en tout cas, car aujourd'hui, et pour les mois à venir, WP7 sera la plateforme idéale pour développer un autre aspect de Links of Power.

Cette version de Links of Power sera résolument un jeu de conquête spatiale doté d'un coté gestion économique, politique et social exacerbé (Rien que ça :) L'un des points forts du jeu qui va satisfaire de nombreux joueurs, c'est qu'il ne sera pas nécessaire d'être un Hardcore Gamer pour progresser. Les Causuals Gamers vont avoir des opportunités à toutes les étapes du jeu pour vraiment s'amuser.

Bref, vous l'avez compris, ce mois d'août s'annonce très prometteur et je vais faire mon possible pour vous tenir au courant du développement aussi souvent que possible sur #lop via twitter.



AddThis Social Bookmark Button
 

Genesis : Les débuts d'Harden'evi


Edit : Les liens vers le wiki ne sont plus disponible, je les ais donc temporairement retirés.

Hier soir, nous avons organisé une petite soirée de réflexion sur la description des univers de Links of Power. Le but était d'imaginer un monde, de détailler les lieux, les climats, les zones géographiques. Puis nous nous sommes lancés dans la création d'une flore et d'une faune en tenant compte des interactions entre les différents protagoniste. Enfin, nous avons décris les civilisations qui peuplent ce monde. Hier nous avons posé les premières pierres d'une civilisation en insufflant sur ce monde des croyances, des modes de vies, un style d'architecture, une histoire...

Nous avons réalisé tout cela dans le but de mettre sur pied un univers cohérent et complet. Nous voulions innover et trouver par quels moyens d'autres civilisation que la nôtre avaient pu trouver leur voie et s'adapter aux contraintes de leur environnement.

Pour tout cela, je me suis inspiré de très bon article de Kevin Carter : Living Worlds: The Ecology of Game Design. Il m'as permis de comprendre que tout les éléments d'un univers étaient liés d'une façon ou d'un autres. De subtiles interactions les unissent et assurent la cohérence du jeu. De plus, faire ce travail m'a donné un plan de travail que je vais pouvoir compléter en enrichir jusqu'à obtenir un univers complet.

Lac acide

Nous nous sommes particulièrement attaché à la planète Harden'evi. Migrant au coeur d'un système à deux étoiles, la planète souffre d'un jour éternel sur sa ceinture équatoriale. Dans toute cette zone, un désert sulfureux sépare les deux hémisphères. C'est une région aride et rocailleuse où les lacs acides et les geysers sont maîtres. Balayés par de violentes tempêtes, les voyages dans cette région sont périlleux et seul les meilleurs caravaniers pourront entreprendre une traversée.

Au nord, une zone continentale abrite une civilisation technologiquement avancée et en parfaite harmonie avec la nature. Les grandes steppes verdoyante abritent de-ci, de-là des petits villages épars qui feraient presque oublier les imposantes tours de verres qui culminent les centres urbains.

Au sud, un essaim d'îles de toutes tailles baigne dans un agréable climat océanique. Une troublante civilisation habite les lieux et de grandioses constructions, ornée des jardins voluptueux, s'érigent en l'honneur des shteen, l'envoûtante élite féminine de ce peuple.

La prochaine étape consiste à développer l'histoire de ces peuples, créer des relations et nouer des liens subtils entre les personnages clefs de ce monde. En attendant, je vous invite à découvrir l'organisation planétaire tel que vous la retrouverez prochainement dans Links of Power.



AddThis Social Bookmark Button
 

2D ou 3D ?


Il y a quelques temps, je parlais ici de la possibilité d'avoir un client en 2D pour Links of Power employant Silverlight. Il y a deux avantages à majeurs à concevoir un client 2D avec cette technologie :

  • C'est rapide à développer
  • C'est utilisable en ligne immédiatement

Silverlight 1.1 en est encore à sa version alpha, ce qui signifie qu'il existe encore de nombreux bogues et qu'il manque encore beaucoup de choses utiles aux développeurs. Le plus grand manque jusqu'à récemment était l'absence de contrôles pour l'interface. Microsoft avait bien fournit quelque chose se rapprochant avec son SDK pour SilverLight 1.1, mais celui-ci est plus que rudimentaire.

Cela limitait grandement le développement à ce stade du projet puisque j'étais dans l'impossibilité de créer le moindre formulaire. Heureusement, NetikaTech vient juste de combler le manque avec GOA, un framework très prometteur dédié à Silverlight.

Mais revenons en au projet, je m'étais entre temps tourné vers WPF pour la réalisation d'un client 2D. WPF est bien plus complet que SilverLight, mais n'est pas exploitable en ligne.. sauf peut-être en utilisant un ActiveX, mais cela reste barbare. WPF m'a permis très rapidement d'avoir un design intéressant et j'ai voulu aller plus loin en intégrant une carte en 3D isométrique pour la représentation du monde. J'étais sur le point de réaliser un mélange 2D/3D avec WPF qui aurait ressemblé à Ragnarok et je me suis alors rendu compte que ce travail devenait de plus en plus complexe et de plus en plus long.

Alors, j'ai décidé de stopper ici le développement du client WPF car j'avais perdu les deux avantages majeurs dont je fais au début de cet article. Aujourd'hui, j'ai repris le développement du client 3D avec DirectX .



AddThis Social Bookmark Button
 

Intégration d'un langage de script : LUA


LUALUA qu'est-ce que c'est ?

Il s'agit d'un langage de script libre qui a été inventé en dans le but d'être rapide et compact (95 à 185 Ko pour la version 5.0.2, selon le compilateur utilisé et le système cible).

De nombreuses applications l'intègrent, dont notamment des jeux comme World of Warcraft et des applications comme Adobe Photoshop Lightroom. LUA rempli des tâches aussi variées que définir des variables d'environnement, associer des évènements aux composants d'une interface ou gérer l'I.A. des personnages non joueurs.

LUA est un langage extensible. Le système de meta-tables permet de créer des structures de données complexes et de gérer les relations qui les lient entre elles. Ainsi, certaines extensions de LUA gèrent les classes, l'héritage et permettent de les lier à des instances d'un programme.

Ainsi, on peut définir ses classes en C++ et les passer en paramètres à une fonction LUA qui les traitera avant de les retourner au programme appelant.

Procéder ainsi à plussieures avantages :

  • L'écriture d'un script LUA est facile et réalisable par tous.
  • Il n'y a pas de compilation nécessaire.
  • Un script peut être généré à la volée par une application tierce et être chargée à chaud dans un programme en cours d'exécution.
  • Combiné au Xml, il permet de réaliser des interfaces très souples.


Il existe de nombreuses implémentations de LUA pour les différent langages de programmation dont LuaNET pour le C# et LuaBinaries pour C/C++.

Et Links of Power dans tout ça ?

J'ai décidé d'utiliser LUA pour l'implémentation du serveur de jeu. Sa souplesse me permet de créer des relations logique avancées entres les éléments du jeu sans avoir à redéfinir la structure même du serveur. Avec cette approche, l'évolution du gameplay est sans limite.

Actuellement, LUA gère :

  • La création des comptes
  • La création des avatars
  • Les déplacements autorisés sur la carte
  • Les interactions de joueurs à joueurs

.. et très bientôt,

  • Le commerce
  • L'I.A. des personnages non joueurs
  • Et plus généralement, toutes les règles du jeu..

Pour aller un peu plus loin.

Il existe de nombreux tutorials pour apprendre à employer LUA dont ceux de Daniel Schuller ( en anglais ) que vous pouvez trouver ici :



AddThis Social Bookmark Button
 

Comment rendre le Craft interessant ?


Introduction

La plupart des jeux de rôles actuels permettent aux joueurs de créer eux-même des objets. Armes, potions, vêtements et véhicules sont autant d'éléments qui participent à la cohérence d'un jeu. Lorsqu'un joueur a la possibilité de réaliser lui-même ces objets et d'évoluer dans sa compétence, cela apporte une nouvelle dimension au jeu. L'économie et le marché s'élargissent et deviennent plus intéressant à découvrir. Des relations de confiance et de respect se forgent entre les joueurs.

En tant que crafteur, on débute généralement avec un minimum de savoir faire. Au fil des essais et des réalisations, la compétence évolue et donne accès à d'autres objets, plus beaux, plus puissants... plus recherchés.

Les limitations actuelles du craft

Le problème vient de là. Beaucoup de joueur recherchent le meilleur objet et dénigrent complètement les objets intermédiaires. Les crafteurs en ont bien conscience et se dépêchent de faire grimper leur compétence pour créer des objets qui, enfin, seront fructueux.

Une fois les objets débloqués, ils peuvent produire des objets de grande valeur en grande quantité. Puisque l'offre est souvent supérieure à la demande, les prix baissent chez tous ceux qui sont capables de produire mieux. Cela contribue à dévaloriser une bonne moitié des objets bas niveaux du jeu.

En conséquence, le marché est souvent inondé d'objet dont personne ne voudrait, ce qui a tendance à faire chuter leur prix, alors que des objets similaires sont vendus à un prix plus élevé chez les PNJ. Cette incohérence est difficile à prendre en compte et demande parfois de nombreux ajustement de la part des développeurs. Il ne s'agit pas à mon sens de la meilleure façon de stabiliser une économie. J'y reviendrais dans un prochain article.

De plus, tous les objets sont identiques. Et l'aspect redondant de la création qui est nécessaire pour évoluer est souvent rébarbative et peu ludique. A cause de tout cela, le craft perd énormément d'intérêt.

Comment rendre au craft toute sa beauté et permettre au crafteur de libérer sa créativité ?

L'apparence des objets est capitale. Le choix des couleurs est certainement plus facile à permettre que le choix des formes, mais certains jeux qui ont abordé la question dès le début ont très bien géré la question.

Il faut permettre au joueur créer des modèles. Une fois le modèle établi, l'artisan peut créer autant d'objet de ce type qu'il le désire, s'il possède les composants. La recherche des composant doit être une tâche complexe, mais très réalisable. Il ne s'agit pas de rendre certains composants introuvable, mais d'organiser l'univers pour que chaque lieu ai ses spécificités. Le crafteur ne pouvant pas forcement atteindre ces lieux devra se reposer sur d'autres joueurs dont la profession est clairement celle d'un commerçant. Il faut favoriser les relations de longue durée entre les crafteurs et leur fournisseurs. Les achats "en passant" sont une perte de temps et c'est trop souvent sur cet aspect que les concepteurs de jeux vidéo se basent pour complexifier la tâche lors de la fabrication d'objets de valeur.

La complexité de la tâche et la valeur de l'objet devraient dépendre des matériaux à transformer et du savoir faire de l'artisan. Deux objets similaires réalisé à partir de matériaux différents doivent avoir des différences qui les rendent plus spécifique aux cas d'utilisation. Dans un jeu idéal, tous les objets devraient être craftable ou transformable.

Cycle de vie des objets

Maintenant que le joueur peut exprimer sa créativité, il faut lui permettre de se faire connaître ! Un objet fabriqué doit posséder plusieurs marques. Le nom de l'artisan crafteur d'abord. Puis de la guilde ou les guildes auquel il appartient et enfin, le nom de l'échoppe ou cet objet est vendu. Le cycle de la vie des personnages qui en ont usé resterait également inscrit. Le cycle de vie de l'objet est transmissible par la tradition orale. Un joueur qui désir, le désire peut demander à un autre ce qu'il sait de tel ou tel objet. Un joueur qui a déjà vu un objet similaire saura donner certaines informations sur sa provenance... s'il en a disposé. Certaines informations sont transmises par la tradition orale sur la place publique et lors des échanges privés...

De cette façon, les artisans peuvent être reconnu et recherché pour leur travail.

Conclusion

Le craft est un élément central des jeux de rôles actuels. Il permet une immersion du joueur dans la société virtuelle et lui offre des buts de jeu supplémentaires à atteindre. Mais le craft est trop souvent mal conçut. Redondance et dévalorisation des objets de bases marchent souvent de paire. Les concepteurs espèrent mettre au point une économie de marché stable en prévoyant tous les aspects possibles, mais cela conduit le plus souvent à une économie fragile.

Ce qui est réellement intéressant dans le craft n'est pas tant l'objet produit en lui-même, mais la conception de cet objet et la marche à suivre pour le fabriquer. Trop souvent cet aspect est négligé alors qu'il suffirait de laisser un peu de place à la personnalisation des objets pour que les crafteurs se distinguent en style autant qu'en compétence.

Dans un prochain article, j'aborderais à question de la stabilité économique dans un jeu.



AddThis Social Bookmark Button
 
Plus d'articles...
Image au hasard
small-shoot21.jpg
Suivez moi :
Facebook: damien.hoffschir del.icio.us: Filimindji FriendFeed: Filimindji LastFM: Filimindji Linked In: hoffschir Picasa: Filimindji Twitter: Filimindji YouTube: Filimindji
A voir aussi :