Return false

Un blog IT de plus le blog de Hubebert.

Articles taggés avec ‘2D’

projet de jeu - ça pousse

Dimanche 4 novembre 2012

Avant propos technique:

Petit point après une semaine d’utilisation du nouveau framework LÖVE.

C’est bien, c’est fluide, c’est cool. Comme je commence à ( essayer de ) m’entourer gens compétents, j’ai décidé de centraliser tout ce qui concerne le projet sur Bitbucket. Pour ceux qui ne connaissent pas, c’est un hébergeur de code source utilisant Git. Ça sert a pouvoir gérer les différentes version du projet avec un historique pour chaque fichier, et comme c’est décentralisé, chacun peu travailler de chez soi, et envoyer les données sur le serveur Bitbucket quand il a terminé son itération.

Pourquoi Bitbucket? Parce que j’aime bien l’interface, parce qu’on a un wiki en plus du stockage des fichiers et surtout pour la licence. Le gros concurrent de Bitbucket c’est GitHub. Les deux sites hébergent vos projets gratuitement si ceux-ci sont open-source (tout le code et le matériel de travail est public). Comme je n’ai pas encore pris de décision sur le sujet, je suis allé sur Bitbucket, qui permet d’avoir un code propriétaire hébergé gratuitement pour une équipe de 5 personnes ou moins. Pour l’instant c’est public, mais pouvoir changer d’avis sans sortir le chéquier, c’est toujours mieux.

Le semis:

Le jeu comportera des étapes de jeu différentes. Celle que j’ai entamée cette semaine est la première du cycle de reproduction, le semis. Lors de cette étape, le joueur ne contrôle qu’une graine/un fruit/un spore de son espèce. Il se pose quelque part et se plante, donnant naissance à une pousse, qui, dans les étapes de jeu suivantes deviendra arbre à part entière.

Pourquoi faire une étape de jeu entière la dessus? Parce qu’il y a la possibilité de laisser au joueur un choix intéressant: où se placer. En fonction des ressources, des problèmes de topographie possibles et autres, la partie peut être tout à fait différente. Et c’est aussi la première entorse à la réalité. Pour rappel, la règle principale du gamedesign est Aussi près de la réalité que possible, aussi loin que nécessaire. Pour le placement de la graine donc, on autorise le joueur à “bumper” sa graine. On lui donne une sorte de pichenette pour influencer sa trajectoire. Selon l’espèce choisie, on aura plus ou moins de bumps pour compenser d’autres avantages. En fonction du poids de la graine, le bump aura une influence plus ou moins importante.

YouTube Preview Image

Je précise que les ralentissements sont dus à la vidéo, et pas au moteur du jeu.

Éditeur de niveaux:

Pour gagner du temps sur des choses où il est bête d’en perdre, j’ai fait un éditeur de niveau. Il est encore moche et basique mais il fonctionne. Il est pour l’instant uniquement dédié à l’usage interne. Sortir un jeu avec un éditeur de niveaux c’est appréciable pour le joueur mais ça demande beaucoup de travail supplémentaire. On verra. En attendant ça m’a permis de jouer un peu avec le moteur physique du jeu.

Conclusion:

La suite:

  • finir le “semage” de la graine
  • attaquer la pousse de l’arbre.
  • Décider plus précisément de la gestion des ressources.
  • Intégrer le boulot des “game artists” (son, graphisme) dès qu’il y aura lieu.
  • Trouver un nom, même temporaire ! Si toi, lecteur de tu as une idée, n’hésite pas à me l’envoyer. (hubebert@wefrag.com)

YouTube Preview Image

Décidément sur NF, on arrête pas de parler des jeux indés (et tant mieux). Vu qu’on a un forum sur lequel les gens ont de vrai débats (disons, moins pire qu’ailleurs) sur les jeux, avec des analyses (parfois) pertinentes ça donne des billes et des idées pour se lancer.

Projet de jeu de gestion végétal

Dimanche 28 octobre 2012

Bonjour à tous,

aujourd’hui une présentation d’un projet qui me tient à coeur. Comme beaucoup de nofragés, j’ai toujours voulu développer un jeu vidéo moi même. Maintenant que je suis en 4° année d’école d’IT je me suis permis une option Jeu Vidéo, et je me lance sur mon temps libre pour réaliser mon concept longuement mûri.

Avant-propos technique :

Afin de tester ma motivation et/ou la faisabilité technique, j’ai déjà travaillé environs 2 mois (depuis mi-Aout) sur la réalisation d’un prototype. (voir vidéos). Pour ce prototype j’ai utilisé le framework pygame qui permet de tout faire en Python. Il à l’avantage d’avoir d’excellentes performances pour la 2D et de faire gagner un temps monstre en code grâce au Python. Cependant, pendant la réalisation du prototype j’ai rencontrés quelques défauts qui m’ont poussé à passer à autre chose :

  • Pas d’antialiasing
  • Pas de Synchro verticale (!)
  • Gestion abominable du scroll
  • Packaging en .exe laborieux

