portal DS avance tranquillement…

« Petit » post pour faire part de l’avancement de portal DS (au passage, le jeu final s’appellera surement pas comme ça, faudra songer à trouver un nom cool comme DScraft; malheureusement, DStal et porDS sonnent vraiment pas terrible :P ). Alors ça fait maintenant en gros deux mois que je suis dessus je crois et ça se présente vraiment bien, honnêtement mieux que ce que je pensais. Pour commencer, une vidéo assez récente qui montre en gros où j’en suis :

(la suite explique en gros tout ce que j’ai fait pour le projet jusqu’ici, mais c’est un peu technique par moment, donc désolé si c’est pas votre truc)

(et désolé aux gens qui aiment les trucs techniques parce que je pense pas que ce soit assez détaillé pour que ce soit intéressant :P )

(ça me fait penser que ça pourrait être cool d’écrire un article style post-mortem pour DScraft où j’explique un peu comment j’ai tout fait, ça pourrait peut être aider des gens qui ont envie de faire un jeu similaire)

(bref.)

Alors ouai ça donne pas l’impression que le projet a énormément avancé depuis le dernier post mais en fait si. En fait, j’ai eu pas mal de gros problèmes techniques à résoudre pendant ce laps de temps, et pendant un temps j’étais vraiment pas sûr que portal serait viable au final. En gros, j’ai commencé le développement de portal complètement sur émulateur parce que ma DS n’avait pas de chargeur (oublié en déménageant). Du coup pendant deux semaines je codais plus ou moins à l’aveugle; je savais plus ou moins que ce que j’avais fait fonctionnerait, mais niveau performances je savais pas du tout à quoi m’attendre. J’espérais quand même que ce serait comparable à ce que j’obtenais sur émulateur, mais il s’est avéré que j’avais vraiment, vraiment tort. Pour faire simple, pour l’affichage des portails (un point crucial du jeu donc), il faut que je fasse un peu de post-traitement de l’image générée par le GPU 3D afin de remplacer la zone couverte par le portail parce qu’on devrait voir à travers. Donc pour ça j’ai commencé par y aller un peu comme un bourrin; le résultat semblait satisfaisant mais sans plus. J’ai ensuite repris la même approche, mais codée en ASM pour gagner en vitesse. Ça semblait fonctionner : au final, sur no$, je faisais le traitement complet en en gros 250 000 cycles (ce qui représente 50% du temps CPU à 60 FPS quand même, mais c’est acceptable vu que je tourne à 30FPS). Le truc, c’est que quand j’ai testé sur hardware, le résultat était pas vraiment le même; si mes souvenirs sont bons, les perfs étaient plus proches de 500 000 cycles, ce qui était vraiment beaucoup, beaucoup trop. En regardant le code que j’avais écrit après coup c’était pas si surprenant, beaucoup trop d’accès mémoire dans tous les sens. Du coup j’ai expérimenté avec plein de techniques différentes et au final j’ai trouvé un truc qui marche bien et qui me fait tout en moins de 200 000 cycles, donc mieux que ce que j’espérais. Mais ça m’a quand même pris deux semaines rien que pour ça. Après j’ai du trouver un moyen fiable de rendre les portails dans toutes les situations sans avoir de problème de profondeur ou de clipping, et ça aussi ça m’a bien pris deux semaines. J’ai finalement trouvé une solution (que je n’ai pas tout à fait fini de coder mais qui marche déjà pas mal en l’état), donc c’est cool.

