Journal Jake2 - port Quake2 en Java

Posté par  .
Étiquettes : aucune
0
11
sept.
2004
Jake2 vient de sortir en version 0.9.3

La page du projet :
http://www.bytonic.de/html/jake2.html(...)

Des screenshots :
http://www.bytonic.de/html/screenshots.html(...)

Du download :
http://www.bytonic.de/html/download.html(...)

C'est un port du moteur 3D Quake2 d'id Software.
Pour ne rien gacher Jake2 est en GPL. Il utilise la
librairie Jogl pour openGL et joal pour le son.

Ca marche sous linux et winblows

Bon tests :)


[ Ah j'oubliais, la page pour les trolleurs de tous bord
http://www.bytonic.de/html/benchmarks.html(...)
Jake2 0.9.2 can achieve up to 85% of the framerate of the C version ;) ]
  • # A quoi ca sert ?

    Posté par  . Évalué à 2.

    Je m'interroge sur le but de porter un jeu dans un autre langage ? Ca apporte quoi ? Pouvoir utiliser le moteur en Java, c'est pas faisable autrement ?
  • # allez hop

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

    Le même genre de portage supermégautile : Quake II .NET
    http://www.codeproject.com/managedcpp/Quake2.asp(...)

    Décidemment y'en a qui n'ont rien à foutre :)

    Pour ceux qui veulent pas troller :

    "Running Quake II.NET in the timedemo test indicates the managed version performs about 85% as fast as the native version"

    bizzare comme chiffre ;)

    Pour ceux qui veulent troller :

    Project UNIX name: jake2
    Registered: 2004-06-04 00:59

    jake2 jake2-0.9.3 September 7, 2004

    Quake 2 .NET :
    Porting the C code to native C++ took about 4 days, and porting to managed C++ took another day.
    • [^] # Re: allez hop

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

      Ah oui, j'oubliai, là au moins on peut vraiment vérifier la perte de peformance entre la version native et la version portée, c'est le même code qui est utilisé :
      #if _MANAGED
      "Quake II (managed)",
      #else
      "Quake II (native)",
      #endif
      • [^] # Re: allez hop

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

        C'est fou que tu te sentes à chaque fois obligé de troller lorsqu'on parle de Java. A tout les coups tu débarques en nous parlant de .NET et en essayant de prouver que c'est mieux que Java.

        Tu nous fais un petit complexe d'infériorité ? ;-)
        • [^] # Re: allez hop

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

          C'est fou que tu te sentes à chaque fois obligé de troller lorsqu'on parle de Java.
          En même temps j'avais prévenu. En même temps le journal était plus ou moins un appel au troll, cf un des anciens journaux de l'auteur ;)

          A tout les coups tu débarques en nous parlant de .NET et en essayant de prouver que c'est mieux que Java.
          Bah oué j'aime bien l'alternative, surtout quand là le but est de comparer un "portage".
          Le but de ce journal étant clairement de montrer que JAva ca roxe et que question perfs ca vaut le C, j'ai voulu montrer qu'il fallait relativiser, que celà a demandé beaucoup de travail et une réécriture complète, alors que poutant un des atouts de Java c'est d'être plus productifs qu'en C.
          J'ai voulu montrer aussi qu'en Java faut parfois réinventer la roue, faute d'avoir une interface bien foutu pour exploiter une lib dans un autre langage.
          Effectivement, je l'ai ramener avec .NET, mais que veux-tu, je ne vais pas citer comme exemple des trucs que je ne connais pas... Après je trouve que c'est pas vraiment hors-sujet mais bon...
    • [^] # Re: allez hop

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

      Quake.NET c'est ni plus ni moins que du C avec des bouts microscopiques de C++. En gros ils ont "recompile" Quake 2 sous .NET en modifiant quelques trucs, bref rien de neuf sous le soleil et je vois vraiment pas l'interet de la chose.

      En revanche Jake2 c'est deja plus interessant puisqu'en regardant le code source c'est bien du Java.

      Et ce que l'on remarque c'est que Quake2.NET qui est ecrit en C n'est pas aussi rapide que le Quake2 original et que la version Java est aussi rapide que Quake2 en C sous .NET !!!
      • [^] # Re: allez hop

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

        bref rien de neuf sous le soleil et je vois vraiment pas l'interet de la chose.
        Ben si, montrer que question productivité on peut faire un truc en 4 jours au lieu de tout recoder en 6 mois. D'où l'intérêt de supporter plusieurs langages sur une même plateforme.

        Et ce que l'on remarque c'est que Quake2.NET qui est ecrit en C n'est pas aussi rapide que le Quake2 original
        Nan nan nan.
        Si tu compares vraiment avec l'original, Quake2.NET en C est plus rapide que l'original, parcque l'original n'avait pas les optimisations P4. Si on recompile les 2 avec le support des optimisations p4, c'est là qu'on retrouve l'écart à 85%, ce qui paraît logique étant donné qu'il y a la machine virtuelle qui tourne dessous.
        et que la version Java est aussi rapide que Quake2 en C sous .NET !!!
        Nan, comme je l'ai dit c'est incomparable, pour plusieurs raisons :
        ils ne disent pas quelles optimisations ils ont "activé" à la compilation, ce qui fait que si ca se trouve ils comparent avec la version original du jeu non recompilé, auquel cas Quake2.NET va plus vite que l'original.
        Ensuite le moteur a été complètement réécrit, si on suit les différentes version sorties, ils ont mis du temps avant de réussir à obtenir des perfs similaires, ils ont du passer un bon bout de temps à optimiser, suffit de voir leur tableau.
        De toute façon je trouve ce genre de bench pas vraiment utile, puisque le plus gros du travail est envoyé à la carte graphique, ce n'est alors si .NET ni Java qui font le taf. Ce qui a ralenti Java, c'est les nombeux appels à travers JNI qui font tout ramer, ils ont du optimiser celà le plus possible pour éviter les échanges entre leur couche bibliothèques qui utilise OpenGL et le moteur en Java.
        • [^] # Re: allez hop

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

          > bref rien de neuf sous le soleil et je vois vraiment pas l'interet de la chose.
          > Ben si, montrer que question productivité on peut faire un truc en 4
          > jours au lieu de tout recoder en 6 mois.

          Je crois qu'aucune demonstration est utile pour comprendre que recoder un soft dans un autre language c'est plus long que de recompiler le soft sous un autre environnement. C'est super evident.
          Si ca les amusent de perdre 4j pour arriver a cette conclusion...

          > D'où l'intérêt de supporter plusieurs langages sur une même plateforme.

          Je suis d'accord que ca peut etre interessant d'avoir plusieurs languages supportes. Ici c'est le cas: on prend un "vieux" soft en C, on le porte sous un framework moderne et on peut ajouter des nouvelles fonctionnalites plus facilement grace aux outils modernes du framework.

          > Si tu compares vraiment avec l'original, Quake2.NET en C est plus
          > rapide que l'original, parceque l'original n'avait pas les optimisations P4.

          Tu le sors d'ou ca ? sur le site web de Quake.NET il y a ecrit:
          Running Quake II.NET in the timedemo test indicates the managed version performs about 85% as fast as the native version. Native version pour moi ca veux dire qu'ils ont telecharge la demo de IdSoftware, fait un timedemo et compare avec leur version .NET
          • [^] # Re: allez hop

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

            Si ca les amusent de perdre 4j pour arriver a cette conclusion...
            Quake II .NET existait avant la version Java, leur objectif était de montrer qu'il était facile de porter une appli sur .NET pour en exploiter les possibilités d'extension (ils ont par exemple rajouté un radar). Ce que je trouve plus une perte de temps, c'est plutôt d'avoir passer 6 mois à réinventer la roue en Java... Tout ce que celà montre c'est que JNI est tellement pourri qu'on est obligé de recoder.

            Tu le sors d'ou ca ?
            sur le site web de Quake.NET il y a ecrit:
            "Initially, the managed version was faster than the native version when the default processor optimization setting /G5 (Pentium) was used. Changing the optimization setting to /G7 (Pentium 4 and Above) created a native version that runs around 15% faster then the managed version."
  • # Houla !

    Posté par  . Évalué à 2.

    > Pour ne rien gacher Jake2 est en GPL.

    J'espère bien vu que l'original l'est ! Il ne manquerait plus que vous ne respectiez pas la GPL !
    • [^] # Re: Houla !

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

      En même temps ils ont du tout recoder alors bon voilà quoi...
      Si les textures doivent être les originaux, mais les textures sont elles sous GPL ou sous un autre type de licence ?
      • [^] # Re: Houla !

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

        AFAIK seul le code du moteur du jeu est sous GPL, les textures, models et tout le reste n'est pas utilisable "librement". D'ailleurs sur la page de Jake2 il est clairement écrit
        To use the Jake2 engine you need either the data files from the original game or from the demo version that is available for download from ftp://ftp.idsoftware.com.(...)

        pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

  • # ...

    Posté par  . Évalué à -3.

    • [^] # Re: ...

      Posté par  . Évalué à 1.

      non l'info me vient de java.net
  • # Memories...

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

    <private life of medspx>
    Ah, pas possible Quake en Java et le 2 en plus !

    Je me souviens , lors de la sortie de Quake à l'époque (97 je crois), j'avais lancé une réflexion crétine sur le fait que ce jeu demandait un max de ressources (se remettre dans le contexte) et sur mes débuts en Java sur ma pauvre machine:
    " Le jour où Quake sera codé en Java, faudra un Cray pour le faire marcher..."

    Si j'avais pu imaginer que quelques années plus tard j'allais être rattrapé et contredit puissamment...

    C'est dans la même veine que le coup des 640Ko de RAM...
    .. c'est également signe que Java se bonifie avec le temps !
    </private life of medspx>

Suivre le flux des commentaires

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