mais bon, on fait avec. comme d’habitude je poste parce que je me rends compte que mon précédent post commence à dater.
Alors que se passe-t-il ? Plein de trucs, et pas tant que ça en même temps. En fait, ça fait bien deux mois que j’ai pas touché à portal parce que j’avais plein d’autres projets à côté. Et j’en ai toujours plein, mais j’essaie de m’y remettre. Du coup, pour commencer, vidéo de l’éditeur de niveaux de portal :
alors pour info l’éditeur marche comme ça depuis il y a bien deux mois, je n’ai pas encore recommencé à travailler dessus; mais je me suis rendu compte que je n’avais pas fait de vidéo, alors voila ! et biensûr l’éditeur peut très bien exporter le niveau, j’ai juste oublié de le faire dans la vidéo; avec le recul, c’est vrai que ça aurait été cool de montrer à quoi ressemble le niveau in-game après l’avoir exporté, mais bon.
Donc sinon mes autres projets, c’est principalement des trucs de cours qui sont pas particulièrement intéressants, mais pas que ! Déjà, le week-end dernier j’ai participé au Ludum Dare 26, qui est une compétition pour laquelle il faut créer un jeu en 48 heures. Du coup j’ai créé un jeu qui s’appelle BLM pour PC (windows uniquement, désolé… ça compile sur linux aussi mais j’ai codé tellement comme un porc que la version linux a plein de bugs que la version windows n’a pas). Vous pouvez le récupérer ici : http://www.ludumdare.com/compo/ludum-dare-26/?action=preview&uid=22789 . C’est la première fois que je participe à une « jam » comme ça et c’était plutot marrant. Forcément, je suis pas parfaitement satisfait du résultat final, mais en même temps ça aurait pu être bien pire, donc ça va. Et dans l’esprit de la chose, j’ai tourné un timelapse du développement du jeu et je l’ai mis sur youtube. Je l’ai lancé que après genre 6h de dev donc il manque un peu le morceau le plus intéressant mais le voici quand même :
Enfin, un autre truc sur lesquel j’ai un peu bossé ces dernières semaines, c’est l’apprentissage du reverse engineering, plus ou moins. J’ai pas fait grand chose, juste essayé de voir un peu différentes façon de faire tourner du code non signé en passant par des bugs de sauvegardes sur des jeux DS. Au final j’ai trouvé quelques vulnérabilités exploitables, et j’ai fait un exploit pour fifa street 2 et bangai-o spirits (le premier c’est juste du stack smashing via un string buffer overflow, le deuxième c’est aussi du stack smashing mais via du RLE unsafe). Alors pour ceux qui voient pas trop, ce que j’ai fait ne sert absolument à rien en pratique (on peut déjà faire tourner du code non signé de 1000 autres façon sur DS), mais c’est un projet d’apprentissage assez intéressant, et avec de la chance je m’améliorerai assez pour passer aux choses sérieuses un jour. Des screenshots des exploits :
(nan je compte pas vraiment l’appeler DStal)
Alors j’ai pas grand chose à dire (comme d’habitude quoi…), mais portal DS (nom provisoire) avance un peu ! J’ai pas du tout travaillé dessus pendant les vacances, ce qui est assez dommage, mais maintenant que les cours ont repris j’ai décidé de me remettre à travailler dessus (allez comprendre…). Du coup, je me suis mis à faire les trucs chiants que j’avais pas envie de faire, ie plein de bugfixes et surtout de raffinage de fonctionnalités pré-existantes (par exemple, correction des collisions du joueur pour que ce ne soit plus un nain, correction du placement des portaux pour qu’on ne puisse plus en avoir qui sont à moitié dans le vide, etc.). Donc c’est pas passionnant, mais c’est quand même super important et ça rend le jeu beaucoup plus agréable à jouer mine de rien ! Donc voici une petite vidéo qui montre où j’en suis :
(à noter que la plupart des bugs graphiques qu’on peut voir ici sont causés par no$gba)
Un truc qui devient assez énervant sur portal ce sont les textures qui sont immondes. Les quadrillages c’est cool, mais vu que la DS a une résolution en carton et aucun filtres, bah le rendu est assez affreux. Du coup je suis assez content que Lobo ait accepté de travailler en tant que graphiste sur le jeu, parce que ça veut dire que quoiqu’il arrive au final le jeu sera un minimum joli. Il ne peut pas s’y mettre tout de suite mais apparemment il sera dispo en février, du coup je vais essayer de faire en sorte que le moteur soit prèt d’ici là ! J’espère également secrètement qu’il pourra/voudra aider à écrire un petit scénario pour le jeu. On m’a proposé de faire de ratman ( http://www.thinkwithportals.com/comic/ ) le perso principal, et je pense que ça pourrait être une plutot bonne idée. En plus du coup on pourrait faire des petits dialogues à la con entre ratman et le companion cube, comparables à ceux entre CHAP et brutus dans Legion (même si pour le coup c’était surtout CHAP qui parlait).
Bref, pas mal d’idées, on verra bien ce que ça donne.
juste un petit post pour vous dire que je viens de changer de serveur (normalement si vous lisez ce message c’est que tout s’est bien passé) et que donc s’il manque quelques trucs (principalement les galleries), c’est « normal ».
Du coup, s’il manque des trucs (à part les galleries du blog, ça je suis au courant ), merci de me le signaler, j’essaierai de tout rétablir.
MAJ : bon j’ai toujours pas remis les galleries mais il y a trois semaines j’ai uploadé une petite vidéo de portal donc voila :
Du coup ça commence à faire un petit bout de temps que j’ai pas touché au code, mais ça vient ! Une démo pour noël c’est clairement mort, mais je pense m’y remettre sérieusement la semaine prochaine donc avec de la chance en janvier j’aurai des trucs sympas à montrer.
« 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 ). 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 )
(ç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 ), 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à.
Comme d’habitude, je poste principalement parce que ça fait super longtemps que j’ai pas posté. Mais ce post est presque un peu différent, parce que pour une fois, j’ai des nouveaux trucs desquels parler !
Je me suis remis à faire des trucs sur DS et même si j’ai pas eu autant de temps que je l’aurais voulu cet été pour travailler dessus, ça a porté ses fruits, sous la forme en gros d’un projet qui a donné naissance à trois productions différentes. Le projet en question s’appelle FPS maker, et comme son nom l’indique, l’idée derrière était de créer un outil qui permette de facilement créer des FPS pour DS, le tout se passant sur DS (genre l’éditeur est sur DS, pas sur PC). Et même si pour l’instant c’est pas particulièrement facile, ça fonctionne plus ou moins ! Il y a un éditeur de maps et un moteur pour faire tourner les jeux d’un peu tout le monde. Vous pouvez télécharger tout ça ici : http://smealum.net/FPSM/FPSMAKER_260812.zip (attention par contre, c’est clairement pas super intuitif, je vous conseille de lire le tuto qui se trouve sur gbatemp : http://gbatemp.net/topic/333051-ds-fps-maker/page__p__4360705#entry4360705 )
[Gallery not found]
Malheureusement, comme j’ai commencé ce projet pour le présenter à la compétition neoflash, j’ai du un peu tout dépecher à la dernière minute et pas mal de trucs ont été implémentés à l’arrache, et il manque certaines fonctionalités. Reste que ça fonctionne, on peut créer des petits jeux avec, et pour le prouver j’ai créé ACOTSYE.
ACOTSYE, c’est un petit « remake » de A cup of tea V8 RE (jeu que j’ai fait avec lobo il y a quelques années); le nom veut dire A cup of tea – Super Yeti Edition (parce que les ennemis ont été remplacés par des yetis) (parce que les yetis c’est bien). C’est vraiment pas un truc de fou, et malheureusement dans la version disponible il y a des problèmes de collisions plutot genant lorsqu’on tire… ce qui est plutot ironique quand on se rappelle que ACOT l’original avait le même genre de problèmes de collisions (même s’ils n’ont aucun rapport). Le problème a été corrigé mais je crois pas que j’ai uploadé de nouvelle version. En attendant, vous pouvez télécharger la vieille version ici : http://smealum.net/FPSM/ACOTSYE.zip
[Gallery not found]
Faire ce moteur a été plutot intéressant par moment, ça m’a permis de faire des trucs qui j’avais jamais fait sur DS (principalement les lightmaps) et je trouve que le rendu est pas trop mauvais (même si malheureusement je suis vraiment pas un artiste et que les lumières sont placées vraiment n’importe comment) (en plus il y a un petit problème dans le code qui réduit artificiellement la résolution des lightmaps, donc normalement on peut avoir un bien meilleur rendu) et même plutot cool par moment, pour de la DS (des ombres portées sur DS c’est quand même inespéré !).
Mais ce qui est vraiment cool c’est que j’ai repris ce moteur pour créer quelque chose de, je pense, plus intéressant : un clone de portal sur DS. Pour l’instant c’est encore très sommaire comme truc, mais ça avance, et je suis plutot confiant; je pense que dans pas trop longtemps j’aurai une petite démo complètement fonctionnelle des portails à montrer, et après ça ce sera juste une question d’ajouter les autres éléments de l’original (boites, boutons, plateformes pour commencer), faire un joli menu et peut être faire un endroit pour partager les niveaux et on aura quelque chose de sympa. Parce que oui, vu que c’est fait avec FPS maker, il y a déjà un éditeur directement sur DS, et donc normalement tout le monde pourra créer ses propres niveaux ! Voici deux vidéos de ce que j’ai fait ce week end :
Ce qui est cool avec ce Portal DS aussi c’est que c’est pas trivial à faire (contrairement à la majorité de FPSmaker par exemple, qui était plus chiant que véritablement complexe) et du coup je fais des trucs plutot intéressants et c’est cool.
Alors déjà, pour les gens qui attendent des nouvelles de DScraft, désolé de vous décevoir mais j’ai rien fait depuis mon dernier post (enfin rien d’utile), donc le reste de ce post risque de ne pas vous intéresser.
Bref. Je suis enfin en « vacances »; j’ai fini ma spé (enfin si on compte pas la préparation aux oraux de fin mai/début juin) et j’ai mes concours qui commencent dans une semaine tout pile. Biensûr j’ai pas commencé à réviser et je compte pas vraiment m’y mettre pour l’instant parce que j’ai commencé un projet qui est plutot marrant. Enfin pas marrant dans le genre drôle mais marrant dans le genre c’est plutot intéressant de travailler dessus et l’idée derrière, même si elle est pas super originale, peut donner un truc cool (bien qu’inutile, comme d’hab). Pour l’instant ça s’appelle « space » (nan c’est clairement pas le nom final du jeu (si ça donne un jeu un jour), mais fallait bien que je donne un nom au projet visual studio donc voila), et pour l’instant je m’intéresse au rendu de planètes vues de l’espace comme de leur surface. Enfin pas seulement le rendu, leur génération procédurale aussi et tout ce qui va avec. Ça promet de faire appel à des structures de données plutot originales donc c’est plutot intéressant comme projet. En gros l’idée c’est plus ou moins un croisement entre project infinity (http://www.youtube.com/watch?v=h7eREddMjt4&feature=related) et minecraft; du moins, faire en sorte que les planètes soient en très grande partie modifiables, tout en conservant des planètes de taille raisonnable (je pars sur des planètes de 1000km2 de surface; c’est petit par rapport à une vraie planète (genre la terre), mais ça fait quand même 1000000*1000000 de blocs en surface si on prend 1m comme taille de bloc, donc à l’échelle du jour ça reste gigantesque).
Et donc pour l’instant j’ai fait la base, ie une planète relativement simple visible de loin comme de très près (enfin pas encore suffisamment près pour que ce soit véritablement intéressant) avec le culling et le LOD qui vont bien. Reste à en faire quelque chose de plus… mieux. Pour ceux que ça intéresse, si je continue je pense que je posterai des trucs sur twitter, donc vous pouvez me follow. Pour les autres, bah me followez pas et pis voila.
(en d’autres nouvelles, j’ai *peut être* une possibilité de commencer à travailler pour une boite de jeux plutot cool en suède dans quelques temps. Honnêtement je sais pas si j’ai envie de le faire parce que j’ai aucune envie de travailler, mais vu que je sais que je vais chier mes concours et que la fac de base c’est pas méga fun non plus bah je sais pas)
(de toute façon y a des chances que ça ne dépende pas du tout de moi)
Screenshots :
(explication : le trait rouge c’est la caméra du joueur, on peut voir que la zone de la planète qu’il regarde est très détaillée alors que le reste est pathétique; tout ça change en fonction de la position et de l’orientation du jour et c’est ce qui permet de rendre la planète « visitable » à toutes les échelles)
Petite MAJ :
(bon là y a pas grand chose à expliquer… c’est une planète faite de blocs vue de l’espace, puis du ciel, puis de plus près, puis de plus près encore, puis de la surface… le rendu est assez immonde en statique mais les perfs sont plutot solides, ce qui est cool vu que c’est vraiment fait comme un porc pour l’instant; normalement, j’ai de la marge. j’ai encore en gros deux gros problèmes conceptuels à régler avant de pouvoir considérer que ce que je veux faire est faisable, mais j’ai déjà un truc de base qui tourne plutot bien, qui gère bien la mémoire et tout; en moyenne, une planète ça tourne à 30~50mo de ram pour le moment, et y a largement moyen d’optimiser)
(pour info, il y a un facteur de taille d’environ 2^25 entre le plus petit et le plus gros bloc rendu)
(pour ceux qui voient pas trop, c’est beaucoup)
Re-maj :
- Vidéo pourrie d’un système solaire tout basique (oui c’est immonde mais pour l’instant j’ai pas vraiment essayé de rendre ça joli…) :
- test de galaxie (chaque carré est un système solaire…)
Re-re-maj :
test de galaxie en vidéo :
Re-re-re-maj :
j’ai ajouté un effet de dispersion atmosphérique ! ce que ça veut dire en pratique, c’est que maintenant j’ai des planètes à peu près jolies vues de l’espace et un ciel une fois à la surface. Plus qu’à trouver un moyen de rendre les étoiles jolies.
Pour info, le code d’origine n’est pas de moi mais de Sean O’Neil; je n’ai fait que prendre son code CPU et en faire un fragment shader (mon premier shader au passage, et je suis content de savoir ce que c’est/comment ça marche parce que c’est très puissant comme outil).
Autrement, j’ai commencé mes concours cette semaine.
Re-re-re-re-maj :
Re-re-re-re-re-maj :
pas mal de correctifs, mais principalement création d’un shader pour avoir un soleil à peu près regardable.
Nan. Enfin pas vraiment. J’ai rien à annoncer. mais je me suis rendu compte que ça fait presque 3 mois que j’ai pas posté donc je me suis dit que ce serait bien de faire savoir que non, contrairement à ce qu’on pourrait penser, je ne suis pas mort.
Alors qu’est ce que je fous ? C’est une bonne question. Je pense que la meilleure réponse c’est « rien »; du moins rien de public. Je l’ai dit plusieurs fois, je ne compte pas mettre DScraft à jour avant assez longtemps, le projet est toujours en pause. Mais à côté de ça je travaille quand même sur d’autres projets. J’en ai un en particulier qui est encore assez expérimental et qui pourrait déboucher sur quelque chose de gros (genre… un jeu officiel ?), mais pour l’instant il est encore trop tôt pour dire quoique ce soit. J’espère que ça aboutira; pendant le mois dernier j’étais vraiment pas motivé pour travailler dessus alors que j’avais pas mal de temps pour. Maintenant je sens que je suis remotivé pour, mais du coup j’ai plus le temps. Donc vivement les vacances pour que je puisse m’y remettre sérieusement. ã côté de ça j’ai commencé un petit truc il y a quelques semaines pour mes études (mon TIPE, pour ceux qui savent un peu ce que c’est la prépa maths). En fait j’aimerais faire un truc sur l’algo génétique, donc je me suis fait un petit truc de test utilisant bullet physics un week end et ça marche assez bien donc c’est cool. J’ai encore plein de trucs à faire pour que ça puisse passer pour un projet viable mais j’ai déjà fait la base, c’est toujours ça.
À part ça il se passe pas grand chose… il y a quelques jours je suis retombé sur des dessins que lobo avait fait pour nos jeux, du coup j’ai des nouveaux fonds d’écrans pour mon téléphone ! Mon préféré c’est celui de ACOT.
Alors déjà, pour ceux qui savent pas, la version 310811 de DScraft est dispo depuis deux semaine sur le site du jeu, vous pouvez voir là : http://www.smealum.net/dscraft
Autrement, pas grand chose à dire mais bon, j’ai un peu disparu depuis 2 semaines donc je me suis dit qu’un petit post sur mon site ça ferait pas de mal. Donc on va commencer par DScraft, et pour faire simple, le projet est en attente. Comme souvent lorsque j’entreprends quelque chose, j’ai perdu toute motivation pour l’instant et du coup je pense que je vais pas travailler dessus pendant quelques mois (ou au moins semaines) à venir. Et non, je ne compte pas releaser le code source pour l’instant. C’est vrai qu’en faisant ça y aurait une chance que quelqu’un de talentueux avec plus de motivation reprenne le projet et le rende bien, mais pour l’instant le code n’est pas en état d’être rendu public; j’utilise trop de trucs trop crades que j’ai implémenté rapidement pour être dans les temps pour les compétitions et j’aime pas rendre quelque chose de crade dispo. En plus de ça, j’ai pas envie que le code soit dispo avant que je considère que le projet est « fini » (enfin que j’en ai fini avec quoi), et pour l’instant c’est loin d’être le cas, donc voila.
À part ça, bah j’attends les résultats des compétitions. Honnêtement ça se présente pas spécialement bien, j’ai pas trop l’impression que DScraft va gagner, mais on sait jamais. En tout cas je l’espère, j’ai vraiment envie de remplacer mon PC actuel et l’argent des compétitions ce serait quand même non négligeable comme aide à ce niveau…
Voila, depuis quelques heures DScraft est dispo ! C’est pas la version finale (enfin j’espère pas), mais c’est quand même déjà bien avancé, surtout par rapport à la dernière version que j’avais releasé; maintenant, c’est jouable, ça se rapproche te minecraft classic et c’est cool. Pour plus d’informations et télécharger le jeu, direction le site officiel : http://smealum.net/dscraft/
Alors niveau ressenti, ça fait du bien de l’avoir enfin sorti. Les dernières heures étaient franchement stressantes, avec le site neoflash down et une bonne centaine de personnes présentes sur mon topic GBAtemp en permanence, toutes les x minutes quelqu’un qui demande « ça sort bientot ? » ou encore « wah ça va être trop bien ». Il y avait même des gens qui « campaient » le 19 à minuit… Assez impressionant quoi; le pire c’était surement au moment de la release elle même, les gens sur irc étaient déchainés, du genre « CA TELECHARGE ! » ou « MOI JE SUIS EN TRAIN D’Y JOUER », et quelques secondes après que j’aie posté le jeu sur le forum neoflash (à 23h59, comme d’habitude) les gens se sont ramenés par dizaines; au final ils étaient bien 90 sur le topic. J’avoue que j’ai pas trop l’habitude de ça, la plupart du temps quand je release quelque chose personne n’en a rien à foutre. Et je suis conscient que la seule raison pour laquelle j’ai reçu autant d’attention c’est parce que j’ai copié un truc connu… Mais bon, je suis content d’avoir fait plaisir aux gens, et je suis quand même plutot fier de ce que j’ai réussi à faire pour cette démo d’un point de vue technique. C’est encore très buggé, mais c’est satisfaisant.
Pour en revenir à la compétition neoflash, cette année c’est assez décevant; le homebrew DS est en train de mourir (et le homebrew en général j’ai envie de dire, y a pas non plus masse de consoles autres que la DS où on fait des jeux homebrew; avec l’arrivée de nouvelles plateformes « incassables » pour l’instant et le perte d’intérèt pour les anciennes, c’est pas non plus surprenant) et ça se sent : à peine 11 jeux de présentés et 8 apps. Sachant qu’il y a 10 vainqueurs dans chaque catégorie… bah félicitations, tout le monde a gagné sauf un jeu ! Du coup pour essayer de gonfler un peu le nombre de participants (et parce que d’autres l’ont fait et que je trouve pas ça super cool), j’ai recyclé un jeu, arsenal. C’est exactement le même que pour la bounty, sauf que lui il a un splashscreen neoflash. Il y a quelque mois j’espérais trouver le temps d’ajouter une bombe au jeu et d’ajouter de nouveaux niveaux, mais au final ça s’est pas fait, donc c’est pas la peine d’aller télécharger cette version. Peut être qu’un jour j’aurai pas la flemme de le faire…
Bref, pour l’instant je fais une pause, je vais attendre de voir comment ça se passe avec DScraft, ça pourrait être intéressant de voir ce que les gens vont en faire.
Pas mal de nouvelles ! Tout d’abord, Arsenal est arrivé deuxième dans la catégorie DS de la bounty GBAtemp, ce qui est franchement pas mal surtout que le premier était Space Impakto, qui est un très bon jeu. Du coup Lobo et moi avons remporté $375 ! (ça peut paraitre beaucoup, mais vu qu’on partage en deux, qu’il y a une grosse comm paypal et qu’en plus le dollar vaut rien, je me retrouve avec à peine 130€…) Du coup je me suis fait plaisir et j’ai acheté le Valve Complete Pack pendant les soldes steam. Je ne sais pas encore ce que je vais faire du reste de l’argent, surement rien de spécial.
Maintenant qu’Arsenal est fini (enfin en gros, je vais peut être ajouter quelques trucs à la fin de l’été histoire de le recycler pour quelques compétitions… bah ouai, je suis comme ça moi), j’ai commencé un nouveau projet, et pas le plus facile : j’essaie d’adapter Minecraft sur DS. Alors jusqu’ici ça se présente pas trop mal, j’ai un moteur de base qui marche, des collisions, du frustum culling bien, un rendu en deux passes efficace et du streaming de map en lecture qui permet des maps jusqu’à 1024*1024 (pour l’instant, je pourrai certainement faire plus plus tard, mais niveau ram ça devient serré déjà), donc je suis pas mécontent. L’idée c’est dans un premier temps d’obtenir une version de Minecraft Classic complètement fonctionnelle pour DS (ou presque, je pense pas gérer les blocs affectés par la gravité par exemple), puis, s’il me reste un minimum de ressources, de créer un petit mode Survival. Je ne pense pas que faire un survival simple (cad avec crafting des objets de bases comme workbench, furnace, outils, portes, quelques mobs et un cycle jour/nuit) soit hors de portée, mais à ce stade du développement c’est encore difficile d’être vraiment sûr de quoique ce soit.
Enfin je suis quand même sûr d’une chose : ma petite annonce du projet sur GBAtemp a fait du bruit. Ma démo (dispo ici, mais encore ultra alpha et datant d’il y a deux semaines) a été postés sur plein de sites de jeux grands publics, dont par exemple kotaku, 1up, joystick, destructoid, geek.com, gamerant et maxconsole. Et ça, c’est les gros sites, la démo a été postée sur plein d’autres sites plus modestes (ou plus spécialisés, style gbarl ou ds-scene). Des gens ont fait des vidéos, d’autres ont dit que c’était cool, d’autres que c’était du vol, d’autres que j’étais gros (hein ?) et beaucoup que Lamecraft, une adaptation PSP de Minecraft était mieux (ce qui est sans conteste le cas, mais comparer des jeux DS et PSP ça reste un peu stupide)… Bref, c’est un peu fou et ça fait plus ou moins plaisir qu’on parle de ce que je fais. Plus ou moins parce que si c’est cool que la presse grand public parle de homebrew et essaie de détruire l’idée que tout ce qui touche aux flashcards ou autres mods soft ou hard est l’oeuvre du démon, je trouve quand même ça dommage qu’ils ne le fassent que quand c’est quelqu’un qui copie quelque chose de connu; je suis beaucoup plus fier d’arsenal que de la petite démo minecraft, mais jamais la presse grand public n’en parlerait. En même temps c’est totalement compréhensible, ils parlent de ce qui pourra peut être intéressé leurs lecteurs, mais ça reste frustrant.
L’autre truc frustrant c’est que certaines personnes qui relaient l’information n’ont pas l’air de vraiment chercher à comprendre par moment. Idem pour certains commentateurs. Dans pas mal d’article on dit que ma démo c’est du piratage, du vol, que je distribue le travail d’autres personnes gratuitement etc. Ces personnes n’ont pas l’air de comprendre que tout ce qu’il y a dans cette démo (d’un point de vue code), c’est moi qui l’ai fait, que je n’ai pas le code source de Minecraft et que mon projet c’est pas de recompiler minecraft sur DS (ce qui ne serait même pas possible…). Le seul truc qui effectivement ne m’appartient pas dans cette démo, ce sont les textures des blocs. Elles sont tirées du jeu original, et là d’accord c’est un peu du vol. La seule raison pour laquelle je les ai incluses dans la démo c’est que leur distribution n’a pas l’air de déranger Mojang outre mesure vu qu’elles sont disponibles gratuitement sur minecraftwiki par exemple. Mais bien entendu, si on me demandait de les retirer, je le ferais immédiatement.
Bref, je pense que j’ai à peu près tout dit là. Ah oui, sinon le seul truc positif qui pourrait ressortir de tout ça ce serait que toute l’exposition médiatique de ma démo l’amène à l’attention de Notch, j’avoue que je serais curieux de savoir ce qu’il en pense (même si dans son état actuel la démo ne représente rien et qu’il n’aurait donc sans doute pas grand chose à dire…). Bon, j’y crois pas vraiment vu qu’il reçoit plein de tweets chaque heure et qu’il ne va pas forcément sur les sites de jeux où ma démo a été postée, mais sait-on jamais…
PS : si quelqu’un veut me payer une DSi pour que je puisse faire une version de Minecraft plus complète dessus, je ne suis pas contre !