Après ça, j’ai cassé ma DS du coup j’ai pas pu vraiment avancer sur le jeu en lui même (je me méfie des émulateurs maintenant :P ), du coup je me suis tourné vers quelque chose de très secondaire (le jeu pourrait très bien marcher sans), mais qui serait quand même très cool s’il fonctionne effectivement : le moteur physique pour gérer les objets comme les cubes et les tourelles. Ça peut paraitre assez trivial comme ça et effectivement d’un point de vue maths/physique c’est pas super compliqué. Pareil, implémenter ça sur PC n’est pas trop trop dur, il y a de très bons articles qui guident et expliquent bien (même si j’en ai un peu chié pour le trouver, au final je me suis beaucoup basé sur la série d’articles de chris hecker sur le sujet qui correspondait parfaitement à mes besoins : http://chrishecker.com/Rigid_Body_Dynamics). Du coup j’ai passé quelques jours à implémenter mon moteur sur PC en faisant bien gaffe à n’utiliser que du fixed point et pas de floats (ou seulement temporairement) pour pouvoir porter ça directement sur DS sans effort. Le résultat était probant; le moteur tournait sans trop de souci, j’ai réglé la plupart des situations qui le font planter et un simple copier-coller permet de passer de PC à DS (excepté pour la partie rendu forcément). De là je me suis concentré sur la mesure des perfs du moteur, et c’était pas forcément génial (ça ne l’est toujours pas d’ailleurs, mais y a pas mal de trucs que je pense pouvoir optimiser et d’autres que j’ai déjà optimisés). Du coup là je me suis rendu compte que même si j’optimisais comme un fou, vu le relatif peu de temps CPU qu’il me restait sur l’arm9, il serait virtuellement impossible de faire tourner le moteur physique de façon « classique » dans portal. Du coup je me suis tourné vers l’arm7 qui est largement inutilisé dans la grande majorité des applications DS (de façon générale, on s’en sert seulement pour tout ce qui est son et wifi… et pour envoyer les infos relatives à l’écran tactile à l’arm9). Il y a pas mal de raisons pour ça : impossibilité pratique d’utiliser la ram principale (c’est possible en vrai, mais on évite parce que ça bloque l’accès de l’arm9 à la ram, ce qui le ralentit/bloque forcément et donc casse tout l’intérèt d’utiliser l’arm7…), ce qui force à n’utiliser que les 64ko de WRAM qui lui sont dédiés (+32ko de WRAM partagée qu’on peut lui allouer) pour TOUT, ie le code et les données, le fait que la communication arm7<->arm9 n’est pas faite pour transporter beaucoup de données (c’est assez lent, du coup si au final ça coûte plus cher de transférer les données que de faire les calculs bon…), le fait que l’unité mathématique (celle qui fait les divisions et les racines en fixed point) est inaccessible depuis l’arm7, et enfin le fait que de toute façon l’arm7 tourne à 33mhz donc bon, c’est pas forcément un gain si énorme que ça si on prend en compte toutes les contraintes. Mais bon, dans mon cas le code du moteur n’est pas énorme donc la limite en RAM est clairement une difficulté, mais elle n’est pas a priori insurmontable (surtout que bizarrement mon code a l’air d’être plus rapide quand il est compilé en Os que quand il est compilé en O3… allez comprendre…), et je n’ai pas beaucoup de données à tranférer (25 octets suffisent à décrire entièrement une boite), du coup j’ai assez vite réussi à faire tourner mon code sur l’arm7. Après ça, j’ai fait pas mal d’optimisation, j’ai testé les perfs dans tous les sens, et une fois que j’étais à peu près satisfait je l’ai inclus dans portal.

Et en gros c’est là que j’en suis. Le moteur physique a l’air de bien fonctionner avec portal, j’ai même implémenté un mini gravity gun pour m’amuser et là je travaille sur les intéractions entre les boites et les portails. Il me reste clairement encore plein de boulot (même pour le moteur physique en lui même, faut que je fasse plein d’optimisation, principalement sur l’usage de la RAM), mais je trouve que ça se présente plutot bien donc je suis assez content. Si je continue à ce rythme (ce qui est douteux mais on peut rêver), je pense que j’aurai une version solide du moteur du jeu vers noël.

Du coup pour l’instant mes plans sont de « solidifier » le moteur, rendre tout ça bien propre et joli, peut être même commencer à ajouter certains trucs qui a priori viendront après comme les boutons et les tourelles, et une fois que j’aurai ça, sortir une démo avec un niveau ou deux. L’idée ce serait que quand cette démo sortira, il y aura plus de gens qui connaitront ce projet, ce qui facilitera la recherche d’un graphiste.

Je pense que ça va être difficile de trouver un graphiste pour ce projet; je n’ai pas besoin d’énormément de trucs mais il me faut vraiment quelqu’un qui soit très doué avec les modèles low poly (idéalement j’aimerais avoir des modèles aussi beaux que ceux-ci : http://tommytallian.blogspot.fr/p/low-poly-tf2.html) et je ne pense pas que lobo sera dispo/motivé pour ce projet. Mais bon, on verra bien, de toute façon j’en suis pas encore là.

57 Responses to “portal DS avance tranquillement…”

  1. Manoel13 Says:

    J’ai tout lu j’ai une chose a dire bonne continuation !

  2. Manoel13 Says:

    je veut bien tester tes jeux si tu veux x)

  3. admin Says:

    bah j’ai pas vraiment besoin de testeurs pour l’instant, mais sur GBAtemp je propose aux gens qui ont envie de tester de leur donner une version en cours de développement, donc si tu veux tu peux. Par contre, faut pas s’attendre à un truc bien, c’est vraiment très très très buggé et incomplet.

  4. Thecube Says:

    franchement ca a l’aire impressionnent mais tu penses que cela va tourner sur la ds car 30 fps c pas non plus super jouable
    mais sinon bravo :)

  5. admin Says:

    bah euh, comment dire… si ? :P 30 FPS, tant que y a pas de baisse inopinée, c’est parfaitement jouable, et ça ne se remarque pas du tout quand n’a pas de comparaison. (par exemple, DScraft tourne à 30 FPS et y avait aucune plainte de ce côté là)

  6. Thecube Says:

    http://drakon.ixan.net/?page_id=564
    petit projet fait par un devlopeur amateur (créeteur de lamecraft)

  7. admin Says:

    erf, sérieux ? je vais encore me faire insulter par ses fans moi :|

  8. Manoel13 Says:

    re je veut bien tester meme si c’est très buger en plus je vien très souvent donc si tu veut met moi le lien sur mon adresse email : manoelgarattoni@gmail.com bref voila x) j’ai deja tester un mini projet un fps 3d test je croit que tu a fait je l’es trouver sur le net par smealum ya marquer quand je lance le jeux beta fps 3D smealum ou un truck comme sa bref je revient a dscraft (désolé)

    Premiere map dscraft : nom Pixel art #1 : lien http://www.mediafire.com/?jtzpvkpb4l5dzck

    Ma deuxième map Jumpcraft v1 : http://www.mediafire.com/download.php?klx3kekb7j8cj49

    Jumpcraft : Casser aucun bloc – ne pas voler – ne pas tricher – juste faire le jeux

  9. admin Says:

    je t’ai envoyé un mail manoel !

    pour ce qui est de tes mondes DScraft ça a l’air cool, mais là j’ai pas le temps de tester; ptet que tu pourrais les poster sur le topic de DScraft sur GBAtemp, il y aura surement des gens qui le verront (et mets des screenshots aussi) : http://gbatemp.net/threads/minecraft-ds-in-3d.300847/ (par contre c’est en anglais, pas le droit de poster en français)

  10. Manoel13 Says:

    ok merci x) sa serais cool sur la partit dscraft je vais poster sur gbatemp plus tard ce soir pas trop envie de screen je te donne 2 nouvelle peut etre dans la soirèe pour le test si tu m’a envoyer un lien

  11. Manoel13 Says:

    sa me met guru medition error j’ai juste changer ma map modifier avec la tienne

  12. admin Says:

    de quoi tu parles ?

  13. Manoel13 Says:

    de portal sa me met guru medition error (sa a marcher j’ai changer ma vielle map de fpsmaker avec la tienne bien faite et guru medition error) chez moi sa a générer la map de fpsmaker je croit que c’est normal non ?

  14. admin Says:

    ce serait mieux que tu me décrives tes problèmes par mail plutot qu’ici.

  15. Manoel13 Says:

    d’accord et pour dscraft je pense que sa te soul réellement mais tu pense que tu va faire encore quelque blocs ? parceque niveau architecture j’ai beaucoup mais niveau blocs il m’en manque

  16. admin Says:

    nan désolé, je compte pas ajouter de nouveaux blocs.

  17. Manoel13 Says:

    donc tu arrete completement :/ c’est pg mais j’espere qu’un jour tu retournera dessus

  18. Manoel13 Says:

    voila j’ai poster les maps x)

  19. Foliper Says:

    Hey, smealum! J’ai remarquer que tu chercher un graphiste low-poly donc, je veux bien essayer. J’ai bien dit essayer, car je suis plutôt habituer a crée des modèle a 5000 polygone, a les texturer et a les animer sur UDK. Mais bon, sachant que j’ai un peu perdu la patience a faire ces trucs, je vais essayer de voir se que sa donne en bricolant un modele rapide, tout sa. Enfin bref, si t’es intéresse et surtout si sa donne bien mes technique en low-poly, j’aimerais bien t’aidais a faire les texture de Portal :)

  20. Thecube Says:

    Effectivement sur dscraft ça ce voi pas du tout les 30fps car enfaite enormement de jeux
    De ds ou autre petite console portable (psp) tournent aussi à 30

    Enfin c’est vraiment cool q’un devloppeur indépendent ce consacrent à des projets
    Comme ça donc smealum bon conrage

  21. Manoel13 Says:

    Ouai bonne chance moi je trouve que c’est le meilleur dévellopeur pour moi

    I Love you <3 x)

  22. admin Says:

    @Foliper : bah je suis pas contre ! le truc quand même c’est que je vais avoir besoin de persos vraiment low poly, genre dans les 300 triangles pour le personnage principal (qu’il faudra animer), et des textures assez basse résolution (128*128 en 256 couleurs pour le personnage principal je pense). Après comme j’ai dit je vais surement pas avoir besoin d’énormément de trucs mais il va me falloir des trucs de qualité quoi. :P
    Dans tous les cas, c’est pas pour tout de suite la refonte graphique du jeu, il faut d’abord que je complète un peu le moteur, et après on verra… du coup, même si je sais en gros de quels modèles il y aura besoin, je sais pas encore exactement à quoi ça devrait ressembler (j’aimerais bien ne pas juste directement copier portal 1, peut être plutot essayer de faire une campagne alternative avec un autre perso, mais j’ai rien vraiment décidé pour l’instant).
    Donc en gros ce que je veux dire, c’est que c’est comme tu le sens, si tu penses être à la hauteur (et que t’as toujours envie :P ) bah tu peux soit commencer à essayer de faire des trucs (comme le personnage, le portal gun, les cubes…) et voir ce que ça donne, soit attendre que le moteur soit plus présentable !

  23. Manoel13 Says:

    Bref j’ai bientot fini ma 3 eme map de dscraft baser sur un hotel j’ai deja fait 4 maison la piscine/plage (mélange des deux)

  24. Thecube Says:

    Ci tu a session de monde pour le scénario je veux bien aider car l’université de portal et d’halflife n’a pas de secret pour moi

  25. Thecube Says:

    Dsl mode de saisie automatique sur portable
    Session=besoin
    Université=univer

  26. Manoel13 Says:

    Idée de map dscraft ? contacter moi x)

  27. Foliper Says:

    Bon, ben voilas, j’ai passer 2 Heure a faire un suber portal gun! Probleme, il avait 500 polygone d’où le fait que j’ai légèrement réduit les détails, pour ne pas dire enlever complètement x).

    http://img442.imageshack.us/img442/81/imageportalgun.png

    Maintenant il fait 150 polygones, surtout concentrer dans les « bras », car après tout on verra surtout sa :p. Dites les parti qui vont pas/les changement a apporter. Et puis surtout, Smealum, est ce que c’est bien? :)

  28. Foliper Says:

    Sinon, comme map DsCraft, pourquoi pas, euh, hum, un labyrinthe, xD

  29. Manoel13 Says:

    un labyrinthe ok c’est noter x) toute facon j’ai prévue mais un peu la flemme la j’ai presque fini ma map hotel

    Smealum : je t’ai envoyez un mail

    et tu peut mettre les maps sur la page dscraft je ne refuse pas x) si ta le temps bien sur

  30. Foliper Says:

    Et sinon, le modèle du portal gun, t’en pense quoi?

  31. Manoel13 Says:

    moi je trouve qu’il est super bien x) j’espere qu’il l’ajoutera

    parceque je trouve que tes bon graphiste

  32. Manoel13 Says:

    mes maps sont avec le texture pack Lomacraft pour le design aprer avec les autre je c’est pas ce que sa donne

  33. Foliper Says:

    Bon, nouvelle épuration du portal gun : il fait maintenant 90 polygones.
    J’ai finalement decider de transformer les bras en face simple, puis de mettre les bras par le biais de l’UV map :)

    Et pis, je me demander, pourquoi pas faire en sorte que sur le personnage, le portal gun lui soit intégrer a la place de la main? Je suis en train de modéliser le personnage la pour voir le résultat, mais bon, voilas le nouvel aspect du modele du portal gun non texturer.

    http://img338.imageshack.us/img338/81/imageportalgun.png

  34. Manoel13 Says:

    J’ai reussi l’impossible 4 map en un jour *-*

    Donc Voila

    Premiere map dscraft : Pixel art #1 : lien http://www.mediafire.com/?jtzpvkpb4l5dzck

    Ma deuxième map Jumpcraft v1 : http://www.mediafire.com/download.php?klx3kekb7j8cj49

    Jumpcraft : Casser aucun bloc – ne pas voler – ne pas tricher – juste faire le jeux

    Map Custom Hotel : lien http://www.mediafire.com/?56daaszmwma4373

    Map Test Avec Une Eglise Et Une Maison : lien http://www.mediafire.com/?bwlrnnoswc74oq1

    Je Rapelle Aussi que le texture packs très conseiller est Lomacraft , si vous ne le trouvez pas dite le moi je l’upload

  35. Manoel13 Says:

    Et si aprer portal ds tu fesais un portalcraft ds (minecraft + portal + ds) ou en faire une map x)

    ou faire un jeux basic genre zelda, pokémon avec une nouvelle histoire si tu ne dévoile a personne ok si tu me le dévoile email et si tu dévoile a tout le monde dit le ici x) merci a toi smealum

  36. Manoel13 Says:

    (j’arrive pas a trouver un nom pour portal ds peut etre portalion (sa ce lit portalionne)

  37. Manoel13 Says:

    Dans portal ds y’aura des cube ect … ou juste des portails moi je dit sa serait bien comme fps maker faire un portal maker x) mais plus facile parceque fps maker j’ai encore du mal aprer quelque mois

  38. Foliper Says:

    Hum, je croi qu’il a dti que Portal aurat le meme moteur que FpsMaker et que donc on pourat utiliser FpsMaker pour faire les map normalement :) (Dans mes souvenirs)

  39. Manoel13 Says:

    ok merci j’ai crus que tout le monde etais partit

    tu as tester mes maps dscraft ? si oui elles sont bien ?

  40. Foliper Says:

    Bah, aller, je vais regarder sa :)

  41. Manoel13 Says:

    Lomacraft en texture packs ( jumpcraft et fait a la va vite en 1 heures)

    tester ?

  42. Manoel13 Says:

    dommage qu’il a arreter dscraft j’avait prévue un arbre géant avec des coffres cacher ect … :/

  43. Manoel13 Says:

    dscraft a un bugs génant c’est quand je pose des échelles, je sauvegarde , eteinds la ds , remet ma map je ne voit plus les echelles mais je peut grimper *-*

  44. Foliper Says:

    Hum, je pense que tu doit encore les ameliorers, et puis surtout je pense que tu peut en faire qu’une seul map les regroupant

  45. Manoel13 Says:

    sa fait beaucoup de boulot :/ mais j’ai fait une nouvelle map la j’ai fait une belle maison , une tante , et une autre maison

  46. Manoel13 Says:

    Smealum pour portal du nouveau ?

    moi sa va j’ai entamée une map maison

    et une map labyrinthe (pas commencer xD)

  47. Manoel13 Says:

    sayer j’ai moonshell

  48. Foliper Says:

    http://www.studiogmsoft.com/199646_1199230166_large.jpg

    Sa c’est des modèles low-Poly o.o

  49. Manoel13 Says:

    on dirait assasin creed x)

  50. Foliper Says:

    C’est sa justement x)

  51. Manoel13 Says:

    A je me disais que j’etais un geeker et que je sais tout x)

  52. Manoel13 Says:

    je travaille su jumpcraft v2 x) sa rajouteras peut etre 1 ou 2 maison de jump a faire

  53. Manoel13 Says:

    smelum je t’ai envoyez un autre email repond moi ;)

  54. Manoel13 Says:

    Jumpcraft v2 ? non vous ne rêver pas elle existe maintenant pour la télécharger rendez-vous a http://www.mediafire.com/?40dytkm88go6tfl

    Quels sont les nouveautés ? 3 niveau rajouter

    et bien une euh … comment dire la/le tour/carré avec la laine gris/blanc sera le point de spawn et la fin de la map definitif ! merci d’avoir lut et bon jeux

  55. Loupyboy Says:

    Oui, je trouve les polygones d’Altaïr très réussis, pas vous?

  56. Manoel13 Says:

    moi aussi j’adore

  57. Loupyboy Says:

    Moi aussi g des maps:
    -Un château avec une baraque et une cabane,
    -La realy flat map avec une NDSlite et les conneries de ma sœur,
    -[projet]Une map avec une quête (histoire).

    Voilà, et pour Smea’, une idée: un logiciel pour 3ds (si il en a une), et mercii!

    PS:Il manque le capcha.

Leave a Reply