Journal Newton Adventure évolue sur PC et débute sur Android

22
25
mai
2012

Bonjour Nal,

Je t'écris pour te faire part des évolutions de mon projet Newton Adventure.

Le projet

Un jeu de plate-forme 2d où le joueur peut parcourir les niveaux soit de façon classique en faisant courir et en sauter le héros, soit changer la direction de la gravité pour le faire tomber lui ou ses ennemis et obstacles.

Sous licence BSD pour le code et CC-BY-SA pour les données, il est disponible pour Linux, MacOS X et Windows ou tout OS avec Java et OpenGL.

Screenshot

Nouvelles versions

La dernière fois où je t'en ai parlé, il me semble qu'il s'agissait de la version 1.2. Voici les nouveautés qu'ont apportés les dernières:

1.3

  • Les manettes de jeu USB sont gérées et configurables dans le menu "Options".
  • Dans les niveaux les plus grands, il est possible de collecter deux objets, une carte et une boussole, qui permette de débloquer la vue d'une mini-carte très utile pour se repérer.
  • Une nouvelle quête composée de 5 niveaux, hades, est disponible et propose de nouveaux éléments de jeu tels que les téléporteurs ou les serrures.

1.4

  • une sauvegarde de la progression et un menu pour voir et choisir les niveaux.
  • de nouveaux niveaux "0.5" de difficulté intermédiaire pour ne plus rebuter les joueurs.
  • quelques bugs en moins et optimisations en plus.

Certaines nouveautés sont invisibles, mais destinées à une prochaine refonte graphique:

  • l'intégration de nanim.
  • la possibilité d'animer n'importe quel élément du décor.
  • la gestion de plusieurs couches de décors.

1.5

Cette nouvelle version est destinée à corriger beaucoup de bugs trouvés ces derniers temps:

  • affichage des pommes et des explosions limité à un élément.
  • blocage de la clé par les haches tournantes dans certains niveaux.
  • lags du clavier et de la souris.
  • impossible d'aller dans les niveaux bonus.

Portage sur Android

Grâce au très généreux don d'un HTC Magic par Allucard, j'ai pu commencer le portage sur Android.

Screenshot android

Pour l'instant je ne fournis pas de binaires pour cette plate-forme, car la version actuelle est trop lente pour être jouable (1 ou 2 fps max).

J'ai d'ailleurs beaucoup de mal à trouver comment optimiser, je n'ai pas l'impression de surcharger, mais les mobiles sont des petites choses fragiles et il ne faut sans doute pas trop leur en demander!

Futur

Le projet va continuer d'évoluer:

  • j'espère pouvoir finir le portage Android, si la puissance du HTC me le permet!
  • une refonte graphique est en cours.
  • j'étudie de nouvelles idées: mode deux joueurs, générateur de niveaux, nouveaux pièges…

Contribuer

Quand j'ai commencé le développement de Newton Adventure, je ne pensais pas recevoir de contribution, mais petit à petit je reçois une aide précieuse de plusieurs personnes. Le fait de beaucoup parler de mon travail et de développer des outils réutilisables ( http://devnewton.bci.im/projects/nanim , http://devnewton.bci.im/projects/libtiled-android et http://devnewton.bci.im/projects/scoreserver) aide certainement!

Si d'autres personnes souhaitent donner un coup de main, j'ai commencé un gros travail de documentation sur le wiki du jeu: http://devnewton.bci.im/projects/newton_adventure/wiki?name=Contribute

La première et la plus simple des contribution est bien sûr de jouer!

Liens

Annonce et téléchargement de la dernière version: http://devnewton.bci.im/blog/index.php?post/2012/05/24/Newton-Adventure-1.5