J’ai donc donné sa chance au plus récent framework LÖVE. Tout comme pygame, il utilise SDL pour le rendu, qui est excellent en terme de performances. Ce qui me contraint à tout réécrire, et de plus dans un langage auquel je n’accroche pas du tout (le Lua) mais c’est le prix à payer pour les avantages suivants:

  • Anti Aliasing/Vsync natifs
  • Meilleure gestion de l’accèleration matérielle
  • Moteur physique intégré (Box2D, le même qu’Angry Birds d’ailleurs)
  • Système de particule intégré convainquant
  • Distribution Windows/Linux simplissime

Même s’il est plus récent,  LÖVE à déjà fait ses preuves puisqu’on trouve déjà quelques jeux commerciaux en basés dessus. (des petits trucs comme Snayke sur Desura ou Steam Greenlight).

Concept:

Le jeu sera un jeu de gestion, ce qui signifie qu’il faudra jouer sur plusieurs ressources et leur équilibrage pour ne pas perdre. Ma ligne directrice est de coller le plus possible à la réalité. C’est quelquechose qui me tient à coeur, car je reste persuadé qu’on peut s’amuser avec quelquechose de réaliste, pourvu que le gameplay soit bien pensé. Le joueur jouera une variété d’arbre, sélectionnable en début de partie. Le but du jeu est de faire de son éspèce, la plante dominante (comme dans la nature donc). Pour cela le joueur gagne des points. Un highscore game quoi.

Plus son arbre est grand, plus son arbre est ancien, plus on gagne de points. La petite nuance, c’est que les points ne sont comptabilisés que lorsque le joueur se reproduit (non, pas du sexe, avec des fruits), puisque c’est à ce moment qu’il transmet son patrimoine génétique.Au moment de se reproduire, le joueur à un choix. Il peut continuer à jouer dans sa plante, son score est alors sauvegardé et il continue la partie. Autrement, il peut choisir de s’incarner une des graines/fruits/spores générés pendant la reproduction et recommencer une plante, qui, évolution oblige, démarrera avec quelques bonus.

Gameplay:

En fonction de ses ressources le joueur pourra faire pousser des branches des racines et des feuilles sur sa plante.

Le joueur aura à jongler entre plusieurs ressources, et surtout entre deux mondes. À la surface, il devra s’adapter au rythme du jour et de la nuit ainsi qu’a celui des saisons. Cela influera sur la ressource “soleil” qu’il collecte. Dans ce mode, la ressource “soleil” sera collectée en fonction du nombre de feuilles disponibles et de l’ensoleillement. C’est à la surface aussi qu’on aura le plus d’évènements aléatoires (climat, animaux et autre) à gérer.

Sous terre, le fonctionnement sera différent: deux ressources, l’eau et les nutriments. L’eau est collectée uniformément, tandis que les nutriments seront concentrés sur des “spots” de ressources, pour forcer le joueur à pousser dans telle ou telle direction.

Une petite illustration en vidéo avec le prototype en Python/pygame:

Je vous conseille le plein écran pour apercevoir quelquechose.

YouTube Preview Image

Pourquoi j’en parle?

Parce que si vous avez regardé la vidéo ci-dessus vous avez du voir comme c’est moche.

Parce que j’arrive à un stade ou il va falloir prendre en considération la direction artistique du jeu, pour pouvoir coder comme il faut et pas faire des choses que je devrais défaire plus tard si cela ne colle pas avec la DA. Mes sprites sont HORRIBLES. Les curseurs, les branches, tout. Le seul truc qui passe c’est le fond d’écran parce que je l’ai piqué sur opengameart.

J’en parle parce que je suis tout sauf un artiste, et que j’aurais besoin d’un graphiste. Je n’ai aucune idée d’où en trouver un, j’ai essayé de fouiller un peu sur la toile, mais sans succès. Donc si vous avez une idée, un lien, un forum, un ami ou une motivation à tout épreuve à m’apporter, n’hésitez pas à me le dire, ce sera bienvenu.

Merci.

En bonus une autre vidéo plus ancienne, avec des sprites encore plus moches!

YouTube Preview Image

Autres idées (en vrac):

Achievements? Achievements!

Éspèces débloquables au fur à mesure

Multijoueur pour se la comparer (pas pour jouer en même temps)

Refaire le CSS du blog? Un jour…

Et bien sûr vous pouvez me contacter sur mon mail wefrag:

hubebert@wefrag.com