Dépôt source Fossil: http://devnewton.bci.im/projects/newton_adventure

  • # Dépêche

    Posté par . Évalué à 5.

    Pourquoi ne pas l'avoir poster comme dépêche ?

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

    • [^] # Re: Dépêche

      Posté par (page perso) . Évalué à 10.

      Pour pouvoir dire bonjour à Nal!

      D'une manière générale, je trouve que l'ambiance est plus sympathique dans la section "journaux" de linuxfr.

      http://devnewton.bci.im

    • [^] # Re: Dépêche

      Posté par (page perso) . Évalué à 3.

      Sans vouloir manquer de respect au dev de ce jeu, je ne pense pas que cela mérite une dépêche. Ou alors il faudrait une dépêche pour tous les petits jeux open source et franchement, ça serait pénible.

      En revanche, c'est exactement le genre d'informations que je recherche lorsque je regarde les journaux.

      • [^] # Re: Dépêche

        Posté par . Évalué à 7.

        Quand c'est un développeur du jeux qui fait la dépêche et participe aux discussions dans les commentaires, c'est différent. J'aime bien parceque les discussions deviennent un peu technique et je trouve que c'est l'aspect de linuxfr qui a le plus besoin d'être encouragé en ce moment.

        • [^] # Re: Dépêche

          Posté par (page perso) . Évalué à 4.

          Moi aussi j'aime bien, c'est pour ça que j'aime voir ce genre d'info dans les journaux. La vraie question est sans doute : qu'est-ce qu'on met dans les dépêches et qu'est-ce qu'on met dans les journaux. Pour moi, les journaux ne sont pas juste des dépêches pas assez mûres ou qui n'intéressent pas assez de monde mais aussi des informations plus ouvertes ou plus communautaires (ex: je dev un jeu, j'ai envie d'en parler et d'en discuter).

      • [^] # Re:Dépêche

        Posté par (page perso) . Évalué à 2.

        open source et franchement, ça serait pénible.

        Pourquoi ?

        • [^] # Re:Dépêche

          Posté par (page perso) . Évalué à 3.

          Cela deviendrait long de lire toutes les dépêches et on passerait à côté des informations les plus importantes. Les journaux sont faits pour ça selon moi. Et si tu mets trop de choses en dépêches, plus personne ne lira les journaux.

          • [^] # Re:Dépêche

            Posté par . Évalué à 2.

            Faudra revoir la ligne éditorial quand il y aura 20 dépêches par jours. Mais là, le rythme est de 1 ou 2 par jour. on a de la marge je pense.

            Perso, je serais pour la suppression des dépêches, la suppression des forums, et des karmas. Le système de tags permettrait à chacun de se faire sa ligne éditoriale.

            Bref, de libéraliser la création de contenu pour redonner de la vie au site qui est en train de dying.

            • [^] # Re:Dépêche

              Posté par (page perso) . Évalué à 4.

              Le système de tags permettrait à chacun de se faire sa ligne éditoriale.

              Il faut quand même une bonne ligne éditoriale par défaut pour les nouveaux visiteurs.

              Aujourd'hui les dépêches mélangent des articles originaux avec des revues de presse et des annonces d'apéro à Perduville.

              Dans les journaux, on sait que l'on va trouver des articles qui tiennent à coeur à leurs auteurs.

              http://devnewton.bci.im

              • [^] # Re:Dépêche

                Posté par . Évalué à 2.

                Ça pourrait être intéressant de commencer par tager tout les contenus en « dépêche », « journaux » et « forum » ainsi chaque page actuelle ne serait qu'une même page qui affiche les derniers contenus d'un tag donné.

                Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • # HTC Magic et performance

    Posté par (page perso) . Évalué à 10. Dernière modification le 25/05/12 à 19:40.

    J'avais à l'époque développé un jeu de tank en 2D qui tourne bien sur un HTC Magic :
    https://play.google.com/store/apps/details?id=net.fhtagn.zoob_demo

    Les sources sont dispo sur github :
    https://github.com/julienr/zoob

    Un petit retour pour que ça tourne sur un Magic :
    - J'ai utilisé C++ plutôt que Java. Le Magic n'a pas de JIT (trop peu de mémoire) et Java est donc super lent sur ce téléphone qui n'est déjà pas rapide…
    - Quitte à rester en Java, il vaut mieux éviter Canvas et Drawable et travailler directement en OpenGL. Ca permet d'être plus fin dans ce qu'on veut et on gagne des perfs.
    - Y'a tout un tas de petit "tips" pour écrire du code Java performant sur Android. Ca passe par l'utilisation de static final lorsque c'est possible, éviter les getter, etc :
    http://developer.android.com/guide/practices/design/performance.html
    - Mais si tu veux vraiment des bonnes perfs sur des téléphones bas de gamme, je crois que passer par C++ est nécessaire. C'est assez facile de faire du JNI sous Android. Pour mon jeu de tank, j'avais fais l'interface en Java et tout ce qui est jeu en C++.

    Bonne chance !

    • [^] # Re: HTC Magic et performance

      Posté par (page perso) . Évalué à 3.

      J'ai utilisé C++ plutôt que Java

      Je cherche à faire un portage simple, pas une réécriture. De plus si d'accord pour dire que C++ reste le meilleur langage pour les jeux, la génération de binaire pour toutes les combinaisons kernel/distribution/hardware est trop consommatrice de temps pour un projet que je fait sur mon temps libre.

      Le Magic n'a pas de JIT

      Tu veux dire Android?

      A ce propos j'ai vu que le processeur du HTC Magic propose une accélération de l'exécution du bytecode Java, mais je me demande si du fait de l'utilisation de dalvik, elle est utilisée…

      Y'a tout un tas de petit "tips" pour écrire du code Java performant sur Android. Ca passe par l'utilisation de static final lorsque c'est possible, éviter les getter

      Je vais regarder ça, mais j'ai l'impression que c'est surtout la rasterisation qui ralentit tout.

      http://devnewton.bci.im

      • [^] # Re: HTC Magic et performance

        Posté par (page perso) . Évalué à 2.

        Pour le JIT, oui je voulais dire Android. Enfin, Android 1.6 sur Magic n'a pas de JIT. Si je me souviens bien, le JIT est apparu avec la version 2.X, mais même en installant ça sur un Magic (cyanogenmod par exemple), le JIT est désactivé car le téléphone n'as pas assez de RAM.

        • [^] # Re: HTC Magic et performance

          Posté par (page perso) . Évalué à 2.

          Arg, ça veut dire que le jeu ne sera jamais fluide sur ce téléphone, car le moteur physique doit bien bouffer du CPU d'autant plus que le HTC n'a pas de FPU…

          J'ai consacré pas mal de temps à ce portage, mais je ne sais pas si je vais pouvoir continuer :-(

          http://devnewton.bci.im

          • [^] # Re: HTC Magic et performance

            Posté par (page perso) . Évalué à 2.

            L'autre solution, c'est de viser un téléphone plus récent qui a du JIT, un FPU, etc…

            Mais ouais, faire tourner un jeu avec moteur physique sur un Magic, c'est un gros challenge je pense :-)

    • [^] # Re: HTC Magic et performance

      Posté par (page perso) . Évalué à 2.

      J'ai ajouté ton jeu à https://linuxfr.org/wiki/jeux_libres_linuxfr

      http://devnewton.bci.im

Suivre le flux des commentaires

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