<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-34057821</id><updated>2012-02-08T20:50:02.982+01:00</updated><category term='runme'/><category term='cpc'/><category term='tools'/><category term='FAQ'/><category term='modplayer'/><category term='latex'/><category term='apple-rumble'/><category term='lost zone'/><category term='done'/><category term='brainstorm'/><category term='poll'/><category term='yoshi'/><category term='alpha-blending'/><category term='badman'/><category term='y90'/><category term='thisblog'/><category term='dldi'/><category term='video'/><category term='dev-fr'/><category term='wish'/><category term='berrybat'/><category term='c++'/><category term='msdos'/><category term='featured'/><category term='reading'/><category term='blogroll'/><category term='choice'/><category term='java'/><category term='wifi'/><category term='tileset'/><category term='obsolete'/><category term='exec.cpp'/><category term='y2k1'/><category term='greenzone'/><category term='game design'/><category term='adventure'/><category term='climbing'/><category term='dyngobs'/><category term='homebrew'/><category term='flickr'/><category term='desert zone'/><category term='assault'/><category term='mario'/><category term='ubuntu'/><category term='y91'/><category term='newcollide'/><category term='CompoundGob'/><category term='milestone'/><category term='devkitpro'/><category term='perl'/><category term='monster edition'/><category term='vblank'/><category term='y92'/><category term='colours'/><category term='gadget'/><category term='lua'/><category term='tracksequence'/><category term='pendat'/><category term='keen'/><category term='tutoriel'/><category term='sprtools'/><category term='secret passage'/><category term='tcsh'/><category term='y2k4'/><category term='rayman'/><category term='rock story'/><category term='planning'/><category term='animation'/><category term='user interface'/><category term='pushing'/><category term='snes'/><category term='uml'/><category term='dsnews'/><category term='physics'/><category term='carry-me'/><category term='y93'/><category term='calimero'/><category term='arbre'/><category term='scripts'/><category term='nostalgy'/><category term='hardware'/><category term='y94'/><category term='basic'/><category term='english'/><category term='mockup'/><category term='music'/><category term='indie'/><category term='scrolling'/><category term='spongebop'/><category term='publishing'/><category term='freehand'/><category term='iGobController'/><category term='fire zone'/><category term='palette'/><category term='y95'/><category term='rpg'/><category term='apple assault'/><category term='R4'/><category term='bangbash'/><category term='kernel'/><category term='flower-power'/><category term='entropy'/><category term='level design'/><category term='game maker'/><category term='aouch'/><category term='superpowers'/><category term='data recovery'/><category term='spritesheet'/><category term='gobscript'/><category term='boss'/><category term='Nuts&apos;n&apos;Bolts'/><category term='state machine'/><category term='bouli'/><category term='pppteam'/><category term='y96'/><category term='open source'/><category term='tiled'/><category term='dangerous'/><category term='dumblador'/><category term='novel'/><category term='itworks'/><category term='animeds'/><category term='todo'/><category term='stdlib'/><category term='guitar'/><category term='storyline'/><category term='y2k'/><category term='who am I'/><category term='game over'/><category term='mybrew'/><category term='guru meditation'/><category term='sonic'/><category term='bilou'/><category term='pixels'/><category term='y97'/><category term='edition'/><category term='skyblog'/><category term='sidescroller'/><category term='desmume'/><category term='crumbling floor'/><category term='game'/><category term='InspectorWidget'/><category term='credits'/><category term='libnds'/><category term='STL'/><category term='y98'/><category term='coding'/><category term='screenshot'/><category term='slopes'/><category term='traduis-moi'/><category term='porting?'/><category term='shoot&apos;m&apos;up'/><category term='vram'/><category term='appleman'/><category term='cheat sheet'/><category term='furries'/><category term='y99'/><category term='collisions'/><category term='arm7'/><category term='http'/><category term='assembly'/><category term='C64'/><category term='evolution'/><category term='NastyBug'/><category term='rongtudju'/><category term='zoom'/><category term='download'/><category term='feedback'/><category term='ultimate game maker'/><category term='school zone'/><category term='internet'/><category term='ntxm'/><category term='biokid'/><category term='libfat'/><category term='supercard'/><category term='linux'/><category term='SpritePage'/><category term='platforms'/><category term='fpga'/><category term='level2'/><category term='caterpillar'/><category term='inkjet'/><category term='GuiEngine'/><category term='sprite editor'/><category term='woodworm'/><category term='sketch'/><category term='wii'/><category term='let&apos;s try'/><category term='wishlist'/><category term='tcp'/><category term='3D'/><category term='level editor'/><category term='mikmod'/><category term='languages'/><category term='history'/><category term='ramno'/><category term='qemu'/><category term='funky funghi'/><category term='user guide'/><category term='translate me'/><category term='gba'/><category term='monster design'/><category term='deep ink pit'/><title type='text'>Bilou HomeBrew's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default?start-index=101&amp;max-results=100'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>615</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-34057821.post-6235056192118507805</id><published>2012-02-08T20:43:00.002+01:00</published><updated>2012-02-08T20:50:03.175+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='runme'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><title type='text'>runme is working with WEP ^_^</title><content type='html'>Bonne nouvelle: &lt;a href="http://sylvainhb.blogspot.com/search/label/runme"&gt;runme&lt;/a&gt; supporte maintenant le WEP, pourvu que le point d'accès ait été configuré avec un programme Nintendo officiel (Zelda: Phantom Hourglass, par exemple ;). C'était probablement déjà le cas depuis un moment, vu que je n'ai rien eu à changer dans le code pour que ce soit le cas, juste passer le nouveau modem de mon ISP en mode WEP (sauf erreur de ma part, la DS lite ne supporte pas WPA).&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I bet it actually did support it for longer, but with my former WiFi router, I had no need to configure it. The newer one has only WPA or WEP mode, so I had no choice but giving it a try.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-6235056192118507805?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/6235056192118507805/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=6235056192118507805' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6235056192118507805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6235056192118507805'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/02/runme-is-working-with-wep.html' title='runme is working with WEP ^_^'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-6588481481958254112</id><published>2012-02-04T14:42:00.006+01:00</published><updated>2012-02-06T13:18:21.193+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='berrybat'/><category scheme='http://www.blogger.com/atom/ns#' term='apple assault'/><category scheme='http://www.blogger.com/atom/ns#' term='let&apos;s try'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><category scheme='http://www.blogger.com/atom/ns#' term='bilou'/><category scheme='http://www.blogger.com/atom/ns#' term='appleman'/><category scheme='http://www.blogger.com/atom/ns#' term='greenzone'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><title type='text'>Berry Bat Things</title><content type='html'>&lt;em&gt;Hey, there! Cleaning up and tuning in are done. If you enjoyed once AppleAssault, but then stopped playing it because you didn't feel the challenge anymore, here's an update that you might love: AppleAssault -- BerryBat Things. The idea is simple: you've got limited time to clear up a level. As long as you punch applemen out of the arena, nothing bad will happen... But if you get lazy and that the applemen count remains the same for too long, a berry bat will come and tease you. You could manage to get rid of it, of course, but then another one will come soon, and then again another and another, again and again until you surrender (or focus on punching Applemen, after all).&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;So how comes you're still reading this ?&lt;/em&gt; &lt;b&gt;&lt;a href="http://sourceforge.net/projects/dsgametools/files/demo%20games/AppleAssault-bbt.nds/download"&gt;Go and download it!&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;script language="JAVASCRIPT"&gt;if (document.images){stillBBT=new Image;playingBBT=new Image;stillBBT.src = "http://4.bp.blogspot.com/-jEH4JAGTXr0/Ty03Cylhz_I/AAAAAAAADdE/cIZa4VHI3rg/s400/berrybat-still.png"; playingBBT.src= "http://i.imgur.com/gqC5s.gif";}&lt;/script&gt;&lt;a href="http://sourceforge.net/projects/dsgametools/files/demo%20games/AppleAssault-bbt.nds/download"&gt;&lt;img onmouseover="document.BBTanim.src=playingBBT.src" onmouseout="document.BBTanim.src=stillBBT.src" name="BBTanim" style="float: right; margin: 0pt 0pt 10px 10px;" title="Focus on clearing the level, or BerryBat Things will happen!" src="http://i.imgur.com/gqC5s.gif" border="0" /&gt;&lt;/a&gt;Bilou! Le revoilou! Ok, je suis supposé bosser sur la School zone, mais j'ai une très bonne excuse pour recycler AppleAssault en ce début d'année 2012. J'ai enfin intégré les "berrybats" dans le jeu. Si vous aviez fini par faire le tour du jeu de 2010, autant vous prévenir tout de suite: vous allez faire une rechute!&lt;br /&gt;&lt;br /&gt;A priori, le principe est toujours le même: assommez les pommes en leur sautant dessus, puis expédiez-les hors de l'arène d'un bon coup de poing. Ouaip. Sauf que maintenant, si vous passez trop de temps sans dégommer de pomme, une chauve-berrie (berrybat) viendra vous tirer les oreilles. Oh, bien sûr, vous parviendrez sans doute à vous en défaire, mais il en viendra alors encore et encore, de plus en plus vite. Jusqu'à ce que vous vous décidiez à vous concentrer sur la mission première: virer les pommes.&lt;br /&gt;&lt;br /&gt;Prêts ? Moteur ... et .... &lt;a href="http://sourceforge.net/projects/dsgametools/files/demo%20games/AppleAssault-bbt.nds/download"&gt;Action!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Oh, and btw, make sure you're voting for the "success" of the new features in the side panel if you've played to v1.4 as well ;)&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-6588481481958254112?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/6588481481958254112/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=6588481481958254112' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6588481481958254112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6588481481958254112'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/02/berry-bat-things.html' title='Berry Bat Things'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-41980400779429790</id><published>2012-01-31T13:37:00.001+01:00</published><updated>2012-01-31T16:54:33.495+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='keen'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><category scheme='http://www.blogger.com/atom/ns#' term='secret passage'/><title type='text'>When ID software is keen to hide ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-vz5Ps80ZLqA/Txlfo1gYa0I/AAAAAAAADbM/WPynyfeQxzA/s1600/keen-secret-1.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 202px;" src="http://3.bp.blogspot.com/-vz5Ps80ZLqA/Txlfo1gYa0I/AAAAAAAADbM/WPynyfeQxzA/s320/keen-secret-1.png" alt="" id="BLOGGER_PHOTO_ID_5699691958576376642" border="0" /&gt;&lt;/a&gt;&lt;em&gt;There's an interesting thing with &lt;a href="http://www.shikadi.net/keenwiki/Defense_Tunnel_Teln"&gt;this "tunnel" level&lt;/a&gt; of Keen Commander V, that reveals the way ID software did conceived secret passages as rewards for exploration to players. Exploration is a key part of Keen games: you're not supposed to zoom through levels, as many keys and doors will require you to take detours. In small corners, you might find hidden by-passes and hidden bonuses (like just above the blue rays on 1st figure). But here, they did a different approach. A huge, black door teases the player. You see there's something there, but how to get in ? is that supposed to be input or output ? It's a miracle you've got the time to think about that just after you avoided being zapped by Robo Red ! But no matter how hard you may try to get in, you're not in the right place yet (level is played right-to-left here).&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;C'est une idée intéressante qu'ID software a utilisé dans ce niveau de Keen5.exe : au début du niveau apparaît une porte mystérieuse -- une chose assez peu courante, dans les Keen. Apparemment, aucun moyen de l'atteindre. Et tout autour, c'est assez dangereux de traîner, avec Robo Red et tout ces &lt;a href="http://www.shikadi.net/keenwiki/Shelley"&gt;shelleys&lt;/a&gt; ...&lt;br /&gt;&lt;br /&gt;&lt;em&gt;So good luck. Keep going. If you feel like exploring again when approaching the door from the left somewhat later, beware the smart bomb that will jump off the platform (oh ... just like an Appleman ? ... no: this one means death-on-contact and explodes into deathly bits when it hits the ground). Do you feel like rushing instead ? too bad: you're actually missing the entry to something ... you don't know what yet.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-uumvF1dACcs/TxlfoMigAgI/AAAAAAAADa0/s59eTOcARsM/s1600/keen-secret-3.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 272px; height: 320px;" src="http://4.bp.blogspot.com/-uumvF1dACcs/TxlfoMigAgI/AAAAAAAADa0/s59eTOcARsM/s320/keen-secret-3.png" alt="" id="BLOGGER_PHOTO_ID_5699691947579408898" border="0" /&gt;&lt;/a&gt;&lt;em&gt; Only when approaching the exit door, you'll be shown what you've missed: a 1-UP. A pretty precious thing in Keen, but no: hollow walls around only give you a few bonuses. Will you head back for the hidden door and search more ? Or will you save the current life and exit ?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Ce n'est qu'à la fin du niveau que le joueur aura le fin mot de l'histoire: une vie, bien visible mais inaccessible. Ding, le franc tombe. Le joueur qui avait jeté l'éponge va sans doute retourner en arrière pour parvenir à atteindre la 1ere porte. Je pense, ceci dit, que Tom Hall aurait pu faire encore mieux. Primo, une seule porte, dans un niveau qui n'en contient aucune c'est louche. D'autant qu'il n'y a rien d'autre que la porte à cet endroit. Quelques gros bonus auraient pu faire croire au joueur que c'est une arrivée, pas un départ. Deuxio, il n'y a finalement pas de grand challenge à repartir en arrière, à ce stade, la plupart des dangers étant situés dans des embranchements latéraux ... ou ont été éliminés lors du 1er passage.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-z0vzMLQwHO8/TxlfoTdArQI/AAAAAAAADbE/DguEnWMsh8g/s1600/keen-secret-2.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0px; cursor: pointer; width: 239px; height: 320px;" src="http://1.bp.blogspot.com/-z0vzMLQwHO8/TxlfoTdArQI/AAAAAAAADbE/DguEnWMsh8g/s320/keen-secret-2.png" alt="" id="BLOGGER_PHOTO_ID_5699691949435432194" border="0" /&gt;&lt;/a&gt;&lt;em&gt;That's where imho the design becomes a bit weak. I'd have personally ensure that there is a significant risk in back-tracking to the access door ... Something like Robo Red, moving spikes, or a combination of shooting lasers and moving platforms (since normal monsters do not respawn in Keen). The only challenge here is a set of shooting lasers, but on solid ground, so you can move through that without too much trouble.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Voilà. Bon anniversaire, Piet ;)&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-OpGxftg-b4I/TygOpwfGvyI/AAAAAAAADc0/8Iw_ibxZZDA/s1600/Keen_5_title.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 138px;" src="http://4.bp.blogspot.com/-OpGxftg-b4I/TygOpwfGvyI/AAAAAAAADc0/8Iw_ibxZZDA/s400/Keen_5_title.png" alt="" id="BLOGGER_PHOTO_ID_5703825038617526050" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-41980400779429790?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/41980400779429790/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=41980400779429790' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/41980400779429790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/41980400779429790'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/01/when-id-software-is-keen-to-hide.html' title='When ID software is keen to hide ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-vz5Ps80ZLqA/Txlfo1gYa0I/AAAAAAAADbM/WPynyfeQxzA/s72-c/keen-secret-1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-5571013292060290208</id><published>2012-01-30T06:46:00.011+01:00</published><updated>2012-02-04T21:08:35.429+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='apple assault'/><category scheme='http://www.blogger.com/atom/ns#' term='let&apos;s try'/><category scheme='http://www.blogger.com/atom/ns#' term='bilou'/><category scheme='http://www.blogger.com/atom/ns#' term='appleman'/><category scheme='http://www.blogger.com/atom/ns#' term='greenzone'/><category scheme='http://www.blogger.com/atom/ns#' term='english'/><category scheme='http://www.blogger.com/atom/ns#' term='gobscript'/><title type='text'>Unclump'm</title><content type='html'>&lt;script language="JAVASCRIPT"&gt;if (document.images){stillCLUMP=new Image;playingCLUMP=new Image;stillCLUMP.src = "http://2.bp.blogspot.com/-xbWj__ULybE/TyZYca8Qs0I/AAAAAAAADcM/tuXsStG6IzE/s320/clumpalot-0.png"; playingCLUMP.src= "http://i.imgur.com/o8ZEK.gif";}&lt;/script&gt;&lt;img onmouseover="document.CLUMPanim.src=playingCLUMP.src" onmouseout="document.CLUMPanim.src=stillCLUMP.src" name="CLUMPanim" style="float: right; margin: 0pt 0pt 10px 10px;" title="not yet working as expected, but funny to see all the applemen going team-dancing on CJ's music" src="http://i.imgur.com/o8ZEK.gif" border="0" /&gt;Well, I've been using &lt;a href="http://sylvainhb.blogspot.com/2010/11/download-appleassault-14.html"&gt;AppleAssault&lt;/a&gt; as a regression test when developing the &lt;a href="http://sylvainhb.blogspot.com/search/label/newcollide"&gt;new collision engine&lt;/a&gt; ... really just to make sure I'm not broking everything up, as there's nothing in AppleAssault that could benefit from the new engine, anyway. No pushable/carriable ennemies, no platforms. Nothing.&lt;br /&gt;&lt;br /&gt;But of course, being in that source tree again (^_^), I wanted to give some ideas a try. The first one was to integrate &lt;a href="http://sylvainhb.blogspot.com/search/label/berrybat"&gt;berrybats&lt;/a&gt; in the game, as a way to force the player to focus on &lt;span style="font-style: italic;"&gt;defeating &lt;/span&gt;applemen, and not just hop around. It now acts like a sort of indirect timer, appearing when you've been unfocused for too long... and &lt;a href="http://sylvainhb.blogspot.com/2010/04/bat-attack.html"&gt;appearing again and again&lt;/a&gt; until the lesson has been learnt :)&lt;br /&gt;I'll need to work on the timing, though, so that the game doesn't become completely unfair :P&lt;br /&gt;&lt;br /&gt;The second thing is linked to &lt;a href="http://sylvainhb.blogspot.com/2010/08/they-do-clump-lot.html"&gt;Kirby Kid&lt;/a&gt;'s comments: Applemen tend to stick to each others, overcrowding on platforms, which isn't very realistic. I don't want to go for goombas-like behaviour: Applemen are design to be able to cross each other. Still, there shouldn't be 10 of them on 2 pixels. So I need to have a sort of applemen/applemen collision detection, but that should be handled with care, otherwise I could easily overload the collision engine with hundreds of (unnecessary) checks and dry the DS batteries in no time.&lt;br /&gt;&lt;br /&gt;The approach I picked is to take advantage of a s&lt;a href="http://sylvainhb.blogspot.com/2009/08/aggressive-appleman.html"&gt;mall transient state&lt;/a&gt; where the Applemen halts in front of a cliff, checking whether it will jump -- which you'd barely notice when playing the game. Only during these 2 frames, it actively checks for other Applemen in its immediate neighbourhood, and get "knocked out" of the platform if there was. Expect a revised .nds file to download in early February, as now, I still need to remove a *lot* of debugging printf ... and have a shower...&lt;br /&gt;Oh, and some coffee would be nice as well... And &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;revision=908"&gt;a commit&lt;/a&gt; :)&lt;br /&gt;&lt;br /&gt;Cheers :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-5571013292060290208?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/5571013292060290208/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=5571013292060290208' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5571013292060290208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5571013292060290208'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/01/unclumpm.html' title='Unclump&apos;m'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-2122548205480156093</id><published>2012-01-26T16:18:00.008+01:00</published><updated>2012-01-28T11:18:41.374+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='monster design'/><category scheme='http://www.blogger.com/atom/ns#' term='berrybat'/><category scheme='http://www.blogger.com/atom/ns#' term='bilou'/><category scheme='http://www.blogger.com/atom/ns#' term='lost zone'/><category scheme='http://www.blogger.com/atom/ns#' term='sketch'/><category scheme='http://www.blogger.com/atom/ns#' term='storyline'/><category scheme='http://www.blogger.com/atom/ns#' term='english'/><title type='text'>Dans le temple perdu</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-CoPEDkOhQmo/TyFu2NrNNmI/AAAAAAAADbo/GB9rwoPYi8k/s1600/bilou-lost-temple.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 320px; height: 307px;" src="http://1.bp.blogspot.com/-CoPEDkOhQmo/TyFu2NrNNmI/AAAAAAAADbo/GB9rwoPYi8k/s320/bilou-lost-temple.png" alt="" id="BLOGGER_PHOTO_ID_5701960480890631778" border="0" /&gt;&lt;/a&gt;Un temple, quasi-inaccessible, témoin d'une civilisation disparue ... un endroit imprégné de mystères et de questions sans réponses. Depuis que mon frère a composé le thème "Maya Zone" pour "Logic Labyrinth II", je brûle d'en faire un niveau de jeu vidéo. Du coup, je le remets sur la carte en reprenant le synopsys de Bilou en main.&lt;br /&gt;&lt;br /&gt;Oui, mais le temple de quoi ? et qu'y affronte-t'on. Le premier point détermine le look à donner au niveau ... le 2eme conditionne le gameplay et l'esprit du niveau.&lt;br /&gt;&lt;br /&gt;Le déclic, ça a été d'y implanter les lianes de la forêt. Des berrybats dans le temple perdu ...&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I think I at last managed to turn the two words "lost temple" into some interesting and original design idea for both monsters and area look. I have studied art of Rayman and Shantae closer, sketching some original derivative here and there, keeping them secret until I'd have something coherent -- although it isn't pixel art and certainly not a playable demo yet. But let's face it: how would a playable demo "protect" my idea better than a sketch ? It's not like I was trying to win a race with a competitor here, not willing to let X know what I'm doing. Sure, I don't want the idea to be ripped, but I can't prevent someone else to do the same. So I bet my best defence is to do it publicly.&lt;br /&gt;&lt;br /&gt;But anyway, just look at that "golem" thingy, animated by the berrybats vines (with berries too young to turn bats :) -- *that* will put you into trouble when you'll play the level ... well, if you manage to find the level in the final game, because it's not called "lost" temple in vain. Trust me: I won't reveal you the slightest bit of information on how you'll get there.&lt;br /&gt;&lt;/em&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-nk1vTkqy1Y0/TyFu00DMIfI/AAAAAAAADbY/7_3cJJFMBFE/s1600/bilou-tripod.png"&gt;&lt;img style="float: right; margin: 0pt 0px 10px 10px; width: 320px; height: 198px;" src="http://3.bp.blogspot.com/-nk1vTkqy1Y0/TyFu00DMIfI/AAAAAAAADbY/7_3cJJFMBFE/s320/bilou-tripod.png" alt="" id="BLOGGER_PHOTO_ID_5701960456832033266" border="0" /&gt;&lt;/a&gt;Allez, encore un petit effort. Des berrybats, oui, mais pas tout seul. Et si ... et si les lianes vivantes s'emparaient (au sens propre) des ruines du temple pour construire un golem géant ...&lt;br /&gt;&lt;br /&gt;Là, je tiens mon idée de design. Le truc inédit, qui donne une identité propre par rapport à Lost Vickings, Rick Dangerous, Sonic et même Rayman. Alors je le poste, pour marquer l'antériorité. Voilà. C'est mon idée, j'en suis fier. Elle s'appuie sur &lt;a href="http://sylvainulg.deviantart.com/favourites/43336318"&gt;3 ans de marquage de favoris&lt;/a&gt; &lt;a href="http://sylvainulg.deviantart.com/favourites/43962363"&gt;dans DeviantArt&lt;/a&gt; sans pour autant copier un design de quelqu'un d'autre, je pense. L'imagination est notre ultime frontière. Voici pour vous une planète supplémentaire, aux portes de l'inconnu pour vous lancer à votre tour dans les confins inexplorés de l'imaginaire vierge. Have fun.&lt;br /&gt;&lt;br /&gt;(merci à Cyril et son Sony pour les photos, parce que j'aurais jamais trouvé le temps de scanner ça avant ... houuu ... le surlendemain de la St-Valentin ?)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;b&gt;all&lt;/b&gt; rights reserved.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-2122548205480156093?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/2122548205480156093/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=2122548205480156093' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2122548205480156093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2122548205480156093'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/01/dans-le-temple-perdu.html' title='Dans le temple perdu'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-CoPEDkOhQmo/TyFu2NrNNmI/AAAAAAAADbo/GB9rwoPYi8k/s72-c/bilou-lost-temple.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-7110957337844473358</id><published>2012-01-23T20:55:00.002+01:00</published><updated>2012-01-23T22:52:39.559+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CompoundGob'/><category scheme='http://www.blogger.com/atom/ns#' term='guru meditation'/><title type='text'>C'est ça, être branché.</title><content type='html'>Dans le monde de Bilou, le tileset et ses habitants vivent en paix. Le GameEngine maintient l'équilibre et l'harmonie de ce monde. Désolé, les amis. Apparemment, ça ne va pas durer...&lt;br /&gt;&lt;br /&gt;Car, un funeste jour, l'horrible Mr. Pype bidouille le GameEngine et neutralise les pouvoirs du Makefile qui cherchait à le recompiler! Les GobStates, qui gravitaient autour de l'Engine perdent soudain leur stabilité naturelle ... et s'éparpillent dans tout l'disque dur! Préoccupant, non ?&lt;br /&gt;Et en plus, ça fait désordre.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sylvainhb.blogspot.com/2008/04/appleman.html"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 230px;" src="http://3.bp.blogspot.com/_LtwkN4oRTe0/R_Iyut-IPDI/AAAAAAAAAeA/DjCOxPldciE/s320/applebat.png" border="0" alt="" /&gt;&lt;/a&gt;Dans ce monde à présent déséquilibré, d'étrange phénomènes se produisent ... des Applemen hostiles apparaissent plus vite que prévu, et quand on essaie de les assomer, ils se téléportent sur la gauche avant de revenir à la charge de plus belle ... non sans s'être momentanément transmuté en BerryBat ou en buisson ...&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Remember when everything in Bilou's world was &lt;a href="http://sylvainhb.blogspot.com/2009/02/you-cant-be-successful-at-every.html"&gt;messed up&lt;/a&gt; to the point that Bilou turned into a jumping bush wandering around bubble-headed-trees? Well, with the regression test I applied to AppleAssault with the game-engine modification that are supposed to bring in compound animation, it appeared again. Applemen being flooded over the level rather than appearing progressively, they'd also stay stunned for much shorter and show some odd "side-effects", such as temporarily turning into berry bat on wake-up and even sometimes "teleporting" to the left while being pwned.&lt;br /&gt;&lt;br /&gt;I had just introduced CommonGob, that captures the GobState management, including the reaction to an event (evaluating expressions, and so on), while the animation itself is still manipulated by SimpleGob (now a class deriving from CommonGob). It took me a couple of fixes to separate them right while still having the animation restarted from scratch when we switch states (and some more tests to handle the state3-&amp;gt;state3 case). It would have been a mere lunchtime debugging session not worth mention if GDB hadn't decide to black-hole the SimpleGob class. No line numbers, no breakpoint, no variable or structure interpretation. Nothing but instruction stepping and register values &amp;gt;_&amp;lt;. I still haven't found out why, but I fixed the code nonetheless.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Bref, on aurait bien voulu appeler DDD à la rescousse, mais pas de chance: il ne parvient plus à interpréter une partie des annotations qui accompagnent les quelques classes maîtresses ... plus de visualisation des objets, plus de suivi des instructions ligne-par-ligne ... &lt;a href="http://stackoverflow.com/questions/8971958/gdb-doesnt-find-line-numbers-objdump-do-why"&gt;rien.&lt;/a&gt; sauf dans objdump. A en perdre son latin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-7110957337844473358?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/7110957337844473358/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=7110957337844473358' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7110957337844473358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7110957337844473358'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/01/cest-ca-etre-branche.html' title='C&apos;est ça, être branché.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LtwkN4oRTe0/R_Iyut-IPDI/AAAAAAAAAeA/DjCOxPldciE/s72-c/applebat.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-6388138545627572554</id><published>2012-01-20T08:00:00.003+01:00</published><updated>2012-01-20T16:29:04.049+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='collisions'/><category scheme='http://www.blogger.com/atom/ns#' term='bilou'/><category scheme='http://www.blogger.com/atom/ns#' term='tiled'/><category scheme='http://www.blogger.com/atom/ns#' term='sidescroller'/><title type='text'>Picking a Tile size.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-Zpn0ys_yfmQ/TjVG4UwGkaI/AAAAAAAAC7Y/fa_K18KyfP8/s1600/spg-notes0002.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 166px; height: 320px;" src="http://3.bp.blogspot.com/-Zpn0ys_yfmQ/TjVG4UwGkaI/AAAAAAAAC7Y/fa_K18KyfP8/s320/spg-notes0002.png" alt="" id="BLOGGER_PHOTO_ID_5635488442181128610" border="0" /&gt;&lt;/a&gt; &lt;em&gt;Reading further through the &lt;a href="http://sylvainhb.blogspot.com/2011/07/sonic-physics-guide.html"&gt;Sonic Physics Guide&lt;/a&gt;, I noted that the collision mechanisms used (two "vertical sensing bars" for each feat and one "horizontal sensing bar") calls for a certain ratio between the character's collision box and the tile size. The rule is simple: your character should be able to stand on a single tile, and it should also be able to fall into a hole that's one tile wide only.&lt;br /&gt;&lt;br /&gt;Another observation is that Sonic is 2 tiles high, which makes it more convenient to push items, but which also makes the 1-tile-high obstacle more convincing. Let's think about it this way: if there was a boulder that's half your size high (let's say almost up to your belt), would you have to do a special action (e.g. jump) to go over it? How about an obstacle that comes only up to your knees ? And halfway on your tights ?&lt;br /&gt;&lt;br /&gt;My feeling is that, visually, an obstacle that's only coming up to your knees can be simply stepped on. Something that comes up to your belt is a real barrier. That's what a tile should be.&lt;br /&gt;&lt;br /&gt;And well, unfortunately, Bilou isn't quite following those guidelines so far, but Bilou is quite far away from the Vitruvian Man (despite equally being an alien ;-)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-6jBC9k8tufM/Txk2ptYTLkI/AAAAAAAADac/rWIhTGNwb74/s1600/vitruvian-Bilou.png"&gt;&lt;img style="float: right; margin: 0pt 0px 10px 10px;" src="http://1.bp.blogspot.com/-6jBC9k8tufM/Txk2ptYTLkI/AAAAAAAADac/rWIhTGNwb74/s200/vitruvian-Bilou.png" alt="" id="BLOGGER_PHOTO_ID_5699646893598125634" border="0" /&gt;&lt;/a&gt; 2 tiles de haut contre 1 de large. Pour un personnage bipède, c'est l'idéal, si je tire les conclusions qui s'imposent de la lecture du Sonic Physics Guide. Attention, je parle ici de la zone de collision. À aucun moment celà n'implique que l'on doive caser tous ses dessins dans un rectangle de 20x40 comme dans le RSD game-maker, hein ?&lt;br /&gt;&lt;br /&gt;En revanche, il est indispensable que le personnage puisse "tenir debout" sur un élément constitué d'un seul "tile" sans que ça ne paraisse bizarre au joueur. Idéalement, il devrait aussi pouvoir tomber dans un trou qui ne fait qu'un seul tile de large.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-E55b85mHhkw/Txk2pCtSTDI/AAAAAAAADaQ/KkwVLruCCJQ/s1600/vitruvian-bilou2.png"&gt;&lt;img style="float: right; margin: 0pt 0px 10px 10px; cursor: pointer;" src="http://2.bp.blogspot.com/-E55b85mHhkw/Txk2pCtSTDI/AAAAAAAADaQ/KkwVLruCCJQ/s200/vitruvian-bilou2.png" alt="" id="BLOGGER_PHOTO_ID_5699646882143423538" border="0" /&gt;&lt;/a&gt;Difficile de dire si c'est le cas ou non pour Bilou, par contre. Ok, il est loin d'avoir les proportions de l'homme de Vitruve, et sera plus proche de 16x24 pixels dans la school zone qu'autre chose. Difficile aussi de lui appliquer la règle "&lt;a href="http://www.wayofthepixel.net/pixelation/index.php?topic=13397.msg128779#msg128779"&gt;un obstacle doit plus ou moins arriver à la ceinture pour avoir l'air un rien costaud&lt;/a&gt;"... Mais je garde ça en tête pour la révision de Badman...&lt;br /&gt;&lt;br /&gt;(ces 2 croquis Biloupométriques datent de 2005, quand je m'étais mis en tête de faire une version 3D de la school zone en utilisant &lt;a href="http://ogre.sf.net/"&gt;OGRE&lt;/a&gt; ... et que je me suis rendu compte que je ne parvenais plus à dessiner un Bilou correct qu'une fois sur 4 :P)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-6388138545627572554?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/6388138545627572554/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=6388138545627572554' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6388138545627572554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6388138545627572554'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/01/picking-tile-size.html' title='Picking a Tile size.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Zpn0ys_yfmQ/TjVG4UwGkaI/AAAAAAAAC7Y/fa_K18KyfP8/s72-c/spg-notes0002.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-5129609911918637037</id><published>2012-01-19T11:26:00.006+01:00</published><updated>2012-01-19T16:55:53.726+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixels'/><category scheme='http://www.blogger.com/atom/ns#' term='monster design'/><category scheme='http://www.blogger.com/atom/ns#' term='entropy'/><title type='text'>Countless Great Designs</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://tools.putpixel.com/spritegen.html?fg=1F4AF2&amp;amp;bg=070217&amp;amp;size=16&amp;amp;spacing=4&amp;amp;tiles=16&amp;amp;zoom=2&amp;amp;falloff=cosine&amp;amp;probmin=0.25&amp;amp;probmax=0.75&amp;amp;mirrorh=0.875&amp;amp;mirrorv=0.125&amp;amp;despecklemethod=remove&amp;amp;despeckle=0.888&amp;amp;despur=0.885"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 123px; height: 122px;" src="http://2.bp.blogspot.com/-VOnVCXyFB7g/Txfv_U4fs8I/AAAAAAAADaE/v3XU1vfalBk/s400/canvas4-mini.png" alt="" id="BLOGGER_PHOTO_ID_5699287724677116866" border="0" /&gt;&lt;/a&gt;Petite pépite que je renseigne à l'intention d'&lt;a href="http://sylvainhb.blogspot.com/2009/03/guest-book-livre-dor.html?showComment=1326829167611#comment-c2705277429301659755"&gt;armitage&lt;/a&gt;, en espérant qu'il trouve souvent ce qu'il cherche quand ses scéances de google le font atterir sur la planète Bilou: le générateur ultime d'entropie ... le test de Rorschack (toute ressemblance avec un nom existant est un pur coup de bol ;) version Pixel art.&lt;br /&gt;&lt;br /&gt;Trouvé sur wayofthepixel, bien sûr ... mais où, ça ...&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I have to call for your scientific forgiveness, although I find myself unable to \cite{my-sources} correctly this time. It's just a too marvellous tool that was presented on wayofthepixel. I just can't let it rest in the shadow for longer: behold the Rorschak test for pixel artists ... the ultimate inspiration generator that randomly fills a sprite sheet with monocrhomatic (and usually symmetric) pixels. What you see in here will only depend on who you are. I do see countless great design, and also a first step towards space-invaders-meeting-netcraft ^_^&lt;br /&gt;&lt;br /&gt;And if you still don't see anything, click the picture and you'll get another sheet for you to play.&lt;br /&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-5129609911918637037?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/5129609911918637037/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=5129609911918637037' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5129609911918637037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5129609911918637037'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/01/countless-great-designs.html' title='Countless Great Designs'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-VOnVCXyFB7g/Txfv_U4fs8I/AAAAAAAADaE/v3XU1vfalBk/s72-c/canvas4-mini.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-8259532964170867119</id><published>2012-01-14T09:29:00.008+01:00</published><updated>2012-01-17T13:24:47.043+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CompoundGob'/><category scheme='http://www.blogger.com/atom/ns#' term='uml'/><category scheme='http://www.blogger.com/atom/ns#' term='iGobController'/><category scheme='http://www.blogger.com/atom/ns#' term='planning'/><title type='text'>branch/companim</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-A4lf3eT5CB4/TxE9GS6fNcI/AAAAAAAADZ0/uOpFXMod0pw/s1600/CompoundGob.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 400px; height: 364px;" src="http://4.bp.blogspot.com/-A4lf3eT5CB4/TxE9GS6fNcI/AAAAAAAADZ0/uOpFXMod0pw/s400/CompoundGob.png" alt="" id="BLOGGER_PHOTO_ID_5697402181966050754" border="0" /&gt;&lt;/a&gt;Rien de tel qu'un peu d'&lt;a href="http://sylvainhb.blogspot.com/search/label/uml"&gt;UML&lt;/a&gt; pour commencer la nouvelle branche du SVN "&lt;a href="http://sylvainhb.blogspot.com/search/label/CompoundGob"&gt;animation composée&lt;/a&gt;" (imho). Ah, mais peut-être voulez-vous un mot d'explication sur les "branches"? C'est l'équivalent pour un programmeur de "Dis, on va commencer par dupliquer la maison dans un univers parallèle avant d'attaquer les travaux pour la véranda. Comme ça, si on doit chercher les clés à un moment donné, on a qu'à le faire dans la copie de base. Et puis on peut laisser les enfants dormir dans celle-là, aussi: inutile de les envoyer dans la copie où on a abattu le mur du salon et où l'eau ne va plus jusqu'aux WC, hein ?"&lt;br /&gt;&lt;br /&gt;Convaincus ?&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I was quite confuse on where to start working on the compound anim support, so I just started by depicting the current situation into an UML blueprint, trying to precise which are the different phases of SimpleGob::play, which member variables where involved when, and where in the class hierarchy they stand. Part of my indecision came from the fact that the abstract class &lt;code&gt;GameObject&lt;/code&gt; is designed to capture what &lt;abbr title="I'll really need to start a side-page with core Game Engine concepts :P"&gt;controllers&lt;/abbr&gt; use, so I wasn't quite tempted to push up the state management there.&lt;br /&gt;&lt;br /&gt;And to my suprise, that alone suffice to show me the right path to take: introduce a &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/branches/companim/libgeds/source/GameObject.cpp?r1=901&amp;r2=903&amp;pathrev=903"&gt;CommonGob class&lt;/a&gt; that capture what's not-in-GameObject but should be in all the technical variation of the animated objects.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Bon, première tâche dans cette branche, donc, c'est de refaire un peu l'état des lieux. Une animation composée, ça change essentiellement &lt;span style="font-style: italic;"&gt;l'animation&lt;/span&gt; des GOBs, mais l'état, les contrôleurs, les collisions, tout ça reste identique. Ouais, sauf que jusqu'ici, tout ça est uniquement dans SimpleGob.&lt;br /&gt;&lt;br /&gt;Une fois tout à plat sur ce joli "bluescreen" (excusez ma nostalgie d'&lt;a href="http://sylvainhb.blogspot.com/2009/06/je-vous-parle-dun-temps-que-les-moins.html"&gt;ex-codeur en QuickBasic&lt;/a&gt;), la solution devient évidente: introduire une classe "CommonGob" qui regroupe tout ce dont SimpleGob et CompoundGob auront besoin dans leur fonctions "play" sans toucher au GameObject héréditaire endogène ... ce qui fera sans doute plaisir à &lt;a href="http://sylvainhb.blogspot.com/2011/12/missing-blockaction.html"&gt;BlockArea&lt;/a&gt;, accessoirement.&lt;br /&gt;&lt;br /&gt;&lt;em&gt; If you don't get a word of UML then ... well ... I guess the &lt;a href="http://sylvainhb.blogspot.com/2011/06/anim0-10-spr0anim0-10.html"&gt;sketched-up&lt;/a&gt; version of a former, similar reflexion might help you to figure out what is this CompoundGob stuff all about.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-8259532964170867119?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/8259532964170867119/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=8259532964170867119' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/8259532964170867119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/8259532964170867119'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/01/branchcompanim.html' title='branch/companim'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-A4lf3eT5CB4/TxE9GS6fNcI/AAAAAAAADZ0/uOpFXMod0pw/s72-c/CompoundGob.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-2234548156022992272</id><published>2012-01-12T12:30:00.002+01:00</published><updated>2012-01-14T19:06:58.465+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CompoundGob'/><category scheme='http://www.blogger.com/atom/ns#' term='bouli'/><category scheme='http://www.blogger.com/atom/ns#' term='planning'/><category scheme='http://www.blogger.com/atom/ns#' term='sketch'/><title type='text'>Pendant ce temps, dans le code ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-yac1sNHxo7I/TvetYswoicI/AAAAAAAADW8/oxmQuELibp8/s1600/bouli.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0px; cursor: pointer; width: 140px; height: 237px;" src="http://4.bp.blogspot.com/-yac1sNHxo7I/TvetYswoicI/AAAAAAAADW8/oxmQuELibp8/s320/bouli.jpg" alt="hey ? Why am I so *ugly* ? can't your new Staedler USB pencil do anything better ?" title="Eh?? J'suis tout moche!? Il ne peut pas faire mieux, ton Staedler USB?" id="BLOGGER_PHOTO_ID_5690207294049520066" border="0" /&gt;&lt;/a&gt;Oh, pas de soucis: je n'oublie pas Bilou, malgré tout cet intérêt renouvelé pour mon perso Ubisoft favori... Mais comme les études de Rayman et de Shantae ont pour objectif de construire &lt;a href="http://sylvainhb.blogspot.com/2010/07/synopsis-reloaded.html"&gt;le synopsys lointain&lt;/a&gt;, comprenez que je garde ça "en réserve" pour plus tard... Il faut quand-même bien que vous ayez le plaisir de la découverte quand je vous proposerai 4 écrans par monde dans &lt;a href="http://sylvainhb.blogspot.com/2010/02/bilou-mining-donc.html"&gt;nuts'n'bolts&lt;/a&gt;, hein :)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Don't worry: I keep working on Bilou, even though it's sort of top-secret sketching of distant scenario ideas for whatever will happen beyond the green &amp;amp; school zones you already know. I'll start working on the integration of animations edited with AnimEDS into the game engine. Please allow me to keep my todo-list in French only and focus back to my soup now :P&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;Entre-temps, il va falloir que je voie à intégrer les animations complexes générées par&lt;a href="http://sylvainhb.blogspot.com/search/label/animeds"&gt; AnimEDS&lt;/a&gt; dans le moteur de jeu, sinon, c'est moins rigolo :P&lt;br /&gt;&lt;ul&gt;&lt;li&gt;le &lt;code&gt;GameScript&lt;/code&gt; pourra se servir des informations de &lt;code&gt;anim[i]&lt;/code&gt; pour décider de créer un SimpleGob ou un CompoundGob (j'ai déjà une super-classe, ici)&lt;/li&gt;&lt;li&gt;pas de bloc &lt;code&gt;"anim%u %x { ... }"&lt;/code&gt; pour les animations composée, donc pas d'appel à &lt;code&gt;parse()&lt;/code&gt;. Je pourrais soit détourner &lt;code&gt;"state%u :anim%u { ... }"&lt;/code&gt; avec &lt;code&gt;"state%u :spr%.anim%"&lt;/code&gt;, soit pré-déclarer les animations &lt;code&gt;"anim%u = spr%.%"&lt;/code&gt; -- l'idée étant d'autoriser des "pages d'animations" et d'avoir de préférence une page par fichier de commande.&lt;/li&gt;&lt;li&gt;j'ai des commandes générales et des commandes "d'affichage" dans les anims. Est-ce que ça vaut la peine d'essayer de ne conserver qu'une seule copie des commandes générales ?&lt;/li&gt;&lt;li&gt;Dès que je vais vouloir utiliser &lt;a href="http://sylvainhb.blogspot.com/2009/11/grab-me-shoot-me.html"&gt;des déplacements automatiques&lt;/a&gt;, il me faudra de l'état par composant, ce qui rend moins attirant l'inclusion du code qui gère case &lt;code&gt;ANIM_SET_SPR&lt;/code&gt; au sein de GobAnim ...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-2234548156022992272?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/2234548156022992272/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=2234548156022992272' title='5 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2234548156022992272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2234548156022992272'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/01/pendant-ce-temps-dans-le-code.html' title='Pendant ce temps, dans le code ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-yac1sNHxo7I/TvetYswoicI/AAAAAAAADW8/oxmQuELibp8/s72-c/bouli.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-9048086235683336069</id><published>2012-01-11T19:00:00.002+01:00</published><updated>2012-01-13T09:25:12.585+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rayman'/><category scheme='http://www.blogger.com/atom/ns#' term='level design'/><category scheme='http://www.blogger.com/atom/ns#' term='greenzone'/><category scheme='http://www.blogger.com/atom/ns#' term='desert zone'/><title type='text'>Origins band land</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-XMRoyqALlOE/TwXMnLjI8-I/AAAAAAAADYQ/Lbbx382Gtxo/s1600/10DesertSwing1440x900_200.jpg"&gt;&lt;img style="margin: 0pt 0px 10px 0pt; width: 200px; padding:0 ; border:none;" src="http://4.bp.blogspot.com/-XMRoyqALlOE/TwXMnLjI8-I/AAAAAAAADYQ/Lbbx382Gtxo/s200/10DesertSwing1440x900_200.jpg" alt="" id="BLOGGER_PHOTO_ID_5694182277367002082" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-RIAdAnxOrVs/TwXMmxGxi0I/AAAAAAAADYE/GiLGfwNyRow/s1600/rayman-origins-desert-des-didgeridoos-2-meilleure-musique-001.jpg"&gt;&lt;img style="padding:0 ; border:none; margin: 0pt 0px 10px 0pt; width: 200px;" src="http://4.bp.blogspot.com/-RIAdAnxOrVs/TwXMmxGxi0I/AAAAAAAADYE/GiLGfwNyRow/s200/rayman-origins-desert-des-didgeridoos-2-meilleure-musique-001.jpg" alt="" id="BLOGGER_PHOTO_ID_5694182270268705602" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-zPo3kKAXi7w/TwXMmrs4OuI/AAAAAAAADX4/KhX1L-L7Vtw/s1600/Didgeridoo-Desert.jpg"&gt;&lt;img style="padding:0 ; border:none; margin: 0pt 0px 10px 0pt; width: 200px;" src="http://2.bp.blogspot.com/-zPo3kKAXi7w/TwXMmrs4OuI/AAAAAAAADX4/KhX1L-L7Vtw/s400/Didgeridoo-Desert.jpg" alt="" id="BLOGGER_PHOTO_ID_5694182268817914594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"Je suis arrivé au 2eme monde: la musique" me dit mon frère. Il venait de lire&lt;a href="http://sylvainhb.blogspot.com/2011/12/ubiart-mission-reussie.html"&gt; mon éloge du premier monde de Rayman Origins&lt;/a&gt;, mais il était un peu déçu par ce nouveau monde "c'est tout creux, vide quoi. Un peu mort aussi". Je souris: je viens de refaire le "Band Land" du Rayman d'origine, "Band Land" signifiant à la fois le pays des groupes (de rock/jazz) avec un jeu de mot  sur "&lt;a href="http://en.wikipedia.org/wiki/Bad_Lands"&gt;Bad Lands&lt;/a&gt;", les terres arides et rocailleuses ... Mais une fois la manette en main, je dois bien reconnaître qu'il n'a pas tort: les mêmes instruments tordus encore et encore, quelques tambours-tremplins ...&lt;br /&gt;&lt;br /&gt;Il faut dire que le 1er monde avait placé la barre assez haut. Retournons voir les images trouvées &lt;a href="http://postdesk.com/blog/rayman-origins-review"&gt;ça&lt;/a&gt; et &lt;a href="http://www.gamesradar.com/rayman-origins-vita-hands-on-preview/"&gt;là&lt;/a&gt; sur Internet ...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-N-LrNHxBXzg/Tw2fJssBlpI/AAAAAAAADZo/cLrZ_ibEWig/s1600/7Xw1Y.jpg"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 200px;" src="http://3.bp.blogspot.com/-N-LrNHxBXzg/Tw2fJssBlpI/AAAAAAAADZo/cLrZ_ibEWig/s200/7Xw1Y.jpg" alt="" id="BLOGGER_PHOTO_ID_5696384092656998034" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-BIpF__6QeeQ/Tw2ewe7_nwI/AAAAAAAADZc/jCjNjhR_jkE/s1600/rayman-origins-20110607110004436.jpg"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 200px;" src="http://4.bp.blogspot.com/-BIpF__6QeeQ/Tw2ewe7_nwI/AAAAAAAADZc/jCjNjhR_jkE/s200/rayman-origins-20110607110004436.jpg" alt="" id="BLOGGER_PHOTO_ID_5696383659469152002" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-rSyrQTXUSzA/Tw2eoOMFwwI/AAAAAAAADZQ/3QnBELx4hRE/s1600/rayman_origins_screenshot_019.jpg"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 200px;" src="http://1.bp.blogspot.com/-rSyrQTXUSzA/Tw2eoOMFwwI/AAAAAAAADZQ/3QnBELx4hRE/s200/rayman_origins_screenshot_019.jpg" alt="" id="BLOGGER_PHOTO_ID_5696383517534307074" border="0" /&gt;&lt;/a&gt;Non seulement c'est beau et détaillé, mais un plus, c'est particulièrement varié. On passe, l'espace de quelques niveaux, d'une forêt sombre et dense à une caverne moussue, puis une sorte de plage avant de partir à l'assaut des montagnes. Rien de ce genre (ou presque) dans le niveau musical. L'action a beau être variée, le niveau "des angry birds" reste &lt;a href="http://www.youtube.com/watch?v=BZn-8ILgMyc&amp;amp;feature=relmfu"&gt;un monologue visuel&lt;/a&gt;. Même dans les passages secrets où l'on délivre les électoons, on reste en environnement ouverts (moi, j'aurais bien vu ça à l'intérieur d'un tambour ou d'un saxophone :P).&lt;br /&gt;&lt;br /&gt;Mais entre les câbles électriques, le planage le long des mélodies et les niveaux venteux, on ne s'ennuie pas jusqu'au monde des desserts glacés, qui -- je l'espère -- nous remettra une deuxième claque graphique pour enfoncer le clou ;)&lt;br /&gt;&lt;br /&gt;Evidemment, dans Rayman version PSX, on a pas du tout cette idée de "désert" pour la zone musicale, vu qu'il était conçu comme &lt;a href="http://www.raymanpc.com/wiki/fr/Le_Ciel_Chromatique"&gt;"Ciel Chromatique"&lt;/a&gt; par une équipe franchement francophone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-9048086235683336069?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/9048086235683336069/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=9048086235683336069' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/9048086235683336069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/9048086235683336069'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/01/origins-band-land.html' title='Origins band land'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-XMRoyqALlOE/TwXMnLjI8-I/AAAAAAAADYQ/Lbbx382Gtxo/s72-c/10DesertSwing1440x900_200.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-762692599687081646</id><published>2012-01-08T20:52:00.008+01:00</published><updated>2012-01-14T19:12:19.240+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixels'/><category scheme='http://www.blogger.com/atom/ns#' term='rayman'/><category scheme='http://www.blogger.com/atom/ns#' term='level design'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>The Art of Rayman</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-7-X_tZgBvmI/Twn0R5vFSYI/AAAAAAAADYo/uNCQHzlozjs/s1600/artofrayman.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 299px; height: 400px;" src="http://4.bp.blogspot.com/-7-X_tZgBvmI/Twn0R5vFSYI/AAAAAAAADYo/uNCQHzlozjs/s400/artofrayman.png" alt="" id="BLOGGER_PHOTO_ID_5695351792179956098" border="0" /&gt;&lt;/a&gt;Armé de mes &lt;a href="http://sylvainhb.blogspot.com/2011/12/plus-de-dessins.html"&gt;Copic&lt;/a&gt; et de ma DSi sur laquelle j'ai fraîchement installé &lt;a href="http://sylvainhb.blogspot.com/2011/03/pixnlove.html"&gt;le Rayman de mon adolescence&lt;/a&gt;, j'entamme le même genre d'analyse du graphisme du jeu que &lt;a href="http://sylvainhb.blogspot.com/2011/12/art-of-shantae.html"&gt;ce que j'ai fait pour Shantae&lt;/a&gt;. Bon, évidemment, le graphisme de Rayman est en grande partie de la peinture retouchée, et pas du Pixel Art, donc je ne sais pas en tirer le même genre d'enseignements ... n'empèche...&lt;br /&gt;&lt;br /&gt;C'est étonnant de voir qu'il n'y a plus ou moins aucun arbre "normal" dans tout le premier monde. Des troncs-champignon, ça oui. Avec même des "mains" qui vous supportent. Pourtant, les couleurs et la texture sont celles du bois, et donc, on voit du bois.&lt;br /&gt;&lt;br /&gt;Étonné, aussi, de voir que certains éléments de décor peuvent être allongés ou raccourci, malgré leur complexité. Chapeau! Les troncs couchés et les "palmiers", notamment. Il est rare d'avoir un même objet de grande taille plus de 2 fois dans un seul niveau, mais par contre, beaucoup moins rare d'avoir un objet repris à moitié découpé sur le bord de l'écran en début ou fin de niveau, où l'impression de "copié-collé" sera moins forte.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.vgmaps.com/forums/index.php?topic=159.0"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer;" src="http://1.bp.blogspot.com/-uVqYBXZJaSw/Twn76CtphWI/AAAAAAAADZA/nY3nvroP4Yg/s1600/look-at-those-stones.png" alt="" title="select-color in Gimp, in a selected part of a level found on the vgmaps forum" id="BLOGGER_PHOTO_ID_5695360178366023010" border="0" /&gt;&lt;/a&gt;Autre grosse différence avec ma "green zone": Pas de terre dans la forêt primordiale de Rayman. Des cailloux, oui. Des entrelacs super-serrés de lianes, aussi. Mais de la terre, schnoll. Nada.&lt;br /&gt;&lt;br /&gt;Pour pouvoir construire leurs niveaux, les p'tits gars d'Ubisoft n'ont pas hésité à utiliser un truc courant (&lt;a href="http://www.wayofthepixel.net/pixelation/index.php?topic=13524.0"&gt;mais souvent mal utilisé&lt;/a&gt;) chez les pixel artists: le contre-jour. En-dehors des pierres détaillés, certaines zones plus sombres sont tout simplement d'une couleur unie, souvent au bord des zones.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-5J0F0801zj4/Twn0RmRMoYI/AAAAAAAADYc/T5b3t6QvfDc/s1600/artofrayman0002.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 400px; height: 316px;" src="http://2.bp.blogspot.com/-5J0F0801zj4/Twn0RmRMoYI/AAAAAAAADYc/T5b3t6QvfDc/s400/artofrayman0002.png" alt="" id="BLOGGER_PHOTO_ID_5695351786954334594" border="0" /&gt;&lt;/a&gt;&lt;em&gt;So I've got new Copic markers and a freshly downloaded Rayman for DSi. Neat. Just what I need to do some graphics analysis the same way I did for Shantae, although it's clearly non-pixel-art, but rather converted and carefully fixed painting.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-tyeUnP8Jtj8/Twn1dEM4RAI/AAAAAAAADY0/CvOGApKcRSA/s1600/Tronc.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 316px; height: 200px;" src="http://4.bp.blogspot.com/-tyeUnP8Jtj8/Twn1dEM4RAI/AAAAAAAADY0/CvOGApKcRSA/s400/Tronc.png" alt="" id="BLOGGER_PHOTO_ID_5695353083479475202" border="0" /&gt;&lt;/a&gt; Each level in the Dream Forest features one or two "large background element" that gives it a unique style compared to the generic "green &amp;amp; rocks &amp;amp; water" &lt;a href="http://sylvainhb.blogspot.com/2011/11/level-editor-for-ds-01.html"&gt;template&lt;/a&gt; that has been seen in so many games. Some of them are interactive (mushroom trees), other are purely decorative. It's rare to see them repeated more than twice in a single level, but it's frequent to see them repeated (but only partially) near the begin or the end of the level.&lt;br /&gt;&lt;br /&gt;It's also surprising to see that, despite the "wooden" colours and textures of some components, we never see a real "tree" in the foreground in that forest. Are these vegetal tentacles ? Are these mushrooms-on-branches ? It's just some fantasy. &lt;a href="http://sylvainhb.blogspot.com/2011/12/ubiart-mission-reussie.html"&gt;Rayman Origins&lt;/a&gt; is much more conventional, to that regards.&lt;br /&gt;&lt;br /&gt;Another impressive thing: the way the artists managed to create variations of some relatively complex element. That's especially visible with that sort of "palmtree" seen during the &lt;a href="http://www.raymanpc.com/wiki/en/File:BziiitPC.png"&gt;"bzzit fight"&lt;/a&gt;. Here, they strip a part of the full-size tree. There, they duplicate a part to extend it. Simply thanks to a bumpy detail that makes the seamless connections possible. Well done, dudes.&lt;br /&gt;&lt;br /&gt;PS: thanks fly to the maintainers of the &lt;a href="http://www.raymanpc.com/wiki/"&gt;raywiki&lt;/a&gt;: some of the screenshots they have were quite useful.&lt;br /&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-762692599687081646?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/762692599687081646/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=762692599687081646' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/762692599687081646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/762692599687081646'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/01/art-of-rayman.html' title='The Art of Rayman'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-7-X_tZgBvmI/Twn0R5vFSYI/AAAAAAAADYo/uNCQHzlozjs/s72-c/artofrayman.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1007962974026287332</id><published>2012-01-07T18:50:00.000+01:00</published><updated>2012-01-07T18:56:39.654+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='climbing'/><category scheme='http://www.blogger.com/atom/ns#' term='sidescroller'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>Climb up, and start the ro .. nevermind.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-BP_Keoa_sXE/Tu9O7aYXw4I/AAAAAAAADVQ/x563cNQFGS8/s1600/shantae-ropes.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center;" src="http://2.bp.blogspot.com/-BP_Keoa_sXE/Tu9O7aYXw4I/AAAAAAAADVQ/x563cNQFGS8/s400/shantae-ropes.png" alt="" id="BLOGGER_PHOTO_ID_5687851636993016706" border="0" /&gt;&lt;/a&gt;Voilà bien le genre de "mini-cave" cachée dans le monde de Shantae qui m'aura fait souffrir ... (et qui renforce mon impression que le jeu tient presqu'autant du "zelda" que d'un jeu de plate-forme classique, au passage). Pourquoi ? parce qu'il va falloir sauter de chaîne en chaîne jusqu'au coffre ... et retour. Et assez curieusement, dans Shantae, s'accrocher à une "corde" verticale en cours de saut est assez délicat.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Grab a "rope", climb up, hop, grab the next rope, climb down a bit, hop, grab, hop, grab, climb ... This is sure nothing new. I think even &lt;a href="http://sylvainhb.blogspot.com/2008/06/pharaohs-curse.html"&gt;Pharaoh's curse&lt;/a&gt; had a screen that was designed along that rule. And you'll sure face it a couple of time in &lt;a href="http://sylvainhb.blogspot.com/2007/08/armaggedon-machine.html"&gt;the armaggedon machine&lt;/a&gt; as well. So why is it so tedious to perform it right here ?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.youtube.com/watch?v=q5rT_zF-LNQ&amp;amp;feature=endscreen&amp;amp;NR=1"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 234px;" src="http://4.bp.blogspot.com/-y6Cd2v0YexY/Tun_Ym6O62I/AAAAAAAADVE/aQip8S1nEQU/s320/shantae-climb.png" alt="" id="BLOGGER_PHOTO_ID_5686356802758699874" border="0" /&gt;&lt;/a&gt; Pour s'accrocher, il faudra que le joueur presse le DPAD en direction "haut" pendant qu'il saute (vers l'avant, de préférence). Et on dirait bien que sur la DSi, ce genre de manipulation est assez peu pratique. On passe un tout petit peu trop facilement de la diagonale "haut-droite" à la position "juste vers le haut", auquel cas Shantae s'immobilise presqu'immédiatement et tombe si le joueur n'a pas bien estimé la largeur de la zone de collision de la chaîne.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Well, first, I'm playing Shantae on the DSi, with a DPAD, while I mostly grow my platforming skills with a keyboard, where there's no such thing like a "diagonal" position. And apparently, holding the DPAD in a diagonal position is not so easy. As Shantae quickly loses her horizontal velocity if you release the "right" direction in-air, you're better have a very precise understanding of how wide the collision area for those "ropes" is, or you might end up to instruct the game to "climb" when that cannot be done (not yet), and just start falling where you are. I'll have to keep that in mind when I'll implement vines-climbing in Bilou.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Keen demande lui aussi que l'on presse vers le haut pour s'accrocher aux "barres verticales". Mais ayant majoritairement joué sur clavier, ça ne me posait aucun problème.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1007962974026287332?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1007962974026287332/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1007962974026287332' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1007962974026287332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1007962974026287332'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/01/climb-up-and-start-ro-nevermind.html' title='Climb up, and start the ro .. nevermind.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-BP_Keoa_sXE/Tu9O7aYXw4I/AAAAAAAADVQ/x563cNQFGS8/s72-c/shantae-ropes.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1190115550664561273</id><published>2012-01-04T20:02:00.002+01:00</published><updated>2012-01-05T11:27:59.535+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C64'/><category scheme='http://www.blogger.com/atom/ns#' term='bilou'/><category scheme='http://www.blogger.com/atom/ns#' term='calimero'/><category scheme='http://www.blogger.com/atom/ns#' term='basic'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><category scheme='http://www.blogger.com/atom/ns#' term='cpc'/><category scheme='http://www.blogger.com/atom/ns#' term='y93'/><title type='text'>symbol 240,60,126,255,254,255,126,60,62</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-aSgtWuRoZbA/TvcRK4CK9hI/AAAAAAAADWw/qRCgbEDoBVU/s1600/bilou-symbol.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 302px;" src="http://3.bp.blogspot.com/-aSgtWuRoZbA/TvcRK4CK9hI/AAAAAAAADWw/qRCgbEDoBVU/s320/bilou-symbol.png" alt="" id="BLOGGER_PHOTO_ID_5690035532743767570" border="0" /&gt;&lt;/a&gt;Premier passage de Pierrick chez moi, en 1993. Il attrape une feuille au hasard sur mon bureau pour me montrer comment il réalise des personnages sur son Amstrad CPC, à l'aide de la commande "SYMBOL" qui reprogramme les caractères graphiques. La feuille était en réalité le dos du plan du &lt;a href="http://sylvainhb.blogspot.com/2010/05/marble-fire-madness.html"&gt;premier niveau de Calimero&lt;/a&gt; ... ce petit croquis a donc voyagé dans le temps jusqu'en 2012 ^_^&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Heh. That one survived too, on the back of a level map that my brother had with him at school: the bubble-shaped character that Pierrick used as hero for small flip-screen platformers on his CPC. I've long time wished that reprogramming characters on the C64 basic was as easy as SYMBOL x,... but even for sprites, it was a PEEK/POKE nightmare, so almost all my C64 games attempts were merely using PETSCII.&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Celà se passe sans doutelégèrement après que mon frère ait dessiné la page d'introduction de "Bubule Warrior", sans doute parce que Pierrick dessine depuis longtemps des personnages tous ronds autour de ses feuilles de cours.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1190115550664561273?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1190115550664561273/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1190115550664561273' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1190115550664561273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1190115550664561273'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/01/symbol-240601262552542551266062.html' title='symbol 240,60,126,255,254,255,126,60,62'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-aSgtWuRoZbA/TvcRK4CK9hI/AAAAAAAADWw/qRCgbEDoBVU/s72-c/bilou-symbol.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-6833598059230363841</id><published>2012-01-01T22:45:00.004+01:00</published><updated>2012-01-03T16:06:30.571+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><title type='text'>Happy New Year !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-fEwsMIGX214/TwLMynUP4OI/AAAAAAAADXs/KXPpyOTm1As/s1600/timecurve-download-bis.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 270px;" src="http://2.bp.blogspot.com/-fEwsMIGX214/TwLMynUP4OI/AAAAAAAADXs/KXPpyOTm1As/s400/timecurve-download-bis.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5693338048869163234" /&gt;&lt;/a&gt;&lt;br /&gt;En guise de carte de voeux, une "fractale du temps" de&lt;a href="http://sylvainhb.blogspot.com/search/label/download?updated-max=2012-01-01T10:49:00%2B02:00&amp;amp;max-results=200"&gt; toutes les "releases" de mon projet&lt;/a&gt; sur DS depuis 2006. J'espère la compléter dans le courant du mois avec les "choix stratégiques" sur le moteur de jeu, etc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Maybe a fractal timeline is too geeky for my audience, but at least, it allows me to tile all the downloadable material released on this blog since 2006. Let's pretend it's my new year's wishes card for 2012&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-6833598059230363841?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/6833598059230363841/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=6833598059230363841' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6833598059230363841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6833598059230363841'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2012/01/happy-new-year.html' title='Happy New Year !'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-fEwsMIGX214/TwLMynUP4OI/AAAAAAAADXs/KXPpyOTm1As/s72-c/timecurve-download-bis.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-3978186710247885716</id><published>2011-12-27T16:29:00.007+01:00</published><updated>2011-12-31T10:37:58.974+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='newcollide'/><category scheme='http://www.blogger.com/atom/ns#' term='desmume'/><category scheme='http://www.blogger.com/atom/ns#' term='bilou'/><category scheme='http://www.blogger.com/atom/ns#' term='appleman'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>branch/newcollide : buggy</title><content type='html'>&lt;script language="JAVASCRIPT"&gt;if (document.images){stillNCB=new Image;playingNCB=new Image;stillNCB.src = "http://1.bp.blogspot.com/-PlVMlWItXoM/TvxH4Hr-7uI/AAAAAAAADXU/E21RqPhJbg4/s320/newcollide-bug-0.png"; playingNCB.src= "http://i.imgur.com/tbCAW.gif";}&lt;/script&gt;&lt;img onmouseover="document.NCBanim.src=playingNCB.src" onmouseout="document.NCBanim.src=stillNCB.src" name="NCBanim" style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer;" src="http://i.imgur.com/tbCAW.gif" border="0" /&gt; Voilà environ 3 mois que j'ai entammé la révision du moteur de collision de Bilou, avec pour objectif de permettre la gestion de blocs, plate-formes et autres. Je n'ai pas avancé très vite, mais le code compile et fait tourner AppleAssault ... enfin, presque. Voyez plutôt ....&lt;br /&gt;&lt;br /&gt;&lt;em&gt;3 monthes to get a first prototype of the new collision engine. I haven't been very quick on that, but at last, Apple Assault mostly work again ... well ... sort of. I'll let you judge that.&lt;br /&gt;-- btw, I wonder whether desmume-cli --record-movie would be easier to use than byzanz-record for those posts. Please, allow me to debug that on-line:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;# &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/branches/newcollide/AppleAssault/efsroot/appleman.cmd?annotate=898"&gt;&lt;abbr title="appleman.cmd, line 257-260"&gt;stopped by monster-player collision.&lt;/abbr&gt;&lt;/a&gt;&lt;br /&gt;statW0-&amp;gt;statF2 on found1 (v0 ~ :0 200 ~ :1)&lt;br /&gt;statW1-&amp;gt;statF3 on found1 (v0 ~ :0 200 ~ :1)&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;i&gt;&lt;small&gt;Makes the appleman bounce when it hurts Bilou&lt;/small&gt;&lt;/i&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;#&lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/branches/newcollide/AppleAssault/efsroot/bilou.cmd?annotate=898"&gt;&lt;abbr title="bilou.cmd, lines 572-574"&gt;hit&lt;/abbr&gt;&lt;/a&gt;&lt;br /&gt;state4..7-&amp;gt;statH15 on hit0&lt;br /&gt;\\   [wc 1 ? we 0 &amp;lt; &amp;amp;] (256 ~ :1 512 ~ :0 0 :6 x1)&lt;br /&gt;state4..7-&amp;gt;statH16 on hit0&lt;br /&gt;\\   [wc 1 ? we 0 &amp;gt;= &amp;amp;] (256 ~ :1 512 :0 0 :6 x1)&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;em&gt;The collision halfly works, on the video above: the applemen indeed bounces and the collision is triggered. But Bilou isn't affected. Afaik, that's because something got wrong in the guardian expression (conditions between the square braces) that can no longer be true in the new collision engine. Before we actually take a transition to the "hit-to-left" (H16) or "hit-to-right" (H15) state, one must detect where the collision came from (test on 'we', other dude's variable #14, which holds centrum-to-centrum horizontal distance), and whether it was actually something that hurts (test on 'wc', the other dude's variable that indicates the matching collision bits on both active and passive collisions area). For some reason,&lt;/em&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;case OP_GETCTX:&lt;br /&gt;   if (sp&gt;=STACKSIZE-1) return oops("vCTX");&lt;br /&gt;   if (c[1].data&lt;b&gt;==0&lt;/b&gt;) return oops("!CTX");&lt;br /&gt;   if ((op&amp;0xf)&gt;=0xc) stack[sp++]=xcontext[op&amp;0x3];&lt;br /&gt;   else stack[sp++]=c[1].data[op&amp;0xf];&lt;br /&gt;break;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;Did return at the &lt;code&gt;oops("!CTX")&lt;/code&gt; line. In that case, the expression is never true. Bilou won't ever got hurt. I must be missing something that swaps contexts in &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/branches/newcollide/libgeds/source/GameObject.cpp?revision=899&amp;view=markup"&gt;the code that manages collisions, at the root&lt;/a&gt;. Some &lt;code&gt;gc[2]=gc[0];&lt;/code&gt; on line 1742 could do the trick...&lt;br /&gt;&lt;br /&gt;that and some silly boolean inversion in the &lt;code&gt;c[1].data =? NULL&lt;/code&gt; condition ^^"&lt;br /&gt;&lt;!-- a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-PlVMlWItXoM/TvxH4Hr-7uI/AAAAAAAADXU/E21RqPhJbg4/s1600/newcollide-bug-0.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 128px; height: 96px;" src="http://1.bp.blogspot.com/-PlVMlWItXoM/TvxH4Hr-7uI/AAAAAAAADXU/E21RqPhJbg4/s320/newcollide-bug-0.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5691503058551238370" /&gt;&lt;/a --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-3978186710247885716?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/3978186710247885716/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=3978186710247885716' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3978186710247885716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3978186710247885716'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/12/branchnewcollide-buggy.html' title='branch/newcollide : buggy'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1033568160615110493</id><published>2011-12-25T11:21:00.002+01:00</published><updated>2011-12-25T11:34:20.718+01:00</updated><title type='text'>Plus de dessins ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-SXv9OR5h5XM/Tvb5d7rsULI/AAAAAAAADWk/4iGjgsPO8g4/s1600/IMG_2140.JPG"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 311px;" src="http://4.bp.blogspot.com/-SXv9OR5h5XM/Tvb5d7rsULI/AAAAAAAADWk/4iGjgsPO8g4/s320/IMG_2140.JPG" alt="" id="BLOGGER_PHOTO_ID_5690009471861674162" border="0" /&gt;&lt;/a&gt;Eh bien donc, à défaut de la tablette de mes rêves qui n'existe visiblement pas, voici au moins quelques outils qui vont donner un petit coup de jeune aux croquis sur papier qui me plaisent tant. Trouvaille de ma fée, les "Copic multiliner", avec une précision en-dessous de 0.1mm. Je ne savais même pas qu'une telle chose pouvait exister. De quoi se rapprocher des ombrages au porte-mine affûté :)&lt;br /&gt;Et en complément, des "uni-ball UB-157", avec lesquels j'avais déjà eu l'occasion de faire &lt;a href="http://4.bp.blogspot.com/_LtwkN4oRTe0/SasGnBAOdqI/AAAAAAAABRw/JxefFSPKsdk/s288/bi-running.png"&gt;quelques essais à Bâle&lt;/a&gt;, mais que je n'avais jamais retrouvé en magasin jusqu'ici. Visiblement, ma fée, elle, elle a trouvé ^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1033568160615110493?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1033568160615110493/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1033568160615110493' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1033568160615110493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1033568160615110493'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/12/plus-de-dessins.html' title='Plus de dessins ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-SXv9OR5h5XM/Tvb5d7rsULI/AAAAAAAADWk/4iGjgsPO8g4/s72-c/IMG_2140.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1908180523904254408</id><published>2011-12-21T09:24:00.011+01:00</published><updated>2011-12-26T14:35:08.816+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wishlist'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='english'/><title type='text'>One man and his (an)droid</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-jdkRn8bZOBw/TvGX_BNo3sI/AAAAAAAADVc/qBTgttee7JA/s1600/Mpman-MP434.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 214px;" src="http://4.bp.blogspot.com/-jdkRn8bZOBw/TvGX_BNo3sI/AAAAAAAADVc/qBTgttee7JA/s320/Mpman-MP434.jpg" alt="" id="BLOGGER_PHOTO_ID_5688494913258839746" border="0" /&gt;&lt;/a&gt;Je me suis arrêté d'abord sur le prix: 90€. Non, pas de 3 ou de 4 devant, juste 90€. C'est bien le système androïd qui tourne sur un processeur ARM à 600MHz, avec 256Mo de RAM et 4Go de stockage interne. Lecteur de carte média ? check. Connectivité Wifi ? check. Evidemment, à ce prix-là, ni 3G, ni téléphone, mais on a quand-même l'écran tactile. L'écran ne fait que 10cm avec une résolution plutôt miteuse (480x272 ... ils ont été chercher ça où ?), mais comme kit de développement, ça place la barre nettement plus bas, et c'est tant mieux.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;The iPad is not for me. That's a fact. The more I test "my brother's one", the more I'm comfident with that. Paying +400€ for an Android phone ? well, I don't think so. My little vgmap-themed Siemens C60 does the job so far. But that doesn't mean I don't see any interest in androïd development ... at least that's what I realise when I see in an advertisement magazine an ARM-powered device with WiFi and SD media card for &lt;abbr title="or the MPman-720, at 120€, with larger screen and improved resolution"&gt;90€&lt;/abbr&gt;. No kidding. You would barely find an iPhing *stylus* for that price :P. Either that or the digitizing pen from Staedler, with the hope that it would work correctly under Linux.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-T0hpYMu6E88/TvGu08JuEUI/AAAAAAAADVo/S66trkw6RXg/s1600/990_01_application1_35241.jpg"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 223px; height: 320px;" src="http://1.bp.blogspot.com/-T0hpYMu6E88/TvGu08JuEUI/AAAAAAAADVo/S66trkw6RXg/s320/990_01_application1_35241.jpg" alt="" id="BLOGGER_PHOTO_ID_5688520028868972866" border="0" /&gt;&lt;/a&gt;On y verra plus clair après test en magasin. Sinon, il restera l'Asus Transformer, mais nettement moins abordable ...&lt;br /&gt;D'un autre côté, pour 20€ de plus, on passe à 18cm d'écran (800x480, mpman720) pour une tablette taille A5. On fait des stylets, pour écrans résistifs ? oui. ça, j'aime :)&lt;br /&gt;&lt;br /&gt;Mais tout au fond de moi, je crois bien que ce qui me serait le plus utile, vu ma manière de travailler (que ce soit pour le boulot ou le Bilou), c'est cet espèce de bic-numérisateur autonome ... 'faut juste voir si la suite d'outil que Staedler propose avec &lt;a href="http://ubuntuforums.org/archive/index.php/t-1647963.html"&gt;fonctionne sous Linux &lt;/a&gt;:)&lt;br /&gt;&lt;br /&gt;Evidemment, si les gusses qui avaient proposé le projet &lt;a href="http://sylvainhb.blogspot.com/2011/03/pas-dipad-pour-moi.html"&gt;Noteslate&lt;/a&gt; avaient effectivement réalisé ce qu'ils promettaient, je ne me poserais pas tant de questions.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Of course, both are pathetic replacement for the missing noteslate on my christmas wish list.&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Dernière possibilité, aux alentours de 180€, le e-Reader de Sony (PRS-T1) avec la technologie "e-Ink" annoncée dans la noteslate, wifi et écran tactile. Mais c'est Sony. Les connaissant, ça ne va pas aller sans mal de faire du homebrew là-dessus ... &lt;a href="http://reviews.dcemu.co.uk/content/95483-Rooting-Sony-PRS-T1-lets-you-get-at-the-Android-goodies"&gt;quoi que ...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1908180523904254408?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1908180523904254408/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1908180523904254408' title='8 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1908180523904254408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1908180523904254408'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/12/one-man-and-his-android.html' title='One man and his (an)droid'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-jdkRn8bZOBw/TvGX_BNo3sI/AAAAAAAADVc/qBTgttee7JA/s72-c/Mpman-MP434.jpg' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1868815951672250250</id><published>2011-12-20T13:06:00.005+01:00</published><updated>2011-12-29T12:18:07.653+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='newcollide'/><category scheme='http://www.blogger.com/atom/ns#' term='todo'/><category scheme='http://www.blogger.com/atom/ns#' term='crumbling floor'/><category scheme='http://www.blogger.com/atom/ns#' term='state machine'/><category scheme='http://www.blogger.com/atom/ns#' term='sketch'/><category scheme='http://www.blogger.com/atom/ns#' term='english'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>The missing BlockAction</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LtwkN4oRTe0/TA0YlJpGyhI/AAAAAAAACHA/AYucYe4xmGg/s1600/blockanim.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 320px; height: 234px;" src="http://2.bp.blogspot.com/_LtwkN4oRTe0/TA0YlJpGyhI/AAAAAAAACHA/AYucYe4xmGg/s320/blockanim.png" alt="" id="BLOGGER_PHOTO_ID_5480063348102318610" border="0" /&gt;&lt;/a&gt;&lt;em&gt;Here's a scan that discusses a missing abstraction in my model so far, to carry on a "thread" on a map location (as compared to a tileset location). I figured out I was missing it when I tried to implement &lt;a href="http://sylvainhb.blogspot.com/search/label/crumbling%20floor"&gt;crumbling floors&lt;/a&gt; for the &lt;a href="http://sylvainhb.blogspot.com/search/label/Nuts%27n%27Bolts"&gt;"nut's'blots"&lt;/a&gt; intermediate project, in june 2010. It remained a draft sketch all that long.&lt;br /&gt;&lt;br /&gt;An amusing fact: despite this is still missing from the *model*, there is actually creation of a GameObject derivative (BlockArea) so that you can proceed with evaluation of the "block:on hit" expression ... so all it would require would be to capture this derivative for longer than just a collision. I just realised that while investigating why the new collision system no longer works with interactive blocks...&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Un vieux scan de Juin 2010 avec, en Français, le détail des "BlockAction" qui manquent encore à mon modèle de jeu. D'une manière assez amusante, la manière dont les interactions sont gérées vont déjà dans ce sens même s'il n'y a rien au niveau du "gobscript" qui permette d'en exploiter plus largement les possibilités.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;A less amusing fact: this was all coded before we had dynamic gob lists, and it's now trying to de-register a Gob from the game engine several times every frame (especially when the interactive block is not de-activated by the collision). That could explain some performance issues observed in early AppleAssault prototypes.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1868815951672250250?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1868815951672250250/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1868815951672250250' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1868815951672250250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1868815951672250250'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/12/missing-blockaction.html' title='The missing BlockAction'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_LtwkN4oRTe0/TA0YlJpGyhI/AAAAAAAACHA/AYucYe4xmGg/s72-c/blockanim.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1945875521969924662</id><published>2011-12-12T13:08:00.017+01:00</published><updated>2012-01-13T12:19:39.406+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='todo'/><category scheme='http://www.blogger.com/atom/ns#' term='level editor'/><category scheme='http://www.blogger.com/atom/ns#' term='choice'/><category scheme='http://www.blogger.com/atom/ns#' term='sprite editor'/><category scheme='http://www.blogger.com/atom/ns#' term='freehand'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>wanted features</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_LtwkN4oRTe0/Sq95fOquLKI/AAAAAAAABmM/JA5IQpqnqy4/s1600/mapedit.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 483px;" src="http://4.bp.blogspot.com/_LtwkN4oRTe0/Sq95fOquLKI/AAAAAAAABmM/JA5IQpqnqy4/s1600/mapedit.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;em&gt;There are things I would like to improve in each of my tools. Maybe it's a good time to collect them in one place. Various features I'd like to add to LEDS depend on the ability to display the map at once. I planned a radar widget in a corner of the TilesetWindow, but that's only 64 pixels wide. If I want 1 pixel per tile, that's only 2 screens wide.&lt;br /&gt;&lt;br /&gt;To do better, I'll need to fit at least 8x8 tiles per pixel, thus I'll need direct-color rendering to vary the "gray" level to the number of "solid" tiles in an area.&lt;br /&gt;&lt;br /&gt;I've already some code that creates a direct-color sprite (SpriteEditor, PaletteWindow, &lt;a href="http://sylvainhb.blogspot.com/2011/05/grayscale-preview-done.html"&gt;GrayPreview&lt;/a&gt;), but I remember I had a hard time making it work. Reading &lt;a href="http://nocash.emubase.de/gbatek.htm#dsvideoobjs"&gt;gbatek&lt;/a&gt; again wouldn't hurt.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-b6-nwbZAPLk/Tucjhw-QaGI/AAAAAAAADUs/9cg87taZ3TM/s1600/stencil-ui.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 255px; height: 196px;" src="http://1.bp.blogspot.com/-b6-nwbZAPLk/Tucjhw-QaGI/AAAAAAAADUs/9cg87taZ3TM/s320/stencil-ui.png" alt="" id="BLOGGER_PHOTO_ID_5685552117567219810" border="0" /&gt;&lt;/a&gt;&lt;em&gt;On the other hand, it would be good if I could have a "stencil" feature (as in Deluxe Paint IIe) in SEDS. I realised when packing the new version for Atnas that I had a serious bug with my previous attempt to have it running. The 'quickpal' widget could be used more appropriatedly to build that idea.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-d1KsTe3ICII/TuevvjBBbeI/AAAAAAAADU4/7D6rGCItYHo/s1600/zooms-for-aeds.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 258px; height: 200px;" src="http://1.bp.blogspot.com/-d1KsTe3ICII/TuevvjBBbeI/AAAAAAAADU4/7D6rGCItYHo/s320/zooms-for-aeds.png" alt="" id="BLOGGER_PHOTO_ID_5685706285966781922" border="0" /&gt;&lt;/a&gt;&lt;em&gt;Last thing, I'd need some alternate zoom level for the animation editor. Bilou, dumblador, ... they aren't the size of that Mr. Egg. I did a try a few weeks ago, but at some point, the code that enforce that position is at a specific pixel (not a fraction) despite the zoom level wasn't planned to work at other levels. More thouhgts needed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;edit: &lt;/span&gt;Oh, well, and of course, there's the &lt;a href="http://sylvainhb.blogspot.com/search/label/newcollide"&gt;revised collision engine&lt;/a&gt;, still pending in its branch. Maybe *that* should be the immediate focus ...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;edit+:&lt;/b&gt; My milestone for the next release of LEDS should be to ensure that it's fun for a middle-aged kid to draw his own level. That may require the ability to "freely draw" an object for which no pixel art exist yet, and to allow that object to be imported in SEDS later.&lt;br /&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1945875521969924662?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1945875521969924662/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1945875521969924662' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1945875521969924662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1945875521969924662'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/12/wanted-features.html' title='wanted features'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LtwkN4oRTe0/Sq95fOquLKI/AAAAAAAABmM/JA5IQpqnqy4/s72-c/mapedit.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-3340494934740066092</id><published>2011-12-10T15:04:00.009+01:00</published><updated>2012-01-21T14:22:19.287+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixels'/><category scheme='http://www.blogger.com/atom/ns#' term='superpowers'/><category scheme='http://www.blogger.com/atom/ns#' term='lost zone'/><category scheme='http://www.blogger.com/atom/ns#' term='dsnews'/><category scheme='http://www.blogger.com/atom/ns#' term='sketch'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>The art of Shantae</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-WhVZdyMqX-g/TuNq4SI_QLI/AAAAAAAADUg/md0L2CXQeIo/s1600/shantae02.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 260px; height: 320px;" src="http://2.bp.blogspot.com/-WhVZdyMqX-g/TuNq4SI_QLI/AAAAAAAADUg/md0L2CXQeIo/s320/shantae02.png" alt="" id="BLOGGER_PHOTO_ID_5684504669846454450" border="0" /&gt;&lt;/a&gt;Prenez votre princesses des 1001 nuits préférée, assurez-vous qu'un djinn lui offre ses pouvoirs histoire de se transformer à volonté et qu'elle sait vous envoyer claquer ses cheveux à la figure sans trop craindre le tour de rein. Rétrécissez-là pour qu'elle ne dépasse pas les 64 pixels de haut, et vous avez un assez bon aperçu de &lt;a href="http://www.cheapassgamer.com/forums/showthread.php?t=238430"&gt;Shantae&lt;/a&gt;, l'héroïne qui me garde scotché à ma DSi ces derniers temps.&lt;br /&gt;&lt;br /&gt;Il faut dire qu'avec les graphismes de &lt;a href="http://www.pixinspace.com/"&gt;Henk Neiborg&lt;/a&gt; et la musique de &lt;a href="http://virt.bandcamp.com/album/shantae-riskys-revenge-original-soundtrack"&gt;Jake 'Virt' Kaufman&lt;/a&gt;, la demoiselle me faisait déjà de l'oeil quand elle n'était qu'au stade d'esquisse dans les cartons de WayForward en 2008 ... Au point que j'avais fini par désespérer d'y jouer un jour avant que sa sortie ne soit annoncée ... sur le DSiware exclusivement. Un choix que je comprends mieux maintenant que je suis au portes du repaire de Risky après 6h30 de jeu (et 3 donjons uniquement), une distribution en grande surface n'aurait probablement pas valu le coup.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;If you own a DSi and enjoy platformers, Shantae: Risky's Revenge is definitely worth 1000 of your dsiware 'points'. No kidding. WayForward studios know where to find pixel and chiptune experts to bring you into an unprecendented experience. Three dungeons only, but connected by a nice overworld for you to explore with hidden treasures here and there that will allow you to upgrade your character at the town's shop. Does it sounds like an RPG instead ? Well, there are definitely some quest-based elements in that little gem as well. More than Mario inspiration, imho.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-BetDxvSE80M/TuNnLyBcCSI/AAAAAAAADUY/2BCkTCGOl00/s1600/artofshantae16.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 255px; height: 320px;" src="http://1.bp.blogspot.com/-BetDxvSE80M/TuNnLyBcCSI/AAAAAAAADUY/2BCkTCGOl00/s320/artofshantae16.png" alt="" id="BLOGGER_PHOTO_ID_5684500606775724322" border="0" /&gt;&lt;/a&gt;Côté gameplay, on est clairement dans un jeu de plate-forme, "armes à la main" (pas de rebonds à la Mario, donc), mais à portée réduite (donc, pas à la Megaman non plus). En fait, avec son échoppe du village qui vend de la crème de soin pour cheveux et les pouvoirs magiques à faire grimper au fil du jeu, avec ses boss qui dialoguent et son design narratif, c'est encore à un Zelda que Shantae ressemble le plus, assez paradoxalement. Les phases d'explorations entre 2 donjons sont là, elles aussi, avec des objets ridicules à récupérer pour faire un Cafe-latte à l'oeuf pourri pour les frangins de votre copine la zombie ...&lt;br /&gt;&lt;br /&gt;C'est aussi la conception du 1er donjon qui m'a mis dans cet état d'esprit "un zelda dans un jeu de plate-forme". Des jarres à casser pour récupérer des petits coeurs, des fioles vertes pour reprendre de la magie, un parcours tortueux où l'on constate que "rhaa! impossible d'atteindre ce coffre", jusqu'au moment où l'on trouve un autel magique qui donne accès au pouvoir de transformation en petit singe. Et désolé pour les fans de Sailor X, Shantae garde bien tous ses vêtements lors de ses transformations, &lt;a href="http://gameboy.ign.com/articles/135/135286p1.html"&gt;mais se déhanche sur des pas de danses&lt;/a&gt; qui remettent dans l'ambiance "foufi et le tapis magique" ceux dont l'esprit se serait trop égaré du côté d'Hyrule.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I have plans for a "lost temple" zone in Bilou since I've seen &lt;a href="http://www.wayofthepixel.net/pixelation/index.php?topic=4445.msg58221#msg58221"&gt;TomF's temple level&lt;/a&gt; on pixelation. But that's not a environment I'm comfortable, so I also gave Shantae a second run and picked my sketchPad to capture as much knowledge as I could on how it is built up. I hope I'll be able to use that later to create great pixels ...&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-BP421zYGnFU/TuNnLX18VhI/AAAAAAAADUI/MOB98tl64SE/s1600/shantae-level.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 278px; height: 320px;" src="http://3.bp.blogspot.com/-BP421zYGnFU/TuNnLX18VhI/AAAAAAAADUI/MOB98tl64SE/s320/shantae-level.png" alt="" id="BLOGGER_PHOTO_ID_5684500599748187666" border="0" /&gt;&lt;/a&gt;Alors comme je manque un peu de références pour faire un bon environnement "&lt;a href="http://sylvainhb.blogspot.com/2008/05/dangerous-temple.html"&gt;temple perdu&lt;/a&gt;" pour Bilou (inspiré de la '&lt;a href="http://www.studio-quena.be/cyborgjeff/site/1996/07/02/224-nono-maya-zone/"&gt;Maya Zone&lt;/a&gt;' proposé il y a longtemps par mon frère pour un autre jeu), je reprends la DSi et le "sketchbook" que mon beau-frère m'a offert l'autre jour et j'analyse les graphismes de mon mieux. Curieux, d'ailleurs, de constater que si l'overworld de Shantae est varié et chatoyant, tous les donjons (et grottes) utilisent plus ou moins les même graphismes, beaucoup plus simples -- rien à voir avec les coups d'essais de Henk en 2008. Mais une savante combinaison de décors chatoyant (dans un donjon, oui, oui) et de variation de teintes feront que le joueur se focalisera sur ce qui est "dans le thème" et ne se rendra compte de ce détail que s'il fait explicitement attention aux graphismes. Et quelle maîtrise. Ici, le buisson pend du plafond, là il est posé sur le sol. Même une salle rectangulaire "toute simple" est rendue graphiquement intéressante par une foule de ruses.&lt;br /&gt;&lt;br /&gt;Bref, j'en ai encore une fameuse dose à apprendre et à maîtriser.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;And yeah, the game is a bit short, esp. compared to &lt;a href="http://shantae.wikia.com/wiki/Overworld_%28Shantae_%28GBC%29%29"&gt;what the GBC version offered&lt;/a&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-3340494934740066092?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/3340494934740066092/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=3340494934740066092' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3340494934740066092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3340494934740066092'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/12/art-of-shantae.html' title='The art of Shantae'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-WhVZdyMqX-g/TuNq4SI_QLI/AAAAAAAADUg/md0L2CXQeIo/s72-c/shantae02.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1171439070295679891</id><published>2011-12-08T20:20:00.001+01:00</published><updated>2011-12-08T23:14:37.338+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='greenzone'/><category scheme='http://www.blogger.com/atom/ns#' term='english'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>Ubiart: mission réussie.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-YiFTy2TN5VA/TuDGZoaAUbI/AAAAAAAADTk/M8_ZLw415u4/s1600/shot_1_16.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 180px;" src="http://1.bp.blogspot.com/-YiFTy2TN5VA/TuDGZoaAUbI/AAAAAAAADTk/M8_ZLw415u4/s320/shot_1_16.jpg" alt="" id="BLOGGER_PHOTO_ID_5683760873387086258" border="0" /&gt;&lt;/a&gt;La 2D fait un grand retour dans les jeux vidéos. Ce qui a commencé avec les pixels tout anguleux de Cave Story s'est poursuivi dans un style beaucoup plus inédit pour Braid, et confirmé avec une reprise de "Boy &amp;amp; his Blob" (par &lt;a href="http://en.wikipedia.org/wiki/WayForward_Technologies"&gt;WayForward&lt;/a&gt; ... tiens, tiens ;) tout à fait croustillante et merveilleuse. Le livre-pour-enfants-dont-vous-êtes le héros était plus ou moins né. Par un merveilleux détournement des capacités graphiques de nos consoles modernes, il devient possible de construire des mondes vidéo-ludiques sans jamais avoir à se tracasser du nombre de couleurs, de la résolution, ou d'une quelconque limitation matérielle. En gros: dessinez, c'est gagné.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;There was a time were video games were slaves of the third dimension and polygon counts. No game would be seriously considered if it hadn't 360° exploration, jerky textures when approached too close and odd camera decisions (or a secondary direction stick for direct camera control). Hopefully, in 2004, the world realised that a old-fashioned, 2D video game could attract masses as well if, like Cave Story, it had inherent soul that made it interresting to play.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-ZBRzdEgq4EA/TuDcJEgo-8I/AAAAAAAADTw/2ZWisZihfPY/s1600/BlobParachute.JPG"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 212px;" src="http://3.bp.blogspot.com/-ZBRzdEgq4EA/TuDcJEgo-8I/AAAAAAAADTw/2ZWisZihfPY/s320/BlobParachute.JPG" alt="" id="BLOGGER_PHOTO_ID_5683784778129144770" border="0" /&gt;&lt;/a&gt;Oui, mais alors, on va pouvoir de nouveau faire des jeux vidéos &lt;a href="http://sylvainhb.blogspot.com/search/label/nostalgy"&gt;comme au bon vieux temps&lt;/a&gt; ? un graphiste pour les décor, un animateur pour les sprites et un gars qui sait coder convenablement pour lier un peu le tout ... Plus besoin d'une équipe de 40 personne avec trois managers et tout un château pour leur permettre de bosser? On va enfin pouvoir donner libre cours à sa créativité sans devoir d'abord convaincre la moitié de l'équipe qu'on tient le bon bout ?&lt;br /&gt;&lt;em&gt; It took some time for this truth to reach the major videogame studios, but Nintendo got it clearly: New Super Mario Bros used the 3D power of the DS to bring it diversity in moves and greater control over the character, but the gameplay was back to something simple, that can be mastered in a few days, not in months.&lt;br /&gt;&lt;br /&gt;And with the Wii edition, platforming rediscovered its true nature: to bring in a fun experience where cooperation amongst player is the key to success.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Sauf erreur de ma part, c'est la le pari de &lt;a href="http://ubi-art.uk.ubi.com/"&gt;UbiArt,&lt;/a&gt; le "kit de développement" derrière la réalisation de Rayman: Origins.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-867NRMv1WJY/TuDF-aKUJgI/AAAAAAAADTY/c8ZKlVNmxLQ/s1600/ro_screenshot_pyramidteam.jpg"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 180px;" src="http://4.bp.blogspot.com/-867NRMv1WJY/TuDF-aKUJgI/AAAAAAAADTY/c8ZKlVNmxLQ/s320/ro_screenshot_pyramidteam.jpg" alt="" id="BLOGGER_PHOTO_ID_5683760405706712578" border="0" /&gt;&lt;/a&gt;Parce qu'entre temps, même Nintendo s'est remis à la 2D "remasterisée". New Super Mario Bros, Kirby ... Le hard-core gamer peut continuer à se tordre les pouces sur ses manettes bizarres, nous on s'en sort très bien avec nos vieux pads et nos 3 boutons. D'autant que cette vue sur le côté permet bien plus facilement de faire intervenir plusieurs joueurs &lt;span style="font-style: italic;"&gt;dans la même pièce&lt;/span&gt;. Un argument de poids qui donne au titre un aspect super-convivial. Familial, même. De quoi délier les bourses à l'approche de Noël autour du nouveau phénomène: le jeu-vidéo-de-société.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;It was now only a matter of tools that video game could once again become the affair of a small team, where creativity and fun can prevail over technical effects and shaders. Ubisoft built that tool and created Rayman: Origins with roughly 5 people, where the original "Rayman vs. Mr Dark" on PSX ultimately enrolled up to 100 people, artists, coders, animators ... to make something simpler come to life. And not only the world of Rayman: Origins is beautiful. It really feels alife. &lt;/em&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-U_WBY23GhPY/TuDgDy17OzI/AAAAAAAADT8/YpOV7qC5c4o/s1600/111711041143epvi5z1jzbj7n1k6t.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 186px;" src="http://1.bp.blogspot.com/-U_WBY23GhPY/TuDgDy17OzI/AAAAAAAADT8/YpOV7qC5c4o/s320/111711041143epvi5z1jzbj7n1k6t.png" alt="" id="BLOGGER_PHOTO_ID_5683789085533748018" border="0" /&gt;&lt;/a&gt; Il restait à Michel Ancel un défi à relever: rendre son monde virtuel vivant. Bien plus difficile dans un jeu vidéo que dans un dessin animé, car le joueur peut s'arrêter à tout moment, et ce sera alors à l'environnement du jeu de convaincre qu'on est pas juste devant un joli tableau mais &lt;span style="font-style: italic;"&gt;dans un monde&lt;/span&gt;. Sans ça, l'immersion tombe -- et l'immersion, c'est un point déterminant pour avoir un jeu réussi. Eh bien, pas de soucis. Par un impressionnant mélange de parallaxe, d'ajustement du niveau de détail, d'animation vectorielle et j'en passe, le défi est relevé. Je n'étais franchement pas un fan du "nouveau look" de Rayman, qui semble avoir subi un croisement avec les blork de Kid Paddle, mais le résultat est là. Amusant, dynamique, de toute beauté ... Je n'ai pas de PS3 et croyez bien que j'attend avec impatience la &lt;a href="http://www.studio-quena.be/cyborgjeff/blog/2011/10/16/tant-que-je-peux-encore-le-faire/"&gt;prochaine invitation de mon frangin&lt;/a&gt; ;)&lt;br /&gt;&lt;em&gt;This multiple levels of parallax scrolling with hand-painted hills and grass give a feeling of immersion and environmental freedom that is imho unprecedented, even in Mario 64 and its friends. The action is still almost purely 2D, but you'll never feel like "why the hack can't I pass *next to* this monster rather than fight it". Reason number one is that at some other places, you clearly had some depth around you. The second reason is that it's quite fun to fight monsters here :)&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1171439070295679891?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1171439070295679891/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1171439070295679891' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1171439070295679891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1171439070295679891'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/12/ubiart-mission-reussie.html' title='Ubiart: mission réussie.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-YiFTy2TN5VA/TuDGZoaAUbI/AAAAAAAADTk/M8_ZLw415u4/s72-c/shot_1_16.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-6575085883326128012</id><published>2011-12-06T22:00:00.003+01:00</published><updated>2012-01-13T12:20:14.949+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='todo'/><category scheme='http://www.blogger.com/atom/ns#' term='feedback'/><category scheme='http://www.blogger.com/atom/ns#' term='sprite editor'/><category scheme='http://www.blogger.com/atom/ns#' term='freehand'/><category scheme='http://www.blogger.com/atom/ns#' term='english'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><category scheme='http://www.blogger.com/atom/ns#' term='traduis-moi'/><title type='text'>SEDS interface revision with Atnas</title><content type='html'>One of Pixelation forum moderator started investigating tools for pixel-art (essentially game art) on DS/DSi. The only competitors listed against SEDS were actually animation programs (animatee and InchWorm on the DSiware). &lt;a href="http://www.dev-fr.org/index.php/topic,2779.msg22449.html#msg22449"&gt;Pocket Pixie&lt;/a&gt;s and &lt;a href="http://sylvainhb.blogspot.com/2007/06/smoove-ds-another-sprite-editor-in.html"&gt;Smoove&lt;/a&gt; are defunct homebrew. Yet, SEDS is still far from being user-friendly.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wayofthepixel.net/pixelation/index.php?topic=13359"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 100px; height: 57px;" src="http://3.bp.blogspot.com/-_OBiYhrhcj4/TtX0QcxWViI/AAAAAAAADSE/5noMphg_H30/s320/santavatar.png" alt="" id="BLOGGER_PHOTO_ID_5680715068436010530" border="0" /&gt;&lt;/a&gt;&lt;blockquote style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-style: italic;"&gt;My main problem with  the interface is even with the documentation, I have no idea what  anything does and the controls don't respond as I'd expect, in fact at  times they seem situational. I think if a little screenspace was  dedicated to a tiny toolbox it would help things a lot. Another option  is a sort of pop up menu like animanatee does: when you hold a key, in  their case it's &lt;span style="font-weight: bold;"&gt;L&lt;/span&gt;, all the options are at your fingertips.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Also,  sometimes when I'm fooling around with the tools to try to learn them, I  get locked out and cant find my way back to drawing and need to  restart.&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;While I pixel I'll only ever have one hand for buttons,  so making the left (or right, its usually mirrored in ds tools) dpad  (buttons) contain everything I'll need is a plus.&lt;br /&gt;If you want, I  could give you a mockup of what sort of thing would be most helpful.  SEDS is much more powerful than anything else out there, it's just much  harder to use.&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-_gfaQfxbMkU/TtX0brgKjbI/AAAAAAAADSQ/mr7fP1yubeI/s1600/cols-draw.png"&gt;&lt;img style="float: right; margin: 0px 0px 10px 10px; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/-_gfaQfxbMkU/TtX0brgKjbI/AAAAAAAADSQ/mr7fP1yubeI/s320/cols-draw.png" alt="" id="BLOGGER_PHOTO_ID_5680715261369028018" border="0" /&gt;&lt;/a&gt;My first modification was thus to make sure &lt;b&gt;you can always return to the normal "drawing" mode&lt;/b&gt;, by the addition of a "Draw" button on every sub-screens (such as palette screen or animator screen). That should avoid guest to get lost, even though they explore the controls. Pave they way out to the "normal" screen. I hope those colour-reduction buttons will not cause trouble.&lt;br /&gt;&lt;br /&gt;&lt;em&gt; SEDS est difficile à prendre en main. Ce n'est plus un scoop. Mais quand c'est un modérateur sur Pixelation qui en fait la remarque alors qu'il cherche un moyen de dessiner des graphismes pour un jeu avec une DS, ça a de quoi me motiver ... et pas qu'un peu. En attendant qu'il me propose un 'mock-up'  pour une interface graphique remaniée et réponde à mon questionnaire, j'essaie déjà de résoudre les deux problèmes principaux que j'ai pu identifier en discutant avec lui: permettre à tout moment de recommencer à dessiner et choisir ses outils de dessin sans le secours des boutons ABXY.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-vx277Om5FKE/Tt4KPhRcWrI/AAAAAAAADTM/-UXViYiMdGQ/s1600/seds-toolset.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 254px; height: 192px;" src="http://3.bp.blogspot.com/-vx277Om5FKE/Tt4KPhRcWrI/AAAAAAAADTM/-UXViYiMdGQ/s320/seds-toolset.png" alt="" id="BLOGGER_PHOTO_ID_5682991041533991602" border="0" /&gt;&lt;/a&gt; Second message I've heard: keep the stylus-holding hand free. I mapped quite a lot of controls on the ABXY buttons, especially on the grid. If one doesn't know too well the drawing options available, it's easy to be confused. The "block", for instance, doesn't immediately draw, but needs two touches for the two extreme corners. Now, the tool you're using is always highlighted, and you can select a tool by just clicking the toolset on the top line.&lt;br /&gt;&lt;br /&gt;Now, I still have to work on a way to provide a "menu" for secondary actions. Colour reduction, palette re-ordering and similar actions could be candidates, but I'll have to think which one must really go there to unclutter the UI without making most actions being multi-click.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-Jh2rVUKFCk4/TtiD1DUCSKI/AAAAAAAADTA/uVcELlvz_uo/s1600/seds-freesketch.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 257px; height: 195px;" src="http://1.bp.blogspot.com/-Jh2rVUKFCk4/TtiD1DUCSKI/AAAAAAAADTA/uVcELlvz_uo/s320/seds-freesketch.png" alt="" id="BLOGGER_PHOTO_ID_5681435877373528226" border="0" /&gt;&lt;/a&gt; There are other features I'd like to bring to SEDS, and one of them is free-hand sketching at "real DS resolution" over the "grid", so that you can then do your anti-aliasing or curves rendering with some guide-line.&lt;br /&gt;&lt;br /&gt;Anyway. I'm waiting for Atnas' feedback in form of a UI mock-up ... Let's see whether we'll also have SEDS revised for christmas ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-6575085883326128012?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/6575085883326128012/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=6575085883326128012' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6575085883326128012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6575085883326128012'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/12/seds-interface-revision-with-atnas.html' title='SEDS interface revision with Atnas'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-_OBiYhrhcj4/TtX0QcxWViI/AAAAAAAADSE/5noMphg_H30/s72-c/santavatar.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-4536676328851250071</id><published>2011-11-30T22:45:00.005+01:00</published><updated>2011-12-07T13:23:53.793+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>release_name="svn SEDS r" REVISION ;</title><content type='html'>&lt;em&gt;Once again, I ended up fighting on my DS with a tool (AnimEDS) that has a bug (timeline edition) I'm pretty sure I've addressed weeks ago. Question is: is the DS running the latest version or not ? well, except if I manage to re-create various versions of the software and compare their MD5 with the one on the DS ... hmmm ... unlikely to work with DLDI patching :-/&lt;br /&gt;&lt;br /&gt;So I just acted at the source: modified the makefiles so that they extract the revision number from &lt;key&gt;svn info&lt;/key&gt; and turn that into a C string I can display from the welcome screen. I won't pretend it's clever: there are sure &lt;a href="http://stackoverflow.com/questions/4717950/svn-how-to-tell-revision-number"&gt;tons of way to achieve that&lt;/a&gt;, 90% of them being largely proof-tested and documented. I just needed one version that works for my own development, so I won't even look at automake or $CVS or whatsoever. A &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/trunk/LevelEditor/Makefile?r1=880&amp;r2=888"&gt;&lt;key&gt;grep|head|sed&amp;gt;&lt;/key&gt; oneliner&lt;/a&gt; just makes it.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Avec un peu de chance, je ne perdrai plus mon temps, dans la suite du projet sur DS, à tenter de deviner si j'ai bien la dernière version d'un de mes outils sur ma DS quand je repère un bug. Je viens de remodifier les sources de LEDS, SEDS et AnimEDS pour qu'ils annoncent automatiquement la "version svn" qui a servi à les compiler (bon, ça marchera surtout si je fais un commit avant de faire le "make all install" ;). Pas particulièrement propre, sûrement pas original, et même pas repompé d'un truc préexistant. Bricolé en 1/2 heure. Mais je sens que ça va être drôlement utile. &lt;br /&gt;&lt;br /&gt;Allez, ciao. Je vous en montre plus dès que j'ai réussi à faire passer mon commit à travers ce firewall à 2 balles.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;b&gt;edit&lt;/b&gt;: there's a danger that remains: when I re-build one of the projects, I may miss to re-build libgeds or runme first on that platform, which could lead to some features not to work properly. That just happened with "wfcWindow::restore()" that wasn't called for some odd vtable-linking messy reason.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-4536676328851250071?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/4536676328851250071/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=4536676328851250071' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/4536676328851250071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/4536676328851250071'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/11/releasenamesvn-seds-r-revision.html' title='release_name=&quot;svn SEDS r&quot; REVISION ;'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-9163118100700280981</id><published>2011-11-29T07:52:00.005+01:00</published><updated>2011-12-20T17:59:03.797+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='newcollide'/><category scheme='http://www.blogger.com/atom/ns#' term='planning'/><title type='text'>Lake District.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ling.lancs.ac.uk/images/campus/InfoLab21-in-foliage.jpg"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 202px; height: 134px;" src="http://www.ling.lancs.ac.uk/images/campus/InfoLab21-in-foliage.jpg" alt="Infolab21" title="c'est plus sympa en été au milieu des fleurs et des lapins que fin novembre, quand on doit se cacher du vent en permanence :P" border="0" /&gt;&lt;/a&gt;6h du mat... si j'ai dormi 4 heures sur la nuit, c'est beaucoup. Le lit est une vraie planche, et si mes voisins de paliers ne sont pas franchement bruyants, l'accoustique du bâtiment ne permet pas d'apprécier leurs tentatives de discrétion à leur juste valeur. Je suis en visite dans le &lt;abbr title="faudra pas que j'oublie de désactiver leur cache web une fois rentreé, d'ailleurs..."&gt;district des lacs&lt;/abbr&gt; pour la semaine ... et je sens que ça va être un longue, très longue semaine.&lt;br /&gt;&lt;br /&gt;Avec du café et des &lt;a href="http://en.wikipedia.org/wiki/Banana#Uses" title="c'est plein de magnésium, les bananes!"&gt;bananes&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Mais bon, faisons un peu le point. Début de l'année, je me fixais pour objectif de faire une première release publique de l'éditeur de niveau et de passer mes autres outils sous le "nouveau" devkitpro. C'est fait. Je me suis autorisé à faire de nouveaux graphismes pour la School zone, étant donné "qu'un premier jeu a été réalisé avec les graphismes de la green zone". Ils ne sont pas encore au complet (il me manque un décor potable, par exemple, peut-être en transformant la bibliothèque en un vrai campus), mais ils prennent forme. Le prochain jeu d'arcade de Bilou se fera dans la school zone. Ce sera sans doute "deep ink pit", mais il y aura une ou deux "gedsdemo" avant ça, pour tester le comportement des monstres... et m'amuser un peu ^_^&lt;br /&gt;&lt;br /&gt;Ce serait peut-êtr bien le moment, tiens, de mettre le couvert avec les monsstrrrres. Un bien grand mot pour Bop, Dumblador et les encriers que ma petite puce nomme maintenant avec excitation. "Tu vas dessiner Bilou, toi?" me demande-t'elle à chaque allumage de ma DS(i) ... et ces derniers jours la réponse était plutôt "non, ma puce, Papa essaie le jeu de quelqu'un d'autre" (Shantae. On en reparlera). Voyons...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://sylvainhb.blogspot.com/search/label/spongebop"&gt;Bop, l'éponge&lt;/a&gt;, pendue à son fil. Ça demande un contrôleur nouveau, capable de gérer ses oscillations. Je me suis déjà amusé à voir comment faire ça avec de "simples" accélérations autour d'un point... sur le papier, ça tient la route, mais il faudra le coder pour voir.&lt;/li&gt;&lt;li&gt;&lt;a href="http://sylvainhb.blogspot.com/search/label/inkjet"&gt;"inkjet"&lt;/a&gt;, l'encrier. Lui, il attendra sans doute que j'ai une version qui compile du nouveau moteur de collision: il est le candidat idéal pour les alignements de Gobs qui rende possible les poussées, transports et autres plate-formes mobiles.&lt;/li&gt;&lt;li&gt;&lt;a href="http://sylvainhb.blogspot.com/search/label/spongebop"&gt;Dumblador&lt;/a&gt;. Je devrais probablement commencer par là. En plus, c'est le candidat idéal pour faire quelques tests d'animations modulaire, vu que je ne lui ai pas dessiné de pieds. J'aimerais reprendre les pieds de Bilou, mais en rouge. Solution de facilité ? les recoloriser. Solution idéale ? activer enfin le support multi-palettes, puisque la DS supporte en réalité 32 palettes de 256 couleurs (16 pour les tiles et 16 pour les sprites).&lt;/li&gt;&lt;/ul&gt;Je crois que je vais choisir la facilité pour l'instant. Sinon, on risque fort d'en causer encore à Noël. Or, ce serait plus sympa de faire des essais dans gedsdemo-books, à Noël, non ?&lt;br /&gt;&lt;br /&gt;Bon, là-dessus, il est enfin 7h ... je vais aller trainer mes baskets jusqu'au bâtiment où ils servent le petit déj.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Oh, well. Sorry, english-speaking folks. I was just "thinking out loud" to figure out where to move now. Since I'll have to speak english the whole week (travelling), please allow me not to provide a personnal translation this time :P&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-9163118100700280981?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/9163118100700280981/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=9163118100700280981' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/9163118100700280981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/9163118100700280981'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/11/lake-district.html' title='Lake District.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1445359595052975130</id><published>2011-11-27T16:46:00.007+01:00</published><updated>2011-11-30T11:11:59.098+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='todo'/><category scheme='http://www.blogger.com/atom/ns#' term='level editor'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><title type='text'>Level Editor for DS : 0.1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-tq3tkm4goPY/TtJeuUOOakI/AAAAAAAADQ0/H1PyGcVJtnc/s1600/leds-copie.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 215px; height: 320px;" src="http://4.bp.blogspot.com/-tq3tkm4goPY/TtJeuUOOakI/AAAAAAAADQ0/H1PyGcVJtnc/s320/leds-copie.png" alt="" id="BLOGGER_PHOTO_ID_5679706229862984258" border="0" /&gt;&lt;/a&gt;Nous y voilà enfin: mon éditeur de niveaux &lt;a href="http://sourceforge.net/projects/dsgametools/files/dsgametools/leds-01.zip/download"&gt;&lt;span style="font-style: italic;"&gt;disponible au téléchargement&lt;/span&gt;&lt;/a&gt;, avec les bugs corrigés, même si l'interface reste assez expérimentale. Avec en prime deux tilesets Creative Common pour vos petits tests: "generic.spr" par &lt;a href="http://opengameart.org/users/surt"&gt;Surt&lt;/a&gt; (CC-BY-SA) et "frogatto-dirt.spr" (CC0) par &lt;a href="http://neoriceisgood.deviantart.com/art/9-110338890"&gt;Guido Bos&lt;/a&gt;. Amusez-vous bien, les tifous: la &lt;a href="http://www.dev-fr.org/index.php/topic,5213"&gt;version française du tutoriel &lt;/a&gt;est en construction sur le fil "dev-fr".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sourceforge.net/projects/dsgametools/files/dsgametools/leds-01.zip/download"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 261px; height: 58px;" src="http://2.bp.blogspot.com/-Nf8mo7GL_MU/TtJgoUBIogI/AAAAAAAADRE/U6gE94NpBgI/s400/download-leds.png" alt="" id="BLOGGER_PHOTO_ID_5679708325752119810" border="0" /&gt;&lt;/a&gt;&lt;em&gt;Huzzah! At last, you've got it. My long-delayed Level Editor for Nintendo DS (LEDS) is at &lt;a href="http://sourceforge.net/projects/dsgametools/files/dsgametools/leds-01.zip/download"&gt;last available for download&lt;/a&gt; with some sample tilesets to toy with ^_^. Thanks fly to Surt and Guido Bos for releasing their game art under creative-common license on OpenGameArt.&lt;br /&gt;&lt;br /&gt;The software is still a bit rough on the angles, so make sure you've got &lt;a href="http://sylvainhb.blogspot.com/p/level-editor-for-ds.html"&gt;the tutorial page&lt;/a&gt; displayed on some screen when you'll use it for the first time(s)...&lt;br /&gt;and now ...&lt;br /&gt;&lt;center&gt;Go create!&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Features that I still wish to see appearing in a future release (check back &lt;a href="http://sylvainhb.blogspot.com/2009/09/revision-du-leveleditor.html"&gt;this post for UI mock-up&lt;/a&gt;):&lt;br /&gt;&lt;/em&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;[&lt;a href="http://sylvainhb.blogspot.com/2010/06/petite-pause-leds.html"&gt;hint&lt;/a&gt;] provide a way to change "type of tile" when editing the meta-layer, without requiring on-map display. (we have the whole ABXY buttons disabled in that mode, right ?)&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;flipped tiles that also work in "copy" mode&lt;/em&gt;&lt;/li&gt;&lt;li&gt;area manipulation (overlays?)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;map size edition (crop, extend)&lt;/li&gt;&lt;li&gt;map sketching (zoomed-out drawing)&lt;/li&gt;&lt;li&gt;map radar widget&lt;/li&gt;&lt;li&gt;multi-palette support on the BG layer (needs SEDS coordination)&lt;/li&gt;&lt;li&gt;more robust monster edition mode.&lt;/li&gt;&lt;li&gt;use the ARGV protocol to quick-load a map from runMe *at a specific position*.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;em&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1445359595052975130?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1445359595052975130/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1445359595052975130' title='5 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1445359595052975130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1445359595052975130'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/11/level-editor-for-ds-01.html' title='Level Editor for DS : 0.1'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-tq3tkm4goPY/TtJeuUOOakI/AAAAAAAADQ0/H1PyGcVJtnc/s72-c/leds-copie.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1095566842661160021</id><published>2011-11-20T17:24:00.012+01:00</published><updated>2011-11-30T10:45:17.233+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='level editor'/><category scheme='http://www.blogger.com/atom/ns#' term='done'/><category scheme='http://www.blogger.com/atom/ns#' term='tileset'/><title type='text'>LEDS &amp; OpenGameArt ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://opengameart.org/content/old-frogatto-tile-art"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 259px; height: 197px;" src="http://3.bp.blogspot.com/-12JK6aE1Ox4/TskpyPyfHZI/AAAAAAAADPI/03qoj5aw168/s320/frogatto-tiles.png" alt="" id="BLOGGER_PHOTO_ID_5677114748485705106" border="0" /&gt;&lt;/a&gt;Si vous en connaissez pas encore &lt;a href="http://opengameart.org/art-search-advanced?field_art_tags_tid=Pixel%20Art"&gt;opengameart&lt;/a&gt;, c'est bien dommage. Des dizaines de graphismes pour des jeux vidéos offerts à la réutilisation par leurs créateurs, voilà qui devrait éviter de passer par la case "voler les sprites de Mario" à bien des game-makers amateurs.&lt;br /&gt;&lt;br /&gt;Comme je recommence à bosser sur mon éditeur de niveaux, la question se pose à nouveau "quels graphismes pour une version démo", histoire que vous puissiez essayer le soft même si le pixel art est totalement obscur pour vous. Eh bien, pourquoi pas ces anciens graphismes du jeu &lt;span style="font-style: italic;"&gt;&lt;a href="http://sylvainhb.blogspot.com/2010/10/dis-moi-qui-tu-hantes-et-je-te-dirai.html#frogatto"&gt;frogatto&lt;/a&gt;&lt;/span&gt;, justement ?&lt;br /&gt;&lt;br /&gt;&lt;em&gt;It looks like you won't get &lt;a href="http://sylvainhb.blogspot.com/2011/01/todo.html"&gt;biokid-inspired tiles&lt;/a&gt; for the &lt;s&gt;demo&lt;/s&gt; first &lt;a href="http://sylvainhb.blogspot.com/2011/11/level-editor-for-ds-01.html"&gt;release of LEDS&lt;/a&gt;. Neither will you get that &lt;a href="http://sylvainhb.blogspot.com/2010/11/open-sourcing-apple-assault.html"&gt;8-bit-restricted tileset&lt;/a&gt; for Apple Assault. Why would I push poor/old game art of mine where there's some ready-for-use tilesets on OpenGameArt, hmm ? These old frogatto tiles, for instance, dropped into public domain, would be perfectly fine. With some luck, annoying bugs should be gone by end of the week, and I'll be (at last) able to offer you a level-editor release 0.1 to toy with ^_^.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;La question étant réglée, il me reste quand même&lt;br /&gt;&lt;ol&gt;&lt;li&gt;à m'arranger pour que la partie du niveau à l'écran ne soit pas perdue quand on quitte le mode "édition des monstres" -&amp;gt; &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;amp;revision=881"&gt;done&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;à permettre de nommer la map au moment de la sauvegarde -&amp;gt; &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;amp;revision=882"&gt;done&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;à vider le lave-vaisselle.&lt;/li&gt;&lt;li&gt;à permettre le "flipping" des graphismes dans l'éditeur de map. -&amp;gt; test&lt;br /&gt;&lt;/li&gt;&lt;li&gt;à garantir la cohérence du "curseur" sur le tileset. -&amp;gt; &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/trunk/LevelEditor/source/TileWindow.cxx?r1=879&amp;amp;r2=883&amp;amp;pathrev=883"&gt;done&lt;/a&gt;&lt;/li&gt;&lt;li&gt;à empêcher le passage en mode "draw" depuis le "meta-layer" -&amp;gt; done.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;edit&lt;/span&gt;: fichier converti avec les mêmes options &lt;a href="http://sylvainhb.blogspot.com/2010/10/small-step-for-me-giant-leap-for-badman.html"&gt;que la "spritesheet" de Badman&lt;/a&gt;, l'automne dernier (déjà!).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1095566842661160021?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1095566842661160021/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1095566842661160021' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1095566842661160021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1095566842661160021'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/11/leds-opengameart.html' title='LEDS &amp; OpenGameArt ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-12JK6aE1Ox4/TskpyPyfHZI/AAAAAAAADPI/03qoj5aw168/s72-c/frogatto-tiles.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-4094422885201446249</id><published>2011-11-19T11:31:00.003+01:00</published><updated>2011-11-19T12:02:36.838+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='biokid'/><category scheme='http://www.blogger.com/atom/ns#' term='superpowers'/><category scheme='http://www.blogger.com/atom/ns#' term='game design'/><title type='text'>Biokid strikes again</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-Y73nfChQH3A/TseLeXXG1SI/AAAAAAAADO4/cb-WZ0RbJKg/s1600/Biokid-xp.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 128px; height: 64px;" src="http://1.bp.blogspot.com/-Y73nfChQH3A/TseLeXXG1SI/AAAAAAAADO4/cb-WZ0RbJKg/s200/Biokid-xp.png" alt="" id="BLOGGER_PHOTO_ID_5676659209107068194" border="0" /&gt;&lt;/a&gt;Nouvelle journée passé à faire des recherches sur les attaques distribuées au boulot hier, nouvelle insomnie biokidienne cette nuit. Après un parcours ardu entre les fichiers log et les dll compressées, biokid parvient à abaisser les défenses d'un C5-C0 en l'assaillant de 'YAP' plus vites que ses buffers ne le supportent, évitant de justesse les bombes que ce lourdaut lui envoie en guise de défense&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-togU2PVwxW8/Tsam1gf3LLI/AAAAAAAADOo/6QwL6ogTs_4/s1600/biokid-ripW.png"&gt;&lt;img style="float: right; margin: 0px 10px 10px 0px; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/-togU2PVwxW8/Tsam1gf3LLI/AAAAAAAADOo/6QwL6ogTs_4/s400/biokid-ripW.png" alt="" id="BLOGGER_PHOTO_ID_5676407818533940402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;It looks like everytime I work on intrusion detection, I end up daydreaming of &lt;a href="http://sylvainhb.blogspot.com/search/label/biokid"&gt;Biokid &lt;/a&gt;while I should be sleeping. No matter how hard I tried to sleep, the little blue dude kept jumping around, shooting at C5-C0 defense bots to stay unnoticed in the system he landed on. Then, in a flash, he broke into the bot's defense, scattering its internal logic and try to gather as many part of that logic as he can before the bot blow up. With all the pieces gathered, he'll be able to copy C5-C0's bombing ability.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Et tout d'un coup, juste avant que l'ennemi ne grille en un "core dump" définitif, un "dash" bien placé permet à Biokid de s'infiltrer au coeur même de ses défenses, éclatant sa logique interne dont il essaie de récupérer rapidement les morceaux ... Il faudra sans doute répéter l'opération sur un ou deux autres bots, mais quand les 16 fragments de C5-C0 auront été récupérés, Biokid pourra alors à son tour utiliser des bombes logiques ... et les C3-C0 actinalgiques n'auront qu'à bien se tenir...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-4094422885201446249?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/4094422885201446249/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=4094422885201446249' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/4094422885201446249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/4094422885201446249'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/11/biokid-strikes-again.html' title='Biokid strikes again'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Y73nfChQH3A/TseLeXXG1SI/AAAAAAAADO4/cb-WZ0RbJKg/s72-c/Biokid-xp.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-643360747245198789</id><published>2011-11-16T23:00:00.006+01:00</published><updated>2011-11-16T23:15:05.195+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='level design'/><category scheme='http://www.blogger.com/atom/ns#' term='fire zone'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>Fire Zone</title><content type='html'>Tout au fond de la Planète Mystérieuse où Bilou et Bouli sont crashés, il y a la "Zone du Feu", alias le "Volcan Terrible", alias la &lt;a href="http://www.yokotsuno.com/fr/album03.html"&gt;Forge de Vulcain&lt;/a&gt;. Inspiré par les étranges stalactites du niveau &lt;a href="http://www.kmgassociates.com/rayman/screens/sscave02.htm"&gt;"manger chez Joé"&lt;/a&gt; du premier Rayman, j'imagine une sorte de marmite de lave naturelle ou les dragons-fourchettes et autres chefs enflammés chercheraient à utiliser notre sympathique boule bleue comme épice exotique ...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.g4tv.com/images/4163/screenshots-rayman-origins-e3-2011-screenshots/68954/"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://2.bp.blogspot.com/-o1CQFLisZP4/TsQzo9bcOyI/AAAAAAAADOI/Y0NXiQrs3Xg/s320/275309_S.jpg" alt="" id="BLOGGER_PHOTO_ID_5675718209171110690" border="0" /&gt;&lt;/a&gt;&lt;em&gt;I'd like to come with something more interesting than a plain "fire zone" for Bilou... something like a giant foundry or ... yeah. A lava-cooking area with pepper-dispenser-shaped stalacmits and fork-headed dragons. Yes, that'd definitely be original ... or maybe the fire level in Rayman Origin is very original, and I've seen it before, but only remember it unconciously and will have to scratch my head to find something else :P&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Mais après avoir joué à la démo de Rayman Origins chez mon frère ... on dirait bien que je vais devoir trouver autre chose. Cette fois-ci, j'ai dû clairement subir une influence subliminale d'un screenshot ici où là.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-643360747245198789?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/643360747245198789/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=643360747245198789' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/643360747245198789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/643360747245198789'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/11/fire-zone.html' title='Fire Zone'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-o1CQFLisZP4/TsQzo9bcOyI/AAAAAAAADOI/Y0NXiQrs3Xg/s72-c/275309_S.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-7780979305579933233</id><published>2011-11-15T17:17:00.006+01:00</published><updated>2011-11-15T22:13:37.834+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixels'/><category scheme='http://www.blogger.com/atom/ns#' term='colours'/><category scheme='http://www.blogger.com/atom/ns#' term='feedback'/><category scheme='http://www.blogger.com/atom/ns#' term='school zone'/><title type='text'>You voted for ... both.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-RJ3xnfGGFPo/TsLCm0p_nxI/AAAAAAAADN4/T3MjjKkSWUQ/s1600/schoolyourcolour-votes.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 140px;" src="http://3.bp.blogspot.com/-RJ3xnfGGFPo/TsLCm0p_nxI/AAAAAAAADN4/T3MjjKkSWUQ/s320/schoolyourcolour-votes.png" alt="" id="BLOGGER_PHOTO_ID_5675312452665843474" border="0" /&gt;&lt;/a&gt; &lt;em&gt;Here ends the poll on the school zone aesthetics. Thanks to the 8 readers who participated. I cannot say there is a "clear winner", but globally, the "newer" wood got slight preference as it is more "joyful". But that's for readers alone.&lt;br /&gt;&lt;br /&gt;Simultaneously, I got feedback from two graphism artists (including one pixel artist) who didn't exactly "voted" to this poll, and they clearly stated that "the old wood was better, because it looks more like wood". That's something I cannot ignore, so I'm back at world 1-1 : *I* have to make the decision, or to come up with something that would combine the advantages of both. And the picture I just shoot at work might help.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-TnG0BHvEMuA/TsKQxlHdhWI/AAAAAAAADNo/eoYuya71ej4/s1600/6347259760_8db0eab92c_b.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 240px; height: 240px;" src="http://4.bp.blogspot.com/-TnG0BHvEMuA/TsKQxlHdhWI/AAAAAAAADNo/eoYuya71ej4/s320/6347259760_8db0eab92c_b.png" alt="" id="BLOGGER_PHOTO_ID_5675257661891642722" border="0" /&gt;&lt;/a&gt; Voilà. Cloture des votes sur un score plutôt mitigé. Si on peut dire qu'une majorité des lecteurs de ce blog ont préféré les nouvelles couleurs, plus vives et plus joyeuses, en revanche, les 2 graphistes qui ont jeté un oeil sont unanimes: l'ancienne version est nettement plus réussie, donnant plus un look "bois". pour ce bois-là, le fond clair est trop gris, et le fond sombre montre trop de contraste -- rien de difficile à ajuster.&lt;br /&gt;&lt;br /&gt;Alors je reprends une petite photo du couloir, histoire de me faire un "vrai" raster de bois et de voir si je peux faire une version intermédiaire *aussi* pour le bloc de bois...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-7780979305579933233?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/7780979305579933233/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=7780979305579933233' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7780979305579933233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7780979305579933233'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/11/you-voted-for-both.html' title='You voted for ... both.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-RJ3xnfGGFPo/TsLCm0p_nxI/AAAAAAAADN4/T3MjjKkSWUQ/s72-c/schoolyourcolour-votes.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-3841731999752666419</id><published>2011-11-14T23:33:00.004+01:00</published><updated>2011-11-30T10:46:21.195+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='level editor'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><category scheme='http://www.blogger.com/atom/ns#' term='done'/><category scheme='http://www.blogger.com/atom/ns#' term='devkitpro'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>meta_buttons_shown=false</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-OELMkjndqbs/TsEKjQVuGMI/AAAAAAAADNM/9zaqDlgRJuY/s1600/meta-buttons-shown.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 254px; height: 187px;" src="http://3.bp.blogspot.com/-OELMkjndqbs/TsEKjQVuGMI/AAAAAAAADNM/9zaqDlgRJuY/s320/meta-buttons-shown.png" alt="" id="BLOGGER_PHOTO_ID_5674828606261303490" border="0" /&gt;&lt;/a&gt;Comme je devais tester une imprimante, ce week-end, je me suis imprimé quelques fichiers sources de l'éditeur de niveau, histoire de comprendre d'où vient le comportement erratique des "meta-buttons", cette petite palette en haut à droite de l'image qui permet d'indiquer quelle portion d'un niveau est solide, où sont les pentes, etc. Pour pouvoir éditer les "arènes" d'&lt;a href="http://sylvainhb.blogspot.com/search/label/apple%20assault"&gt;Apple Assault&lt;/a&gt;, je les avais rendus "escamotables", mais c'est loin d'être un succès. Ils donnent l'impression d'être actifs ou non indépendamment du fait qu'ils soient visibles ou non. Malheureusement, le Level Editor est aussi le dernier outil qui n'a pas encore été "porté" pour la nouvelle release du &lt;a href="http://sylvainhb.blogspot.com/search/label/devkitpro"&gt;devkitpro&lt;/a&gt;. Du boulot en perspective, comme la réactivation de la lecture des répertoires, les nouveaux mécanismes pour initialiser la console, etc.&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;loadNDS_Vram turns into runNdsFile : http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/trunk/SpriteEditor/source/main.cpp?r1=617&amp;amp;r2=824&lt;/li&gt;&lt;li&gt;convert to the new console system : http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/trunk/runMe/arm9/source/main.cpp?r1=735&amp;amp;r2=750&lt;/li&gt;&lt;/ul&gt;at least those two must be done and checked before I can start fixing the huge mess that appeared on the Level Editor user interface when I tried to make the "meta-buttons" a pop-up widget... Yes, LEDS is the latest of my tools that has not received a revision since I switched to "devkitpro 32" ...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;edit&lt;/b&gt;: &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;amp;revision=879"&gt;done.&lt;/a&gt;.. maybe ?&lt;br /&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-3841731999752666419?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/3841731999752666419/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=3841731999752666419' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3841731999752666419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3841731999752666419'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/11/metabuttonsshownfalse.html' title='meta_buttons_shown=false'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-OELMkjndqbs/TsEKjQVuGMI/AAAAAAAADNM/9zaqDlgRJuY/s72-c/meta-buttons-shown.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-2634320003109362193</id><published>2011-11-08T08:00:00.000+01:00</published><updated>2011-11-08T08:42:58.512+01:00</updated><title type='text'>choose your colour</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-wdbEYankoRI/TrjcaLBTq9I/AAAAAAAADMc/lWqQg4WDnCE/s1600/schoolyourcolour.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 139px;" src="http://2.bp.blogspot.com/-wdbEYankoRI/TrjcaLBTq9I/AAAAAAAADMc/lWqQg4WDnCE/s400/schoolyourcolour.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5672526072866122706" /&gt;&lt;/a&gt;&lt;br /&gt;Deux tonalités possibles pour les blocs de bois: l'ancien et le nouveau. Deux tonalités possibles pour l'arrière plan: clair ou sombre. Faites votre choix sur le sondage à droite.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Two available tints for wooden blocks: new (yellow-ish) and old (grey-ish). Two available tints for the background: light or dark. Pick your favourite style using the poll on the right.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-2634320003109362193?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/2634320003109362193/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=2634320003109362193' title='5 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2634320003109362193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2634320003109362193'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/11/choose-your-colour.html' title='choose your colour'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-wdbEYankoRI/TrjcaLBTq9I/AAAAAAAADMc/lWqQg4WDnCE/s72-c/schoolyourcolour.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-6127395042756815022</id><published>2011-11-06T11:41:00.000+01:00</published><updated>2011-11-14T12:00:16.919+01:00</updated><title type='text'>The google, the Bad, and the Ugly</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-qXZTe88LQNo/TrutpkbhkLI/AAAAAAAADM8/qcEVVesIwtA/s1600/ugly-reader.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 313px;" src="http://1.bp.blogspot.com/-qXZTe88LQNo/TrutpkbhkLI/AAAAAAAADM8/qcEVVesIwtA/s320/ugly-reader.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5673319085268635826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;So even Google can fall into "we're too big to be wrong", obviously. Empty space everywhere, reduced reading area, "share" features lost and most ugly-and-depressive user interface I've ever seen. Yes, I even prefer the plain black-and-white of early Apple computers. Do you think that's how you'll convert me to G+ ? How can you hire so many people and just miss the good sense to avoid such horror ? when I happen to click on a "reader" tab now, I just want to close it as soon as possible.&lt;br /&gt;&lt;br /&gt;You failed. Insert coin to try again.&lt;br /&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-6127395042756815022?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/6127395042756815022/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=6127395042756815022' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6127395042756815022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6127395042756815022'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/11/google-bad-and-ugly.html' title='The google, the Bad, and the Ugly'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-qXZTe88LQNo/TrutpkbhkLI/AAAAAAAADM8/qcEVVesIwtA/s72-c/ugly-reader.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-7963730448470260486</id><published>2011-11-06T09:32:00.007+01:00</published><updated>2012-02-07T11:03:32.954+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixels'/><category scheme='http://www.blogger.com/atom/ns#' term='colours'/><category scheme='http://www.blogger.com/atom/ns#' term='school zone'/><category scheme='http://www.blogger.com/atom/ns#' term='adventure'/><title type='text'>On repeind l'école ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-WQPtS1vKvvo/TrZGhAiwq0I/AAAAAAAADLw/FTXb-LIT8LI/s1600/mockup-newcolours.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 64px; height: 96px;" src="http://1.bp.blogspot.com/-WQPtS1vKvvo/TrZGhAiwq0I/AAAAAAAADLw/FTXb-LIT8LI/s320/mockup-newcolours.png" alt="" id="BLOGGER_PHOTO_ID_5671798313615141698" border="0" /&gt;&lt;/a&gt;Après pas mal de soirées à effacer les modifications que j'avais faites, j'ai enfin une variante des "blocs de bois" pour l'école qui soit un peu plus colorée que la version de 2007 ... La tentative de "miniature" pour définir une nouvelle palette aura donc porté ses fruits ^_^&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-9oEhZYLgtvU/TqsHGelYGdI/AAAAAAAADJ0/B6VEMzYDrsU/s1600/school-minimap.png"&gt;&lt;img style="image-rendering: -moz-crisp-edges; float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 128px; height: 126px;" src="http://3.bp.blogspot.com/-9oEhZYLgtvU/TqsHGelYGdI/AAAAAAAADJ0/B6VEMzYDrsU/s1600/school-minimap.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;em&gt;&lt;a href="http://www.wayofthepixel.net/pixelation/index.php?topic=13151.msg127154#msg127154"&gt;Last week&lt;/a&gt;, I tried to update the school zone pixels so that foreground and background would look like a common, 3D environment. It sounded a good way to start with colours that worked well as BG in the school zone. It was a flop. The picture was all greyish. I tried something new to solve it: a miniature level (started as a 32x32 bitmap and zoomed to 64x64) where I could do all the colour experiments I wanted, as they had no link with the former spriteset. Then it took me almost all the week to make some decent wooden block with those saturate-and-nicely-mixing colours. I think I finally managed to get something that works. It still needs a bit of anti-aliasing and some more touches here and there, of course.&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-as48R7Hcbbc/TradAvksIMI/AAAAAAAADMA/La-PZIks_OI/s1600/school0sylvain.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 736px; height: 256px;" src="http://3.bp.blogspot.com/-as48R7Hcbbc/TradAvksIMI/AAAAAAAADMA/La-PZIks_OI/s1600/school0sylvain.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-7963730448470260486?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/7963730448470260486/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=7963730448470260486' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7963730448470260486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7963730448470260486'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/11/on-repeind-lecole.html' title='On repeind l&apos;école ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-WQPtS1vKvvo/TrZGhAiwq0I/AAAAAAAADLw/FTXb-LIT8LI/s72-c/mockup-newcolours.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-4371540848469696197</id><published>2011-11-03T22:22:00.001+01:00</published><updated>2012-01-13T12:20:37.988+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='freehand'/><title type='text'>Interpolation pour AnimEDS</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-GIh5bxj3fOs/TrK1Dj5xEHI/AAAAAAAADLE/4TIUesyddQc/s1600/interpol-move.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 246px; height: 195px;" src="http://4.bp.blogspot.com/-GIh5bxj3fOs/TrK1Dj5xEHI/AAAAAAAADLE/4TIUesyddQc/s320/interpol-move.png" alt="" id="BLOGGER_PHOTO_ID_5670793953594642546" border="0" /&gt;&lt;/a&gt;Je pourrais peut-être bien me remettre à plancher sur AnimEDS avec pour objectif d'offrir une "interpolation des mouvements" un peu plus automatique. Parce que pour l'instant, il faut encore "encoder" toutes les étapes d'animations en positionnant exactement les différents sprites, et quand on veut "réviser" une animation, ça devient vite l'horreur. Or en graphisme, les révisions, c'est plutôt fondamental.&lt;br /&gt;&lt;br /&gt;Tracer un déplacement à main levée, ce serait assez simple, tirer &lt;span style="font-style: italic;"&gt;k&lt;/span&gt; étapes intermédiaires le long des différents déplacements aussi. Chouette. Ce qui m'avait freiné jusqu'ici, c'est que dans ce genre d'approche, il n'y a pas moyen de "freiner" le mouvement, d'avoir un effet "balancier" indispensable pour une animation fluide et réussie ... sauf si je permets de tracer aussi la courbe "&lt;span style="font-style: italic;"&gt;k en fonction du temps&lt;/span&gt;" ... Il suffisait d'y penser, j'imagine.&lt;br /&gt;&lt;br /&gt;Mais n'oublions pas: il lui faudra d'abord un "zoom" pour contrôler la taille du cadre de travail.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-4371540848469696197?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/4371540848469696197/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=4371540848469696197' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/4371540848469696197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/4371540848469696197'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/11/interpolation-pour-animeds.html' title='Interpolation pour AnimEDS'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-GIh5bxj3fOs/TrK1Dj5xEHI/AAAAAAAADLE/4TIUesyddQc/s72-c/interpol-move.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-6731539981003998446</id><published>2011-11-03T12:20:00.003+01:00</published><updated>2011-11-03T17:25:54.674+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>Oh, DSi !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-fGkS9yD7Ync/TrJ9UTYlg9I/AAAAAAAADK0/SVZxKSTmW8s/s1600/DSi.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 160px; height: 144px;" src="http://3.bp.blogspot.com/-fGkS9yD7Ync/TrJ9UTYlg9I/AAAAAAAADK0/SVZxKSTmW8s/s400/DSi.png" alt="" id="BLOGGER_PHOTO_ID_5670732668567126994" border="0" /&gt;&lt;/a&gt; Etat quasi-neuf, stock de protège-écran et de stylets de rechange, me voilà capable de faire tourner le "dsiware" pour tester &lt;a href="http://sylvainhb.blogspot.com/2010/10/dis-moi-qui-tu-hantes-et-je-te-dirai.html"&gt;les jeux qui me font de l'oeil depuis un moment&lt;/a&gt;. C'est aussi une "mesure de protection" pour pouvoir continuer le développement sur Bilou si jamais l'écran de ma DSlite venait à souffrir prématurément ou qqch comme ça. *deline a fracassé la &lt;a href="http://sylvainhb.blogspot.com/2009/03/qwak.html"&gt;cartouche de Qwak&lt;/a&gt; il y a quelques jours, et c'est un miracle si j'arrive encore à le faire tourner. Vu qu'il est hors de question que je prenne une 3DS &lt;a href="http://sylvainhb.blogspot.com/2011/05/pas-de-3ds-pour-moi.html"&gt;dans les conditions actuelles&lt;/a&gt;, cette petite occase est plutôt la bienvenue.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I hope I'll be able to give Shantae a try soon. A second hand DSi joins my ARM device family today. That shouldn't mean a lot of changes for Bilou development, but I hope it will mean a longer life to the hobby games I make. The only darker point is that I'm losing a beta tester, but he seemed to be dedicated to sell any way, so ... 900 points to go :P&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-6731539981003998446?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/6731539981003998446/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=6731539981003998446' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6731539981003998446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6731539981003998446'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/11/oh-dsi.html' title='Oh, DSi !'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-fGkS9yD7Ync/TrJ9UTYlg9I/AAAAAAAADK0/SVZxKSTmW8s/s72-c/DSi.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-7062395950546437378</id><published>2011-10-30T22:56:00.008+01:00</published><updated>2011-11-02T10:08:02.241+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C64'/><category scheme='http://www.blogger.com/atom/ns#' term='nostalgy'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>PoP C64 2011</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-mRVeGmBZAw4/Tq3TRfNKYbI/AAAAAAAADKk/pWOchmXi8pk/s1600/res00415.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 32px; height: 41px;" src="http://3.bp.blogspot.com/-mRVeGmBZAw4/Tq3TRfNKYbI/AAAAAAAADKk/pWOchmXi8pk/s400/res00415.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5669419803317264818" /&gt;&lt;/a&gt;Prenez un succès incontournable du jeu vidéo des années '90 (allez, 1989): &lt;a href="http://en.wikipedia.org/wiki/Prince_of_Persia_(1989_video_game)"&gt;Prince of Persia&lt;/a&gt;. Prenez un briscard de la programmation sur une machine mythique et merveilleuse: &lt;a hrev=""&gt;MrSid et son C64&lt;/a&gt;. Arriva ce qui devait arriver: après la SNES, le PC, l'Amiga, les téléphones Java et l'iPod et la calculatrice HP48, le titre à succès de l'Apple II arrive sur Commodore 64.&lt;br /&gt;&lt;br /&gt;Au départ, je pense à une ancienne version qui aurait refait surface, mais non: MrSid refait bel et bien le jeu entre 2008 et 2011 -- chacun son hobby. L'Apple II et le C64 tournent avec le même processeur, le MOS 6502. C'est énorme. Ca signifie qu'en prenant simplement le "binaire" de PoP sur Apple II, une partie du jeu "tournerait" directement sur C64 ... toute la "logique" du jeu, en fait. Les &lt;a href="http://en.wikipedia.org/wiki/Apple_II_graphics"&gt;mécanismes graphiques&lt;/a&gt; et sonores des deux machines sont totalement différentes, en revanche. Et à relire pour la 3eme fois le peu d'information que je trouve sur le graphisme de l'Apple II, j'aime autant dire que cette différence est importante. La machine de Steve Wozniak travaille essentiellement avec un gros 'framebuffer' (une image bitmap unique, remise à jour à chaque étape du jeu) alors que le C64 a un hardware inspiré des consoles et machine d'arcade de l'époque: caractères reprogrammables et sprites hardware. Le moteur de rendu devra donc être intégralement refait.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Well, if you read English, you can simply head to MrSid's post &lt;a href="http://popc64.blogspot.com/2011/10/part-one-why-hell-would-anyone-want-to.html"&gt;"Why would anyone want to port Prince of Persia on the C64"&lt;/a&gt;. I guess he'll explain his reasons and give you crunchy details and videos much better than I could ever do  ;)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-FRpMM5oKqSw/Tq3SUg3WjwI/AAAAAAAADKU/UPTadafILss/s1600/blockindex.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://4.bp.blogspot.com/-FRpMM5oKqSw/Tq3SUg3WjwI/AAAAAAAADKU/UPTadafILss/s400/blockindex.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5669418755790638850" /&gt;&lt;/a&gt;La tâche à laquelle MrSid s'attelle donc, c'est de reprendre le binaire de la version Apple II, le désassembler et le cartographier. Il s'est évidemment mis en chasse du code source d'origine, qui a été perdu corps et bien ... eh oui, on travaillait sur floppy à l'époque &amp;gt;_&amp;lt. Ce qui a survécu, en revanche, et que MrSid exploite au maximum, c'est la "documentation" du jeu. Quelques schémas qui expliquent les grandes lignes du moteur graphique, la liste des animations, l'organisation en mémoire des objets, leur position, les animations, et tout ça. Ca fait toute la différence! Au milieu de l'inconnu, il y a maintenant des points de repère qui permettent de comprendre le code parfois curieux de Jordan Mechner. Code-trampoline, liste d'instructions ... Si tout ça vous parle, ne vous en tenez pas à ce que je vous raconte: allez lire &lt;a href="http://popc64.blogspot.com/"&gt;le blog dans lequel MrSid raconte en détail sa réalisation&lt;/a&gt; étape par étape... &lt;a href="http://www.youtube.com/user/mrsid6581"&gt;vidéos à l'appui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Au fait, MrSid, c'était aussi le portage de &lt;a href="http://galway.c64.org/gianads/"&gt;Giana Sister (version C64)&lt;/a&gt; et International Karate sur DS.  ^_^&lt;br /&gt;&lt;br /&gt;(pour &lt;a href="http://c64charleroi.skynetblogs.be/archive/2011/10/31/prince-of-persia-sur-c64.html#comments"&gt;le blog Commodore Users Charleroi&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-7062395950546437378?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/7062395950546437378/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=7062395950546437378' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7062395950546437378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7062395950546437378'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/10/pop-c64-2011.html' title='PoP C64 2011'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-mRVeGmBZAw4/Tq3TRfNKYbI/AAAAAAAADKk/pWOchmXi8pk/s72-c/res00415.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-5319719422777526798</id><published>2011-10-29T10:03:00.004+02:00</published><updated>2011-10-29T10:19:33.480+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='school zone'/><title type='text'>Vieux Bouquins</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-DNJHXrmzEhE/Tqu0uU0djyI/AAAAAAAADKE/16CmR3pVlPE/s1600/oldbooks-reference.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 307px;" src="http://4.bp.blogspot.com/-DNJHXrmzEhE/Tqu0uU0djyI/AAAAAAAADKE/16CmR3pVlPE/s400/oldbooks-reference.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5668823263931633442" /&gt;&lt;/a&gt;&lt;br /&gt;Selon Helm, il faut que je retravaille mes "vieux bouquins" ... il est peut-être donc temps que je mette en ligne mes images de références trouvées sur flickr, histoire de les avoir plus facilement sous les yeux. (Encore que, en principe, je les avais imprimées :P)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;These should be my references for drawing old books in pixel art.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-5319719422777526798?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/5319719422777526798/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=5319719422777526798' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5319719422777526798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5319719422777526798'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/10/vieux-bouquins.html' title='Vieux Bouquins'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-DNJHXrmzEhE/Tqu0uU0djyI/AAAAAAAADKE/16CmR3pVlPE/s72-c/oldbooks-reference.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-719266826137961199</id><published>2011-10-25T18:30:00.004+02:00</published><updated>2011-11-30T11:19:06.875+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixels'/><category scheme='http://www.blogger.com/atom/ns#' term='colours'/><category scheme='http://www.blogger.com/atom/ns#' term='sprite editor'/><category scheme='http://www.blogger.com/atom/ns#' term='level design'/><category scheme='http://www.blogger.com/atom/ns#' term='school zone'/><category scheme='http://www.blogger.com/atom/ns#' term='mockup'/><category scheme='http://www.blogger.com/atom/ns#' term='done'/><title type='text'>Colour Balance ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-H8znqcXENFk/TqZzuoiEHiI/AAAAAAAADJE/aJvz1uDjP4M/s1600/bookshelf-mockup-monsters2-recoloured4.png"&gt;&lt;img style="float: left; margin: 0px 10px 10px 0px; width: 256px; height: 192px;" src="http://3.bp.blogspot.com/-H8znqcXENFk/TqZzuoiEHiI/AAAAAAAADJE/aJvz1uDjP4M/s400/bookshelf-mockup-monsters2-recoloured4.png" alt="" id="BLOGGER_PHOTO_ID_5667344426083819042" border="0" /&gt;&lt;/a&gt;J'essaie d'ajuster un peu les couleurs des différents éléments de la "school zone" histoire d'avoir quelque-chose de plus harmonieux que &lt;a href="http://sylvainhb.blogspot.com/2011/10/spongebop-dumblador-revisites.html"&gt;les derniers mock-ups&lt;/a&gt;. La difficulté, avec les bruns et les verts, c'est que le moindre faux-pas casse tout. Je suis assez content des teintes sur la gauche de l'image (gimp-power), mais le hic, c'est évidemment que la DS a moins de souplesse de ce côté-là: 5 bits par couleur au lieu de 8, on se retrouve vite avec un écart trop grand ou trop petit entre deux couleurs si on se contente d'essayer de réappliquer les valeurs HSV de l'un à l'autre.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Not so easy to make sure that the different objects fit together well, esp. when lights and colours come into the game. On your left, binders and &lt;abbr title="they appeared first in Apple Rumble! in 2007!"&gt;&lt;a href="http://sylvainhb.blogspot.com/2007/03/small-rumbling-session-this-lunchtime.html"&gt;small wooden blocks&lt;/a&gt;&lt;/abbr&gt; with Gimp-revamped colours. On your right, books and larger wood block as they exist right now on the DS. I'd love to have the wood blocks use the same colour, but unfortunately, it turns out that the RGB values fined-tuned in Gimp do not fit the 5-bit-per-color-channel constraint of the DS hardware. Whatever "brainless" conversion I try to apply inevitably ends up with exagerated contrast here or flattened colours there.&lt;br /&gt;&lt;br /&gt;I guess I'll have to do something similar to the process through which I &lt;a href="http://sylvainhb.blogspot.com/2011/07/update-on-bg-colors.html"&gt;revised the green zone's dust background&lt;/a&gt;: bring in the desired background colour and some misc. objects, finetune colours &lt;span style="font-weight: bold;"&gt;on the DS&lt;/span&gt; and then rework my rasters accordingly. It's just a pity that SEDS does not provide a way to visualise which colour of the palette is where (on tiles) in palette edition mode &amp;gt;_&amp;lt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-7qiTX_W5LbE/TtYCVj08pII/AAAAAAAADSw/g81bXtczI64/s1600/fixed.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 0px 0px; cursor: pointer; height: 120px;" src="http://3.bp.blogspot.com/-7qiTX_W5LbE/TtYCVj08pII/AAAAAAAADSw/g81bXtczI64/s200/fixed.png" alt="" id="BLOGGER_PHOTO_ID_5680730549392286850" border="0" /&gt;&lt;/a&gt;Et pour ne pas changer, il me manque le "petit plus" pour faire des essais facilement avec SEDS, à savoir &lt;span style="font-style: italic;"&gt;visualiser dans l'image une couleur choisie sur la palette... &lt;/span&gt;Quand j'aurai ajusté ça, il faudra aussi que règle&lt;a href="http://sylvainhb.blogspot.com/2011/01/todo.html"&gt; les vieux bugs de mon Level Editor&lt;/a&gt;, parce que si pour&lt;a href="http://sylvainhb.blogspot.com/2010/06/hop-une-arene-yeah.html"&gt; les maps simples d'Apple Assault&lt;/a&gt;, j'avais pu "faire avec", là, c'est un peu la catastrophe. Dès que j'essaie de définir un objet comme solide, j'ai une chance sur deux d'en effacer un autre &amp;gt;_&amp;lt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-KO9GHAJa1Bg/TqffvjvvDjI/AAAAAAAADJU/AsfplocAxTY/s1600/woods-or-school.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 256px; height: 256px;" src="http://3.bp.blogspot.com/-KO9GHAJa1Bg/TqffvjvvDjI/AAAAAAAADJU/AsfplocAxTY/s400/woods-or-school.png" alt="" id="BLOGGER_PHOTO_ID_5667744664211361330" border="0" /&gt;&lt;/a&gt;Puis il faudra que je permette d'ajuster le niveau de zoom du &lt;a href="http://sylvainhb.blogspot.com/2011/09/animeds-version-03.html"&gt;frame editor d'AnimEDS&lt;/a&gt; pour pouvoir travailler sur Bilou, dumblador et les autres qui se sente un peu perdu dans un cadre de 64x64 :P Et puis permettre à SEDS et LEDS d'utiliser les palettes alternatives de la DS, histoire de varier un peu les couleurs des livres sans faire exploser le nombre de tiles pour autant.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-weight: bold;"&gt;edit:&lt;/span&gt; it's been 3 evenings I spend trying to adjust colours on the DS, where everything looks "just fine" when viewed at the proper angle. If I really want homogeneity in art, woudln't that be wise to first check that my FG is harmonious against &lt;span style="font-style: italic;"&gt;existing &lt;/span&gt;background ... like the one of the green zone ? ... imho, it works fairly well, regardless of the actual "tint" of that background. Don't you think ? Now, all I need to do is draw some books and school stuff with those tints :P&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-719266826137961199?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/719266826137961199/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=719266826137961199' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/719266826137961199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/719266826137961199'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/10/colour-balance.html' title='Colour Balance ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-H8znqcXENFk/TqZzuoiEHiI/AAAAAAAADJE/aJvz1uDjP4M/s72-c/bookshelf-mockup-monsters2-recoloured4.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-9088668744730829984</id><published>2011-10-24T22:13:00.003+02:00</published><updated>2011-10-24T22:32:43.027+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game design'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>Playing Diamond Hollow</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.kongregate.com/games/Arkeus/diamond-hollow-ii"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 252px; height: 320px;" src="http://2.bp.blogspot.com/-zfVK-GS-iIM/TqXJIPCKOGI/AAAAAAAADIk/1tZzO87MCD0/s320/dh.png" alt="" id="BLOGGER_PHOTO_ID_5667156849427363938" border="0" /&gt;&lt;/a&gt;&lt;em&gt;A nice chippy music, simple graphics that reminds me of (good) DOS sharewares and nice level design, Diamond Hollow could be a dynamic game created with RSD game-maker if it wasn't for the sophisticated, immediately available weapon upgrade system. You collect diamonds in caves and fight blobs, spiders and some undefined creatures. That's fairly classical, but in video game like in cinema, there are some classics that can't be made wrong. &lt;br /&gt;&lt;br /&gt;One thing that really puzzles me is the control system. Am I supposed to control the player with keys and space bar with one hand and aim my fire with the mouse ? That's fair enough in level 1 and 2 with relatively stubborn monsters that don't really attack me and the "autofire" power up. There is no timer in the game (i.e. power up dropped by monsters are permanent: you've got as much time to gather them as you want), so I can just stop in a safe position, move the mouse with the touchpad (yeah, laptop here), and then jump around to shoot the monsters. Leaving the "mouse" untouched means I'll always fire towards the same absolute X position (moving left/right won't change my target) and the same relative Y position (jumping makes change my target). Sure, the game designer wanted that feature and freedom very hard, but allow me to be brutally honest: it's useless. 4-directions firing would have been largely enough, and it would likely have involved the player much more by intense action when risk must be taken rather than doing precision adjustment to shoot plain blobs. When controls are awkward, I will just minimize the risks of getting into trouble. too bad. It really had a cute little something.&lt;br /&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-9088668744730829984?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/9088668744730829984/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=9088668744730829984' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/9088668744730829984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/9088668744730829984'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/10/playing-diamond-hollow.html' title='Playing Diamond Hollow'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-zfVK-GS-iIM/TqXJIPCKOGI/AAAAAAAADIk/1tZzO87MCD0/s72-c/dh.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-7465784763531387050</id><published>2011-10-21T22:10:00.001+02:00</published><updated>2011-11-16T10:39:18.521+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixels'/><category scheme='http://www.blogger.com/atom/ns#' term='colours'/><category scheme='http://www.blogger.com/atom/ns#' term='school zone'/><category scheme='http://www.blogger.com/atom/ns#' term='nostalgy'/><title type='text'>wooden pixels</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-fzE-x4zgx10/TqCLI_RAsqI/AAAAAAAADIU/vw6n_H3x0U8/s1600/smb3-woodpixels.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 195px; height: 84px;" src="http://2.bp.blogspot.com/-fzE-x4zgx10/TqCLI_RAsqI/AAAAAAAADIU/vw6n_H3x0U8/s320/smb3-woodpixels.png" alt="" id="BLOGGER_PHOTO_ID_5665681317770080930" border="0" /&gt;&lt;/a&gt;Vous avez remarqué qu'il y avait du bois sur chaque image présentée dans mon post précédent ? Pas un hasard, bien sûr: je cherchais des références pour les étagères du niveau "bibliothèque" ... parce que les &lt;a href="http://sylvainhb.blogspot.com/2011/10/spongebop-dumblador-revisites.html"&gt;"briquettes" du dernier mockup&lt;/a&gt; ... bof. Mais où trouver du bois dans un jeu vidéo ? Pas dans la cité des images de Rayman, en tout cas! Tout est en gomme, et tant pis pour ta pomme!&lt;br /&gt;&lt;br /&gt;Première pioche: les bâteaux volants de SMB3. Un dégradé assez riche, mais qui reste principalement sur la même teinte (hue=35), sauf pour les extrèmes. Les rondins sont essentiellement un dégradé auquel on rajoute une "texture" en traçant des traîts horizontal de la couleur un cran plus claire dans chaque bande de couleur. Assez réaliste et réussi, mais on est pas du tout à l'échelle qui m'intéresse. Et puis, une étagère n'est pas en rondin, donc les irrégularités ne seront pas identiques.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-LUrTGHW3Ov4/TqCIrFjdoNI/AAAAAAAADIE/a3whSG-6iZ0/s1600/coolspot-pixels.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 180px; height: 94px;" src="http://4.bp.blogspot.com/-LUrTGHW3Ov4/TqCIrFjdoNI/AAAAAAAADIE/a3whSG-6iZ0/s320/coolspot-pixels.png" alt="" id="BLOGGER_PHOTO_ID_5665678605038756050" border="0" /&gt;&lt;/a&gt;Etonamment peu de teintes pour le niveau "off da wall" the Coolspot. On pourrait presque transposer directement ces graphismes-là sur NES. Les différents portages de Coolspot (SNES, PC, Amiga) sont très inégaux sur le plan graphique, et je n'ai pas la certitude d'avoir trouvé un screenshot de la version MegaDrive originale (afaik). Saturation surprenament élevée, et des patterns qui font allègrement usage du tramage, ce qui colle plutôt bien avec l'aspect "vieux grenier" souhaité. Une plaie à reproduire, par contre. Sous Master System (la version &lt;a href="http://vgmaps.com/Atlas/MasterSystem/index.htm#CoolSpot"&gt;utilisée sur vgmaps&lt;/a&gt; pour en tirer les cartes du jeu), la "planche" d'un étage fait 32 pixels de haut avec un pattern de 32 pixels de large.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-9pYG5kGUifY/TqCIkqtlGCI/AAAAAAAADH4/hwBsPhXwtS4/s1600/zool-pixels.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 242px; height: 121px;" src="http://2.bp.blogspot.com/-9pYG5kGUifY/TqCIkqtlGCI/AAAAAAAADH4/hwBsPhXwtS4/s320/zool-pixels.png" alt="" id="BLOGGER_PHOTO_ID_5665678494754215970" border="0" /&gt;&lt;/a&gt;Couleurs super-saturées pour Zool -- mais ce n'est pas une surprise: le monde de zool est dans des tonalités systématiquement saturées. Même le fond est parsemé d'objets hétéroclytes qu'on a même pas tenté de rendre visuellement distants en les passant en tons pastels. On est ici à une taille un peu plus petite que celle de Cool Spot avec des "veines" d'un pixel de large, travaillant beaucoup sur l'anti-aliasing (surtout pour le bois plus clair). Un point-clé, c'est la grande régularité de l'espace entre deux veines, de 3 pixels. Sans ça, on a juste des traîts barbouillés dans tous les sens, comme ce que j'ai fait sur la droite :P Pattern de 32x32, de nouveau.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-oZE8bBkW2ho/TqACIUugYhI/AAAAAAAADF4/vxUz0D7Ab7I/s1600/influence-smb3snes-bis.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 177px; height: 133px;" src="http://4.bp.blogspot.com/-oZE8bBkW2ho/TqACIUugYhI/AAAAAAAADF4/vxUz0D7Ab7I/s320/influence-smb3snes-bis.png" alt="" id="BLOGGER_PHOTO_ID_5665530673258062354" border="0" /&gt;&lt;/a&gt; Petit retour à SMB3 ? Il faut dire que les "briques de bois" ont un comportement tellement particulier dans ce jeu (cachant parfois des plumes-tanooki mais nécessitant de les cogner *sur le côté*) que j'ai tendance à croire qu'il y a du bois partout ... en fait, il est plutôt rare ^^"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-t3XkxQr8vGg/TqAB1Baq6dI/AAAAAAAADFs/4-HgJrOSTnY/s1600/influence-smb3snes-ter.png"&gt;&lt;img style="float: right; margin: 0pt 0px 10px 10px; width: 239px; height: 131px;" src="http://1.bp.blogspot.com/-t3XkxQr8vGg/TqAB1Baq6dI/AAAAAAAADFs/4-HgJrOSTnY/s320/influence-smb3snes-ter.png" alt="" id="BLOGGER_PHOTO_ID_5665530341657078226" border="0" /&gt;&lt;/a&gt; Ici, pas de "veines" dessinées dans le bois, mais l'impression qu'on voit un morceau de tronc débité dans la longueur, avec les anneaux caractéristiques. L'effet de dégradé obtenu n'est pas ce qu'on a vu de plus esthétique dans le jeu, mais personne n'ira suggérer que ce sont des tablettes de caramel. Pour faire des plates-formes dans les niveaux aquatiques, eh bien, les p'tits gars de chez Nintendo ont simplement répété une "vague" tous les 8 pixels, jusqu'à arriver au bloc "bord droit". Nettement moins crédible (bin oui, c'est supposé être concentrique), mais ça marche quand-même. Par contre, tout ça est (de nouveau) à une échelle qui ne colle pas à celle de Bilou. Rideau.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-TPPyaiGtpzM/TqACJUl1xqI/AAAAAAAADGY/7T5WafsAL1Y/s1600/influence-rrnes-bis.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 200px;" src="http://1.bp.blogspot.com/-TPPyaiGtpzM/TqACJUl1xqI/AAAAAAAADGY/7T5WafsAL1Y/s200/influence-rrnes-bis.png" alt="" id="BLOGGER_PHOTO_ID_5665530690401584802" border="0" /&gt;&lt;/a&gt;Et les Rangers du Risque ? eh bien, même technique que pour Zool, mais avec des veines nettement plus courtes et une limite de 3 couleurs par palette (noir, brun clair, et sisi-c'est-pas-du-rouge-c'est-du-brun-foncé). Bien réussi pour l'époque, mais je n'irai pas en faire une référence, ni au niveau des couleurs, ni au niveau des pixels eux-même.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-7465784763531387050?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/7465784763531387050/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=7465784763531387050' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7465784763531387050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7465784763531387050'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/10/wooden-pixels.html' title='wooden pixels'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-fzE-x4zgx10/TqCLI_RAsqI/AAAAAAAADIU/vw6n_H3x0U8/s72-c/smb3-woodpixels.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-5839525282729109558</id><published>2011-10-20T13:10:00.007+02:00</published><updated>2011-10-21T09:57:54.338+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='school zone'/><category scheme='http://www.blogger.com/atom/ns#' term='y92'/><category scheme='http://www.blogger.com/atom/ns#' term='nostalgy'/><category scheme='http://www.blogger.com/atom/ns#' term='y93'/><title type='text'>Influences for Bilou ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-8wNkB-jcGp8/TqAGOPKXY_I/AAAAAAAADHo/NhNVtWNnkfk/s1600/influence-coolspot_03.gif"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 200px; height: 125px;" src="http://2.bp.blogspot.com/-8wNkB-jcGp8/TqAGOPKXY_I/AAAAAAAADHo/NhNVtWNnkfk/s200/influence-coolspot_03.gif" alt="" id="BLOGGER_PHOTO_ID_5665535172890026994" border="0" /&gt;&lt;/a&gt;Facile de voir que la &lt;span style="font-style: italic;"&gt;school zone&lt;/span&gt; de Bilou ressemble à la &lt;span style="font-style: italic;"&gt;cité des images&lt;/span&gt; de Rayman. Et pourtant, c'est une pure coïncidence: quand mon frère m'a ramené les nouveaux monstres de Pierrick, personne n'avait jamais entendu parlé du curieux bonhomme sans bras à moins d'être dans l'entourage rapproché de Michel Ancel... Ce dont je ne peux malheureusement pas me vanter.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-H2-Mh6ZbA7g/TqAGNUpr2RI/AAAAAAAADHQ/tzf90GJ1v7I/s1600/coolspot-3117269aaa.jpg"&gt;&lt;img style="float: right; margin: 0pt 0px 10px 10px; width: 200px; height: 140px;" src="http://3.bp.blogspot.com/-H2-Mh6ZbA7g/TqAGNUpr2RI/AAAAAAAADHQ/tzf90GJ1v7I/s200/coolspot-3117269aaa.jpg" alt="" id="BLOGGER_PHOTO_ID_5665535157183699218" border="0" /&gt;&lt;/a&gt; Mais ce n'est pas pour autant dire qu'il n'y avait rien avant, même si à 15 ans, on avait passé le cap de "refaire un Sonic avec Calimero", il y avait forcément des jeux qui nous avaient marqués et qui nous ont donné envie donner vie à des objets genre "Alice au Pays des Merveilles"dans des environnement "zoomés". Coolspot ('93) fait ça un peu tout le temps. L'animation gag et fluide du jeu de David Perry a largement contribué dans mes influences pour les jeux vidéos, c'est clair.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I long for the "school zone" to get more monsters so that people stop saying that I should have mentioned Rayman (PSX) as an influence. No, rayman was still a &lt;a href="http://www.flickr.com/photos/97497144@N00/5552644570/in/photostream"&gt;top secret project (on SNES?)&lt;/a&gt; when we started sketching Sqrt and the pendats. But the video game album was already featuring a few dudes that shown us the way of micro-characters-in-macro-areas (just in case our daily dose of Wonderland weren't enough ;). Coolspot's attic is frequently appearing in my mind when I try to get references for the library level of the school zone, for instance. And of course, Zool had an even greater influence, with its objects-brought-to-life monsters.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-swH_LheXSqA/TqAGNEzxNsI/AAAAAAAADHA/9k9Cphqv8mM/s1600/influence-91163-zool-amiga-screenshot-tool-world-lets-take-a-little-rest-on.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 200px; height: 160px;" src="http://4.bp.blogspot.com/-swH_LheXSqA/TqAGNEzxNsI/AAAAAAAADHA/9k9Cphqv8mM/s200/influence-91163-zool-amiga-screenshot-tool-world-lets-take-a-little-rest-on.png" alt="" id="BLOGGER_PHOTO_ID_5665535152931026626" border="0" /&gt;&lt;/a&gt; L'année avant, l'ovni farfelu, c'était sur Amiga, c'était Zool, le ninja trans-dimensionel. Château des Délices -- euh, zone Chuppa Chups, je veux dire -- puis  &lt;a href="http://hol.abime.net/1633/screenshot"&gt;monde de la musique&lt;/a&gt; (tiens, tiens!), Jardin Géant, Boîte à Outils et magasin de Jouets.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-wEx9gNoWwu4/TqAGM_H7x8I/AAAAAAAADG4/NOREXte7spg/s1600/influence-91162-zool-amiga-screenshot-tool-world-big-bug-can-split-into-two.png"&gt;&lt;img style="float: right; margin: 0pt 0px 10px 10px; width: 200px; height: 160px;" src="http://1.bp.blogspot.com/-wEx9gNoWwu4/TqAGM_H7x8I/AAAAAAAADG4/NOREXte7spg/s200/influence-91162-zool-amiga-screenshot-tool-world-big-bug-can-split-into-two.png" alt="" id="BLOGGER_PHOTO_ID_5665535151404992450" border="0" /&gt;&lt;/a&gt; Oui, ce "tueur de Sonic" à très certainement marqué le terrain d'une manière plutôt décisive, et je me demande même dans quel mesure il ne figure pas également dans les influences de Michel ;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-wRAuF4m4aGI/TqACJoSVSvI/AAAAAAAADGs/yWKGOvlgCa0/s1600/influence-rrnes.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 289px; height: 193px;" src="http://2.bp.blogspot.com/-wRAuF4m4aGI/TqACJoSVSvI/AAAAAAAADGs/yWKGOvlgCa0/s320/influence-rrnes.png" alt="" id="BLOGGER_PHOTO_ID_5665530695688473330" border="0" /&gt;&lt;/a&gt;Ou alors serait-ce les Rangers du Risque (sur NES, dès 1990) ? Avec leurs niveaux à kangourous smasheurs dans une bibliothèque ? Si ce jeu figure parmi mes référence en terme de gameplay coopératif, en revanche, je ne crois pas être allé jusque là, ni même avoir jamais vu quelqu'un y jouer. Il faudra chercher ailleurs.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Oh, and just FYI, yes, I enjoyed Rescue Rangers a lot, especially due to its innovative and fun co-op play, but I'm afraid I never managed to beat the game up to the library level. So, no, this wasn't a reference for me. That's funny to note that Zool's first two levels just match Rayman's Cake and Music levels, by the way ^_^&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-5839525282729109558?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/5839525282729109558/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=5839525282729109558' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5839525282729109558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5839525282729109558'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/10/influences-for-bilou.html' title='Influences for Bilou ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-8wNkB-jcGp8/TqAGOPKXY_I/AAAAAAAADHo/NhNVtWNnkfk/s72-c/influence-coolspot_03.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-3988989894339518080</id><published>2011-10-18T09:26:00.008+02:00</published><updated>2011-12-20T18:00:21.808+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='newcollide'/><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='collisions'/><category scheme='http://www.blogger.com/atom/ns#' term='planning'/><title type='text'>branches/newcollide</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-3gytFWTM7b4/Tp0qN8JbJJI/AAAAAAAADEw/oZ_hAk5s7aA/s1600/oops.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt;" src="http://2.bp.blogspot.com/-3gytFWTM7b4/Tp0qN8JbJJI/AAAAAAAADEw/oZ_hAk5s7aA/s320/oops.png" alt="" id="BLOGGER_PHOTO_ID_5664730325274272914" border="0" /&gt;&lt;/a&gt;&lt;em&gt;So I finally started a &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/branches/newcollide/"&gt;new SVN branch&lt;/a&gt; with the  collision engine modification that I &lt;a href="http://sylvainhb.blogspot.com/2011/10/apple-assault-fait-mouche.html"&gt;sketched in the train&lt;/a&gt;. It's not going to be testable anytime soon, I'm afraid. The current collision engine was already abusing some "setContext(...)" calls to set static variables into GobExpression so that you can e.g. shoot things despites the eval() has no such thing in its argument. With the &lt;a href="http://sylvainhb.blogspot.com/2011/09/blocking-gobs.html"&gt;new "attach" and "align" features&lt;/a&gt; I want to develop, that becomes a huge mess of things to capture at various places in the GOB -&amp;gt; GOB -&amp;gt; area -&amp;gt; state -&amp;gt; expression call chain that happens at every collision. I bet the best move will be to extract all this context (including some of the things that are currently plain arguments) into a GobCollision structure which would have temporary lifetime (i.e. allocated on the stack) that would be passed around ...&lt;br /&gt;&lt;br /&gt;Well, that'd be better unless the compiler is able to keep all the arguments in registers otherwise :P&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Je dirais bien "assez causé, implémentons ces fameuses &lt;a href="http://sylvainhb.blogspot.com/2011/09/blocking-gobs.html"&gt;nouvelles collisions&lt;/a&gt;". Sauf qu'en fait non. Les petites modif' faites par-ci par-là &lt;a href="http://sylvainhb.blogspot.com/2011/10/apple-assault-fait-mouche.html"&gt;dans le Boutdlard Express&lt;/a&gt; ne compilent pas, et si je fais ce qu'il faut pour qu'elles compilent, ça va être une véritable pagaille dans le code. Genre "la famille araignée en vacances dans une boites de spaghetti géante", voyez? J'ai une petite idée pour rationaliser tout ça sans perdre en souplesse ni (trop?) en performance. Je vous en &lt;abbr title="héhé. Ceux qui causent anglais savent déjà :)"&gt;dis plus&lt;/abbr&gt; après avoir fait le test.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-3988989894339518080?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/3988989894339518080/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=3988989894339518080' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3988989894339518080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3988989894339518080'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/10/branchesnewcollide.html' title='branches/newcollide'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-3gytFWTM7b4/Tp0qN8JbJJI/AAAAAAAADEw/oZ_hAk5s7aA/s72-c/oops.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1462824715134119393</id><published>2011-10-13T13:07:00.002+02:00</published><updated>2011-10-13T13:52:20.151+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flickr'/><category scheme='http://www.blogger.com/atom/ns#' term='sprite editor'/><category scheme='http://www.blogger.com/atom/ns#' term='runme'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>a link to the past ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/97497144@N00/sets/72157623027330781/"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 240px; height: 183px;" src="http://farm7.static.flickr.com/6125/5953616271_fab2d2170d_m.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;em&gt;Everytime you &lt;abbr title="that is, use START-R-[ABXY] rather than START-R-R"&gt;explicitly&lt;/abbr&gt; save your SEDS work to a file, SEDS archives the former content under &lt;code&gt;/data/seds/[ABXY]&amp;lt;year&amp;gt;&amp;lt;month&amp;gt;&amp;lt;day&amp;gt;&amp;lt;sno&amp;gt;.spr&lt;/code&gt;. That way, you should not accidentally lose some work, and you can keep working forward despite the fact you can only save to 4 slots. If you want to retrieve something from those files, you had so far two options: either take your media card out and copy the file, or switch to&lt;a href="http://sylvainhb.blogspot.com/search/label/runme"&gt; runme&lt;/a&gt; and beam it out to a PC.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sylvainhb.blogspot.com/2006/09/spriteeditor-ds.html"&gt;5 ans après&lt;/a&gt;, la politique de gestion des fichiers dans SEDS n'a toujours pas changé, et je la trouve toujours aussi pratique. 4 fichiers, "A,B,X,Y" que je choisis en appuyant sur le bouton correspondant de la DS sur &lt;a href="http://sylvainhb.blogspot.com/2011/09/vu-sur-internet.html"&gt;l'écran-fichier&lt;/a&gt; après le bouton L(oad) ou (sto)R(e). Pour éviter de se tromper au moment de la sauvegarde, R-R réécrit sur le fichier ouvert (les anciennes données étant alors placées dans un fichier .bak). Quand je veux travailler sur quelque-chose de neuf, je sauve explicitement vers un des fichiers [ABXY], ce qui "repousse" l'ancien contenu dans un fichier-archive dans /data/seds.&lt;br /&gt;&lt;br /&gt;Ce qui n'était pas pratique, par contre, jusqu'ici, c'était de parcourir le contenu de ces archives à la recherche d'un "travail à continuer". Mais avec &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/trunk/runMe/arm9/source/main.cpp?r1=836&amp;r2=874"&gt;les dernières modifications apportées à runMe&lt;/a&gt;, ça devrait bientôt être possible.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I had to do that&lt;a href="http://sylvainhb.blogspot.com/2011/09/deep-ink-pit-mockup-tout-moche.html"&gt; last month&lt;/a&gt; when I wanted to&lt;a href="http://sylvainhb.blogspot.com/2010/09/back-to-school.html"&gt; revive work on the schoolzone pixel art&lt;/a&gt;, but&lt;a href="http://sylvainhb.blogspot.com/2011/08/badman.html"&gt; tests with AnimEDS&lt;/a&gt; had pushed the schoolzone sprites into the archive. What's ridiculous is that runme can show you a preview of a .spr file that has just been beamed in, but it couldn't show you a preview before you beam out :P I made a few tweaks to runme these last days, fixed a couple of bugs in the SpriteSet.unpack(memory_buffer), too, and added an "offline" button so that you can navigate files with runMe even in the country side, far away from any WiFi base station. I'm not yet satisfied with the resulting usage flow, though. It does the trick, but explaining to anyone *why* it works so would be tedious. That will be for another lunchtime.&lt;br /&gt;&lt;/em&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1462824715134119393?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1462824715134119393/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1462824715134119393' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1462824715134119393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1462824715134119393'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/10/link-to-past.html' title='a link to the past ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm7.static.flickr.com/6125/5953616271_fab2d2170d_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-3902936779995269140</id><published>2011-10-09T21:43:00.009+02:00</published><updated>2011-12-20T18:01:06.883+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='newcollide'/><category scheme='http://www.blogger.com/atom/ns#' term='feedback'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><title type='text'>Apple Assault fait mouche</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-vRy9QsVvkIY/TpH9N0jqaWI/AAAAAAAADEU/XDcx2UQAag8/s1600/aa-gameover.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 271px;" src="http://1.bp.blogspot.com/-vRy9QsVvkIY/TpH9N0jqaWI/AAAAAAAADEU/XDcx2UQAag8/s320/aa-gameover.png" alt="" id="BLOGGER_PHOTO_ID_5661584620469774690" border="0" /&gt;&lt;/a&gt;J'étais donc dans le Zurich-Bruxelles le week-end dernier. Presqu'une journée entière, en fait. Après quelques tentatives d'encrage du Bilou's Book abandonnées pour cause de virages un peu plus serrés que prévus, je déplie mon PC pour tenter de mettre en oeuvre les modifications du &lt;a href="http://sylvainhb.blogspot.com/search/label/collisions"&gt;moteur de collisions&lt;/a&gt; dont j'ai parlé ces derniers jours... de mémoire, vu que si la SNCF a équipé son Vauban(?) de prises de courants depuis 2008, je n'ai toujours pas d'abonnement wifi-dans-le-train :P&lt;br /&gt;&lt;br /&gt;C'est alors que débarquent Lucius, Harry et &lt;abbr title="oui, bon, j'ai relu les tomes 4 et 5 de Harry Potter ces temps-ci. C'était trois gamins, quoi, mais comme je ne leur ai pas demandé leurs noms, je vais la jouer maliki."&gt;Ron&lt;/abbr&gt; qui viennent squatter "ma" banquette. Pendant que Lucius et Ron se chamaillent à coup d'iPhone, Harry tente désespérément de faire son devoir d'arithmancie. Il pose à ses camarades une question du genre "si, tu sais, t'as une droite ou un point et tu dois refaire un point ou une droite ...". Au bout de 2 minutes, je risque "symétrie", histoire d'avoir la paix. C'était bien ça. Ron, assis à côté de moi, semble &lt;abbr title="ouaip, il lui en faut pas beaucoup"&gt;impressionné&lt;/abbr&gt;, et me demande "c'est quoi mon métier". "Informaticien", que je réponds. "C'est vos e-mails", demande-t-il en voyant la fenêtre Xemacs. "Non", que je réponds, "c'est du code. Du C++. C'est mon moteur de jeu". Il n'a pas immédiatement relevé, mais au bout de 10 minutes de questions, je finis par lui sortir ma DS, lancer la &lt;a href="http://sourceforge.net/projects/dsgametools/files/demo%20games/appleassault-ld.nds/download"&gt;dernière version&lt;/a&gt; de &lt;a href="http://sylvainhb.blogspot.com/search/label/apple%20assault"&gt;Apple Assault&lt;/a&gt; et je lui mets la console entre les mains. "Voilà: c'est le jeu que j'ai fait l'an dernier avec mon moteur de jeu. Maintenant j'essaie de l'améliorer pour pouvoir faire d'autres jeux".&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Imagine, Ron, Lucius and Harry in regular clothes, coming in your train and sitting next to you while you're coding &lt;a href="http://sylvainhb.blogspot.com/search/label/collisions"&gt;upgrade to your collision engine&lt;/a&gt;. Ron was so curious about my job (since I was able to hint Harry on his math homework), and what is "code" for, what does a "game engine" do, en so on ... I finally picked up my DS in my bag and claimed. "Look, that's the video game I made last year with the code I'm updating now".&lt;br /&gt;&lt;br /&gt;It merely took him some gameplay tips to start enjoying the game to the point Lucius couldn't resist to stand up and check what was going on. Both were previously toying with their iPhones, but Ron never complained about &lt;a href="http://sylvainhb.blogspot.com/search/label/apple%20assault"&gt;Apple Assault&lt;/a&gt; to be flat, old-school, odd or boring or whatever. He enjoyed it the same way I enjoyed Bomb Jack at his age... And when he handled me my DS back at his end station, he said "Informatics, that rulez!" -- "Yeah, I replied, but then you need to listen to your math and physics teacher well ;)"&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Il lui a fallu quelques petits conseils pour pouvoir passer le premier niveau ("Waaaa, mortel!"), mais ensuite, le voilà lancé, posant ça et là des questions du genre "c'est vous qu'avez fait les pixels?" ou "on peut faire un jeu comme ça tout seul ?". Harry bougonne et continue son devoir, mais Lucius tend de plus en plus l'oeil par-dessus la console et finit par faire le tour pour s'asseoir sur l'accoudoir :) Ron ne me rendra la console qu'au moment de descendre du train, avec pour conclusion "C'est trop cool, informaticien !".&lt;br /&gt;"Ouaip", que je réponds, "mais il faut bien bosser ses maths et sa physique".&lt;br /&gt;&lt;br /&gt;&lt;em&gt;quick gameplay note: despite my repeated suggestions that pressing (A) again while bouncing on ennemies would build up punch power faster, neither Ron, nor my colleague (and WP leader) &lt;abbr title="who tested the game during the social event, two days earlier"&gt;Maugrey&lt;/abbr&gt; seemed to look at using that technique. As a result, they mostly had access to small-punch with limited range and efficience. Shooting a shuriken or doing a "big-punch" almost never occured during their game. When building levels further, bouncing on ennemies to reach a goal should be a refinement, not a basic feature to reach the level's exit.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-3902936779995269140?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/3902936779995269140/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=3902936779995269140' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3902936779995269140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3902936779995269140'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/10/apple-assault-fait-mouche.html' title='Apple Assault fait mouche'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-vRy9QsVvkIY/TpH9N0jqaWI/AAAAAAAADEU/XDcx2UQAag8/s72-c/aa-gameover.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-529022988282003916</id><published>2011-10-05T12:30:00.002+02:00</published><updated>2011-10-21T16:24:02.530+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixels'/><category scheme='http://www.blogger.com/atom/ns#' term='dumblador'/><category scheme='http://www.blogger.com/atom/ns#' term='deep ink pit'/><category scheme='http://www.blogger.com/atom/ns#' term='bilou'/><category scheme='http://www.blogger.com/atom/ns#' term='school zone'/><category scheme='http://www.blogger.com/atom/ns#' term='spongebop'/><title type='text'>SpongeBop &amp; Dumblador revisités</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sylvainhb.blogspot.com/2007/04/mine-de-rien-il-se-taille.html"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0px; cursor: pointer; width: 82px; height: 99px;" src="http://4.bp.blogspot.com/-hJkxoHcLg5I/Towj1SloowI/AAAAAAAADEI/SnXnZa6aZUo/s320/dumblador-sketch.png" alt="" id="BLOGGER_PHOTO_ID_5659938230127600386" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-DtABLyJzixo/Tooq0rpWxCI/AAAAAAAADD8/JAQogmn0F4Y/s320/bookshelf-mockup-monsters2.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 256px; height: 192px;" src="http://1.bp.blogspot.com/-DtABLyJzixo/Tooq0rpWxCI/AAAAAAAADD8/JAQogmn0F4Y/s320/bookshelf-mockup-monsters2.png" alt="" border="0" /&gt;&lt;/a&gt;Je n'ai pas eu autant de commentaires que j'espérais &lt;a href="http://www.wayofthepixel.net/pixelation/index.php?topic=13151.0"&gt;sur Pixelation&lt;/a&gt;, mais ça m'a quand-même suffisamment motivé pour retravailler l'animation de l'encre dans le train, en revenant de Zurich, peaufiner les bouquins et faire une version un peu décente de mon éponge ainsi qu'un lifting pour Dumblador, le taille-crayon grognon. Par contre, je persiste et signe: ce sera une école "rétro" avec le matos des années septantes (voire antérieur), encriers, tampons, éponges molles et jaunes plutôt que stylo-bille et "brosses pour tableau". C'est ça l'esprit de la school zone depuis '94, et tant pis si certains trouvent que "ça fait bizarre, les nuages jaunes" :P&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sylvainhb.blogspot.com/2007/03/monster-design-bop-lponge.html"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 157px; height: 180px;" src="http://3.bp.blogspot.com/_LtwkN4oRTe0/RfLweP6euMI/AAAAAAAAAEM/kV8MedzCFUw/s200/bop-bop.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;em&gt;I remember of &lt;a href="http://www.wayofthepixel.net/pixelation/index.php?topic=13151.0"&gt;Pixelation&lt;/a&gt; being more reactive when I was working on the green zone graphics. I guess that's the recent datacenter failure combined with the lack of on-board zoom feature that makes the board itself less attractive to artists. Anyway, having some feedback motivated me enough to keep improving books, ink, spongebop, and even dig for (2006) unpublished pixels of Dumblador and revamp them. Hope you enjoy it. At least, I think I managed to be somehow close to &lt;a href="http://sylvainhb.blogspot.com/2007/04/mine-de-rien-il-se-taille.html"&gt;my own design sketches&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;div style="display: block; margin: 0px auto 10px; text-align: center;"&gt;&lt;em&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i.imgur.com/QE0z5.gif"&gt;&lt;img style="cursor: pointer; width: 96px; height: 32px;" src="http://i.imgur.com/QE0z5.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i.imgur.com/ZSwEc.gif"&gt;&lt;img style="width: 96px; height: 32px;" src="http://i.imgur.com/ZSwEc.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-529022988282003916?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/529022988282003916/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=529022988282003916' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/529022988282003916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/529022988282003916'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/10/spongebop-dumblador-revisites.html' title='SpongeBop &amp; Dumblador revisités'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-hJkxoHcLg5I/Towj1SloowI/AAAAAAAADEI/SnXnZa6aZUo/s72-c/dumblador-sketch.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-6352786213494044645</id><published>2011-09-30T18:02:00.001+02:00</published><updated>2011-10-25T11:12:07.422+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixels'/><category scheme='http://www.blogger.com/atom/ns#' term='deep ink pit'/><category scheme='http://www.blogger.com/atom/ns#' term='colours'/><category scheme='http://www.blogger.com/atom/ns#' term='school zone'/><title type='text'>L'encre de Rayman ... et de Bilou</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-lXT0LlVKBt0/ToWR7UW7_4I/AAAAAAAADDM/9m6FyEmh8tE/s1600/rayman-ink.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 130px;" src="http://4.bp.blogspot.com/-lXT0LlVKBt0/ToWR7UW7_4I/AAAAAAAADDM/9m6FyEmh8tE/s320/rayman-ink.png" alt="" id="BLOGGER_PHOTO_ID_5658088955124121474" border="0" /&gt;&lt;/a&gt;L'encre, c'est noir. Facile. Des vagues pointues plutôt que sinusoïdales. C'est noté. Les "highlights" sont localisés à la surface (logique) et fort étroits. Dernière note: presque pas de teinte dans le highlight. C'est essentiellement du gris, avec une très légère teinte brune (saturation maximale 10%)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Make it black, and make it spiky rather than wavy. Keep the highlight thin, focused at the top, and use almost 'pure' greys for the shading. That's what we can learn from analysing Rayman's ink sea in Picture City. So here's (below) what it produces when I follow those advices. It animates nicely, but maybe a 16 pixels-wide tile was a bit too small 0_o.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wayofthepixel.net/pixelation/index.php?topic=13151.0"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 256px; height: 160px;" src="http://1.bp.blogspot.com/-p_M72vCZGzE/ToW8-Y40rGI/AAAAAAAADDY/q2JeTkopBOg/s320/deep-ink-pit-mockup3.png" alt="" id="BLOGGER_PHOTO_ID_5658136286879591522" border="0" /&gt;&lt;/a&gt;Bon, celà dit, je ne dois pas me fier aveuglément au graphisme de Rayman. Quand on lit l'article de Pix'n'Love, on se rend compte que les graphismes étaient essentiellement réalisés avec des techniques classiques de dessin animé, puis "retravaillés" pour le jeu vidéo. Moi, je la joue directement "pixel art" avec moins de couleurs etc. (entre autres parce que je n'ai pas une équipe de 60 personnes avec moi :P)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-6352786213494044645?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/6352786213494044645/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=6352786213494044645' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6352786213494044645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6352786213494044645'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/09/lencre-de-rayman-et-de-bilou.html' title='L&apos;encre de Rayman ... et de Bilou'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-lXT0LlVKBt0/ToWR7UW7_4I/AAAAAAAADDM/9m6FyEmh8tE/s72-c/rayman-ink.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-5350981639261598157</id><published>2011-09-29T20:02:00.002+02:00</published><updated>2011-12-20T18:00:52.506+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='newcollide'/><category scheme='http://www.blogger.com/atom/ns#' term='collisions'/><category scheme='http://www.blogger.com/atom/ns#' term='choice'/><category scheme='http://www.blogger.com/atom/ns#' term='sketch'/><category scheme='http://www.blogger.com/atom/ns#' term='platforms'/><title type='text'>blocking GOBs</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-3uuggL9Kb-4/Tkyu0bO14kI/AAAAAAAAC94/b8ZfE-xRR3c/s1600/blocking-expr0001.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; width: 320px; height: 102px;" src="http://1.bp.blogspot.com/-3uuggL9Kb-4/Tkyu0bO14kI/AAAAAAAAC94/b8ZfE-xRR3c/s320/blocking-expr0001.png" alt="" id="BLOGGER_PHOTO_ID_5642076648874828354" border="0" /&gt;&lt;/a&gt;Vous vous souvenez peut-être d'un commentaire de mon frère CJ comme quoi "il faudrait quand-même à un moment donné qu'on puisse avoir des ennemis à travers lesquels on ne passe pas même si Bilou est invincible... une chose que je n'avais pas vraiment prévu de rendre possible dans le moteur de jeu de "Apple Assault": Bilou ne sait pas traverser Funky Funghi simplement parce que dès qu'il le touche, il est blessé et repoussé en arrière. Mais pour les encriers et les plate-formes mobiles, ça risque de causer bien d'autres soucis.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;It may look like Bilou can't walk through Funky Funghi in the released demos so far, but I'm actually cheating. What happens is that every time Bilou touches Funky, he's hurt and slightly bounce backwards. It wouldn't be possible that have an harmless, blocking sprite with the Apple Assault engine ... fairly annoying to implement inkjets in the schoolzone, isn't it ? I't's been a background question for a while now, and many solutions have been dismissed already, but I quite like the latest one: have object-to-object alignment primitives &lt;span style="font-weight: bold;"&gt;in GobExpressions&lt;/span&gt; so that you can say "hero is moved out of inker's area" between "play a 'ding' sound" and "shoot a sparkle"&lt;/em&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-W0zzjGVWuRo/Tkyu0MQsFYI/AAAAAAAAC9w/gT-75X6S5ng/s1600/blocking-expr0002.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; width: 315px; height: 131px;" src="http://3.bp.blogspot.com/-W0zzjGVWuRo/Tkyu0MQsFYI/AAAAAAAAC9w/gT-75X6S5ng/s320/blocking-expr0002.png" alt="" id="BLOGGER_PHOTO_ID_5642076644856042882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Du coup, pourquoi ne pas simplement prévoir quelques actions "de base" d'alignement &lt;span style="font-style: italic;"&gt;au niveau des expressions &lt;a href="http://sylvainhb.blogspot.com/search/label/gobscript"&gt;gobScript&lt;/a&gt;&lt;/span&gt; ? Plus besoin de définir des flags "sprite solide" ou "non-solide", "solide uniquement de haut en bas", pas besoin de venir bricoler les &lt;a href="http://sylvainhb.blogspot.com/search/label/iGobController"&gt;contrôleurs de comportement:&lt;/a&gt; on prévoit simplement qu'un des personnages impliqués dans une collision puisse donner l'instruction "repousse l'autre hors de ma zone de collision verticalement" ou "centre l'autre sur ma zone de collision horizontalement". Même la création d'un lien "transporteur/transporté" peut s'y retrouver. Chouettos.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Personnally, I like how "clean" this approach is. No need to hack something about the collision classes, no need to hard-code some directions of collision, no need to expose more things like absolute location or area properties to the gobScript. Just "block-x, center-x, attach" instructions that will be interpreted in a context where both areas are known by the engine. Just one little detail shows up when reading back the code of the collision engine: only "passive objects" will be capable of using those new operations, because state transitions for the "active object" in a collision are taken after collision tests for that object. Who had collided is no longer known. "on found [...] (...)" is thus not allowed to use any of the 'extra context' information. &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-HxDraSaxd18/TkyuzwLCVYI/AAAAAAAAC9o/zzqn7ahkLho/s1600/blocking-expr0003.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; width: 267px; height: 154px;" src="http://4.bp.blogspot.com/-HxDraSaxd18/TkyuzwLCVYI/AAAAAAAAC9o/zzqn7ahkLho/s320/blocking-expr0003.png" alt="" id="BLOGGER_PHOTO_ID_5642076637316142466" border="0" /&gt;&lt;/a&gt;Par contre, en relisant le code, je me rends compte que seul l'objet "passif" dans une collision aura la possibilité d'ajuster sa position ou celle de l'autre objet. Toutes les notes "on found" sont donc en réalité impossibles à moins de changer aussi le coeur du système de gestion des collisions: il faut les ramener à "on hit[]". On garde les plate-formes passives même si c'est elles qui contiennent le code qui aligne les objets.&lt;br /&gt;&lt;br /&gt;Conséquence: si je veux qu'à la fois l(a plupart d)es ennemis et les personnages puissent déclencher une réaction avec des plate-formes "passives", il me faudra une classe "Solid Moving OBject" en plus de "HERO" et "EVIL".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-XJBJwdeylIw/Tkyuz0xGpBI/AAAAAAAAC9g/TuImq9Po9Bg/s1600/blocking-expr0004.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; width: 320px; height: 222px;" src="http://4.bp.blogspot.com/-XJBJwdeylIw/Tkyuz0xGpBI/AAAAAAAAC9g/TuImq9Po9Bg/s320/blocking-expr0004.png" alt="" id="BLOGGER_PHOTO_ID_5642076638549550098" border="0" /&gt;&lt;/a&gt;&lt;em&gt;That may have some impact on the way we script those objects. Most of the use cases do not cause strong problem, except the "platform that carries both heroes and foes". There, I'd love to make sure that 1) the platform is passive, so that it holds the collision logic 2) I don't end up with O(#foes²) tests in collision tests. It sounds like I'll need a SOLID class in addition to HERO/EVIL, so far...&lt;br /&gt;Small battle plan:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;add a "transported" state. (e.g. standing on platform)&lt;/li&gt;&lt;li&gt;enforce coordinates alignment.&lt;/li&gt;&lt;li&gt;make sure you're free to move when transported&lt;/li&gt;&lt;li&gt;handle d&lt;a href="http://sylvainhb.blogspot.com/2011/07/implementer-les-plate-formes.html"&gt;isappearing platform&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-5350981639261598157?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/5350981639261598157/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=5350981639261598157' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5350981639261598157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5350981639261598157'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/09/blocking-gobs.html' title='blocking GOBs'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-3uuggL9Kb-4/Tkyu0bO14kI/AAAAAAAAC94/b8ZfE-xRR3c/s72-c/blocking-expr0001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-8710607264705903588</id><published>2011-09-23T20:02:00.002+02:00</published><updated>2012-01-21T14:22:23.929+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lost zone'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><category scheme='http://www.blogger.com/atom/ns#' term='indie'/><title type='text'>indie monkey in lost temple</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-K1BIiNyC_N8/Tnx0g_AszjI/AAAAAAAADC0/PuVHxhfu9KM/s1600/Level3-1.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 320px; height: 320px;" src="http://2.bp.blogspot.com/-K1BIiNyC_N8/Tnx0g_AszjI/AAAAAAAADC0/PuVHxhfu9KM/s320/Level3-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5655523342089506354" border="0" /&gt;&lt;/a&gt;&lt;em&gt;I'm not the author of that game nor affiliated in any way. I'm just a fan. I loved the look of the rendered mockups and the "strategy guides" presenting the obstacles. It inpsired me today to craft the "cave level screens" of "nuts'n'bolts" based on different gems or stones. My brother's gonna love that: he used to memorise (in my brain) the geology pages of his atlas when we were kids. Only bad thing: I can't remember of the game project's name, nor find it back on the Internet anywhere.&lt;br /&gt;&lt;br /&gt;&lt;s&gt;If you recognize it, just post a link as comment, please. You'll receive a dedicated drawing in return ^_^.&lt;/s&gt;&lt;br/&gt;Thanks to Furan for identifying "adventure apes" by &lt;a href="http://scarypotatosalad.blogspot.com/"&gt;"scary potato salad"&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Un p'tit singe perdu dans un temple ... un projet de jeu de (puzzle?)-platformer plutôt sympa qui m'a inspiré l'utilisation d'un "thème géologique" pour chaque écran dans les grottes du monde de Bilou. Seul hic: impossible de retrouver le projet d'origine pour faire le lien. Le premier à me retrouver le lien vers le jeu d'origine gagne un dessin dédicacé ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-8710607264705903588?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/8710607264705903588/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=8710607264705903588' title='7 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/8710607264705903588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/8710607264705903588'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/09/indie-monkey-in-lost-temple.html' title='indie monkey in lost temple'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-K1BIiNyC_N8/Tnx0g_AszjI/AAAAAAAADC0/PuVHxhfu9KM/s72-c/Level3-1.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-7158425068384281518</id><published>2011-09-22T20:02:00.004+02:00</published><updated>2011-09-30T18:06:29.283+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixels'/><category scheme='http://www.blogger.com/atom/ns#' term='deep ink pit'/><category scheme='http://www.blogger.com/atom/ns#' term='bilou'/><category scheme='http://www.blogger.com/atom/ns#' term='school zone'/><category scheme='http://www.blogger.com/atom/ns#' term='mockup'/><category scheme='http://www.blogger.com/atom/ns#' term='spongebop'/><title type='text'>deep ink pit mockup tout moche</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wayofthepixel.net/pixelation/index.php?topic=13151.0"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 256px; cursor:pointer; height: 160px;" src="http://1.bp.blogspot.com/-Ws7EfWeiCqA/TnnHDZ-wSOI/AAAAAAAADCY/PwnldS3Nb_8/s320/deep-ink-pit-mockup.png" alt="-&amp;gt; pixelation thread" id="BLOGGER_PHOTO_ID_5654769668468000994" border="0" title="-&amp;gt; pixelation thread"/&gt;&lt;/a&gt;J'essaie de rendre "&lt;a href="http://sylvainhb.blogspot.com/2011/04/deep-ink-pit-backstory.html"&gt;deep ink pit&lt;/a&gt;" un peu plus concret, mais j'ai du mal avec ce classeur qui ne veut pas sortir de mon stylet &amp;gt;_&amp;lt; Je devrais peut-être essayer de travailler avec une autre couleur que le violet. Les &lt;a href="http://sylvainhb.blogspot.com/2007/03/monster-design-bop-lponge.html"&gt;Bop'Eponges&lt;/a&gt; donnent pas encore trop mal pour quelque-chose de bricolé en 2 minutes dans Gimp. Par contre, l'encre, clairement, il faudra que je me documente pour avoir quelque-chose de décent. Comme quoi,&lt;a href="http://sylvainhb.blogspot.com/2010/01/bilou-dreams-clone-it.html#deepinkpit"&gt; quand je disais&lt;/a&gt; que je n'ai pas encore ce qu'il faut au niveau graphismes, je ne vous racontais pas de bobards.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Well, you may &lt;a href="http://sylvainhb.blogspot.com/2010/01/bilou-dreams-clone-it.html#deepinkpit"&gt;remember that poll&lt;/a&gt; where you had to vote for different game designs. Deep ink pit was then first presented. A kind of "tower climbing" game where you'd hop from spongebop to spongebop and try to get high enough to convince the &lt;a href="http://sylvainhb.blogspot.com/2011/04/deep-ink-pit-backstory.html"&gt;Inkjet Master&lt;/a&gt; that you're the hero and that he should help you on your quest. I think that will be my next mini-game, featuring &lt;a href="http://cyborgjeff.untergrund.net/site/modules/mydownloads/singlefile.php?cid=12&amp;lid=214"&gt;'BN chocolate' soundtrack&lt;/a&gt; from my brother. Unfortunately, I'm not much more advanced related to the graphics that I was initially. At least, since I've made a game with the green zone graphics, I'm now &lt;a href="http://sylvainhb.blogspot.com/2009/01/analysis-paralysis.html"&gt;free to craft some more graphics&lt;/a&gt;. Let's hope it will improve soon, because this seminal mock-up looks ugly to my eye.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;edit:&lt;/b&gt; dans &lt;a href="http://www.raymanpc.com/wiki/en/Picture_City"&gt;la cité des images&lt;/a&gt; de Rayman, seuls les contours de l'encre sont colorés. Enfin, quand je dis colorés, c'est plutôt un reflet blanc qu'une coloration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-7158425068384281518?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/7158425068384281518/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=7158425068384281518' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7158425068384281518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7158425068384281518'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/09/deep-ink-pit-mockup-tout-moche.html' title='deep ink pit mockup tout moche'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Ws7EfWeiCqA/TnnHDZ-wSOI/AAAAAAAADCY/PwnldS3Nb_8/s72-c/deep-ink-pit-mockup.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-7804136882941448357</id><published>2011-09-15T22:27:00.003+02:00</published><updated>2012-01-07T18:59:36.738+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='keen'/><category scheme='http://www.blogger.com/atom/ns#' term='superpowers'/><category scheme='http://www.blogger.com/atom/ns#' term='rayman'/><category scheme='http://www.blogger.com/atom/ns#' term='mario'/><category scheme='http://www.blogger.com/atom/ns#' term='game design'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><title type='text'>run, you fools!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-cx_ze5MK7iI/TjcMqzhB_oI/AAAAAAAAC8I/8E5fLRdSzTs/s1600/run-you-fools.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 320px; height: 267px;" src="http://2.bp.blogspot.com/-cx_ze5MK7iI/TjcMqzhB_oI/AAAAAAAAC8I/8E5fLRdSzTs/s320/run-you-fools.png" alt="" id="BLOGGER_PHOTO_ID_5635987388200255106" border="0" /&gt;&lt;/a&gt;Mario, Sonic, Rayman ... chacun d'eux peut courir, mais l'impact sur le gameplay est chaque fois différent. Voilà un petit dessin-du-dimanche pour refaire le point. L'élément intéressant (pour un platformer) n'est pas tant qu'on va plus vite en courant, mais plutôt la manière dont on va exiger plus de maîtrise de la part du joueur quand il doit affronter "un saut plus compliqué".&lt;br /&gt;&lt;br /&gt;&lt;em&gt;It's not that much about going faster, but rather about clearing longer holes with a jump. In most platformers, this is achieved through the RUN mechanics ... but not all. Check out my scribbled notes for details ^_^&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Dans SuperMario, il faudra gagner en vitesse, donc essentiellement contrôler l'absence d'obstacles. Le "triple saut" des épisodes du nouveau millénaire poussent cette contrainte encore plus à l'extrème.&lt;br /&gt;&lt;br /&gt;Rayman, en comparaison a un bouton de course "binaire". Un seul bloc suffit à faire un saut long. Par contre, le jeu est beaucoup plus pointilleux sur le timing du saut (point-test unique contre deux tests pour Sonic, peut-être ?).&lt;br /&gt;&lt;br /&gt;Keen, lui ne court jamais (ou tout le temps, c'est selon), mais l'activation du pogo permet de faire des sauts plus longs (mais ici aussi, il faut faire d'avantage attention au timing et à l'environnement). Fury est un peu un mélange de Keen et Sonic: on court de plus en plus vite, et on saute d'autant plus haut qu'on enchaine les sauts (il suffit de garder le bouton enfoncé).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-7804136882941448357?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/7804136882941448357/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=7804136882941448357' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7804136882941448357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7804136882941448357'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/08/run-you-fools.html' title='run, you fools!'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-cx_ze5MK7iI/TjcMqzhB_oI/AAAAAAAAC8I/8E5fLRdSzTs/s72-c/run-you-fools.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-3393069736463919042</id><published>2011-09-14T21:12:00.003+02:00</published><updated>2011-09-15T13:02:24.494+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='y96'/><category scheme='http://www.blogger.com/atom/ns#' term='bilou'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='basic'/><title type='text'>Animer Bilou</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-gmtqCMyniXE/Tm3a0cHXEaI/AAAAAAAADCM/S7tyQtvFhXg/s1600/bilou-analogic.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 320px; height: 185px;" src="http://4.bp.blogspot.com/-gmtqCMyniXE/Tm3a0cHXEaI/AAAAAAAADCM/S7tyQtvFhXg/s320/bilou-analogic.png" alt="" id="BLOGGER_PHOTO_ID_5651413701854957986" border="0" /&gt;&lt;/a&gt;Petite image d'archive, pour meubler un petit peu pendant que je tripatouille les entrailles de &lt;a href="http://sylvainhb.blogspot.com/search/label/runme"&gt;runme&lt;/a&gt;. Entre mes notes de philo, je gribouillais déjà en '96 des animations complète de Bilou à réintégrer dans &lt;a href="http://sylvainhb.blogspot.com/2006/10/bilou-lancien-et-le-nouveau.html"&gt;le jeu QuickBasic&lt;/a&gt;. A partir de là, je pouvais identifier les positions à dessiner pour le "corps" dans mon &lt;a href="http://sylvainhb.blogspot.com/2007/06/years-of-sprite-editor-coding.html"&gt;Sprite Editor de l'époque&lt;/a&gt;, puis &lt;a href="http://sylvainhb.blogspot.com/2009/06/je-vous-parle-dun-temps-que-les-moins.html"&gt;définir les coordonnées&lt;/a&gt; des 2 mains et des 4 morceaux de pieds à chaque étape. Bien moins agréable qu'avec AnimEDS, hein ?&lt;br /&gt;Côté animation proprement dite, l'influence de &lt;a href="http://sylvainhb.blogspot.com/2006/10/fury-of-furries.html"&gt;Fury of the Furries&lt;/a&gt; a été déterminante.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I retrieved last week-end the full set of hand-drawn animations that were used to produce the QBasic version of Bilou platformer game... I'm sure you can feel the "Fury of the Furries" inspiration here. That was later used to plot the various (but restricted) 10x10 sprites for Bilou's body in my custom Sprite Editor, and then to write down the code that set the position of hands and feet ... 6 coordinates pair for every move. Sure it would have been easier if I had the AnimEDS as well by then ^_^ &lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-3393069736463919042?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/3393069736463919042/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=3393069736463919042' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3393069736463919042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3393069736463919042'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/09/animer-bilou.html' title='Animer Bilou'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-gmtqCMyniXE/Tm3a0cHXEaI/AAAAAAAADCM/S7tyQtvFhXg/s72-c/bilou-analogic.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-8779128406210454311</id><published>2011-09-09T10:14:00.011+02:00</published><updated>2011-12-07T18:13:11.402+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='sprite editor'/><category scheme='http://www.blogger.com/atom/ns#' term='blogroll'/><category scheme='http://www.blogger.com/atom/ns#' term='mockup'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><title type='text'>Vu sur Internet ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-dtFiip7ru5U/TmnLGTiQ_1I/AAAAAAAADBI/2K-Y38fcf88/s1600/ICON0SpriteEditorDS.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px; height: 130px;" src="http://1.bp.blogspot.com/-dtFiip7ru5U/TmnLGTiQ_1I/AAAAAAAADBI/2K-Y38fcf88/s320/ICON0SpriteEditorDS.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5650270516696645458" /&gt;&lt;/a&gt; J'aime assez bien la "jaquette" que les rédacteurs de &lt;a href="http://nds.scenebeta.com/noticia/sprite-editor-ds"&gt;scenebeta.com&lt;/a&gt; ont mise en place pour mon éditeur de sprite, lors de sa version n° 4. Elle me donne d'ailleurs une idée pour une extension d'enfer: encodez un bitly, et on "charge" l'image correspondante sous forme .spr directement comme spritepage supplémentaire ^_^&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-raCujrkB54Y/TmoxELQws7I/AAAAAAAADB0/3shc96z_wxw/s1600/file-menu-hints.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 213px; height: 320px;" src="http://1.bp.blogspot.com/-raCujrkB54Y/TmoxELQws7I/AAAAAAAADB0/3shc96z_wxw/s320/file-menu-hints.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5650382630302036914" /&gt;&lt;/a&gt;Par contre, les échos qui me reviennent parlent régulièrement d'interface perturbante, où on ne sait pas trop qui fait quoi... Comme dit Morukutsu "on sent que c'est fait pour moi, et pas pour un utilisateur". Ce qui n'est pas totalement faux, mais qui doit le devenir :P&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-Lkl-72IN4r4/Tmo3ZzvXdII/AAAAAAAADCA/9gpmAMQxMoc/s1600/seds-05-mockup.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 212px; height: 320px;" src="http://3.bp.blogspot.com/-Lkl-72IN4r4/Tmo3ZzvXdII/AAAAAAAADCA/9gpmAMQxMoc/s320/seds-05-mockup.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5650389599014843522" /&gt;&lt;/a&gt; Voilà à quoi ressembleraient (imho) les écrans "gestion du fichier" dans SEDS et AnimEDS respectivement, avec cette nouvelle "ouverture au monde extérieur".&lt;br /&gt;&lt;br /&gt;&lt;em&gt;The notification of AnimEDS' new release has started propagating from newsboard to newsboard in a totally uncontrollable fashion. Welcome to the world of homebrew :P I just hope that the next wave of newsers will check out this blog rather than blindly quoting gbatemp's news, as 'AnotherWorld' has completely missed what was new in this release : you can create your own character skeletton.&lt;br /&gt;&lt;br /&gt;Meanwhile, I also stumbled upon a post about the latest version of SEDS on scenebeta, where the newser made up a funny "cover" for the tool, depicting a megaman sprite re-worked again and again to show various Capcom characters ... yes, that too could be a use of SEDS. I guess all I still lack is a simple way to import some graphics from the Internet for that ... Maybe some online png-&amp;gt;spr tool combined with a bitly encoding of the source URL would do it ?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Dans le même temps, un rédacteur de &lt;a href="http://gbatemp.net/t307743-animeditor-v0-3"&gt;gbatemp&lt;/a&gt; a repris la niouze de la sortie de AnimEDS 0.2, mais sans trop se fouler. Notamment, il reprend texto "The application is still in the early stages of development and is hardcoded for a specific layout of the .spr file.", alors que la création de nouvelles structures, c'est justement ça que j'ai apporté entre la 0.2 et la 0.3 &amp;gt;_&amp;lt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-8779128406210454311?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/8779128406210454311/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=8779128406210454311' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/8779128406210454311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/8779128406210454311'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/09/vu-sur-internet.html' title='Vu sur Internet ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-dtFiip7ru5U/TmnLGTiQ_1I/AAAAAAAADBI/2K-Y38fcf88/s72-c/ICON0SpriteEditorDS.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-2419999894176241556</id><published>2011-09-07T20:06:00.002+02:00</published><updated>2011-09-12T10:21:19.836+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='who am I'/><category scheme='http://www.blogger.com/atom/ns#' term='C64'/><category scheme='http://www.blogger.com/atom/ns#' term='porting?'/><category scheme='http://www.blogger.com/atom/ns#' term='nostalgy'/><title type='text'>Pourquoi l'éditeur d'animations ? ...</title><content type='html'>Souvenez-vous: on est en janvier, je &lt;a href="http://sylvainhb.blogspot.com/2010/12/merry-christmas_25.html"&gt;viens de faire une release des sources de Apple Assault&lt;/a&gt;, je me suis &lt;a href="http://sylvainhb.blogspot.com/2010/12/libfat-hide-and-fseek.html"&gt; un peu pris la tête avec les responsables de devkitpro&lt;/a&gt; et plutôt que d'attaquer un nouveau mini-jeu, je commence &lt;a href="http://sylvainhb.blogspot.com/2011/04/resbgtilesub.html"&gt;le développement d'un éditeur d'"animations à la rayman"&lt;/a&gt;. Développement qui aura donc duré 9 mois (mais alors, pas intensif pour un sou, hein ;) avant qu'&lt;a href="http://sylvainhb.blogspot.com/2011/09/animeds-version-03.html"&gt;une version un peu utilisable&lt;/a&gt; ne voie le jour. "Ma Perché?" me &lt;abbr title="si vous avez un peu de lettres et d'esprit ;)"&gt;direz-vous&lt;/abbr&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://c64charleroi.skynetblogs.be/archive/2008/05/12/mimi-la-fourmi-sera-bientot-parmi-vous.html"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 200px;" src="http://3.bp.blogspot.com/-OKJlTZPLgz4/TmHgQD7bY3I/AAAAAAAADAE/fwjo3BwkhXs/s320/Mimi_la_Fourmi.png" alt="" id="BLOGGER_PHOTO_ID_5648041974236406642" border="0" /&gt;&lt;/a&gt;Eh bien, c'est qu'en janvier, mon frère s'est rendu compte qu'un p'tit bonhomme, ça grandit vite. "Ce serait chouette de refaire &lt;span style="font-style: italic;"&gt;mimi&lt;/span&gt; pour eux, Pype", dit-il, "et si on veut qu'ils y jouent tant qu'ils trouvent ça rigolo, il va falloir s'y mettre.&lt;br /&gt;&lt;br /&gt;Mimi ... "mimi la fourmi", alias "mimi à la campagne" ... un &lt;a href="http://www.gb64.com/game.php?id=4832&amp;amp;d=39"&gt;jeu C64 réalisé par 2 québecquois&lt;/a&gt; et distribué par Logidisque qui avait fini dans le rayon du GB, puis dans le caddie de mon paternel. Un petit écran bucolique habité par une petite fourmi. A chaque touche enfoncée, une petite musique et une animation ... de quoi apprendre aux charmantes têtes blondes à reconnaître les lettres du clavier en s'amusant. Ma soeur (4-5 ans à l'époque) y a passé un temps certain. Mon frère et moi, on chipait alors le clavier pour enregistrer des "macros" ... une sorte de mini-histoire en enchaînant (N)uit, (R)eve, (J)our, (P)apillon.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"Mimi la fourmi" was a C64 game that defined a part of our family's childhood. Press a key (e.g. 'N' for 'N'ight) and the little ant will do something on screen such as cutting some flowers or bring a cake to a friend, together with some classical theme played through the SID. Between &lt;a href="/search/label/calimero"&gt;calimero&lt;/a&gt; and the discovery of RSD game-maker, there have been projects to port this little jewel to the PC world during my teenage years. Nothing ever got coded, though.&lt;br /&gt;&lt;br /&gt;Since my bros' and I are now parents, the idea popped up to revive the game on the DS. Almost everything is in place, except that there are quite many animations for that game ... too much for classical techniques, but not for modular animations. That's why I've spent the last 9 month on a tool that seems so far away from creating one more Bilou game.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-0qZEfkqmayE/TmHge-TTFjI/AAAAAAAADAM/YwC5JMVLtWA/s1600/mimi-and-friends.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 262px; height: 320px;" src="http://2.bp.blogspot.com/-0qZEfkqmayE/TmHge-TTFjI/AAAAAAAADAM/YwC5JMVLtWA/s320/mimi-and-friends.png" alt="" id="BLOGGER_PHOTO_ID_5648042230423950898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Chouettes souvenirs, donc. A peine avais-je maîtrisé les commandes "draw" et "play" du QBasic que j'envisageais déjà un portage sur PC, qui n'a jamais été vraiment commencé. Mimi la fourmi, une coccinelle qui passe sur l'air de "la cuccaracha", une abeille qui apporte du miel, un -- non, deux -- petits vers ... tout ça pourrait en effet être bien sympathique.&lt;br /&gt;&lt;br /&gt;Mais il y a beaucoup d'animations différentes dans le jeu C64. A l'époque 8 bit, ce n'était pas un vrai problème. Une image à l'arrêt, une image assise, une debout ... deux pour la marche dans chaque sens. En monochrome 24x24, les graphismes sont vite règlés. Mais en 256 couleurs sur la DS, à 60 images secondes, je me vois mal faire toutes les images à la base. Or, c'est le genre de petits bonshommes qui passent encore bien en animation modulaire -- qui était prévue pour Bilou depuis le départ, mais pas encore disponible. Alors oui, je me suis mis à créer l'outil nécessaire pour faire tout ça.&lt;br /&gt;&lt;br /&gt;Et toi, Piet, t'es prêt avec tes MODs ? T'as téléchargé AnimEDS pour te mettre à l'animation ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-2419999894176241556?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/2419999894176241556/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=2419999894176241556' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2419999894176241556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2419999894176241556'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/09/pourquoi-lediteur-danimations.html' title='Pourquoi l&apos;éditeur d&apos;animations ? ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-OKJlTZPLgz4/TmHgQD7bY3I/AAAAAAAADAE/fwjo3BwkhXs/s72-c/Mimi_la_Fourmi.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-5802713516925370038</id><published>2011-09-06T21:40:00.004+02:00</published><updated>2011-09-07T17:49:11.061+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='user guide'/><category scheme='http://www.blogger.com/atom/ns#' term='screenshot'/><title type='text'>AnimEDS: l'écran "fichier"</title><content type='html'>Le menu "fichier" a pas mal été révisé avec la version 0.3 d'AnimEDS. Ca vaut peut-être la peine de passer les nouvelles fonctionnalités en revue:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-YEokgcLtM1k/TmZ3NADTVjI/AAAAAAAADA8/Hpo3ty1vvwc/s1600/file-menu.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 213px; height: 320px;" src="http://4.bp.blogspot.com/-YEokgcLtM1k/TmZ3NADTVjI/AAAAAAAADA8/Hpo3ty1vvwc/s320/file-menu.png" alt="" id="BLOGGER_PHOTO_ID_5649333847818720818" border="0" /&gt;&lt;/a&gt;&lt;b&gt;Pour enregistrer une animation et en commencer une autre&lt;/b&gt;&lt;ul&gt;&lt;li&gt;pressez (START) pour passer en mode "fichier"&lt;/li&gt;&lt;li&gt;utilisez le DPAD pour choisir un slot, puis pressez (Y) pour y sauver votre animation&lt;/li&gt;&lt;li&gt;choisissez une autre animation et presssez (A) pour la prévisualiser&lt;/li&gt;&lt;li&gt;pressez à nouveau (START) pour revenir au mode d'édition&lt;/li&gt;&lt;/ul&gt;N.B.: (A) sauve l'animation en cours d'édition dans son slot d'origine. Pour abandonner les dernières modification et charger une autre animation, pressez (B).&lt;br /&gt;&lt;br /&gt;Pressez (R)-(R) en mode 'fichier' pour sauver de façon permanente votre fichier sur la carte-mémoire. Alternativement, (R)-(A), (R)-(B), (R)-(X) et (R)-(Y) permettent d'enregistrer sur un des fichiers de travail précis.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;b&gt;Define your own character&lt;/b&gt;&lt;br /&gt;That's a major new feature added with AnimEDS 0.3: you're no longer tied to a pre-coded character structure. You can come with a fresh .spr file you've drawn with SEDS and proceed as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; use '-' and '+' buttons to define how many component your character will have&lt;/li&gt;&lt;li&gt;use '&amp;gt;&amp;gt;' and '&amp;lt;&amp;lt;' buttons to navigate to the proper sprite sheet, touch the picture you want to use as "thumbnail" for a component, and finally L-touch the limb in the limbs table on the left.&lt;/li&gt;&lt;li&gt;repeat this process until all the limbs have a picture defined.&lt;/li&gt;&lt;li&gt;click 'OK' to start a fresh animation with that skeletton, or L-click "OK" to resume edition of the current animation with the updated skeletton.&lt;/li&gt;&lt;/ul&gt;N.B.: the order in the limbs table also define priority among limb sprites.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;modifier la structure du personnage:&lt;/b&gt;&lt;br /&gt;L'éditeur prépare un personnage à 2 mains, 2 pieds, 1 corps et 1 tête. Chaque "composant" est associé à une palette de sprites (la "sprite sheet" sur la droite) et ne peut utiliser que des sprites appartenant à cette palette. En revanche, plusieurs composants peuvent utiliser la même palette.&lt;br /&gt;&lt;ul&gt;&lt;li&gt; utilisez les boutons '-' et '+' pour définir le nombre de composants dans votre nouveau personnage.&lt;/li&gt;&lt;li&gt;pour chaque composant, déplacez-vous vers la bonne palette à l'aide de '&amp;lt;&amp;lt;' et '&amp;gt;&amp;gt;', puis touchez du stylet le sprite qui servira de "représentant" pour ce composant et L-touchez le composant en question dans la table de gauche.&lt;/li&gt;&lt;li&gt;répétez l'opération avec les composants suivants jusqu'à ce que le personnage soit entièrement défini&lt;/li&gt;&lt;li&gt;cliquez sur 'OK' pour commencer une nouvelle animation avec cette structure, ou cliquez en maintenant 'L' enfoncé pour retourner à l'animation en cours en appliquant les modifications de structure.&lt;/li&gt;&lt;/ul&gt;N.B.: l'ordre d'apparition dans la table de gauche défini aussi la priorité relative des composants (p.ex. 1 main et 1 pied par-devant le corps, 1 main et 1 pied par-derrière, et les yeux par-dessus tout).&lt;br /&gt;Truc: une fois la structure définie, positionnez les différents composants pour une image fixe que vous enregistrez immédiatement (START-Y) avant de commencer à animer. Enregistrer votre première animation sur un slot différent de façon à pouvoir facilement commencer une 2eme puis une 3eme animation en repartant d'une structure déjà dégrossie.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;b&gt;Manage your animations&lt;/b&gt;&lt;br /&gt;Once in the "file" area, you can move the cursor on the top screen with your DPAD to select an animation slot. In v0.3, you're given 48 slots where you can record animations. By default, your "ongoing" work is nowhere yet in those slots, but the program remembers where it came from. So,&lt;ul&gt;&lt;li&gt;(A) will save current work where it came from, and load the selected slot&lt;/li&gt;&lt;li&gt;(B) will &lt;span style="font-weight: bold;"&gt;drop&lt;/span&gt; current work, and load the selected slot&lt;/li&gt;&lt;li&gt;(Y) will &lt;span style="font-weight: bold;"&gt;overwrite&lt;/span&gt; the selected slot with your current work.&lt;/li&gt;&lt;li&gt;(X) should clear the selected slot, and keep your current work untouched (experimental feature).&lt;/li&gt;&lt;/ul&gt;When saving your work to a file (with START-R-[ABYX]), the program will automatically write back your current work into the slot it came from.&lt;br /&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-5802713516925370038?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/5802713516925370038/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=5802713516925370038' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5802713516925370038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5802713516925370038'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/09/animeds-lecran-fichier.html' title='AnimEDS: l&apos;écran &quot;fichier&quot;'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-YEokgcLtM1k/TmZ3NADTVjI/AAAAAAAADA8/Hpo3ty1vvwc/s72-c/file-menu.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-557056081183626265</id><published>2011-09-06T13:14:00.006+02:00</published><updated>2011-09-09T10:12:22.561+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><category scheme='http://www.blogger.com/atom/ns#' term='user guide'/><category scheme='http://www.blogger.com/atom/ns#' term='screenshot'/><title type='text'>AnimEDS version 0.3</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sourceforge.net/projects/dsgametools/files/dsgametools/AnimEDS-0.3.zip/download"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 174px; height: 47px;" src="http://3.bp.blogspot.com/-y0CAm1ttztc/TmYA2zSjnjI/AAAAAAAADAw/M2pHUIMKF1c/s320/dl-animeds03.png" alt="" id="BLOGGER_PHOTO_ID_5649203724063841842" border="0" /&gt;&lt;/a&gt;&lt;em&gt;timeline management reviewed, bug fixed, next/previous location of the selected component are depicted on screen ... well, I think we've got everything we could like for a &lt;a href="http://sourceforge.net/projects/dsgametools/files/dsgametools/AnimEDS-0.3.zip/download"&gt;0.3 release&lt;/a&gt; of my animation editor. Enjoy...&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-ehCPg5YzVQQ/Tli2LRUN8II/AAAAAAAAC_s/8p6NYDy9NiM/s1600/insert-delay.png"&gt;&lt;img style="float: left; margin: 0px 10px 10px 0px; text-align: center; cursor: pointer; width: 246px; height: 195px;" src="http://1.bp.blogspot.com/-ehCPg5YzVQQ/Tli2LRUN8II/AAAAAAAAC_s/8p6NYDy9NiM/s1600/insert-delay.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;em&gt;&lt;span style="font-weight: bold;"&gt;start&lt;/span&gt;: toggle file/edition screens&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;in file mode&lt;/span&gt;:&lt;ul&gt;&lt;li&gt;DPAD selects the animation slot to use&lt;/li&gt;&lt;li&gt;A : write back current work and load select slot&lt;/li&gt;&lt;li&gt;B : drop current work and load selected slot&lt;/li&gt;&lt;li&gt;X : (delete selected slot ?)&lt;/li&gt;&lt;li&gt;Y : overwrite selected slot with current work&lt;/li&gt;&lt;li&gt;L : load file&lt;/li&gt;&lt;li&gt;R: save to file&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;edition, with a selected limb&lt;/span&gt;: DPAD = move limb precisely, L=deselect&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;edition, no limb selected:&lt;/span&gt;&lt;ul&gt;&lt;li&gt;left = move frame earlier in time, right = move frame later in time&lt;/li&gt;&lt;li&gt;up = edit previous frame, down = edit next frame&lt;/li&gt;&lt;li&gt;Y = copy the current frame&lt;/li&gt;&lt;li&gt;X = delete the current frame&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;To get started&lt;/b&gt;: unpack the zip file, place AnimEditor.nds wherever you want, place the shipped "spritey.spr" at the root of your media card -- if there was any other file there, backup it first. Then boot your DS, launch the editor and press [START]-L-Y to load the file, then [START] again and use DPAD+A to preview animations. &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Bien. Bugs résolus, manipulation du temps parachevée, visualisation trans-temporelle des composants d'un personnage ... Je pense que tout y est. On peut faire la release 0.3 de AnimEDS. Amusez-vous bien. Les instructions sont traduites en français &lt;a href="http://www.dev-fr.org/index.php/topic,5033.msg48300.html#msg48300"&gt;sur dev-fr&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;See &lt;a href="http://sylvainhb.blogspot.com/2011/09/animeds-lecran-fichier.html"&gt;this post&lt;/a&gt; for additional user instructions&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-557056081183626265?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/557056081183626265/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=557056081183626265' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/557056081183626265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/557056081183626265'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/09/animeds-version-03.html' title='AnimEDS version 0.3'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-y0CAm1ttztc/TmYA2zSjnjI/AAAAAAAADAw/M2pHUIMKF1c/s72-c/dl-animeds03.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-7387734690273741124</id><published>2011-09-03T14:40:00.008+02:00</published><updated>2011-09-05T13:27:30.208+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='alpha-blending'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>OAM Alpha</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-KAsv7IyuJmk/TmIsdzBRhdI/AAAAAAAADAY/xU_zPzXxxHc/s1600/spralpha.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 255px; height: 192px;" src="http://1.bp.blogspot.com/-KAsv7IyuJmk/TmIsdzBRhdI/AAAAAAAADAY/xU_zPzXxxHc/s320/spralpha.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5648125773099402706" /&gt;&lt;/a&gt;Résumons un peu:&lt;br /&gt;- si je veux un niveau de transparence variable pour un sprite, le seul moyen est d'utiliser un sprite en mode bitmap/direct color ((Attr 0, Bit10-11) to a value of 3) et d'utiliser le champ prévu pour le no de palette pour "personnaliser" le niveau de transparence.&lt;br /&gt;- pour les sprites à palette, ce sont les mêmes registres "BLDCNT" et "BLDALPHA" qui régulent la transparence des sprites depuis le GBA.&lt;br /&gt;&lt;br /&gt;&lt;code&gt; REG_BLDCNT_SUB = BLEND_DST_BG0|BLEND_DST_BG3| &amp;nbsp;&amp;nbsp;&amp;nbsp;BLEND_SRC_BG2|BLEND_SRC_SPRITE|BLEND_ALPHA;&lt;/code&gt; permet donc d'afficher des sprites et le calque 2 transparents par-dessus BG0 et BG3 (pour autant que ces deux calques soient effectivement derrière eux, sans autre chose pour faire obstruction).&lt;br /&gt;&lt;br /&gt;Mais comment faire pour que seuls certains sprites soient transparents? &lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;OBJs that are defined as 'Semi-Transparent' in OAM memory are always selected as 1st Target (regardless of BLDCNT Bit 4), and are always using Alpha Blending mode (regardless of BLDCNT Bit 6-7).&lt;/em&gt;&lt;/blockquote&gt;nous apprend-on sur &lt;a href="http://nocash.emubase.de/gbatek.htm#dsvideo"&gt;gbatek&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;C'est donc le rôle de &lt;code&gt;ATTR0_TYPE_BLENDED&lt;/code&gt; (à utiliser à la place de &lt;code&gt;ATTR0_TYPE_NORMAL&lt;/code&gt;) qui sélectionne le sprite en question comme "source d'alpha-blending" indépendamment de la valeur de &lt;code&gt;BLEND_SRC_SPRITE&lt;/code&gt; dans le registre BLDCNT.&lt;br /&gt;&lt;br /&gt;Cool. Je suis prêt à attaquer l'implémentation de "l'onion skin" dans AnimEDS ^_^&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I need 'onion skin' preview of the previous/next frame in AnimEDS, which suppose some sort of alpha-blending on the frame editor, which is made of sprites. I've got a &lt;a href="http://sylvainhb.blogspot.com/2006/09/alpha-blending.html"&gt;DS alpha-blending tutorial&lt;/a&gt; around for some years now, but my last attempt to have that working in the &lt;a href="http://sylvainhb.blogspot.com/2010/01/des-bilous-partout.html"&gt;level editor&lt;/a&gt; was rather disappointing. So here's a recap:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;You can make all the sprites have some alpha-blending by turning on &lt;code&gt;BLEND_SRC_SPRITE&lt;/code&gt; in &lt;code&gt;REG_BLDCNT_SUB&lt;/code&gt; ... not that useful. You're more likely to want a BG translucent that let sprites show through as well. That's with &lt;code&gt;REG_BLDCNT_SUB|=BLEND_DST_SPRITE&lt;/code&gt;&lt;/li&gt;&lt;li&gt;You can selectively turn on blending of some sprites by using &lt;code&gt;ATTR0_TYPE_BLENDED&lt;/code&gt;. That's what I need in my editors, but the blending level will be the same for all sprites (and layers).c&lt;/li&gt;&lt;li&gt;bitmap-type sprites use direct colors (bypassing the palettes), so the &lt;code&gt;ATTR2_PALETTE()&lt;/code&gt; field of GBA sprites is useless and has been recycled into &lt;code&gt;ATTR2_ALPHA&lt;/code&gt;. I guess you still depend on &lt;code&gt;REG_BLDCNT&lt;/code&gt; to tell *what* you're transparent against... Oh, and don't forget to set &lt;code&gt;REG_BLDALPHA&lt;/code&gt; to some value, of course.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-7387734690273741124?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/7387734690273741124/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=7387734690273741124' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7387734690273741124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7387734690273741124'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/09/oam-alpha.html' title='OAM Alpha'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-KAsv7IyuJmk/TmIsdzBRhdI/AAAAAAAADAY/xU_zPzXxxHc/s72-c/spralpha.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1623163402918010401</id><published>2011-08-29T13:37:00.002+02:00</published><updated>2011-09-01T10:30:43.876+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='screenshot'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Back in time ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-ehCPg5YzVQQ/Tli2LRUN8II/AAAAAAAAC_s/8p6NYDy9NiM/s1600/insert-delay.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 246px; height: 195px;" src="http://1.bp.blogspot.com/-ehCPg5YzVQQ/Tli2LRUN8II/AAAAAAAAC_s/8p6NYDy9NiM/s320/insert-delay.png" alt="" id="BLOGGER_PHOTO_ID_5645462437651935362" border="0" /&gt;&lt;/a&gt;&lt;em&gt;Well, I still have to work on a few aspects to make AnimEDS &lt;a href="http://sylvainhb.blogspot.com/search/label/animeds"&gt;more comfortable to work with&lt;/a&gt; before I start using those new animation in the game engine. But at last, the "core modification" of how the timeline is managed is fixed. Pauses and loops can be visualised and manipulated. Do you like their "musical" style ?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;vendredi soir}&lt;/b&gt; Bion, j'ai donc réussi à faire une version minimale de l'augmentation de délai. Encore un peu trop minimale, puisque je suis obligé de sauver l'animation puis de la recharger pour que le délai fasse effet ... bizarre, bizarre ...&lt;br /&gt;&lt;b&gt;samedi}&lt;/b&gt; Ou alors il suffirait de "valider" l'animation ? ...&lt;br /&gt;&lt;b&gt;dimanche}&lt;/b&gt; Allez, on re-génère la version compilée de l'animation lorsqu'on clique sur la preview, et on en parle plus. Mais pourquoi diable mes petits contrôles de boucle n'apparaissent-il pas ?&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-bs8DzmGqkWk/Tlt16XDs7sI/AAAAAAAAC_4/kXfVW0fmzeI/s1600/musical-timeline.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 195px; height: 48px;" src="http://3.bp.blogspot.com/-bs8DzmGqkWk/Tlt16XDs7sI/AAAAAAAAC_4/kXfVW0fmzeI/s320/musical-timeline.png" alt="" id="BLOGGER_PHOTO_ID_5646236203321454274" border="0" /&gt;&lt;/a&gt;&lt;b&gt;lundi midi}&lt;/b&gt; ça y est. Les contrôles apparaissent. La ligne du temps &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;amp;revision=866"&gt;reste ordonnée&lt;/a&gt; quand j'y déplace un cellulos. On va pouvoir passer au prochain point sur la todo list ... &lt;a hre="f=&amp;quot;http://sylvainhb.blogspot.com/2011/06/flip.html&amp;quot;"&gt;la transparence &lt;s&gt;ou les zones de collisions&lt;/s&gt;&lt;/a&gt; ?&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1623163402918010401?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1623163402918010401/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1623163402918010401' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1623163402918010401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1623163402918010401'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/08/back-in-time.html' title='Back in time ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ehCPg5YzVQQ/Tli2LRUN8II/AAAAAAAAC_s/8p6NYDy9NiM/s72-c/insert-delay.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-3079637362400899589</id><published>2011-08-26T17:42:00.002+02:00</published><updated>2011-08-26T17:44:25.645+02:00</updated><title type='text'>n33333d c000000de</title><content type='html'>Pfff. Ponçage d'escalier, rangement de maison, upgrade de PC, visites médicales, rédaction d'énoncé, lecture de TFE, surveillance d'examen, rédaction d'avis et correction d'examens ... tout ça c'est bien beau ... mais là, moi, je veux coooodeeeeer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-3079637362400899589?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/3079637362400899589/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=3079637362400899589' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3079637362400899589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3079637362400899589'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/08/n33333d-c000000de.html' title='n33333d c000000de'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-4971676396900812928</id><published>2011-08-19T11:02:00.007+02:00</published><updated>2011-10-06T11:21:15.958+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scrolling'/><category scheme='http://www.blogger.com/atom/ns#' term='done'/><title type='text'>Scrolling issues: done.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sylvainhb.blogspot.com/2010/02/tu-dchus-il-chut.html"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 97px; height: 320px;" src="http://3.bp.blogspot.com/-KDvMQG1AlH4/Tk4pNcj99TI/AAAAAAAAC-0/ZzpNANfNv6g/s320/scrolling-done.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5642492694123902258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;Oh, btw, &lt;a href="http://sylvainhb.blogspot.com/2011/08/now-to-horizontal-scrolling.html"&gt;horizontal scrolling issues&lt;/a&gt; are now &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/trunk/libgeds/source/GameScript.cpp?r1=857&amp;r2=858&amp;pathrev=858"&gt;fixed&lt;/a&gt; -- it was about time!. Hope you &lt;a href="http://sylvainhb.blogspot.com/2011/08/now-to-horizontal-scrolling.html"&gt;enjoy&lt;/a&gt; it.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Juste pour vous tenir au courant: le scrolling horizontal marche maintenant aussi bien que &lt;a href="http://sylvainhb.blogspot.com/2011/07/sonic-camera-management.html"&gt;le vertical&lt;/a&gt;. Ca ne faisait finalement que &lt;a href="http://sylvainhb.blogspot.com/2010/09/better-scrolling.html"&gt;presqu'1 an qu'on attendait ça&lt;/a&gt; ... ou depuis &lt;a href="http://sylvainhb.blogspot.com/2010/02/tu-dchus-il-chut.html"&gt;le mois de février 2010&lt;/a&gt; pour Morukutsu :P&lt;br /&gt;&lt;br /&gt;Et il m'en reste encore pas mal, des &lt;a href="http://sylvainhb.blogspot.com/search/label/todo?updated-max=2010-01-17T09%3A03%3A00%2B02%3A00&amp;max-results=20"&gt;vieux 'todo'&lt;/a&gt; comme ça ... la plupart visant l'éditeur de niveau (qui n'a toujours pas eu droit à une release officielle), d'autres sur des extensions des capacités du moteur de jeu ou de l'éditeur de sprite. Affaire à suivre.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-4971676396900812928?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/4971676396900812928/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=4971676396900812928' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/4971676396900812928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/4971676396900812928'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/08/scrolling-issues-done.html' title='Scrolling issues: done.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-KDvMQG1AlH4/Tk4pNcj99TI/AAAAAAAAC-0/ZzpNANfNv6g/s72-c/scrolling-done.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-2391161412352119788</id><published>2011-08-18T13:19:00.007+02:00</published><updated>2011-08-30T13:49:20.733+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='uml'/><category scheme='http://www.blogger.com/atom/ns#' term='wish'/><category scheme='http://www.blogger.com/atom/ns#' term='done'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Revising animation delays</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-M0xkiNxudRo/Tkz1Qe46t4I/AAAAAAAAC-o/lQoJyjJ8XJc/s1600/animeds-tiframe.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 320px; height: 217px;" src="http://2.bp.blogspot.com/-M0xkiNxudRo/Tkz1Qe46t4I/AAAAAAAAC-o/lQoJyjJ8XJc/s320/animeds-tiframe.png" alt="" id="BLOGGER_PHOTO_ID_5642154096706893698" border="0" /&gt;&lt;/a&gt; A chaque utilisation d'AnimEDS, la liste des imperfections s'allonge. Ici, c'est la gestion de la ligne du temps -- &lt;a href="http://sylvainhb.blogspot.com/2011/03/timeline-public-widget.html"&gt;le composant le plus ancien&lt;/a&gt; -- qui devra être revue dès que j'en ai fini avec ce fichu &lt;abbr title="souffrez donc que je laisse les détails dans la langue de Shakespeare ..."&gt;escalier imponçable&lt;/abbr&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Thought: Since we have an abstract TItem class, we could introduce a new TIControl in addition to TIFrame that would support things such as loops and end-of-animation. It would generate a static thumbnail and could be moved at wish.&lt;br /&gt;&lt;br /&gt;Implementation detail : TI* structures do not directly know their position. The &lt;code&gt;TIList&lt;/code&gt; consists of &lt;code&gt;(unsigned, TIFrame)&lt;/code&gt; pairs indicating each TIFrame's absolute position. Relative delays are inferred in &lt;code&gt;exportAnim()&lt;/code&gt; in order to produce the &lt;code&gt;C_CONTROL:I_DELAY&lt;/code&gt; entries.&lt;br /&gt;&lt;br /&gt;Thought: There's a "delay" plus/minus control right now, that control delay when a new item is inserted and the additional delay at the end of the animation. We'd rather have it affect directly how long a given frame is displayed.&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;[done] add &lt;code&gt;AnimWindow::adjust_positions()&lt;/code&gt; to perform one-shot delay update&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;[done] rewrite code for '+', '-' and &lt;code&gt;FRAME_SELECTED&lt;/code&gt; accordingly&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;[wish] possibly use the 'prv' and 'nxt' checkbuttons to uniformly rescale the animation.&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;[&lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;revision=864"&gt;done&lt;/a&gt;] introduce TIControl for loop and end-of-animation&lt;/em&gt;&lt;li&gt;&lt;em&gt;[&lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;revision=866"&gt;done&lt;/a&gt;] make sure moving frames across other frames do not break animation order&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;em&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-2391161412352119788?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/2391161412352119788/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=2391161412352119788' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2391161412352119788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2391161412352119788'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/08/revising-animation-delays.html' title='Revising animation delays'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-M0xkiNxudRo/Tkz1Qe46t4I/AAAAAAAAC-o/lQoJyjJ8XJc/s72-c/animeds-tiframe.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-72530558525767741</id><published>2011-08-16T11:43:00.008+02:00</published><updated>2011-08-18T13:15:00.100+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='todo'/><category scheme='http://www.blogger.com/atom/ns#' term='pppteam'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='badman'/><title type='text'>Badman.</title><content type='html'>&lt;script language="JAVASCRIPT"&gt;if (document.images){stillBAD=new Image;playingBAD=new Image;stillBAD.src = "http://4.bp.blogspot.com/-FkS6D-ZAa50/TkzzvajQA1I/AAAAAAAAC-c/pNbT5rX47Gg/s320/demo-run.png"; playingBAD.src= "http://dsgametools.sf.net/pixs/demo-run.gif";}&lt;/script&gt;&lt;br /&gt;&lt;img onmouseover="document.rundemoanim.src=playingBAD.src" onmouseout="document.rundemoanim.src=stillBAD.src" name="rundemoanim" style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer;" src="http://dsgametools.sf.net/pixs/demo-run.gif" border="0" /&gt; Deux boules superposées, deux mains rondouillettes et pareil pour les pieds, Badman est un candidat idéal pour l'animation modulaire lui aussi!&lt;br /&gt;&lt;br /&gt;Quelques coups de stylet dans le SpriteEditor, une petite animation-test d'une course plutôt concluante. C'est bon. Mais en redessinant une cape hier soir, je me rends compte qu'il est impossible de la lui ajouter sans devoir refaire toute mon animation. Nouvelle session de code &lt;s&gt;en perspective&lt;/s&gt;&lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;revision=861"&gt;terminée&lt;/a&gt; ...&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Among &lt;a href="http://sylvainhb.blogspot.com/search/label/pppteam"&gt;PPP Team characters&lt;/a&gt;, Badman is another good candidate for AnimEDS testing: balls for head, body and hands ... simple feet ... A few stylus stroke in SEDS, a simplified shading style and we're already ready to make him run ^_^ Compared to &lt;a href="http://sylvainhb.blogspot.com/2009/03/bbl-to-png-converter.html#badnrubbish"&gt;the '96 sprite sheet&lt;/a&gt;, that's a lot of work saved! Adding the waving cape required a bit more code on AnimEDS -- I hadn't drawn it at first, but defining a new skeletton (the 'ok' button on the FileWindow) would clear the animation. There's now a way to keep the animation by L-clicking that "ok" button.&lt;br /&gt;&lt;br /&gt;Okay, so next steps:&lt;ul&gt;&lt;li&gt;automate export of animation into e.g. animated GIFs.&lt;/li&gt;&lt;li&gt;onion skin, at least for specified object, later for complete character&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;!-- a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-FkS6D-ZAa50/TkzzvajQA1I/AAAAAAAAC-c/pNbT5rX47Gg/s1600/demo-run.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 248px; height: 208px;" src="http://4.bp.blogspot.com/-FkS6D-ZAa50/TkzzvajQA1I/AAAAAAAAC-c/pNbT5rX47Gg/s320/demo-run.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5642152429094962002" /&gt;&lt;/a --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-72530558525767741?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/72530558525767741/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=72530558525767741' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/72530558525767741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/72530558525767741'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/08/badman.html' title='Badman.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-4647729197339805970</id><published>2011-08-12T10:02:00.005+02:00</published><updated>2011-08-12T12:05:02.211+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='GuiEngine'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Stacking Troubles</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-V9pXUt-Y98c/TkTjVYSKa3I/AAAAAAAAC9I/EeqL6SQS3TY/s1600/stackbug.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 302px;" src="http://2.bp.blogspot.com/-V9pXUt-Y98c/TkTjVYSKa3I/AAAAAAAAC9I/EeqL6SQS3TY/s320/stackbug.png" alt="" id="BLOGGER_PHOTO_ID_5639882589810092914" border="0" /&gt;&lt;/a&gt;&lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;amp;revision=859"&gt;Fix a bug&lt;/a&gt;, another appear. Does that sound any familiar ? I had to reorganise the "window" that constitute my animation editor, so that I would no longer miss some data while saving my work. Those "windows" are widgets container that you can stack over each other. When the GUI engine needs to deliver an event, it starts trying to give it to the top-level window and digs deeper until one of the window has one widget that can process e.g. the click.&lt;br /&gt;&lt;br /&gt;The reorganisation consisted of introducing the ThumbWindow (see snapshot) below the FileWindow, so that one can control the slot where an animation should be saved while he's &lt;a href="http://sylvainhb.blogspot.com/2011/06/goro-mode-activated.html"&gt;building new skelettons&lt;/a&gt; and making "save animation to slot" a natural operation when you're on the road to save to a file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-MjYDwK4iMsg/TcpxV5lcXHI/AAAAAAAACvQ/FPMPDQcp_p4/s1600/with-thumbs-UG.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 254px; height: 376px;" src="http://4.bp.blogspot.com/-MjYDwK4iMsg/TcpxV5lcXHI/AAAAAAAACvQ/FPMPDQcp_p4/s1600/with-thumbs-UG.png" alt="" border="0" /&gt;&lt;/a&gt; at first, it seemed to work fine, unless I realised that a single click on any of the limbs or sprite tables disabled all the actions on the "bottom screen" widget. I had overlooked the fact that two of my widgets on the bottom screen (the tables) were actually not part of the "FileWindow", but something laying on the main (application-wide) MetaWindow (in red), so that they could be shared by both file storage and animation edition activities.&lt;br /&gt;Unfortunately, because MetaWindow is the lowest layer of the software, it were obscured by the screen-wide "SpriteTable" that contains all the thumbs. No way to go through. Of course, this is ridiculous: those thumbs are not on the touch screen so they shouldn't be receiving any stylus-based event ... but well, they are. For some odd (historical?-) reason, the GuiEngine ignores facts as trivial as "the top window is a DownWindow, so any UpWindow in the stack shouldn't receive GUI_CLICKED". Hopefully, it features an "active" flag that windows can set and clear to indicate their will to receive/ignore such events. It's to the application author (me ^^") to ensure Window::release() and Window::restore() update this flag accordingly to the desired effect. ... &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;amp;revision=860"&gt;which is now done&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now, if you don't mind, I have a staircase to polish.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-4647729197339805970?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/4647729197339805970/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=4647729197339805970' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/4647729197339805970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/4647729197339805970'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/08/stacking-troubles.html' title='Stacking Troubles'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-V9pXUt-Y98c/TkTjVYSKa3I/AAAAAAAAC9I/EeqL6SQS3TY/s72-c/stackbug.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-5402091191742794616</id><published>2011-08-07T08:11:00.002+02:00</published><updated>2011-08-08T11:12:39.733+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sprite editor'/><category scheme='http://www.blogger.com/atom/ns#' term='badman'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>(-1)/8 = guru meditation error.</title><content type='html'>Et chroot! J'avais donc commencé à dessiner la tête et le corps d'un &lt;a href"http://sylvainhb.blogspot.com/search/label/badman"&gt;Badman&lt;/a&gt; avec la version &lt;abbr title="comprenez, 'reconstruite sous dkp32'"&gt;"gamma"&lt;/abbr&gt; de mon sprite editor. J'en étais à une animation (plutôt réussie, à mon sens) de sa cape, l'idée étant d'en faire un perso annimable avec &lt;a href="http://sylvainhb.blogspot.com/search/label/animeds"&gt;AnimEDS&lt;/a&gt;. Plutôt sympa pour commencer mes 2 semaines de congés pendant que ma fée est toujours dans le tome 1 de la Trilogie des Périls (Eddings). Je veux ajuster un poil la vitesse de mon animation et là, &lt;abbr title="c'est l'embardée"&gt;bardaf!&lt;/abbr&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;blink&gt;&lt;code&gt;GURU MEDITATION ERROR&lt;/code&gt;&lt;/blink&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;quelque part, un widget n'a pas été prévu pour recevoir des coordonnées négatives... Il ne devrait en toute logique pas y avoir de coordonnées négatives sur la DS, d'ailleurs. Nulle part. Mais là, pas de chance, ça m'a tout planté avant que je n'aie eu le temps de sauver mes p'tits dessins.&lt;br /&gt;Enfin, j'ai trouvé la cause de l'erreur. &lt;s&gt;Je vais patcher ça fissa.&lt;/s&gt; &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/trunk/libgeds/source/PlusMinus.cpp?r1=852&amp;r2=858&amp;pathrev=858"&gt;Patché&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt; Hey there. If you happen to be using the 'latest beta' of my Sprite Editor (that is, SEDSGAMA.nds since I've switched to dkp-r32), be warned: there's a nasty bug in the "animation preview" part that may make you lose your work. I figured out what the problem is and &lt;s&gt;will update that version soon&lt;/s&gt;.&lt;br /&gt;&lt;br /&gt;Edit: fixed: if you are using sedsgama, launch it near your favourite WiFi access point and press [START] then [SELECT] to download and use the latest version (N.B.: the updated sedsgama.nds will always be downloaded at the root of your media card.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-5402091191742794616?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/5402091191742794616/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=5402091191742794616' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5402091191742794616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5402091191742794616'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/08/18-guru-meditation-error_07.html' title='(-1)/8 = guru meditation error.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-8985007953097524338</id><published>2011-08-03T13:29:00.004+02:00</published><updated>2011-08-03T13:52:04.773+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scrolling'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>now to the horizontal scrolling ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sylvainhb.blogspot.com/2009/02/xargon-jill-et-nikita.html"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 88px; height: 32px;" src="http://3.bp.blogspot.com/-5G1MfpAxGJU/TjkxR80I4nI/AAAAAAAAC8k/AumywhroDX0/s320/do-the-jill-run.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5636590593083236978" /&gt;&lt;/a&gt;&lt;em&gt;Hello, there. If you missed the english translation on my former post, &lt;a href="http://sylvainhb.blogspot.com/2011/07/sonic-camera-management.html"&gt;Sonic Camera Management&lt;/a&gt;, it's now done. The new scrolling &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/trunk/libgeds/source/GameScript.cpp?r1=787&amp;r2=857"&gt;is implemented&lt;/a&gt; and &lt;a href="http://139.165.223.2/~martin/scene/aa8-scrolldemo.nds"&gt;works fairly well&lt;/a&gt; for the vertical direction. Unfortunately, it doesn't work as well for &lt;b&gt;horizontal&lt;/b&gt; scrolling. &lt;br /&gt;&lt;br /&gt;The reason is that Bilou is not moving at the speed of 1px/frame but rather 2px every 2 frames, to match the animation speed. Former platformers would typically have &lt;b&gt;running&lt;/b&gt; characters instead, since they are more flexible. When running, it's easier to make it so that (animation) frames where a feet is in contact with the ground only last for 1 (screen) frame. Well. Anyway. The result is that right now, the horizontal scrolling is not smooth anymore, but rather "pushed a bit" at every step, then it sits back, then pushed again. Ugly. I need a mixture of the two techniques, which means a bit more code hacking.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Youpie. J'ai donc un chouette scrolling vertical bien plus professionnel. Hélas, trois fois hélas, le scrolling horizontal en a pris pour son grade. Que je m'explique. &lt;a href="http://sylvainhb.blogspot.com/2009/05/moon-walk.html"&gt;Bilou se déplace de 2 pixels tous les 1/30eme de secondes&lt;/a&gt; alors que le jeu tourne à 60Hz. Il reste donc 2 "coups" de jeu au même endroit bien qu'ayant une vitesse moyenne de 60px/seconde. Le hic, c'est que si j'applique la politique "le personnage pousse l'écran en quittant la zone neutre du scrolling", eh bien, mon scrolling ne bouge plus qu'à 30Hz, 2 pixels à la fois. Et ça, c'est assez moche et nauzéeux. Bref, il faut que je passe à une approche hybride qui combine le nouveau scrolling vertical et l'ancien scrolling horizontal ... soit encore un peu plus de bricolage sur iCamera :P&lt;br /&gt;&lt;br /&gt;&lt;em&gt; ... and well ... I will need to build a place where I can test things with the full-quality pixel art ... not restricted to that &lt;a href="http://sylvainhb.blogspot.com/2010/11/open-sourcing-apple-assault.html"&gt;"open-source 8-bit" color reduction&lt;/a&gt; thingy :P&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-8985007953097524338?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/8985007953097524338/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=8985007953097524338' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/8985007953097524338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/8985007953097524338'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/08/now-to-horizontal-scrolling.html' title='now to the horizontal scrolling ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-5G1MfpAxGJU/TjkxR80I4nI/AAAAAAAAC8k/AumywhroDX0/s72-c/do-the-jill-run.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-7684231707875371677</id><published>2011-07-31T14:10:00.009+02:00</published><updated>2011-12-19T13:22:20.849+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scrolling'/><category scheme='http://www.blogger.com/atom/ns#' term='sidescroller'/><category scheme='http://www.blogger.com/atom/ns#' term='english'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><title type='text'>Sonic Camera Management</title><content type='html'>Le suivi de &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-B-ve5y_NtjY/TjVG4NN51CI/AAAAAAAAC7Q/9AZGuSABqkA/s1600/spg-notes0001.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 268px; height: 320px;" src="http://1.bp.blogspot.com/-B-ve5y_NtjY/TjVG4NN51CI/AAAAAAAAC7Q/9AZGuSABqkA/s320/spg-notes0001.png" alt="" id="BLOGGER_PHOTO_ID_5635488440158639138" border="0" /&gt;&lt;/a&gt;Sonic par la caméra fonctionne donc sur le principe d'une "zone" de focus dans laquelle le centre de Sonic est confiné. Selon qu'il est au sol ou non, la taille de la zone change, mais surtout, dès qu'il en sort, la caméra se déplace d'autant qu'il faut pour y ramener Sonic (avec tout de même une vitesse limite qui permet parfois à Sonic de "larguer" la caméra... et le joueur).&lt;br /&gt;&lt;br /&gt;La grande différence avec le code dans Bilou, c'est que jusqu'ici, quand Bilou sortait de la zone de la caméra, &lt;span style="font-style: italic;"&gt;j'accélérais&lt;/span&gt; le déplacement de la camera, pour ne le décélérer que si Bilou débordait à nouveau de l'autre côté, ce qui amenait des "oscillations" particulièrement gènantes en cas de saut, car l'écran allait continuer à monter de plus en plus vite alors que Bilou commençait déjà à redescendre.&lt;br /&gt;&lt;br /&gt;Voyons un peu si ça colle avec mes &lt;a href="http://sylvainhb.blogspot.com/2010/09/better-scrolling.html"&gt;"désidératas"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;A state-dependent "allowed onscreen window" and a speed limit. That's all you need to get sonic-perfect scrolling. That is, the area of the screen where your character is allowed to appear vary depends on whether you're on the ground or on-airborn. I cross-checked with my requirement list for an ideal scrolling, and everything is there (further translation to come soon).&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-5UtfR5mrY54/TjVMDSYRgjI/AAAAAAAAC7k/715NNCSwCX0/s1600/camera-1.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 141px;" src="http://2.bp.blogspot.com/-5UtfR5mrY54/TjVMDSYRgjI/AAAAAAAAC7k/715NNCSwCX0/s320/camera-1.png" alt="" id="BLOGGER_PHOTO_ID_5635494128081011250" border="0" /&gt;&lt;/a&gt;&lt;b&gt;Centré au sol et sur la chute&lt;/b&gt;&lt;br /&gt;Presqu'automatique si la zone de tracking est "applatie" à une seule coordonnée lorsque le personnage est au sol. La caméra enchaînera "presqu'immédiatement" pour suivre la chute si le bas de la zone autorisée pendant une chute est très proche de cette position de référence au sol.&lt;br /&gt;&lt;em&gt; My first requirement is that the camera tracks precisely Bilou (vertically) when he's walking so that climbing slopes happens smoothly, but that it starts scrolling down quickly when a fall starts. This achieved by a very narrow Y &lt;abbr title="area on which Bilou can remain without triggering the scrolling"&gt;windown&lt;/abbr&gt; for "on-ground" state, and keeping bottom limits close to each other when falling.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-JvmrfgfdLZQ/TjVTC8EhRtI/AAAAAAAAC7w/xwbVC8sUSrQ/s1600/camera-2.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 156px;" src="http://4.bp.blogspot.com/-JvmrfgfdLZQ/TjVTC8EhRtI/AAAAAAAAC7w/xwbVC8sUSrQ/s320/camera-2.png" alt="" id="BLOGGER_PHOTO_ID_5635501818673972946" border="0" /&gt;&lt;/a&gt;&lt;b&gt;garder un oeil sur ce que l'on évite en sautant&lt;/b&gt;&lt;br /&gt;Ce sera le moyen n° 1 de se sortir d'une situation délicate dans un "platformer": sauter par-dessus. Ce mouvement doit pouvoir se faire sans déconcentrer le joueur. On doit pouvoir passer de plate-forme en plate-forme (alignées horizontalement) au-dessus d'une mare de lave sans attraper le tournis. Simple aussi : il faut qu'un saut tienne en entier dans la hauteur de la "zone de non-scrolling" à partir de la position de repos (au sol). Ce n'est qu'en enchaînant les sauts que l'on parvient en haut de l'écran (et donc que l'on active le scrolling), mais dès qu'on retombe d'un de ces sauts, le scrolling cesse de monter jusqu'au saut suivant (objectif #5).&lt;br /&gt;&lt;em&gt;Jumping is the #1 action in a platformer like Bilou (that is, where the hero has no weapon). It must be possible to hop from one platform to the next one without having the scrolling "bounce over and over" as well (which would give the player nausea). That's achieved with a fairly high "top limit" when the player is "on air". Yet if the player is "climbing up", he'll be kept on-screen. always.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-waQRFeQ3Eps/TjVVHgmbC8I/AAAAAAAAC78/AOGUOw3VpsQ/s1600/camera-4.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 157px; height: 122px;" src="http://1.bp.blogspot.com/-waQRFeQ3Eps/TjVVHgmbC8I/AAAAAAAAC78/AOGUOw3VpsQ/s320/camera-4.png" alt="" id="BLOGGER_PHOTO_ID_5635504096222579650" border="0" /&gt;&lt;/a&gt;&lt;b&gt;Recentrer sans à-coups&lt;/b&gt;&lt;br /&gt;De nouveau, ça tient au fait que le scrolling va ajuster la position de la caméra à la position du héros &lt;span style="font-style: italic;"&gt;mais avec une vitesse limitée&lt;/span&gt;. Quand Bilou arrive au sol, on "rétrécit" à une ligne la zone de tolérance verticale de la caméra. Celle-ci va donc recentrer Bilou, mais en donnant une vitesse verticale maximale relativement basse (de 6px/fr pour Sonic alors que la limite horizontale est de 16px/fr), ce recentrage semble plus naturel.&lt;br /&gt;&lt;em&gt;Now, that's okay to have the scrolling "keeping an eye on the danger from below", but when the action "moves on" on the new platform, it's annoying to press UP or DOWN just to move yourself back in the center of the screen. This can be safely achieved by a narrow "on-ground" Y window, but a slow speed limit on the camera (in my case, "slow" will be 1px/frame).&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Chouette. Tout y est. Plus qu'à coder tout ça. GravityController ou WalkingController auront donc la responsabilité de définir la "fenêtre autorisée" et la vitesse maximale, la caméra s'occupe du reste. Andiamo!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-7684231707875371677?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/7684231707875371677/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=7684231707875371677' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7684231707875371677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7684231707875371677'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/07/sonic-camera-management.html' title='Sonic Camera Management'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-B-ve5y_NtjY/TjVG4NN51CI/AAAAAAAAC7Q/9AZGuSABqkA/s72-c/spg-notes0001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1922318594688793027</id><published>2011-07-26T21:46:00.005+02:00</published><updated>2011-07-27T10:31:06.214+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cheat sheet'/><category scheme='http://www.blogger.com/atom/ns#' term='desmume'/><title type='text'>DSertyuiop</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-164IDt1k_uw/Ti8ZzV7wvYI/AAAAAAAAC7E/19Bv5bfuLK4/s1600/desmumerty.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 256px; height: 192px;" src="http://3.bp.blogspot.com/-164IDt1k_uw/Ti8ZzV7wvYI/AAAAAAAAC7E/19Bv5bfuLK4/s320/desmumerty.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5633750028715605378" /&gt;&lt;/a&gt;Parce que je vais re-travailler AnimEDS pour éviter les pertes de données, et que pour ça, je dois utiliser plus largement ABXY et un peu moins L et R, voilà un petit pense-bête de leur emplacement sur desmume-cli... quand on a un clavier AZERTY.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I'd really be happy if people using QWERTY keyboard around the world and developing e.g. games or emulators could take note that other keyboards also exists. Playing Doukutsu, Frogatto or  &lt;a href="http://www.tigsource.com/2011/03/30/wip-the-iconoclasts/"&gt;Iconoclasts&lt;/a&gt; with W and Z swapped or Q and A swapped is a pain. It's obvious desmume-cli was also targetted at QWERTY given that if I swap things, I fall back to a "logical" layout with A nexto B, X nexto Y and L nexto R. But I have an AZERTY keyboard, hence the cheat sheet.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1922318594688793027?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1922318594688793027/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1922318594688793027' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1922318594688793027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1922318594688793027'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/07/dsertyuiop.html' title='DSertyuiop'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-164IDt1k_uw/Ti8ZzV7wvYI/AAAAAAAAC7E/19Bv5bfuLK4/s72-c/desmumerty.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-8664397316199543648</id><published>2011-07-26T13:07:00.005+02:00</published><updated>2011-12-19T13:22:43.753+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sonic'/><category scheme='http://www.blogger.com/atom/ns#' term='collisions'/><category scheme='http://www.blogger.com/atom/ns#' term='scrolling'/><category scheme='http://www.blogger.com/atom/ns#' term='slopes'/><category scheme='http://www.blogger.com/atom/ns#' term='sidescroller'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='tutoriel'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>Sonic Physics Guide</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://info.sonicretro.org/SPG:Solid_Tiles#Slopes_And_Curves"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 256px; height: 128px;" src="http://4.bp.blogspot.com/-Ud-pB4d0Tcs/Ti6gBGQPBjI/AAAAAAAAC64/M8T2NkfHbeQ/s320/SPGInnerCurve.PNG" alt="" id="BLOGGER_PHOTO_ID_5633616124606088754" border="0" /&gt;&lt;/a&gt;ça faisait un moment que je n'étais plus tombé sur de la lecture chouette comme celle-là. "pentes &amp;amp; blocs à pousser", "collisions", "gestion de la camera", etc. Ca va me faire de la lecture ... Attendez-vous à ce que je vous en dise d'avantage dans les prochains jours.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;A neat pick: the &lt;a href="http://info.sonicretro.org/SPG:Solid_Tiles#Slopes_And_Curves"&gt;Sonic physics Guide&lt;/a&gt; starring handling of slopes, curves, camera movement ... knowledge likely generated from years of hacking the good'old Sonic 1 and Sonic 2 roms (for SEGA Genesis). Expect some more detailed posts when I'll be done with my readings. &lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-8664397316199543648?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/8664397316199543648/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=8664397316199543648' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/8664397316199543648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/8664397316199543648'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/07/sonic-physics-guide.html' title='Sonic Physics Guide'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Ud-pB4d0Tcs/Ti6gBGQPBjI/AAAAAAAAC64/M8T2NkfHbeQ/s72-c/SPGInnerCurve.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-4140214072740985769</id><published>2011-07-23T13:37:00.001+02:00</published><updated>2011-07-23T13:37:00.269+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='keen'/><category scheme='http://www.blogger.com/atom/ns#' term='level design'/><category scheme='http://www.blogger.com/atom/ns#' term='game design'/><title type='text'>Entering the Shadowlands ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-FmSQySKtNWs/TilapKK86PI/AAAAAAAAC5U/H5e4qH_FB_g/s1600/keen4-Ck4lv80.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 320px; height: 320px;" src="http://4.bp.blogspot.com/-FmSQySKtNWs/TilapKK86PI/AAAAAAAAC5U/H5e4qH_FB_g/s320/keen4-Ck4lv80.png" alt="" id="BLOGGER_PHOTO_ID_5632132472154941682" border="0" /&gt;&lt;/a&gt;&lt;em&gt;Episode 4 of Commander Keen is not far from fascinating me. That's likely the game I played the most (excluding beta-tests of PPP Team productions), and likely the game I'd love the most to replay once again. Of course, I'd love that some people would once say that about Bilou adventures as well, and somehow I hope I can learn something from CK4 that would help me reaching that goal.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Si je reprends la carte de Commander Keen 4 et que j'y reporte les différents éléments, on se rend finalement compte qu'il n'y a que 2 niveaux "gratuits" (c.à.d. qui n'apportent rien au niveau de la quête). Autre élément intéressant, dès les 2 premiers niveaux passés, la quasi-totalité du reste du jeu devient immédiatement accessible. Et ces deux premiers niveaux peuvent être franchis d'une traite par le joueur habitué tout en servant d'introduction à la majorité des mécanismes du jeu pour les autres. Une chouette manière d'éviter les "tutoriels".&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I think one interesting aspect of CK4 is its overworld. It's mostly a select-your-level menu, and your goal should be to focus on those levels where a Guardian of Wisdom is being held captive. Of course, you don't initially know where they are, so there's some exploration dimension. The overworld is large enough so that you'll rarely see more than 3 levels on screen, but small enough so that you can travel it end-to-end in something a dozen of seconds.&lt;br /&gt;During some spare time, I lost some time plotting which levels contain what "quest items". Guardians to be saved (red wizzrobes), hints from Floating Princess Lindsey that ultimately guide you to the Mighty Foot of Travel which can take you to the &lt;a href="http://sylvainhb.blogspot.com/2008/07/pyramid-of-forbidden.html"&gt;Pyramid of the Forbidden&lt;/a&gt; -- the otherwise unaccessible level. The major item is the swimming suit, hidden in Miragia, the disappearing desert city, which unlocks access to the three islands. Only the Isle of Tar and Sand Yego are "free fun levels" where you've nothing to earn (quest-speaking), not even a lot of lives or ammunition. They're rather an extra challenge, with fun-but-dangerous elements.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-utnSSfBqfu0/Tilf3reWg4I/AAAAAAAAC5o/467f_DjNHN8/s1600/keen4village2.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; width: 320px; height: 82px;" src="http://4.bp.blogspot.com/-utnSSfBqfu0/Tilf3reWg4I/AAAAAAAAC5o/467f_DjNHN8/s320/keen4village2.png" alt="" id="BLOGGER_PHOTO_ID_5632138219170988930" border="0" /&gt;&lt;/a&gt;Beside this "swim lock", there's two gate levels (villages) at the start of the game, that can imho be seen as the frontier between basic skill acquisition and real danger. Both can be zoomed-through by the experienced player (just move to the left, hop over some monsters or spikes and you're done). It's interesting to see how the novice player is even -guided- through the sandbox area either by a friendly slope or an open door vs. a set of spikes.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-0hmY7PSg91U/Tilfvj4p2kI/AAAAAAAAC5g/362Jct1xgiM/s1600/keen4village2.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; width: 320px; height: 139px;" src="http://3.bp.blogspot.com/-0hmY7PSg91U/Tilfvj4p2kI/AAAAAAAAC5g/362Jct1xgiM/s320/keen4village2.png" alt="" id="BLOGGER_PHOTO_ID_5632138079694871106" border="0" /&gt;&lt;/a&gt; For the novice players, they're a great introduction to the basic mechanics of the games, in a free-exploration fashion. Poles, doors, shots, switches ... everything is there, except key gems. It's interesting to see that a &lt;b&gt;sandbox&lt;/b&gt; works as well as a &lt;b&gt;tutorial&lt;/b&gt; to that regard. Of course, Commander Keen does not learn new moves during the game (vs. Rayman) and his move set is nuanced (ultra-pogo jump or rope-hop-while-blasting-downwards being examples) rather than complex (vs. Yoshi's Island or Super Princess Peach -- complexity arising from the number of possible actions and negative rewards from doing the wrong action at the wrong time).&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Tout qui a joué à un Keen sait qu'un niveau ne peut être visité qu'une seule fois par partie. Sortir d'un niveau sans avoir trouvé le secret qu'il contient, c'est perdre définitivement ce secret jusqu'à ce qu'on recommence le jeu. Evidemment, pour éviter de bloquer le joueur, les mages seront le seul moyen de sortir d'un niveau quand ils s'y trouvent. Ce ne sont donc que les indices de Lindsey et le méga-pied-transporteur de la pyramide de la lune qui pourraient être loupés. Mais le résultat, c'est qu'on aura d'avantage tendance à explorer les moindres recoins du jeu, là où, dans Super Mario 3-*, j'ai davantage tendance à filer vers la sortie dès que les choses se compliquent, entre-autres parce que je sais que je pourrait refaire ce niveau-là plus tard (avec un meilleur power-up ou un peu plus de vies ...). Pourtant c'est bien Keen 4 le "platformer" auquel j'ai le plus joué et celui auquel je serais le plus succeptible de refaire une partie prochainement ^_^&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Through the Commander Keen series, levels can be completed only once in a game: you never re-enter a completed level. That means if you complete a level holding a secret without finding it, you won't have the chance to get that secret before you replay the whole game. Imho, this is a key component that puts the player in an explorative mood, while you'll rather play a SuperMario game trying to zoom to the exit as soon as you don't feel easy in the level. The overworld &lt;span style="font-weight: bold;"&gt;reinforce&lt;/span&gt; that explorative mood by being itself open (once you've complete the two gates level at the start, 11/14 remaining levels become immediately accessible).&lt;br /&gt;&lt;br /&gt;The overworld of the next opus --&lt;a href="http://sylvainhb.blogspot.com/2007/08/armaggedon-machine.html"&gt; the armaggedon machine &lt;/a&gt;-- is much stricter, with virtually every level being a gate to something else. There's very little room for exploration, just sufficient alternate ordering between the tunnels/balls pair to allow the player who faces a challenge beyond his skills at one place to try something else somewhere else. I spot that the two "mission-less" levels of Commander Keen 2 are also the ones where important plot/gameplay hints are unveiled. I'll investigate that further on another time.&lt;br /&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-4140214072740985769?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/4140214072740985769/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=4140214072740985769' title='7 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/4140214072740985769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/4140214072740985769'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/07/entering-shadowlands.html' title='Entering the Shadowlands ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-FmSQySKtNWs/TilapKK86PI/AAAAAAAAC5U/H5e4qH_FB_g/s72-c/keen4-Ck4lv80.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-934361094498692437</id><published>2011-07-22T21:12:00.007+02:00</published><updated>2012-02-07T10:50:41.712+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixels'/><category scheme='http://www.blogger.com/atom/ns#' term='flower-power'/><category scheme='http://www.blogger.com/atom/ns#' term='greenzone'/><category scheme='http://www.blogger.com/atom/ns#' term='adventure'/><category scheme='http://www.blogger.com/atom/ns#' term='y97'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><category scheme='http://www.blogger.com/atom/ns#' term='english'/><title type='text'>Futurs pixel-artistes: ne vous découragez pas</title><content type='html'>Ca me fait toujours sourire quand on me dit que je "dessine bien". J'aime ça, mais faites un tour sur pixelation ou deviant-art, et vous verrez que "dessiner bien", c'est autre chose. Voyons un peu ce que ça donnait en '96&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-pGKePmZ_3Co/TgyLwRJ0X8I/AAAAAAAAC1I/DBhSKEtxNrI/s1600/old-flower.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 313px;" src="http://4.bp.blogspot.com/-pGKePmZ_3Co/TgyLwRJ0X8I/AAAAAAAAC1I/DBhSKEtxNrI/s1600/old-flower.png" alt="" id="BLOGGER_PHOTO_ID_5624023696033472450" border="0" /&gt;&lt;/a&gt;Une vieille (~1997) &lt;a href="http://sylvainulg.blogspot.com/2009/09/dans-la-foret.html"&gt;tentative d'amélioration du graphisme de Bilou&lt;/a&gt;. Je venais donc de finir &lt;a href="http://sylvainhb.blogspot.com/2010/06/brixtxt.html"&gt;mon "modplayer" 6 pistes en assembleur&lt;/a&gt;, j'avais racheté à &lt;a href="http://sylvainhb.blogspot.com/2007/01/rainbow-bell.html"&gt;Pascal&lt;/a&gt; son scanner Logitech et je m'attaquais à convertir le nouveau look de la "green zone" en pixels "prêts à l'emploi". Mes nouvelles connaissances sur le mode X aurait dû fournir le dernier élément pour faire de Bilou un jeu MS-DOS capable de rivaliser (hum hum ^^") avec Rayman "himself".&lt;br /&gt;&lt;br /&gt;Sauf que n'ayant pas une équipe de 100 personnes avec moi, j'avais encore beaucoup à faire.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Here's an old file dating back from '97 where I saved the steps to convert the output of a scaled-down scan into pixels "ready for integration in a game". As you can see guys, don't feel disappointed if your pixel art is not yet on par with your favourite artist. Mine wasn't either (and still isn't, by a large extent). I'm quite glad I had already learnt that one should &lt;b&gt;not use black artlines&lt;/b&gt; at pixel-art scale. A dark color is much better. I hadn't learnt yet that &lt;b&gt;hue shift is the key&lt;/b&gt; to nice colours, and I was using "plain value ramps" (where you build linear gradients from a saturated color towards white and black, making everything just look like plastic). And of course, I was overusing automated gradients. That may have saved me from pillow-shading, but it makes the petal looks like spheres rather than having the curve they deserve.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-k_i6DmfmyoQ/TikuhnVudxI/AAAAAAAAC5I/ZPUK98icRZo/s1600/flower-power-97.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 82px; height: 114px;" src="http://4.bp.blogspot.com/-k_i6DmfmyoQ/TikuhnVudxI/AAAAAAAAC5I/ZPUK98icRZo/s320/flower-power-97.png" alt="" id="BLOGGER_PHOTO_ID_5632083964034184978" border="0" /&gt;&lt;/a&gt;Il y a pas mal d'erreurs de débutants dans ces graphismes. Sur-utilisation des dégradés automatiques de Deluxe Paint qui rajoute une texture granuleuse à tout (que ce soit le bienvenu ou non) et aucun "hue shift" : &lt;a href="http://sylvainhb.blogspot.com/2008/05/lost-in-colorspace.html"&gt;chaque dégradé part d'une couleur et en diminue linéairement les composantes RVB vers le noir&lt;/a&gt;. Point. Pour le jaune et le vert, l'effet est particulièrement raté.&lt;br /&gt;En revanche, déjà là, j'avais appris à fuir comme la peste les "art lines en noir", quitte à refaire entièrement le contour. à la main. Il faut dire que devoir supporter "Skunny the Wild West" m'a ouvert les yeux sur l'horreur que ça donne au final. Et j'ai évité le "pillow shading". C'est toujours ça de pris.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-934361094498692437?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/934361094498692437/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=934361094498692437' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/934361094498692437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/934361094498692437'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/07/futurs-pixel-artistes-ne-vous.html' title='Futurs pixel-artistes: ne vous découragez pas'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-pGKePmZ_3Co/TgyLwRJ0X8I/AAAAAAAAC1I/DBhSKEtxNrI/s72-c/old-flower.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-481027096369678980</id><published>2011-07-19T17:36:00.008+02:00</published><updated>2011-10-25T11:12:07.427+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixels'/><category scheme='http://www.blogger.com/atom/ns#' term='colours'/><category scheme='http://www.blogger.com/atom/ns#' term='bilou'/><category scheme='http://www.blogger.com/atom/ns#' term='sprite editor'/><category scheme='http://www.blogger.com/atom/ns#' term='greenzone'/><category scheme='http://www.blogger.com/atom/ns#' term='user guide'/><category scheme='http://www.blogger.com/atom/ns#' term='tutoriel'/><category scheme='http://www.blogger.com/atom/ns#' term='screenshot'/><title type='text'>update on BG colors.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-jQzFK6ZowbM/TiWmQfjJwhI/AAAAAAAAC3s/VZPptIJRPK4/s1600/former-bg-tiles.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 176px; height: 180px;" src="http://2.bp.blogspot.com/-jQzFK6ZowbM/TiWmQfjJwhI/AAAAAAAAC3s/VZPptIJRPK4/s320/former-bg-tiles.png" alt="" id="BLOGGER_PHOTO_ID_5631089711373730322" border="0" /&gt;&lt;/a&gt;&lt;em&gt;So that's the tileset as you know it so far. Used in &lt;a href="http://sylvainhb.blogspot.com/2010/02/berrybats.html"&gt;"greenwoods demo"&lt;/a&gt; and &lt;a href="http://sylvainhb.blogspot.com/2010/11/download-appleassault-14.html"&gt;"Apple Assault"&lt;/a&gt;. It took me a few more missed attempts while trying to blindly copy Eyecraft's colours but I finally got it working... And what made it work was to build up a mockup first (the small image nearby) with BG, FG and character tiles alltogether in such a way that contrast issues became obvious. Once in that setup, with a 32x32 area to focus on where all the important things were there, I could bring the BG colours down, almost to grey, although keeping the blues with a higher value (blues and purple = dark, cold shadows. That's how our bluesky world and cone-rod eyes work ^_^)&lt;/em&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-wrOLKH9nDNE/TiWkjEhkkRI/AAAAAAAAC3g/yNrDcnO1S7o/s1600/newbgcolors-mockup.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 128px; height: 160px;" src="http://4.bp.blogspot.com/-wrOLKH9nDNE/TiWkjEhkkRI/AAAAAAAAC3g/yNrDcnO1S7o/s320/newbgcolors-mockup.png" alt="" id="BLOGGER_PHOTO_ID_5631087831513600274" border="0" /&gt;&lt;/a&gt;&lt;b&gt;Ingrédients:&lt;/b&gt; un tileset pas bien coloré, un sprite de référence, &lt;a href="http://139.165.223.2/%7Emartin/scene/sedsgama.nds"&gt;un éditeur capable de cloner des couleurs&lt;/a&gt; et une pinte de bonne humeur&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Créer une nouvelle Sprite Page et y copier l'intégralité des &lt;span style="font-style: italic;"&gt;tiles&lt;/span&gt; à recolorer&lt;/li&gt;&lt;li&gt;Copier également les &lt;span style="font-style: italic;"&gt;tiles&lt;/span&gt; qui doivent avoir un bon contraste et le sprite de référence (personnage principal du jeu).&lt;/li&gt;&lt;li&gt;Superposer l'arrière-plan et l'avant-plan en utilisant sur-chargeant avec (B) en &lt;a href="http://sylvainhb.blogspot.com/2008/08/seds-03-user-guide.html"&gt;mode curseur&lt;/a&gt; plutôt qu'avec (A). Construire un mini-mockup avec les tiles ainsi obtenus.&lt;/li&gt;&lt;li&gt;Sélectionner un des &lt;span style="font-style: italic;"&gt;tiles&lt;/span&gt; d'arrière-plan, cliquer sur "SCAN"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Clicker sur une zone de la palette encore vierge pour définir la destination des couleurs clonées, puis L-cliquer sur le bouton [+] du sélecteur de couleur (QuickPal). Clicker sur "SYNC" pour valider les nouvelles couleurs.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Passer la grille en 32x32 et charger (R-déplacer le curseur-A) la zone entourant le personnage.&lt;/li&gt;&lt;li&gt;Basculer en mode "édition de palette" (SELECT)&lt;/li&gt;&lt;li&gt;Ramener les couleurs clonées vers du gris. Vérifier sur la zone de preview en gris que le contraste est suffisant.&lt;/li&gt;&lt;li&gt;Clicker sur "okay" pour prévisualiser les modifications sur l'ensemble de la page, puis validez en cliquant sur "sure". Retourner à la grille en pressant à nouveau SELECT&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Si nécessaire, pressez "START" et utilisez les boutons "&amp;lt;&amp;lt;" et "&amp;gt;&amp;gt;" pour faire apparaître en vis-à-vis la page avant et après modification. Clicker sur un tile "d'avant" puis L-clicker sur un emplacement "d'après" pour effectuer le transport.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;center&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-2tKXlbJPoR0/TiXn-1PwA6I/AAAAAAAAC4I/Zbgr3NhhQyk/s1600/recoloring1.png"&gt;&lt;img style="cursor: pointer; width: 255px; height: 196px;" src="http://3.bp.blogspot.com/-2tKXlbJPoR0/TiXn-1PwA6I/AAAAAAAAC4I/Zbgr3NhhQyk/s320/recoloring1.png" alt="" title="you're ready to clone. L-click [+] in the bottom." id="BLOGGER_PHOTO_ID_5631161975727719330" border="0" /&gt;&lt;/a&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-Uq0Jb9b2xoA/TiXn9sl175I/AAAAAAAAC4A/TyTPG822dXU/s1600/recoloring2.png"&gt;&lt;img style="cursor: pointer; width: 255px; height: 195px;" src="http://3.bp.blogspot.com/-Uq0Jb9b2xoA/TiXn9sl175I/AAAAAAAAC4A/TyTPG822dXU/s320/recoloring2.png" alt="" id="BLOGGER_PHOTO_ID_5631161956224593810" title="busy updating the colors with the RGB sliders. Click the gray-level preview to refresh it and check contrast" border="0" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;em&gt;See that horizontal area between [+] and [-] under your spriting grid ? This is the QuickPal widget. when you click [SCAN], all the colours present on the grid are copied there. "cloning" the colors consist of &lt;b&gt;copying&lt;/b&gt; those colours at an alternate location in the palette. You first pick that target location by touching the palette widget, then launch the cloning by clicking [+] while holding L shoulder button of your console. All the tiles on your working sheet (on screen) will then use the new colours. All the remaining tiles are unchanged, included the backup copy of your working sheet, meaning that you can reimport some old tiles if you need to do so.&lt;br /&gt;&lt;center&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-ysxHT_ZhtBY/TiXn9SUxSBI/AAAAAAAAC34/p7ZPUbthGNQ/s1600/recoloring3.png"&gt;&lt;img style="cursor: pointer; width: 258px; height: 193px;" src="http://2.bp.blogspot.com/-ysxHT_ZhtBY/TiXn9SUxSBI/AAAAAAAAC34/p7ZPUbthGNQ/s320/recoloring3.png" alt="" id="BLOGGER_PHOTO_ID_5631161949173663762" title="almost done. Copy back the tiles you changed accidentally." border="0" /&gt;&lt;/a&gt;&lt;/em&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;PS: ce blog comprend maintenant exactement 600 posts (dont 55 brouillons :P)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-481027096369678980?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/481027096369678980/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=481027096369678980' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/481027096369678980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/481027096369678980'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/07/update-on-bg-colors.html' title='update on BG colors.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-jQzFK6ZowbM/TiWmQfjJwhI/AAAAAAAAC3s/VZPptIJRPK4/s72-c/former-bg-tiles.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-5204529167103876666</id><published>2011-07-17T21:13:00.008+02:00</published><updated>2011-10-25T11:12:07.431+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixels'/><category scheme='http://www.blogger.com/atom/ns#' term='palette'/><category scheme='http://www.blogger.com/atom/ns#' term='colours'/><category scheme='http://www.blogger.com/atom/ns#' term='bilou'/><category scheme='http://www.blogger.com/atom/ns#' term='sprite editor'/><category scheme='http://www.blogger.com/atom/ns#' term='greenzone'/><title type='text'>palette experiments</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.wayofthepixel.net/pixelation/index.php?topic=9528.msg103943#msg103943" style="bgcolor:#5d844a"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer;" src="http://1.bp.blogspot.com/-96mRtNLkeDk/TiM4spvVMaI/AAAAAAAAC2E/VqsSMgfw-zE/s400/demo-green2_edit.png" alt="" id="BLOGGER_PHOTO_ID_5630406298913026466" border="0" /&gt;&lt;/a&gt;&lt;em&gt;I owe &lt;a href="http://deathbydev.blogspot.com/"&gt;EyeCraft&lt;/a&gt; quite a lot for his edit on my former "level 2", although the Apple Assault milestone did not allowed me to improve my own art to match this level. A first thing I wanted to experiment with -- even back then in 2009 -- was to alter the tint on the background dirt tiles.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;EyeCraft m'avait proposé une révision assez épatante de ma petite forêt il y a déjà presque 2 ans. Comme je m'étais lancé dans "Apple Assault", j'avais plus ou moins laissé tombé ce genre de mises à jour pour me concentrer sur le moteur de jeu ... d'autant que de toutes façons, il y avait une "impasse technique" au niveau de l'éditeur de sprites.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-scUZlBBqgqQ/TiNCABoOUsI/AAAAAAAAC2Q/8rSGdMElsx0/s1600/level4-colortweak.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: crosshair; width: 208px; height: 192px;" src="http://4.bp.blogspot.com/-scUZlBBqgqQ/TiNCABoOUsI/AAAAAAAAC2Q/8rSGdMElsx0/s320/level4-colortweak.png" alt="" id="BLOGGER_PHOTO_ID_5630416527347831490" border="0" /&gt;&lt;/a&gt;&lt;em&gt;Today's attempt was to allow the sprite editor to clone a set of colours so that tweaks done on the clones would not affect the original colours, as there are some shades of brown shared by the background and foreground dirt tiles. It's not yet perfect (it should only upgrade those colours present on the currently edited page), but it allows me to do some tweaking attempt... which turns out to be harder than I expected due to the "granularity" I have on colours. There's a large jump between "pure grey" and the closest "very desaturated hue" I can have nearby ... Having the desired contrast and brightness will need more trials&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;On voit déjà sur le niveau retouché par EyeCraft qu'au moins une des teintes du fond (terre) est aussi présente dans les "murs" de terre (et dans les morceaux de bois, au passage). Si je veux pouvoir changer la teinte du fond pour la rendre "plus froide" et avoir un meilleur contraste entre les deux, il me faut pouvoir "cloner" des couleurs sur la palette. Ca au moins, &lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;revision=853"&gt;c'est chose faite&lt;/a&gt;, après plusieurs tentatives plus ou moins foireuses (modifications des pixels de tous les blocs pour utiliser les couleurs clonées ... ce qui rend les couleurs initiales inutiles ^^"). Il me reste à trouver les "bonnes" couleurs pour ce fond, ce qui, compte tenu des restrictions à 5 bit par canal (R/G/B), ne s'annonce pas sans difficulté.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-5204529167103876666?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/5204529167103876666/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=5204529167103876666' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5204529167103876666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5204529167103876666'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/07/palette-experiments.html' title='palette experiments'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-96mRtNLkeDk/TiM4spvVMaI/AAAAAAAAC2E/VqsSMgfw-zE/s72-c/demo-green2_edit.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-6815384641355421345</id><published>2011-07-16T22:42:00.009+02:00</published><updated>2011-12-20T18:01:52.517+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='newcollide'/><category scheme='http://www.blogger.com/atom/ns#' term='iGobController'/><category scheme='http://www.blogger.com/atom/ns#' term='collisions'/><category scheme='http://www.blogger.com/atom/ns#' term='bilou'/><category scheme='http://www.blogger.com/atom/ns#' term='appleman'/><category scheme='http://www.blogger.com/atom/ns#' term='planning'/><category scheme='http://www.blogger.com/atom/ns#' term='sketch'/><category scheme='http://www.blogger.com/atom/ns#' term='platforms'/><title type='text'>Implémenter les plate-formes.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-ZNTW4isq6qE/TiH74TzF7pI/AAAAAAAAC14/LXqH_by0WgI/s1600/guiengine-animation-notes.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 320px; height: 136px;" src="http://2.bp.blogspot.com/-ZNTW4isq6qE/TiH74TzF7pI/AAAAAAAAC14/LXqH_by0WgI/s320/guiengine-animation-notes.png" alt="" id="BLOGGER_PHOTO_ID_5630057953995648658" border="0" /&gt;&lt;/a&gt;Aah. De vraies vacances, ça fait du bien, même si ce n'est que quelques jours... qui se terminaient par un peu de baby-sitting à un mariage cet après-midi. L'occasion de refaire un peu le point sur les problème des &lt;a href="http://sylvainhb.blogspot.com/2011/02/platforms-at-last.html"&gt;plate-formes mobiles&lt;/a&gt;. Le point essentiel, c'est que -- tout comme le &lt;a href="http://sylvainhb.blogspot.com/2009/11/grab-me-shoot-me.html"&gt;transport d'objets par Bilou&lt;/a&gt; -- ces plate-formes dépendent de la possibilité de &lt;span style="font-style: italic;"&gt;lier&lt;/span&gt; un gob à un autre temporairement. Un &lt;a href="http://sylvainhb.blogspot.com/search/label/iGobController"&gt;micro-contrôleur&lt;/a&gt; "follow", donc, qui déplace p.ex. l'appleman à l'identique de Bilou.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;At last some day off ... really off. Not even some Bilou thinking until this afternoon "_". And I had no documentation or current code state with me when doing so, which somehow explained why I focused on a fairly remote problem such as &lt;span style="font-style: italic;"&gt;moving platforms. &lt;/span&gt;The last thoughts came to the conclusion that being carried would involve a dedicated "follow" micro-controller where a Gob is attached to another.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Be coherent&lt;br /&gt;&lt;/span&gt;Comment s'assurer que la plate-forme aura déjà fait son déplacement au moment de déplacer ce qui s'est posé dessus ? Sans ça, on risque d'avoir des effets de "décalage" chaque fois que la plate-forme modifie sa vitesse, comme ceux qu'on peut observer dans &lt;a href="http://sylvainhb.blogspot.com/2011/02/revenge-of-zool.html"&gt;Zool&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;To make that work, however, it is mandatory that the carrying object has moved before the carried object's movement is evaluated. Otherwise, the player will experience zool-like glitches everytime the absolute speed of the carrier is altered. The FollowController must thus be able to &lt;span style="font-style: italic;"&gt;detect&lt;/span&gt; whether there is an not-yet-processed carrier situation and &lt;span style="font-style: italic;"&gt;execute anticipatively&lt;/span&gt; the "animation" of that carrier. That will require some more book-keeping at the core of Engine::animate(), but I think it'd be more flexible than pre-encoded priority levels.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-eEVIbrtYYoU/TiH33cszqlI/AAAAAAAAC1s/21DwvC7TLwg/s1600/guiengine-animation-states.png"&gt;&lt;img style="float: left; margin: 0px auto 10px; text-align: center; width: 320px; height: 128px;" src="http://4.bp.blogspot.com/-eEVIbrtYYoU/TiH33cszqlI/AAAAAAAAC1s/21DwvC7TLwg/s320/guiengine-animation-states.png" alt="" id="BLOGGER_PHOTO_ID_5630053541158824530" border="0" /&gt;&lt;/a&gt; Pour y parvenir, le mieux sera de faire en sorte que &lt;code&gt;FollowController::think()&lt;/code&gt; puisse détecter si son objet-cible a déjà été exécuté ou non. On joue là au plus profond du moteur de jeu, qui appelle &lt;code&gt;Animator::play()&lt;/code&gt; sur chaque objet qui s'est enregistré &lt;span style="font-style: italic;"&gt;via&lt;/span&gt; &lt;code&gt;reganim()&lt;/code&gt;. J'ai déjà une liste "pending" séparée de "todo", il me reste à noter au niveau de Animator lui-même où on en est. Après ça, il suffira de se faire un petit &lt;code&gt;if (target.state==QUEUED) target.play()&lt;/code&gt;. L'objet-transporté voit alors son exécution interrompue le temps que l'objet-transporteur soit mis à jour.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Thou shall not follow the NULL pointer&lt;/b&gt;&lt;br /&gt;Avec ce mécanisme, je vais introduire pour la toute première fois une référénce &lt;span style="font-style: italic;"&gt;directe&lt;/span&gt; entre deux personnages du jeu. Jusque là, je passais systématiquement par le tableau &lt;code&gt;GameScript::gob[]&lt;/code&gt; ou je me limitais à une interaction éphémère lors d'une collision. Si je ne fais rien de spécial, une plate-forme détruite pourrait amener les objets transportés dans un &lt;a href="http://sylvainhb.blogspot.com/2010/11/stuck-again.html"&gt;état incohérent&lt;/a&gt;, voire provoquer de &lt;a href="http://sylvainhb.blogspot.com/2009/12/tracking-memory-bugs.html"&gt;sérieux problèmes au gestionnaire de mémoire&lt;/a&gt; ou &lt;a href="http://sylvainhb.blogspot.com/2007/08/guru-meditation.html"&gt;planter sauvagement le jeu&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;The second challenge I addressed is to ensure that we can handle the disappearing of the carrier transparently for the carried object(s). We can do that in different ways, some including list of cross-references, etc. but it looks like the best way around could be to delay actual &lt;code&gt;Animator::DELETE&lt;/code&gt; requests by one frame so that the former carrier can be caught in &lt;code&gt;DISCARDED&lt;/code&gt; state by &lt;code&gt;FollowController::think()&lt;/code&gt; method that would drop then the reference.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Je pourrais exiger du "programmeur gobscript" qu'il règle ça lui-même en prévoyant des états-tampons ou des collisions de désolidarisation, mais ça signifierait qu'une erreur de script dans la machine d'état d'un objet pourrait se traduire en un dysfonctionnement du moteur lui-même... à proscrire à tout prix. Ca risque donc de me coûter un &lt;code&gt;Engine::animate()&lt;/code&gt; un peu plus sophistiqué, mais l'idée est de garantir que tout objet "qui s'en va" sera présent au moins pendant une frame dans l'état "&lt;code&gt;DISCARDED&lt;/code&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-6815384641355421345?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/6815384641355421345/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=6815384641355421345' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6815384641355421345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6815384641355421345'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/07/implementer-les-plate-formes.html' title='Implémenter les plate-formes.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-ZNTW4isq6qE/TiH74TzF7pI/AAAAAAAAC14/LXqH_by0WgI/s72-c/guiengine-animation-notes.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-3200288438129713399</id><published>2011-07-13T16:16:00.002+02:00</published><updated>2011-07-13T16:26:33.954+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tcsh'/><title type='text'>tcsh pour les experts...</title><content type='html'>Bin moi, mon script de prédilection sous Linux, c'est TCSH. C'est ainsi depuis qu'on me l'a "imposé" pour un TP (base de données ou NS2 ... va savoir). Sous SuSE8.2, ça se passait pas trop mal: bonne auto-complétion, coloration, aliases sympa ... Sous ubuntu, en revanche, c'est quasiment le &lt;abbr title="hein? vous dites le 'SMIC', maintenant ?"&gt;minimex&lt;/abbr&gt;, au point que j'ai longtemps remplacé les fichiers /etc/profile.d/complete.tcsh et autres d'une vieille SuSE sur mes ubuntu fraîchement installé. &lt;br /&gt;&lt;br /&gt;Mais ça aussi, j'ai fini par en avoir marre, donc maintenant, j'ai "fait mienne" toute la super-logique en réutilisant le fichier ".csh.expert" prévu pour permettre à un guru du shell (ou à ses sbires, comme moi :-) de contourner les préférences du sysop. Bin pas de bol, &lt;i&gt;même là&lt;/i&gt;, les gars d'Ubuntu ont manqué à leurs devoirs. Alors du coup,&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;diff -burN /etc/csh.cshrc "/MY/etc/csh.cshrc"@@ -1,4 +1,11 @@&lt;br /&gt; # /etc/csh.cshrc: system-wide .cshrc file for csh(1) and tcsh(1)&lt;br /&gt;+# Expert mode: if we find $HOME/.csh.expert we skip our settings&lt;br /&gt;+# used for interactive sessions and read in the expert file.&lt;br /&gt;+#&lt;br /&gt;+if (-r $HOME/.csh.expert) then&lt;br /&gt;+    source $HOME/.csh.expert&lt;br /&gt;+        goto end&lt;br /&gt;+endif&lt;br /&gt;&lt;br /&gt; if ($?tcsh &amp;amp;&amp;amp; $?prompt) then&lt;br /&gt;&lt;br /&gt;@@ -14,3 +21,10 @@&lt;br /&gt;        set prompt = "%U%m%u:%B%~%b%# "&lt;br /&gt;&lt;br /&gt; endif&lt;br /&gt;+&lt;br /&gt;+end:&lt;br /&gt;+onintr&lt;br /&gt;+#&lt;br /&gt;+# csh.cshrc end here&lt;br /&gt;+#&lt;br /&gt;+if ( -r $HOME/.tcshrc ) source $HOME/.tcshrc&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Me voilà un peu plus chez moi dans cette ré-installation du Lynx sur mon disque de 2To :P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-3200288438129713399?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/3200288438129713399/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=3200288438129713399' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3200288438129713399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3200288438129713399'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/07/tcsh-pour-les-experts.html' title='tcsh pour les experts...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1070476582299777830</id><published>2011-06-29T13:28:00.008+02:00</published><updated>2011-08-30T13:51:48.602+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='milestone'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><category scheme='http://www.blogger.com/atom/ns#' term='done'/><category scheme='http://www.blogger.com/atom/ns#' term='screenshot'/><title type='text'>Goro mode activated</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-GjNxxfLJ4lg/TgsM3H9xiRI/AAAAAAAAC0k/3o1Ih_4olno/s1600/skeletton-updated.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 196px; height: 226px;" src="http://3.bp.blogspot.com/-GjNxxfLJ4lg/TgsM3H9xiRI/AAAAAAAAC0k/3o1Ih_4olno/s320/skeletton-updated.png" alt="" id="BLOGGER_PHOTO_ID_5623602700872681746" border="0" /&gt;&lt;/a&gt;&lt;em&gt;There are still a few things that are unpolished, such as (sprite-based) widgets that remain sticky between the FileWindow and the AnimWindow ... or whose state isn't coherent among the two. But at least, the basic feature is there: you can expand your "character" and give him more limbs if needed. Look at this 4-handed Mr. Egg, for instance. Isn't he wonderfully promising of future fun ?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Bin ça n'aura pas été une semaine très causante, sur ce blog, hein ? Que voulez-vous, c'est qu'en-dehors des "grands travaux", il y a parfois une série de petites choses ingrates qui n'ont droit qu'à une ligne dans&lt;a href="http://sylvainhb.blogspot.com/2011/06/flip.html"&gt; une todo-list&lt;/a&gt; et une autre ligne lors de leur commit SVN. Mais ce coup-ci, les epsilon se sont additionnés suffisamment pour devenir un delta: je peux (enfin) modifier la "structure" de mes personnages (le nombre de sprites utilisés, les pages parmi lesquelles choisir les images et l'image de référence) depuis l'application DS elle-même. Il reste encore pas mal de nettoyage à faire pour éliminer les incohérences de l'application, bien sûr ... mais on a fait un bon pas en avant.&lt;br /&gt;&lt;br /&gt;On s'approche déjà de la release 0.3 ... bonne chose.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;[bugfix] : la "petite main" réapparaît quand je sélectionne qqch dans la spritetable de droite, AnimWindow&lt;/li&gt;&lt;li&gt;[bugfix partiel] : si je réouvre une animation 2-mains, elle est "promue" animation 3-mains-3-pieds :P&lt;/li&gt;&lt;li&gt;[&lt;a href="http://sylvainhb.blogspot.com/2011/08/stacking-troubles.html"&gt;now&lt;/a&gt;] : si je sauve par START+R+R, l'animation en cours n'est pas réécrite dans la feuille d'animations avant la sauvegarde (et donc pas sauvée).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1070476582299777830?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1070476582299777830/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1070476582299777830' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1070476582299777830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1070476582299777830'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/06/goro-mode-activated.html' title='Goro mode activated'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-GjNxxfLJ4lg/TgsM3H9xiRI/AAAAAAAAC0k/3o1Ih_4olno/s72-c/skeletton-updated.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1134471332589170761</id><published>2011-06-27T12:12:00.000+02:00</published><updated>2011-06-27T12:12:00.194+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>Wii ! Une raclée pour Morton !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-C5BngxxeonM/TgShlvArOPI/AAAAAAAAC0Y/V7Dv34QdBlY/s1600/Morton_NSMBWii_Tower.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 189px;" src="http://4.bp.blogspot.com/-C5BngxxeonM/TgShlvArOPI/AAAAAAAAC0Y/V7Dv34QdBlY/s320/Morton_NSMBWii_Tower.jpg" alt="" id="BLOGGER_PHOTO_ID_5621795904511752434" border="0"&gt;&lt;/a&gt;Sisi, souvenez-vous, c'était en 2007. Je venais de finir New Super Mario Bros et je faisais &lt;a href="http://sylvainhb.blogspot.com/2007/04/nsmb-vs-smb3-failed-challenge.html"&gt;le point sur les hauts et les bas du jeu&lt;/a&gt;, le comparant notamment à SMB3. Eh bien mon frère a finalement de nouveau une Wii avec le Mario &lt;a href="http://www.studio-quena.be/cyborgjeff/blog/2011/03/08/a-deux-cest-mieux/"&gt;multi-joueur&lt;/a&gt; ... et qu'est ce qu'on s'éclate! Je crois bien qu'un jeu de plate-forme n'avait plus été aussi fun depuis ... houu ... Tic &amp;amp; Tac Rescue Rangers sur NES ?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://feedproxy.google.com/~r/SignificantBits/~3/A2bL0HdaiXc/super-mario-bros-3-level-design-lessons-part-3"&gt;Tous les éléments intéressants des maps&lt;/a&gt; n'ont pas été repris (quelqu'un a vu une boîte à musique ou des rochers à détruire ?), mais on garde les mini-combats avec monstres sur la map et les chemins alternatifs qui deviennent disponibles ou non d'un niveau à l'autre (cf. monde forestier). On est dans quelque-chose d'intermédiaire entre SMW et SMB3, en somme. Il faut bien dire que la gestion des "maps" était tellement poussée dans SMB3 qu'on se retrouve pour ainsi dire dans un "overworld" qui devient presque un mini-jeu tour à tour.&lt;br /&gt;&lt;br /&gt;Le contrôle des power-ups est beaucoup plus proche de celui de SMB3, avec le chapeau-volant pour contrer la gravité -- qui reste votre ennemie numéro 1 dans un Mario -- qui vient remplacer la plume magique, et le costume de pingouin qui fait écho au costume de grenouille ... en mieux. Il manque peut-être, me semble-t-il, un power-up "rare". L'équivalent de la tenue des frères marteaux ou du costume de tanooki. Mais peut-être que je ne l'ai tout simplement pas encore trouvé ^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1134471332589170761?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1134471332589170761/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1134471332589170761' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1134471332589170761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1134471332589170761'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/06/wii-une-raclee-pour-morton.html' title='Wii ! Une raclée pour Morton !'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-C5BngxxeonM/TgShlvArOPI/AAAAAAAAC0Y/V7Dv34QdBlY/s72-c/Morton_NSMBWii_Tower.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-5761971808555118473</id><published>2011-06-23T13:37:00.005+02:00</published><updated>2011-08-12T12:10:41.721+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='uml'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Creating new skelettons.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/--NC9cwHmxgY/TgMpJKvl4II/AAAAAAAAC0M/ICXShq3r-80/s1600/CreateSkelettonMap.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 320px; height: 214px;" src="http://3.bp.blogspot.com/--NC9cwHmxgY/TgMpJKvl4II/AAAAAAAAC0M/ICXShq3r-80/s320/CreateSkelettonMap.png" alt="" id="BLOGGER_PHOTO_ID_5621381997368041602" border="0" /&gt;&lt;/a&gt;&lt;em&gt;Animation skeletton, GobStructure ... I haven't found yet the term that best describe "the set of pages to be used for the limbs of a compound GameObject". And I also &lt;abbr title="as in 'can't get it done in half an hour between diner and dishwashing'"&gt;struggle&lt;/abbr&gt; making it part of the AnimEditor. So I took the lunch to chart the three main components involved - AnimWindow, ThumbsWindow and FileWindow - and how they use each others. I want the skeletton to be defined on the FileWindow because it's convenient to navigate through available pages there (and I have plenty of room for widgets).&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Je cale un peu sur la manière d'implémenter la création de la "structure" d'un sprite composite (quelle page de sprites utiliser pour quel "membre" et combien de membres y aura-t'il en tout. Entendons-nous bien: quand je dis "je cale", ici, ça signifie que je ne parviens pas à déméler la pelotte de code sur la demie-heure de disponible entre le souper et le bibi de *deline.&lt;br /&gt;Dans ces cas-là rien de tel qu'un petit temps-de-midi-uml pour cartographier les alentours, même si je n'ai pas respecté la moitié des règles de bonnes pratique que je connais ^^".&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Red path: FileWindow directly save the new structure into one of the animations under the selected thumb slot. Boulder: FileWindow can't convert a skeletton into a serialised representation.&lt;br /&gt;Blue path: FileWindow just notify AnimWindow of the skeletton modification. Question: what should happen with the current animation ?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Edit: à bien y réfléchir, c'est quand-même un peu ridicule de se prendre à ce point la tête pour une telle bêtise! c'est tout le temps comme ça, le développement en C++ ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-5761971808555118473?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/5761971808555118473/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=5761971808555118473' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5761971808555118473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5761971808555118473'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/06/creating-new-skelettons.html' title='Creating new skelettons.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/--NC9cwHmxgY/TgMpJKvl4II/AAAAAAAAC0M/ICXShq3r-80/s72-c/CreateSkelettonMap.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-3081087220368469816</id><published>2011-06-22T09:04:00.003+02:00</published><updated>2011-06-22T13:51:54.423+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game maker'/><title type='text'>"hackers handheld gaming platform"</title><content type='html'>&lt;em&gt;&lt;a href="http://effluviaofascatteredmind.blogspot.com/2011/06/rsd-gamemaker.html"&gt;G. Andrew Stone&lt;/a&gt;, author of the &lt;a href="http://sylvainhb.blogspot.com/p/rsd-game-maker.html"&gt;RSD Game-Maker&lt;/a&gt; has shown up. On his blog, he unveils some nice trivias on Game-Maker development.&lt;br /&gt;&lt;br /&gt;Of course, I had to post a comment pointing out my own DS development, since the spirit is very similar to the one of RSD Game-Maker. I had the pleasure to read this reply this morning :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-VhPZk79hyxE/TgHUllu7h5I/AAAAAAAAC0A/JEAlytNljKQ/s1600/andrewstone.gif"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 128px; height: 126px;" src="http://1.bp.blogspot.com/-VhPZk79hyxE/TgHUllu7h5I/AAAAAAAAC0A/JEAlytNljKQ/s320/andrewstone.gif" alt="" id="BLOGGER_PHOTO_ID_5621007552184289170" border="0" /&gt;&lt;/a&gt;&lt;blockquote&gt;Hi! Great to hear from you and see the RSD Gamemaker helped you find your avocation! I read your posts on the DS and that is a pretty good idea; it would be great to have sort of a hackers handheld gaming platform! &lt;/blockquote&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Presque 15 ans plus tard, grâce à &lt;a href="http://sylvainhb.blogspot.com/2010/10/aderack-rsd-wiki.html"&gt;Aderack&lt;/a&gt;, je peux enfin mettre un nom sur le créateur du Game-Maker qui nous a permis mon frère et moi de laisser parler notre créativité de grands ados: G. Andrew Stone. &lt;a href="http://effluviaofascatteredmind.blogspot.com/2011/06/rsd-gamemaker.html"&gt;Sur son blog,&lt;/a&gt; Andrew nous donne quelques détails techniques sur la réalisation du logiciel, qui était probablement le premier outil "do it yourself" à offrir tant de flexibilité (le &lt;a href="http://sylvainhb.blogspot.com/2008/01/c64-shootmup-construction-kit.html"&gt;Shoot-em-up Construction Kit de Sensible Software&lt;/a&gt; est plus ancien, mais limité à un seul type de jeu et s'apparente du coup d'avantage à un "level editor" avant l'heure).&lt;br /&gt;&lt;br /&gt;L'absence de toute technique de protection du contenu (un utilisateur de RSD peut réimporter et modifier les jeux écrits par d'autres) était volontaire et vue comme une sorte de "creative common license" avant l'heure. Le plus étonnant, c'est que cet outil a lui aussi été développé par des jeunes, ne recevant du soutient d'adultes que pour les aspects "distribution, marketting", etc. La version 3.0 est sans doute sortie alors qu'Andrew et son frère étaient en 1ere année de collège (l'équivalent aux States des études supérieures ici).&lt;br /&gt;&lt;br /&gt;Pourtant, Andrew n'a pas poussé plus loin le développement de jeu. Il nous parle majoritairement de jobs dans des sociétés en tant qu'informaticien détaché, et bricole des petits projets sur FPGA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-3081087220368469816?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/3081087220368469816/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=3081087220368469816' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3081087220368469816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3081087220368469816'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/06/hackers-handheld-gaming-platform.html' title='&quot;hackers handheld gaming platform&quot;'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-VhPZk79hyxE/TgHUllu7h5I/AAAAAAAAC0A/JEAlytNljKQ/s72-c/andrewstone.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-2847377465272850687</id><published>2011-06-14T13:37:00.001+02:00</published><updated>2012-01-14T18:01:29.367+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CompoundGob'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='planning'/><category scheme='http://www.blogger.com/atom/ns#' term='mockup'/><title type='text'>anim0-10 = spr0.anim0-10</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-k9OTtaQe9Ss/TfdGuwp1p9I/AAAAAAAACz0/-_-4TOhfIII/s1600/towards-multigobs.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/-k9OTtaQe9Ss/TfdGuwp1p9I/AAAAAAAACz0/-_-4TOhfIII/s400/towards-multigobs.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5618036829316294610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I forgot to commit the few modifications I made to AnimEDS this week-end. That sort of rules out any lunchtime coding today ^^". So instead, let's plan a little bit what has to be done to allow the new animations to be used by the game engine ...&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Les animations sont attachées au fichier qui a servi lors de &lt;code&gt;spr.load "$FILENAME":$SPRSETNO&lt;/code&gt;. On souhaitera sans-doute en charger plusieurs à la fois, e.g. via &lt;code&gt;anim$FIRSTNO..$LASTNO = spr$ANIMSHEET.anim$FIRST..$LAST&lt;/code&gt;. Cette "simple" instruction dans un fichier .cmd construit les structures &lt;code&gt;GobAnim&lt;/code&gt; comme l'aurait fait une commande &lt;code&gt;anim$NO $SPRPAGENO { ... }&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt; L'idée est de pouvoir ensuite réutiliser &lt;code&gt;state$SNO : anim$ANNO { ... }&lt;/code&gt; sans plus devoir se soucier du type d'animation créée. Celà veut dire aussi qu'au moment d'interpréter &lt;code&gt; gob$NO : state$SNO ($X, $Y) &lt;/code&gt;, le GameScript devra inspecter le &lt;code&gt;GobState&lt;/code&gt; enregistré dans sa table pour décider s'il doit construire un &lt;code&gt;SimpleGob&lt;/code&gt; ou un &lt;code&gt;MultiGob&lt;/code&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-2847377465272850687?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/2847377465272850687/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=2847377465272850687' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2847377465272850687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2847377465272850687'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/06/anim0-10-spr0anim0-10.html' title='anim0-10 = spr0.anim0-10'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-k9OTtaQe9Ss/TfdGuwp1p9I/AAAAAAAACz0/-_-4TOhfIII/s72-c/towards-multigobs.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-6553465438699440154</id><published>2011-06-10T23:01:00.011+02:00</published><updated>2011-08-19T10:57:39.227+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='todo'/><category scheme='http://www.blogger.com/atom/ns#' term='mockup'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><category scheme='http://www.blogger.com/atom/ns#' term='done'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><title type='text'>Flip !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-k_e4UoZ8owo/TfC2iMbSB4I/AAAAAAAACzA/Fu8mG7sMhTg/s1600/test-mirror.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 254px; height: 194px;" src="http://1.bp.blogspot.com/-k_e4UoZ8owo/TfC2iMbSB4I/AAAAAAAACzA/Fu8mG7sMhTg/s320/test-mirror.png" alt="" id="BLOGGER_PHOTO_ID_5616189433898469250" border="0" /&gt;&lt;/a&gt;Reprise timide du développement sur AnimEditor, maintenant que les &lt;a href="http://sylvainhb.blogspot.com/2011/06/welcome-libfat-109.html"&gt;"problèmes de logistique"&lt;/a&gt; sont réglés. deux petits boutons pour inverser un des sprites horizontalement et verticalement, petit ajustement des zones de sensibilité de la TimeLine et de la prévisualisation de l'animation ...&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Now that I got "logistics" issues fixed, I can resume  development on the Animation Editor. Oh, well. Slowly resuming: I still have time-consuming activities in the office hours and much to do at home to get the staircases fixed this summer. However, I've tackled the difficulties of having two small buttons flipping limbs on the frame editor and during the animation preview.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-IMDKDFvXHHM/TfC6FQsNEYI/AAAAAAAACzM/kDH9fkWWbj0/s1600/test-mirror.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 254px; height: 194px;" src="http://1.bp.blogspot.com/-IMDKDFvXHHM/TfC6FQsNEYI/AAAAAAAACzM/kDH9fkWWbj0/s320/test-mirror.png" alt="" id="BLOGGER_PHOTO_ID_5616193334873493890" border="0" /&gt;&lt;/a&gt; Tiens, et tant qu'à faire, un vis-à-vis avec les fonctionnalités à rajouter ^_^&lt;br /&gt;&lt;br /&gt;&lt;em&gt; And well, since I've got a new screenshot (above) featuring Mr. Egg, let's turn it into a mockup showing what's left to do.&lt;br /&gt;First, we'll need more limbs for those bugs in the caves, that will require more "limbs". Second, I'll need better control over the timeline: looping, inserting a pause at the end and so on.&lt;br /&gt;An onion skin identification of the previous frame would help as well. Finally, I'll plan some room to host more advanced features such as &lt;a href="http://sylvainhb.blogspot.com/2010/04/gotcha.html"&gt;controlling how the character would move in the world&lt;/a&gt; following the animation, and possibly &lt;a href="http://sylvainhb.blogspot.com/2010/04/gotcha.html"&gt;defining hitboxes in a graphical fashion&lt;/a&gt;. &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Mais avant ça:&lt;ul&gt;&lt;li&gt;[&lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;amp;revision=844"&gt;done&lt;/a&gt;] supprimer une étape dans une animation&lt;/li&gt;&lt;li&gt;[&lt;b&gt;&lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/trunk/AnimEditor/?view=revision&amp;amp;revision=852"&gt;done&lt;/a&gt;&lt;/b&gt;] &lt;a href="http://sylvainhb.blogspot.com/2011/02/organisation-globale-danimeds.html"&gt;définir un nouveau "squelette" pour des animations.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;[&lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/trunk/AnimEditor/?view=revision&amp;amp;revision=839"&gt;done&lt;/a&gt;] modifier un sprite dans tous les cellulos suivants ou précédents (en plus du cellulos en cours).&lt;/li&gt;&lt;li&gt;&lt;s&gt;[need] dé-sélectionner le sprite en cours sans toucher à nouveau le FrameEditor avec le stylet&lt;/s&gt;: L-touch puis L&lt;/li&gt;&lt;li&gt;[&lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;amp;revision=841"&gt;done&lt;/a&gt;] Click sur AnimShow =&amp;gt; joue une fois l'animation; L-Click =&amp;gt; joue l'animation en boucle.&lt;/li&gt;&lt;li&gt;[&lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;amp;revision=842"&gt;bugfix&lt;/a&gt;] revenir correctement aux premiers sprites lorsque l'animation boucle.&lt;/li&gt;&lt;li&gt;[&lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools?view=revision&amp;amp;revision=843"&gt;bugfix&lt;/a&gt;] charger plusieurs fois une &lt;abbr title="les animations chargées depuis le fichier .SPR ne semblent pas affectées"&gt;"nouvelle"&lt;/abbr&gt; animation la rallonge&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-6553465438699440154?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/6553465438699440154/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=6553465438699440154' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6553465438699440154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6553465438699440154'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/06/flip.html' title='Flip !'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-k_e4UoZ8owo/TfC2iMbSB4I/AAAAAAAACzA/Fu8mG7sMhTg/s72-c/test-mirror.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-7374658233329621419</id><published>2011-06-10T09:35:00.008+02:00</published><updated>2011-06-12T00:16:40.930+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='http'/><category scheme='http://www.blogger.com/atom/ns#' term='rongtudju'/><title type='text'>Microsoft cannot read!</title><content type='html'>Quand on se mêle d'écrire un serveur Web, le moins qu'on puisse espérer, c'est que les développeurs se soient correctement renseignés sur "ce que c'est, le Web" (donc au moins le RFC du protocole HTTP). Document dans lequel on trouve par exemple à la section 4.4&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;tt&gt;The transfer-length of a message is the length of the message-body as&lt;br /&gt;it appears in the message; (...) &lt;br /&gt;   &lt;br /&gt;If a Content-Length header field (section 14.13) is present, its&lt;br /&gt;decimal value in OCTETs represents both the entity-length and the&lt;br /&gt;transfer-length. The Content-Length header field MUST NOT be sent&lt;br /&gt;if these two lengths are different&lt;/tt&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Seriously, &lt;abbr title="not you, my dear readers, but folks pretending to be software developers at Redmond."&gt;dudes&lt;/abbr&gt;. When one dares to write books where chapters are entitled "users can't read" where you explain how to design GUIs, the same one should prove that *he* does read. And more obviously, when one pretend to ship a web server, the same one should ensure that it actually serves _the_ web and not _what you'd prefer the web to be_. Read the specification snippet above. Read the reply trace below. Any sound heard in your brain ?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;En d'autre termes, si la taille du fichier (sur le serveur) et la taille des données envoyées (dans la réponse HTTP) diffèrent, l'en-tête &lt;code&gt;Content-Length&lt;/code&gt; est interdit. C'est ce qu'il peut y avoir de plus fort dans un RFC qui se contente généralement de &lt;abbr title="ce serait bien si ..."&gt;"SHOULD"&lt;/abbr&gt; et autres &lt;abbr title="il se peut que ..."&gt;"MAY"&lt;/abbr&gt;. Pensiez-vous que ça suffise aux guignols de Redmond ? Eh bien non.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://0xbabaf000l.blogspot.com/"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 150px; height: 111px;" src="http://1.bp.blogspot.com/-Y-0ywxovdPc/TfHM_n13NpI/AAAAAAAACzY/9oxs0WtozH4/s320/billies6f481b8b27.png" border="0" alt="" title="you need new goggles, dudes (C) 0xbabaf000l" id="BLOGGER_PHOTO_ID_5616495603706443410" /&gt;&lt;/a&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;tt&gt;13720 recv(12, "&lt;br /&gt;HTTP/1.1 206 Partial Content\r\n&lt;br /&gt;Content-Type: application/x-zip-compressed\r\n&lt;br /&gt;Last-Modified: Mon, 16 May 2011 04:21:42 GMT\r\n&lt;br /&gt;Accept-Ranges: bytes\r\n&lt;br /&gt;ETag: \"6fe34bc28013cc1:0\"\r\n&lt;br /&gt;&lt;b&gt;Server: Microsoft-IIS/7.5\r\n&lt;/b&gt;&lt;br /&gt;X-Powered-By: ASP.NET\r\n&lt;br /&gt;Date: Thu, 09 Jun 2011 17:12:04 GMT\r\n&lt;br /&gt;&lt;b&gt;Content-Length: 4000000\r\n&lt;br /&gt;Content-Range: bytes 0-3999999/38651711\r\n&lt;br /&gt;&lt;/b&gt;\r\n&lt;br /&gt;PK\3\4\24\0\0\0\10\0n\212;&gt;\204\10\231\20\265\253\25\0&lt;br /&gt;\222\202\26\0\25\0\0\0secret_garden_lrg.jpg\354|y8\324&lt;br /&gt;"..., 8192, 0) = 1368&lt;/tt&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;Voici donc une réponse qui dit à la fois "le fichier fait 4,000,000 bytes" (&lt;code&gt;Content-Length == Entity-Length&lt;/code&gt;) et "le fichier fait 38,651,711 bytes" (&lt;code&gt;Content-Range&lt;/code&gt;).&lt;br /&gt;&lt;br /&gt;&lt;em&gt;So the file is both 4,000,000 and 38,651,711 bytes long, right ?&lt;br /&gt;No wonder why you dodged the IPv6 day, eh ?&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-7374658233329621419?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/7374658233329621419/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=7374658233329621419' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7374658233329621419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7374658233329621419'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/06/microsoft-cannot-read.html' title='Microsoft cannot read!'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Y-0ywxovdPc/TfHM_n13NpI/AAAAAAAACzY/9oxs0WtozH4/s72-c/billies6f481b8b27.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1807904855269240243</id><published>2011-06-08T13:59:00.004+02:00</published><updated>2011-06-08T15:31:28.882+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rongtudju'/><title type='text'>=IPv6=</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.worldipv6day.org/files/2011/05/IPv6-test-flight-blue-256.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 256px; height: 256px;" src="http://www.worldipv6day.org/files/2011/05/IPv6-test-flight-blue-256.png" border="0" alt="" /&gt;&lt;/a&gt;Pas de doodle-google pour célébrer la "journée IPv6" ... juste un logo "blogger" animé sur le dashboard (ça énèèèèèrve @_@). Pas de statistiques sur sourceforge.net, non plus, ni d'images, si bien qu'en voulant cliquer quand même sur les statistiques de téléchargement de mon SpriteEditor(0.)4, j'ai finalement cliqué sur le # qui voulait dire "effacer le fichier".&lt;br /&gt;&lt;br /&gt;Ca m'aura pris un bon quart-d'heure sur Nintendomax pour retrouver le .zip (packagé sur un autre ordi :P) et le réenvoyer &gt;_&lt; Désolé pour ceux qui ont eu un "black-out de téléchargement" pendant ce temps-là.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-PJ3yUCIR7ic/Te95o0_n2vI/AAAAAAAACyo/BDIZkstTgFM/s1600/crude-sf.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 86px;" src="http://4.bp.blogspot.com/-PJ3yUCIR7ic/Te95o0_n2vI/AAAAAAAACyo/BDIZkstTgFM/s320/crude-sf.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5615841002681522930" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1807904855269240243?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1807904855269240243/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1807904855269240243' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1807904855269240243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1807904855269240243'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/06/ipv6.html' title='=IPv6='/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-PJ3yUCIR7ic/Te95o0_n2vI/AAAAAAAACyo/BDIZkstTgFM/s72-c/crude-sf.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-7239942889703128423</id><published>2011-06-07T11:32:00.001+02:00</published><updated>2011-06-08T14:05:53.357+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='rongtudju'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>#define atoi(str) Integer.parseInt(str)</title><content type='html'>J'ai beau essayer, essayer encore, y mettre de la bonne volonté, je ne &lt;font style="font-style: italic;"&gt;comprends pas&lt;/font&gt; comment la version Java "Integer.parseInt(...)" peut être préférable à ma bonne vieille A(scii)TO()I(nteger). Les programmeurs sont supposés être des spécialistes. Celui qui trouve que &lt;code&gt;strlen(itoa(42))&lt;/code&gt; est obscur doit tout simplement pratiquer davantage et pas écrire un langage dans lequel il faille écrire &lt;code&gt;new Integer(42).toString().length()&lt;/code&gt;, si ?&lt;br /&gt;&lt;br /&gt;Je risque un deuxième coup de gueule contre Java the Hutt... Qui a été bourrer le crâne des gens au point que je me retrouve avec une classe &lt;code&gt;Instances&lt;/code&gt; qui gère un vecteur de &lt;code&gt;Instance&lt;/code&gt;s, mais en donnant de nouveaux noms (&lt;code&gt;numInstances()&lt;/code&gt;, &lt;code&gt;enumerateInstances()&lt;/code&gt;, &lt;code&gt;addInstance()&lt;/code&gt;) ? Hmmm ? Personne ne se dénonce?  Eh bien vous serez tous privés de stdout! Tant pis pour vous.&lt;br /&gt;&lt;br /&gt;J'ai peut-être bien été trop entrainé en secondaire à retenir "le sens" des choses plutôt que de retenir par coeur des phrases toutes faites ... Quant à dire que Java est le "langage plus simple qui crie pour sortir de C++", bin sorry, mais je ne ferai pas le pas: mes petits outils de conversion, ils resteront en PERL.&lt;br /&gt;&lt;br /&gt;Bon, c'est pas tout ça, 'faut que je me replonge sur ce programme. Oh. length() n'est pas une méthode des tableaux, mais une ... euh. Une quoi, au fait? Rien d'autre dans Java ne semble se comporter de la même manière que &lt;code&gt;args.length&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Tout n'est pas noir, dans Java, mais tout n'est pas rose non plus. Ils nous ont ajouté à la version 5 l'équivalent du &lt;span style="font-style: italic;"&gt;foreach&lt;/span&gt; du PERL ... sympa et concis. Sauf que ça ne marche que sur les Iterators, qui avaient été &lt;a href="http://stackoverflow.com/questions/1240077/why-cant-i-use-foreach-on-java-enumeration"&gt;introduits en remplacement des Enumeration&lt;/a&gt; -- dont les noms de méthodes avaient alors été jugés trop longs. Alors c'est vrai que getNextElement(), ça ne m'a jamais épaté, mais du coup, si j'utilise une bibliothèque (Weka ?) qui est restées aux Enumerations, je ne peux pas me servir de foreach &gt;_&lt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-7239942889703128423?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/7239942889703128423/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=7239942889703128423' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7239942889703128423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/7239942889703128423'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/06/define-atoistr-integerparseintstr.html' title='#define atoi(str) Integer.parseInt(str)'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-5566893217244960102</id><published>2011-06-06T21:41:00.008+02:00</published><updated>2011-07-18T17:26:41.904+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='guru meditation'/><category scheme='http://www.blogger.com/atom/ns#' term='runme'/><category scheme='http://www.blogger.com/atom/ns#' term='devkitpro'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><category scheme='http://www.blogger.com/atom/ns#' term='libfat'/><title type='text'>Welcome, libfat 1.0.9</title><content type='html'>&lt;em&gt; While I was busy on a tons of things (including building up the first prototypes of AnimEDS) in february, Wintermute and his friends at devkitpro did a major revamp of the libfat, separating "what's good for the DS" from "what's good for the Wii". When it comes to mass storage performance, the two beasts are strongly different ... L1 cache, data transfer speeds, amount of L2 memory ... The release (1.0.7) I used in my &lt;a href="http://sylvainhb.blogspot.com/2010/11/source-setup-r32.html"&gt;"dkp-r32" setup&lt;/a&gt; tried (and failed) to provide a uniformised solution. I tried a few hacks that at some point looked to improve the performance, but didn't find the time to quantify the boost in a systemic way. I offered a patch, but ignoring the project's habbits made it doomed to /dev/null.&lt;br /&gt;&lt;br /&gt;Hopefully, the new build seems to provide good performance again (PC-&amp;gt;AP-&amp;gt;DS transfer rates of 64-80KB/s at home).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-YewMuxl9jg0/Te1DGIyupbI/AAAAAAAACyc/AFy_YV8Lg38/s1600/filenamelen.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-YewMuxl9jg0/Te1DGIyupbI/AAAAAAAACyc/AFy_YV8Lg38/s320/filenamelen.png" alt="" id="BLOGGER_PHOTO_ID_5615218083119408562" border="0" /&gt;&lt;/a&gt;Oh well, one annoying difference remain: i *have* to apply a DLDI patch manually for SCSD device (which used to have a built-in driver in former libfat). I also have an issue with directory scanning ... &lt;s&gt;I hope it won't take too long to figure out what it is.&lt;/s&gt; it looks like I underestimated the MAX_FILENAME_LENGTH ... again ...&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;J'étais tellement à la bourre &lt;a href="http://sylvainhb.blogspot.com/2011_02_01_archive.html"&gt;en février&lt;/a&gt; que j'ai complètement loupé la sortie de la version 1.0.9 de la libfat. Heureusement que je suis repassé jeter un oeil sur le forum de devkitpro après avoir tenté de refaire le point sur l'état du cache la semaine dernière, sinon j'aurais bêtement perdu plein de temps. Enfin, donc, une version qui traite la DS indépendamment de la Wii et de la gamecube, même si j'ai du ruser pour contourner les problèmes de &lt;code&gt;__io_dsisd&lt;/code&gt; manquant et patchouiller mes programme pour m'ajuster à une augmentation de MAX_FILENAME_LENGTH visant à améliorer le support d'UTF8. Enfin, c'est réglé.&lt;br /&gt;&lt;br /&gt;Une vitesse de transfer entre 64 et 80kB/s (@home en utilisant le wifi entre le PC et le routeur et entre le routeur et la DS), c'est tout ce que je demandais.&lt;br /&gt;&lt;br /&gt;Bon, maintenant, 'faudra que je regarde comment faire en sorte que &lt;a href="http://sylvainhb.blogspot.com/2009/12/tracking-memory-bugs.html"&gt;ma fonction die()&lt;/a&gt; marche à nouveau ...&lt;br /&gt;&lt;br /&gt;(PS: oui, j'ai testé tout ça sur la PHAT de ma fée, histoire de limiter la casse et les pertes de données au cas où... honte à moi ^^" ... &lt;abbr title="résolu mystérieusement (svn r835)"&gt;&lt;s&gt;quoi que, avec le binaire de SEDS qui crèe systématiquement des fichiers de taille 0 datant de janvier 1979 ...&lt;/s&gt;&lt;/abbr&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-5566893217244960102?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/5566893217244960102/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=5566893217244960102' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5566893217244960102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5566893217244960102'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/06/welcome-libfat-109.html' title='Welcome, libfat 1.0.9'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-YewMuxl9jg0/Te1DGIyupbI/AAAAAAAACyc/AFy_YV8Lg38/s72-c/filenamelen.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-5974258984933700561</id><published>2011-05-31T19:00:00.000+02:00</published><updated>2011-05-31T19:00:07.214+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='devkitpro'/><category scheme='http://www.blogger.com/atom/ns#' term='libfat'/><title type='text'>Et ... qu'est-ce qu'on fait maintenant ?</title><content type='html'>Bion première release de AnimEDS: check, mise à jour de SEDS : check. Quoi d'autre ?&lt;br /&gt;&lt;br /&gt;En premier, une petite uniformisation de mon environnement de compilation ne serait peut-être pas une mauvaise idée. J'avais &lt;a href="http://sylvainhb.blogspot.com/2010/12/libfat-hide-and-fseek.html"&gt;identifié un problème de performances&lt;/a&gt; dans la libfat pendant les congés de Noël ... ça pourrait valoir la peine de revenir dessus histoire de soumettre un "vrai" patch pour le projet devkitpro. Pour l'instant:&lt;br /&gt;- démarrer SEDS&lt;abbr title="bin oui, 'beta', c'était pour DKP21"&gt;gama&lt;/abbr&gt;.nds depuis le menu R4 et faire un "QUIT" vers rungama.nds: ok&lt;br /&gt;- mise à jour interne de SEDSgama et rungama: ok, mais lent (compilé sur beetle)&lt;br /&gt;- démarrer &lt;abbr title="dkp-r32, donc"&gt;SEDSgama&lt;/abbr&gt; depuis &lt;abbr title="dkp-r21"&gt;runbeta&lt;/abbr&gt;: ok, mais empèche d'utiliser le loader pour sortir de SEDSgama.&lt;br /&gt;&lt;br /&gt;Ensuite, on pourra voir pour les histoires d'effets miroir dans AnimEDS, la définition d'autres structures de sprites (changer le nombre de membres et l'utilisation des pages de sprites) et le support de tout ça dans le moteur de jeu (eh oui, l'idée, ça reste de faire des jeux).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-5974258984933700561?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/5974258984933700561/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=5974258984933700561' title='4 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5974258984933700561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5974258984933700561'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/05/et-quest-ce-quon-fait-maintenant.html' title='Et ... qu&apos;est-ce qu&apos;on fait maintenant ?'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-6023152299899931088</id><published>2011-05-28T21:37:00.005+02:00</published><updated>2011-08-12T12:08:38.910+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='palette'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><category scheme='http://www.blogger.com/atom/ns#' term='sprite editor'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><title type='text'>Download Sprite Editor 0.4</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sourceforge.net/projects/dsgametools/files/Sprite%20Editor%20DS/SpriteEditor4.zip/download"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 176px; height: 53px;" src="http://2.bp.blogspot.com/-UsnAKieqHsY/TeFPArq8f9I/AAAAAAAACxw/nh-orEF57mA/s400/SEDS-04-DL.png" alt="" id="BLOGGER_PHOTO_ID_5611853483821793234" border="0" /&gt;&lt;/a&gt; &lt;em&gt; Here we go: The &lt;a href="http://sylvainhb.blogspot.com/2011/05/animeditor-02-for-download.html"&gt;newest version of my Sprite Editor&lt;/a&gt; for Nintendo DS. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-_8VEMgn6XLs/Td49E0L8pII/AAAAAAAACxc/m1geS67SsY8/s400/grayscale-preview.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 252px; height: 173px;" src="http://4.bp.blogspot.com/-_8VEMgn6XLs/Td49E0L8pII/AAAAAAAACxc/m1geS67SsY8/s400/grayscale-preview.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://sylvainhb.blogspot.com/2011/05/grayscale-preview-done.html"&gt;Palette editor has been improved&lt;/a&gt; and made more comfortable,&lt;/li&gt;&lt;li&gt;&lt;a href="http://sylvainhb.blogspot.com/2011/05/sprite-editor-v04-pour-bientot.html"&gt;new functions on the grid:&lt;/a&gt; swapping, colour scan, overlays stamping&lt;/li&gt;&lt;li&gt; &lt;a href="http://sylvainhb.blogspot.com/2010/01/get-ready-for-flood.html"&gt;bucket-fill tool&lt;/a&gt; (L+B)&lt;/li&gt;&lt;li&gt; many small (obscure) tools to assist &lt;a href="http://sylvainhb.blogspot.com/2008/09/color-reduction.html"&gt;colour reduction&lt;/a&gt; tasks.&lt;/li&gt;&lt;li&gt;compatibility with my brand-new &lt;a href="http://sylvainhb.blogspot.com/2011/05/animeditor-02-for-download.html"&gt;Animation Editor for DS&lt;/a&gt;.&lt;/ul&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-seCX0AHOuCE/TeFUDN_c9xI/AAAAAAAACx8/rmmjpfPb3VY/s1600/SEDS-swap.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 259px; height: 193px;" src="http://4.bp.blogspot.com/-seCX0AHOuCE/TeFUDN_c9xI/AAAAAAAACx8/rmmjpfPb3VY/s400/SEDS-swap.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5611859024952489746" /&gt;&lt;/a&gt; Nous y voilà. Enfin toutes les améliorations apportées à mon Sprite Editor pour DS depuis fin 2008 regroupées, contrôlées, et documentées &lt;a href="http://sylvainhb.blogspot.com/2011/05/animeditor-02-for-download.html"&gt;dans la version 0.4&lt;/a&gt;:&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://sylvainhb.blogspot.com/2011/05/animeditor-02-for-download.html"&gt;éditeur de palette&lt;/a&gt; complet et plus ergonomique&lt;/li&gt;&lt;li&gt;fonctions miroir, superpositions d'images et &lt;a href="http://sylvainhb.blogspot.com/2010/01/get-ready-for-flood.html"&gt;remplissage rapide&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Réorganisation et réduction de couleurs (non-documenté)&lt;/li&gt;&lt;li&gt;compatibilité avec les animations produites par &lt;a href="http://sylvainhb.blogspot.com/2011/05/animeditor-02-for-download.html"&gt;AnimEDS&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Press L+R in the application for hints, or &lt;a href="http://sylvainhb.blogspot.com/p/sprite-editor.html"&gt;read the detailed manual&lt;/a&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-6023152299899931088?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/6023152299899931088/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=6023152299899931088' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6023152299899931088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6023152299899931088'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/05/download-sprite-editor-04.html' title='Download Sprite Editor 0.4'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-UsnAKieqHsY/TeFPArq8f9I/AAAAAAAACxw/nh-orEF57mA/s72-c/SEDS-04-DL.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-5884953972863502164</id><published>2011-05-26T13:43:00.007+02:00</published><updated>2011-05-28T09:30:09.469+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='palette'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>grayscale preview : done.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-_8VEMgn6XLs/Td49E0L8pII/AAAAAAAACxc/m1geS67SsY8/s1600/grayscale-preview.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 252px; height: 173px;" src="http://4.bp.blogspot.com/-_8VEMgn6XLs/Td49E0L8pII/AAAAAAAACxc/m1geS67SsY8/s400/grayscale-preview.png" alt="" id="BLOGGER_PHOTO_ID_5610989338687743106" border="0" /&gt;&lt;/a&gt;&lt;em&gt;Well, I guess it would be fair enough to admit that my knowledge in image processing turned out to be insufficient to provide a "magic contrast boost" slider in SEDS. Yet I regularly have contrast issues with my sprites, and I've learnt on Pixelation forums that turning your sprite into grayscale is a nice way to investigate whether a sprite is contrasted and readable enough. So the plan was&lt;/em&gt;&lt;blockquote&gt;&lt;a href="http://gimp-savvy.com/BOOK/index.html?node54.html"&gt;gray = red*.30+grn*.59+blu*.11&lt;/a&gt;&lt;/blockquote&gt; C'est la formule qui permet de passer d'une couleur RGB à un niveau de gris "équivalent". Or, passer son sprite en niveau de gris, c'est le truc ultime des gurus de Pixelation pour savoir si le contraste est suffisant ou non. A défaut d'un "boosteur de contraste" magique, c'est le moins que je puisse tenter.&lt;br /&gt;&lt;br /&gt;Reste à le mettre en oeuvre. C'est le genre de chose qui aurait été  impensable avec mes éditeurs sous DOS, n'ayant qu'une palette unique de 256 couleurs ... Mais ici, avec le soutient des "sprites DirectColor" (ou ATTR0_BMP), c'est une autre histoire ... Moyennant une consommation de mémoire vidéo un peu plus importante, je peux directement donner les composant RGB de chaque pixel individuellement et indépendamment des palettes "background" et "sprite".&lt;br /&gt;&lt;br /&gt;Ca n'aura pas été sans mal quand même, tant le fonctionnement de ces sprites diffère de celui de mes "bons vieux sprites habituels". D'abord, exit le tiling. Le pixel (x,y) à l'intérieur du sprite est stocké dans le y*width+x ème "short", tout simplement. Vu que la dénomination officielle est "SPR_BITMAP", il fallait un peu s'y attendre, celà dit :P&lt;br /&gt;Deuxio, ces sprites-là ont &lt;abbr title="REG_DISPCNT|=DISPLAY_SPR_1D_BMP;"&gt;leur propre bits de contrôle dans REG_DISPCNT&lt;/abbr&gt;, et peuvent donc rester en "mode 2D" alors que les autres sprites sont en mode 1D. On dirait d'ailleurs que desmume a encore quelques soucis avec ça et qu'il utilise ces sprites en mode 1D quoi qu'il advienne 0_0.&lt;br /&gt;Enfin, le "numéro de tile" n'est plus du tout interprété de la même manière. &lt;a href="http://nocash.emubase.de/gbatek.htm#dsvideoobjs"&gt;L'interprétation exacte est donnée sur gbatek&lt;/a&gt;, mais en ce qui me concerne je me suis contenté d'une heuristique du genre "tileno/2" avec un 'padding' pour aligner les données du sprites sur le bloc de 32 tiles le plus proche:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;tileno=Engine::allocate(Engine::RES_SPRITETILE,32+PAD); // will use directcolor.&lt;br /&gt;if (PAD &amp;amp;&amp;amp; tileno&amp;amp;(PAD-1)) tileno=(tileno+PAD)&amp;amp;(~(PAD-1));&lt;br /&gt;  sprdata = SPRITE_GFX + tileno*32;&lt;br /&gt;  Engine::sprites[oam].attribute[0]=ATTR0_BMP|ATTR0_ROTSCALE_DOUBLE|OBJ_Y(0);&lt;br /&gt;  Engine::sprites[oam].attribute[1]=ATTR1_ROTDATA(rot)|ATTR1_SIZE_32|OBJ_X(96);&lt;br /&gt;  Engine::sprites[oam].attribute[2]=ATTR2_PRIORITY(1)|ATTR2_ALPHA(1)|(tileno/2);&lt;/code&gt;&lt;/blockquote&gt;&lt;em&gt; The idea was to use "direct-color" sprites in order to have the freedom of picking RGB colors without messing up with the sprite palette (sprites are already used to render the whole palette at the bottom of the editor, so that we have enough freedom for widgets). That would only cost me some more video memory (clearly affordable in this context) ... and some discovery of these new sprites' oddities...&lt;br /&gt;A separate control on 1D/2D sprites, a specific scheme for reading data out of the VRAM (lowest bits of "tileno" are now used as a horizontal shift in an otherwise bitmap area) ... And of course, no tiling of the sprite data (these are named "BITMAP" sprites. What exactly did you expect, hmm ?)&lt;br /&gt;&lt;br /&gt;Well, that's all done, now. Just give me some more time to remove debugging statements, and I should be able to release Sprite Editor 0.4 by Monday.&lt;br /&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-5884953972863502164?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/5884953972863502164/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=5884953972863502164' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5884953972863502164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/5884953972863502164'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/05/grayscale-preview-done.html' title='grayscale preview : done.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-_8VEMgn6XLs/Td49E0L8pII/AAAAAAAACxc/m1geS67SsY8/s72-c/grayscale-preview.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-266028282919718017</id><published>2011-05-25T13:43:00.005+02:00</published><updated>2011-10-25T11:12:07.435+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pixels'/><category scheme='http://www.blogger.com/atom/ns#' term='palette'/><category scheme='http://www.blogger.com/atom/ns#' term='colours'/><category scheme='http://www.blogger.com/atom/ns#' term='sprite editor'/><title type='text'>Contrast Boost ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-EWj9EUOxCFw/TdzsM897l3I/AAAAAAAACxE/Wsrps0dy2XU/s1600/contrast-boost.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 128px; height: 48px;" src="http://1.bp.blogspot.com/-EWj9EUOxCFw/TdzsM897l3I/AAAAAAAACxE/Wsrps0dy2XU/s400/contrast-boost.png" alt="" id="BLOGGER_PHOTO_ID_5610618943065266034" border="0" /&gt;&lt;/a&gt;J'ai la fâcheuse manie de dessiner avec un contraste trop faible entre mes couleurs (cf image du milieu), et du coup, toutes mes tentatives d'ombrage et de lumière ont tendance à tomber à plat, en particulier sur des décors plus variés... du coup, je corrige a posteriori dans The Gimp, avec un résultat plus ou moins heureux, vu que je ne sais pas ajuster la disposition des pixels en fonction des nouvelles couleurs...&lt;br /&gt;&lt;br /&gt;J'avais donc dans l'idée d'ajouter un bouton (ou une règlette) "augmenter le contraste" dans SEDS pour sa prochaine révision ... encore faudrait-il savoir ce que cette règlette serait supposée faire. Le contraste automatique de Gimp agit à la fois sur la saturation en couleurs (augmentée dans tous les cas) et sur la valeur (hsV), mais pas évident d'en déduire ce qui est effectivement fait.&lt;br /&gt;La difficulté, à la main, serait de revoir l'ensemble des couleurs d'un dégradé tout en gardant la cohérence du dégradé. J'ai tenté de modifier les "sliders" de l'éditeur de palette pour faciliter l'édition d'une succession de couleurs .. pour rien: la fonction souhaitée (sélectionner un slider sans le modifier) était déjà disponible avec L+click :P&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-2Vy-wCRnK10/TdzwOE4xrzI/AAAAAAAACxQ/1lTB5QHOtww/s1600/contrast-grayscale.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 124px; height: 32px;" src="http://4.bp.blogspot.com/-2Vy-wCRnK10/TdzwOE4xrzI/AAAAAAAACxQ/1lTB5QHOtww/s400/contrast-grayscale.png" alt="" id="BLOGGER_PHOTO_ID_5610623360417509170" border="0" /&gt;&lt;/a&gt;Je pourrais peut-être déjà proposer une variante "niveaux de gris" du sprite, ce qui a tendance à faire ressortir les problèmes de contrastes pour les gens qui se laissent trop facilement distraire par la "&lt;span style="color: rgb(51, 0, 0);"&gt;c&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);"&gt;h&lt;/span&gt;&lt;span style="color: rgb(102, 51, 51);"&gt;r&lt;/span&gt;&lt;span style="color: rgb(51, 51, 0);"&gt;o&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;m&lt;/span&gt;&lt;span style="color: rgb(0, 51, 51);"&gt;i&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;n&lt;/span&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;a&lt;/span&gt;&lt;span style="color: rgb(51, 0, 51);"&gt;n&lt;/span&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;c&lt;/span&gt;e" ... comme moi, apparemment :P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-266028282919718017?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/266028282919718017/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=266028282919718017' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/266028282919718017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/266028282919718017'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/05/contrast-boost.html' title='Contrast Boost ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-EWj9EUOxCFw/TdzsM897l3I/AAAAAAAACxE/Wsrps0dy2XU/s72-c/contrast-boost.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-40391776836078426</id><published>2011-05-21T14:09:00.002+02:00</published><updated>2011-06-08T14:05:53.361+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rongtudju'/><title type='text'>Pas de 3DS pour moi.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.defectivebydesign.org/nintendo3ds"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://1.bp.blogspot.com/-1-76RLjLV1E/TdemWynEi-I/AAAAAAAACww/QJqV231xUCg/s400/3dsbrick_vertical.png" alt="" id="BLOGGER_PHOTO_ID_5609134771386223586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Devant, un bijou technologique. Derrière, un appareil sur lequel vous n'avez finalement aucun contrôle, qui s'apparente d'avantage à un mouchard déposé chez vous par Nintendo qu'à une console de jeu!&lt;br /&gt;&lt;br /&gt;Que Nintendo veuille protéger ses ventes, très bien pour moi. Qu'ils poursuivent en justice les gens qui vendent du matériel destiné au piratage de leurs jeux, pas de soucis avec ça non plus. Les jeux qui m'intéressent sont parfois bien dur à trouver, mais jusqu'ici, j'ai presque toujours fini par mettre la main dessus, que ce soit à la médiathèque ou en magasin. Qu'ils bloquent l'accès au "DSiWare" quand un composant non-conforme est présent (ou a laissé des traces dans le système), "fair enough".&lt;br /&gt;&lt;br /&gt;En revanche, s'octroyer le droit de rendre l'appareil que vous avez acheté définitivement hors d'usage, là je dis non. Sony qui retire à distance la fonction Other OS, c'était déjà exagéré, mais menacer (et avoir techniquement prévu) de transformer l'appareil en un tas de transistors inutilisables est tout simplement inacceptable. S'octroyer le droit d'utiliser les commentaires et les photos prises par l'utilisateur, c'est du Big Bowser à l'état pur. Mille sabords, on l'a acheté, cet engin, ou on s'est vendu ?&lt;br /&gt;&lt;br /&gt;Je suis malheureusement trop tard pour la campagne, mais mon choix est fait: votre percée technologique, vous pouvez vous asseoir dessus, messieurs. Je suis seul maître à bord et seul responsable de mes actes en 192.168.*.* et j'entends bien le rester. Comptez sur moi pour avertir tous les parents aux alentours de ne pas acheter cet engin à leurs gamins!&lt;br /&gt;&lt;br /&gt;Cliquez sur l'image pour accéder aux informations de la campagne contre Nintendo of America.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-40391776836078426?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/40391776836078426/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=40391776836078426' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/40391776836078426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/40391776836078426'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/05/pas-de-3ds-pour-moi.html' title='Pas de 3DS pour moi.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-1-76RLjLV1E/TdemWynEi-I/AAAAAAAACww/QJqV231xUCg/s72-c/3dsbrick_vertical.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1794880680491950745</id><published>2011-05-20T13:48:00.006+02:00</published><updated>2011-08-12T12:08:38.915+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sprite editor'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>srpite eoitdr rleasee psotpnoed</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-MCCKGDxWnIc/TdZVL6oqf9I/AAAAAAAACwc/sZ_F_cmiy7U/s1600/buggy-seds.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 214px; height: 180px;" src="http://2.bp.blogspot.com/-MCCKGDxWnIc/TdZVL6oqf9I/AAAAAAAACwc/sZ_F_cmiy7U/s400/buggy-seds.png" alt="" id="BLOGGER_PHOTO_ID_5608764049143267282" border="0" /&gt;&lt;/a&gt;Ouhlà! Qu'est-ce que c'est que ce souk !?? Je savais que j'avais fait pas mal de modification à ma bibliothèque de "support" pour le Sprite Editor, mais là, on nage en plein délire !? Les widgets "grille 16x16" et "grille 32x32" sont inversées ou quelque-chose du genre. Du coup, ce n'est plus l'image à l'écran qui est manipulée, mais une autre, hors-écran. Bin il va y avoir un peu de nettoyage à faire avant de faire une release du Sprite Editor, on dirait bien.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;WTH? I knew the "core" libgeds library (the Gui Engine) had been reviewed several times since the last SpriteEditor release ... and obviously I should have proceeded with back-compatibility tests more often, because it looks like *nothing* works with this SEDS 0.4 release candidate. Oh, well, the palette edition window do work flawlessly, but there's something horribly wrong with the grid widgets. It looks like the 32x32 grid handle clicks when the 16x16 grid is displayed and vice-versa. The hell if I know why. More clean-up, code printing, overlining, and UML teacup to come ahead, I'm afraid.&lt;br /&gt;&lt;br /&gt;The release is postponed until I can figure out where all this mess comes from.&lt;br /&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1794880680491950745?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1794880680491950745/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1794880680491950745' title='3 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1794880680491950745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1794880680491950745'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/05/srpite-eoitdr-rleasee-psotpnoed.html' title='srpite eoitdr rleasee psotpnoed'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-MCCKGDxWnIc/TdZVL6oqf9I/AAAAAAAACwc/sZ_F_cmiy7U/s72-c/buggy-seds.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-3607593328020035942</id><published>2011-05-17T14:48:00.014+02:00</published><updated>2011-08-12T12:08:38.921+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='palette'/><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='wish'/><category scheme='http://www.blogger.com/atom/ns#' term='sprite editor'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><category scheme='http://www.blogger.com/atom/ns#' term='done'/><title type='text'>Sprite Editor v0.4 pour bientôt ?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-UBjfBYvEozE/TdJ10SEr85I/AAAAAAAACwI/d7P1h4T5khg/s1600/anim-n-seds.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 208px; height: 400px;" src="http://1.bp.blogspot.com/-UBjfBYvEozE/TdJ10SEr85I/AAAAAAAACwI/d7P1h4T5khg/s400/anim-n-seds.png" alt="" id="BLOGGER_PHOTO_ID_5607674027094832018" border="0" /&gt;&lt;/a&gt;Dur à croire, mais &lt;a href="http://sylvainhb.blogspot.com/2008/09/user-friendly.html"&gt;SEDS v0.3&lt;/a&gt;, c'était il y a plus de 2 ans 1/2 déjà. Entretemps, j'ai ajouté l'outil &lt;a href="http://sylvainhb.blogspot.com/2010/01/get-ready-for-flood.html"&gt;"seau de couleur" (L+B)&lt;/a&gt;, récemment ajusté pour fonctionner aussi en 16x16. Au passage, avec l'éditeur d'animation qui ajoute de nouvelles informations dans les fichiers .spr, je dois ajuster le Sprite Editor pour qu'il ne perde pas les animations dès qu'on édite les images ...&lt;br /&gt;L'idéal, bien sûr, ce sera d'intégrer les deux outils, mais on en est pas encore là (prototypage oblige).&lt;br /&gt;&lt;br /&gt;Autre soucis: le &lt;a href="http://sylvainhb.blogspot.com/2010/12/so-long-execcpp.html"&gt;devkitpro "32"&lt;/a&gt;, ou plus exactement, le mécanisme "standardisé" pour passer d'un programme à l'autre. Pour l'instant, le nouveau SEDS n'est capable de passer à un autre programme que si "quelqu'un d'autre" (runme, hbmenu) a placé le stub en mémoire... Celà dit, il y aura quand-même encore quelques petites choses à régler dans la partie "palette" (qui traînent depuis un bail :P)&lt;br /&gt;&lt;em&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;ul&gt;&lt;li&gt;[&lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/trunk/SpriteEditor/source/PaletteWindow.cpp?r1=824&amp;amp;r2=826&amp;amp;pathrev=826"&gt;done&lt;/a&gt;]&lt;s&gt;click on color in the preview, and see where it is on the palette&lt;/s&gt;&lt;/li&gt;&lt;li&gt;[&lt;abbr title="revision 827"&gt;done&lt;/abbr&gt;]&lt;s&gt;R recalls the former color (undo)&lt;/s&gt;&lt;/li&gt;&lt;li&gt; swap mode for the PaletteEditor widget&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;These are "todo items" pending on the Sprite editor for &lt;a href="http://sylvainhb.blogspot.com/2008/09/color-reduction.html"&gt;two years and a half&lt;/a&gt;, now. The latest SpriteEditor release is virtually as old, and had no idea what to do with animations present in .spr ... So an update will be required soon so that people can start drawing their *own* 'puppets'. That, plus support for "horizontal flood fill" will make version 0.4, which I hope to make available fairly soon.&lt;br /&gt;Let us also add:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;[&lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/trunk/SpriteEditor/source/PaletteWindow.cpp?r1=824&amp;amp;r2=826&amp;amp;pathrev=826"&gt;done&lt;/a&gt;]&lt;s&gt;a visual hint of which gradient color has been picked last&lt;/s&gt;&lt;/li&gt;&lt;li&gt;[&lt;a href="http://dsgametools.svn.sourceforge.net/viewvc/dsgametools/trunk/SpriteEditor/source/PaletteWindow.cpp?r1=824&amp;amp;r2=826&amp;amp;pathrev=826"&gt;done&lt;/a&gt;]&lt;s&gt;a tool for "reversing" a gradient on the gradient-generator widget (for hues)&lt;/s&gt; (that was already available with A/X buttons :P)&lt;/li&gt;&lt;li&gt;[wish] a slider for boosting / lowering the contrast for a range of colours.&lt;/li&gt;&lt;li&gt;[done]&lt;s&gt;sprite swapping on the grid&lt;/s&gt;&lt;/li&gt;&lt;li&gt;[wish] colour stencil à la Deluxe paint (possibly using the quickpal widget)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Ideally, both tools will end up integrated into a single binary, for more efficient workflow. That's not yet possible as one is still in prototype stage and the other "in production" ...&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-3607593328020035942?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/3607593328020035942/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=3607593328020035942' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3607593328020035942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3607593328020035942'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/05/sprite-editor-v04-pour-bientot.html' title='Sprite Editor v0.4 pour bientôt ?'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-UBjfBYvEozE/TdJ10SEr85I/AAAAAAAACwI/d7P1h4T5khg/s72-c/anim-n-seds.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-2791870242710323851</id><published>2011-05-11T13:15:00.002+02:00</published><updated>2011-05-11T13:25:44.021+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><title type='text'>AnimEditor 0.2 for download !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sourceforge.net/projects/dsgametools/files/dsgametools/AnimEditor-02.zip/download"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 175px; height: 53px;" src="http://2.bp.blogspot.com/-vi4LgvevDi0/TcpwJ_H-TSI/AAAAAAAACvE/Pz26yRb933w/s320/download-02.png" alt="" id="BLOGGER_PHOTO_ID_5605416003082013986" border="0" /&gt;&lt;/a&gt; &lt;em&gt;At last, here you go. Have fun with Mr. Easter Egg. See &lt;a href="http://sylvainhb.blogspot.com/2011/05/using-animeds.html"&gt;this post&lt;/a&gt; for how to use the editor.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sylvainhb.blogspot.com/feeds/posts/default"&gt;Stay tuned for updates.&lt;/a&gt;&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sylvainhb.blogspot.com/search/label/animeds"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-lIAApKoBGiI/TcaO90oeEvI/AAAAAAAACuU/LE1J4UgZfdw/s320/animeds-video.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-2791870242710323851?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/2791870242710323851/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=2791870242710323851' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2791870242710323851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2791870242710323851'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/05/animeditor-02-for-download.html' title='AnimEditor 0.2 for download !'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-vi4LgvevDi0/TcpwJ_H-TSI/AAAAAAAACvE/Pz26yRb933w/s72-c/download-02.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-2821704579204457459</id><published>2011-05-11T12:20:00.001+02:00</published><updated>2011-08-12T12:10:41.734+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='user guide'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><category scheme='http://www.blogger.com/atom/ns#' term='traduis-moi'/><title type='text'>Using AnimEDS</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-MjYDwK4iMsg/TcpxV5lcXHI/AAAAAAAACvQ/FPMPDQcp_p4/s1600/with-thumbs-UG.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 216px; height: 320px;" src="http://4.bp.blogspot.com/-MjYDwK4iMsg/TcpxV5lcXHI/AAAAAAAACvQ/FPMPDQcp_p4/s320/with-thumbs-UG.png" alt="" id="BLOGGER_PHOTO_ID_5605417307265064050" border="0" /&gt;&lt;/a&gt;1) &lt;a href="http://sylvainhb.blogspot.com/search/label/download"&gt;download it&lt;/a&gt;, ensure you've got a DS linker ready.&lt;br /&gt;2) install spritex.spr at the root of your media card&lt;br /&gt;3) place AnimEditor.nds anywhere you like on your media card&lt;br /&gt;4) launch the .nds file with your linker.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;START-L-X : load the spritex.spr file (other spritesheets can be built with &lt;a href="http://sylvainhb.blogspot.com/p/sprite-editor.html"&gt;SEDS&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Click the limbs on the central area to select them, then move them around with the stylus or the DPAD. press L to de-select the current limb.&lt;/li&gt;&lt;li&gt;Press Y to copY the current frame and edit the next (copied) frame.&lt;/li&gt;&lt;li&gt;When no limb is selected, press UP or DOWN on the DPAD to move from frame to frame. Press LEFT or RIGHT to move the selected frame around the timeline.&lt;/li&gt;&lt;li&gt;Use the limbs miniature on the left to select a limb more accurately or to make its associate spritesheet appearing on the right.&lt;/li&gt;&lt;li&gt;Touch one of the sprites on the right sheet to change which image is displayed.&lt;/li&gt;&lt;li&gt;press R-R to write back that animation to the "thumb window". When the thumbs window is displayed (pressing R once) on the bottom screen, use DPAD to select an animation slot, A to load it in the editor, R to save the editor's content and L to return to the editor without writing back.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;press START-R-R to save back your work.&lt;/li&gt;&lt;/ul&gt;DISCLAIMER:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;AnimEditor v0.2 is still hard-coded for a specific layout of the .spr file (esp. regarding which page to use for the different limbs). This may result in odd content displayed on screen before you load a file.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-2821704579204457459?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/2821704579204457459/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=2821704579204457459' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2821704579204457459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2821704579204457459'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/05/using-animeds.html' title='Using AnimEDS'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-MjYDwK4iMsg/TcpxV5lcXHI/AAAAAAAACvQ/FPMPDQcp_p4/s72-c/with-thumbs-UG.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1498682582198083642</id><published>2011-05-08T14:35:00.008+02:00</published><updated>2011-08-12T12:10:41.739+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><title type='text'>Une petite vidéo d'AnimEDS 0.1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.youtube.com/watch?v=4GAyiwalVt0"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-lIAApKoBGiI/TcaO90oeEvI/AAAAAAAACuU/LE1J4UgZfdw/s320/animeds-video.png" alt="" id="BLOGGER_PHOTO_ID_5604323979060712178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;'Faut que je fasse de la place sur mon appareil photo avant la visite du Keukenhof ... ce qui fait que j'ai retrouvé la petite vidéo de démonstration des possibilités d'AnimEDS 0.1&lt;br /&gt;&lt;br /&gt;Evidemment, ç'aurait été mieux d'en faire une nouvelle avec la version courante qui devient progressivement "presqu'utilisable", mais le temps est plus ou moins limité ici.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Better late than never, I hope: two commits ahead of AnimEDS 0.2, I finally uploaded the demo video of AnimEDS 0.1 that demonstrates the basic user interface. Stay tuned.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1498682582198083642?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1498682582198083642/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1498682582198083642' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1498682582198083642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1498682582198083642'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/05/une-petite-video-danimeds-01.html' title='Une petite vidéo d&apos;AnimEDS 0.1'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-lIAApKoBGiI/TcaO90oeEvI/AAAAAAAACuU/LE1J4UgZfdw/s72-c/animeds-video.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-1496006344223608952</id><published>2011-05-04T13:01:00.004+02:00</published><updated>2011-05-04T13:15:34.870+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Iteraatooor ... Giv'me Innformationnn.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.youtube.com/watch?v=sVQBlok7gbs&amp;amp;feature=related"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 190px; height: 262px;" src="http://2.bp.blogspot.com/-acZNIjWTft4/TcEzOMHCr4I/AAAAAAAACuI/2MzNMXIoac4/s320/iterator-mt.png" alt="" title="(Sur l'air de 'Operator' par Manatthan Transfer, bien sûr)" id="BLOGGER_PHOTO_ID_5602815730287554434" border="0" /&gt;&lt;/a&gt;Donc, se donner un objet représentant "une position dans une séquence" sur lequel il soit possible de faire les opérations habituelles "avancer à l'élément suivant" ou "obtenir le contenu de l'élément actuel" comme si on avait affaire à un "bon vieux pointeur dans un tableau C", c'était l'idée de std::{whatever}::iterator.&lt;br /&gt;&lt;br /&gt;Si c'est sympa à la base (surtout pour ceux qui n'ont jamais fait de programmation fonctionnelle et pour qui les manipulations de listes à coup de &lt;span style="font-style: italic;"&gt;grep&lt;/span&gt; ou &lt;span style="font-style: italic;"&gt;map &lt;/span&gt;semblent occultes), en revanche, ça donne parfois des effets troublants dans la mesure où l'itérateur risque (s'il y a la moindre faille dans votre vigilance) de parcourir un objet qui n'existe plus.&lt;br /&gt;&lt;br /&gt;Du moins, c'est l'explication la plus probable des fantaisies que j'observe dans mon éditeur d'animations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-1496006344223608952?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/1496006344223608952/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=1496006344223608952' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1496006344223608952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/1496006344223608952'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/05/iteraatooor-givme-innformationnn.html' title='Iteraatooor ... Giv&apos;me Innformationnn.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-acZNIjWTft4/TcEzOMHCr4I/AAAAAAAACuI/2MzNMXIoac4/s72-c/iterator-mt.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-563335104222793029</id><published>2011-05-02T23:34:00.003+02:00</published><updated>2011-08-12T12:10:41.745+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><title type='text'>AnimShow -- le retour.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-ghYFe08nfNk/Tb8jxVNUkmI/AAAAAAAACt8/Tp1nN096GB8/s1600/animshow-code.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 160px;" src="http://3.bp.blogspot.com/-ghYFe08nfNk/Tb8jxVNUkmI/AAAAAAAACt8/Tp1nN096GB8/s320/animshow-code.png" alt="" id="BLOGGER_PHOTO_ID_5602235791885767266" border="0" /&gt;&lt;/a&gt;&lt;em&gt;At last, I can preview the animation in the animation editor. That should bring release 0.2 one step closer. Now I only need to do some polish ... and get some sleep :P&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Et voilà. Enfin des animations animées dans mon éditeur d'animations. Je vais devoir vous demander d'attendre encore un peu -- un minimum de polish et de tests en live sur DS -- avant de vous proposer la release 0.2 et son Easter Egg ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-563335104222793029?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/563335104222793029/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=563335104222793029' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/563335104222793029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/563335104222793029'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/05/animshow-le-retour.html' title='AnimShow -- le retour.'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ghYFe08nfNk/Tb8jxVNUkmI/AAAAAAAACt8/Tp1nN096GB8/s72-c/animshow-code.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-6880138930073465952</id><published>2011-04-26T12:54:00.003+02:00</published><updated>2011-08-12T12:10:41.751+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>UI revision for AnimEDS</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-QzwKu4eYO3M/TbakV2FA5dI/AAAAAAAACtw/HfxU-qKR4zE/s1600/animeds-ui-revised.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 234px; height: 218px;" src="http://4.bp.blogspot.com/-QzwKu4eYO3M/TbakV2FA5dI/AAAAAAAACtw/HfxU-qKR4zE/s320/animeds-ui-revised.png" alt="" id="BLOGGER_PHOTO_ID_5599843881882543570" border="0" /&gt;&lt;/a&gt;Puisque mon petit éditeur d'animations marchait plutôt bien ce week-end, j'ai voulu le faire essayer à ma fée et à mon frère avant une petite "pre-release" destinées à nos charmantes têtes blondes en mal d'inspiration pour jouer aux playmobils. C'est là que je me suis rendu compte que le programme avait tout de l'instrument de torture:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;il faut maintenir L enfoncé pendant qu'on déplace un des composant de l'animation. Ca devient fatiguant pour les poignets au bout de 10 minutes d'utilisation, et ça demande de sérieuses contorsions pour un utilisateur gaucher &amp;gt;_&amp;lt;&lt;/li&gt;&lt;li&gt;sans confirmation visuelle du composant sélectionné pour le déplacement, les choses deviennent franchement hasardeuses dès que l'on superpose certains éléments&lt;/li&gt;&lt;li&gt;pour passer au cellulos suivant ou précédent, il faut impérativement cliquer sur la ligne du temps, ce qui empêche de faire des corrections rapides sur une animation complète.&lt;/li&gt;&lt;li&gt;On déplace fréquemment un objet par erreur. Il serait préférable de pouvoir le renvoyer à sa dernière position.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;em&gt;Operating the animation editor turns out to be a pain. I mean physically: you feel strain in your wrist after some 10 minutes. I need to revise a few things, and I intend to do that revision while focusing on the &lt;b&gt;primary function&lt;/b&gt; of the various widgets. For instance, moving  limbs around -- not selecting them -- is the primary function of the FrameEditor, and therefore, this must be the action bound to GUI_TOUCHED. I also need to ensure that it will be possible to quickly revise the movement of one limb along a given animation, which isn't possible right now as you need to have the timeline selected for that purpose.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Bref, je vais devoir revoir ma copie: je n'ai pas prévu de faire de cet éditeur une arme paralysante.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-6880138930073465952?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/6880138930073465952/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=6880138930073465952' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6880138930073465952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/6880138930073465952'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/04/ui-revision-for-animeds.html' title='UI revision for AnimEDS'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-QzwKu4eYO3M/TbakV2FA5dI/AAAAAAAACtw/HfxU-qKR4zE/s72-c/animeds-ui-revised.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-2623592918818588609</id><published>2011-04-22T14:15:00.007+02:00</published><updated>2011-10-04T13:14:10.235+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><category scheme='http://www.blogger.com/atom/ns#' term='screenshot'/><title type='text'>Almost done ...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-T4WdC6n7QQM/TbFyc3yedpI/AAAAAAAACtk/t7LlMcUS0KM/s1600/with-thumbs.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 216px; height: 320px;" src="http://1.bp.blogspot.com/-T4WdC6n7QQM/TbFyc3yedpI/AAAAAAAACtk/t7LlMcUS0KM/s320/with-thumbs.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5598381652135802514" /&gt;&lt;/a&gt;&lt;em&gt;As soon as you realise that &lt;a href="http://nocash.emubase.de/gbatek.htm#dsdmatransfers"&gt;the DMA unit of the nintendo DS cannot manipulate whatever is on the stack&lt;/a&gt; because the stack (DTCM) is basically connected directly to the ARM9 cpu and therefore not accessible through the system bus, it gets easier to debug the rest of the code. &lt;br /&gt;It required some cleanup and head-scratching, but at last I have thumbs for the frames rendered on the timeline and a similar thumb for each animation slot rendered on the upper screen. All I still need to get done for release 0.2 is now to allow multiple animations to be saved ... Oh, and I might also need to check that the sprite editor can manipulate the pixels of a .spr file without trashing the animations it contains.&lt;br /&gt;&lt;br /&gt;errm. Wait ... I might need something to preview the animation as well ^^"&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-2623592918818588609?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/2623592918818588609/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=2623592918818588609' title='2 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2623592918818588609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/2623592918818588609'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/04/almost-done.html' title='Almost done ...'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-T4WdC6n7QQM/TbFyc3yedpI/AAAAAAAACtk/t7LlMcUS0KM/s72-c/with-thumbs.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-633479583327132489</id><published>2011-04-19T10:54:00.008+02:00</published><updated>2011-04-19T21:03:34.053+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>C++ doesn't help!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-Tm85YkgEOYk/Ta3XI2E9CrI/AAAAAAAACtY/XOr-LLN_FCo/s1600/sparking-light.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 199px; height: 231px;" src="http://4.bp.blogspot.com/-Tm85YkgEOYk/Ta3XI2E9CrI/AAAAAAAACtY/XOr-LLN_FCo/s320/sparking-light.png" alt="" id="BLOGGER_PHOTO_ID_5597366458846612146" border="0" /&gt;&lt;/a&gt;&lt;em&gt;I really feel the lack of any "package" protection level in C++. Every significant new piece of software triggers some hide-and-seek problems that must be solved before the code can actually get written. Something like saving animations and re-loading them, for instance.&lt;br /&gt;&lt;br /&gt;I struggled with "how I could share the animation data so that AnimWindow doesn't have to know the details of writing to files, but that FileWindow doesn't need to know the details of animations structures... Then came the ghosts of deep object copy and reference counting bats (they are quite frequent in the caves of poor design).&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Curieux, non ? Dans la petite &lt;a href="http://sylvainhb.blogspot.com/2011/04/yahoo.html"&gt;"todo list"&lt;/a&gt; basée sur les premiers essais sur DS, aucune mention de "sauver l'animation créée" ... C'est pourtant la fonctionnalité primaire qui manquait encore et qui devait recevoir la priorité. C'est qu'à nouveau, on touche à "qui peut manipuler quoi" dans le programme, et le C++ n'aide &lt;span style="font-style: italic;"&gt;vraiment pas&lt;/span&gt; dans ce domaine-là. Par moment, j'en viens à regretter la "visibilité par package" du Java. C'est dire!&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Hopefully, a light sparkled in the darkness: I needed animation &lt;span style="font-style: italic;"&gt;data&lt;/span&gt; to be shared by the two windows, but that didn't mean the &lt;span style="font-style: italic;"&gt;objects&lt;/span&gt; must be accessed by the two. The animation being edited can remain held in AnimWindow::tlist and AnimWindow::anim, as the other components won't edit frames or timeline. And that allowed me to apply the coding practice that works the best for me: interfaces. All I need is that AnimWindow offers a iAnimHolder to the rest of the software. That interface serialise the current animation into a vector of information with the only constraint that it must be easy to reconstruct the editable object. pfew.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Lw1ky8B8pbg/Ta3QH4E_tLI/AAAAAAAACtM/ifK6Jv-bdCc/s1600/anim-binary.png"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 266px; height: 271px;" src="http://2.bp.blogspot.com/-Lw1ky8B8pbg/Ta3QH4E_tLI/AAAAAAAACtM/ifK6Jv-bdCc/s320/anim-binary.png" alt="" id="BLOGGER_PHOTO_ID_5597358745622394034" border="0" /&gt;&lt;/a&gt;From that point on, things went better: it was a mere matter of mimmicking the Scream Tracker's approach to pattern compression: if value is repeated, don't repeat it. Bare "unsigned" encoding command-class, command (e.g. move limb, delay, change sprite ...), object identifier (which limb, usually) and leaving 16 bits for the actual data (number of frames to wait, sprite reference or pair of coordinates relative to the "center" of the frame editor) was enough. And they could naturally be packed into an large DataBlock before being pushed to a .spr file.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Heureusement, à force d'accumuler les tentatives UML, j'ai fini par constater que les besoins de AnimWindow::tlist ne sont pas similaires à ceux de ThumbsWindow et FileWindow: seul l'AnimWindow doit manipuler les animations en tant qu'objet. Pour le reste, il me suffira de "stocker" les animations pour pouvoir les resservir plus tard. En somme, il suffit que l'AnimWindow offre une interface de sérialisation/désérialisation et rien de plus.&lt;br /&gt;&lt;br /&gt;Comme la sauvegarde et le chargement de fichiers .spr prévoyait déjà la possibilité de manipuler des blocs "de données inconnues", le reste n'était que pure formalité: voilà donc AnimEds capable de sauver et recharger &lt;span style="font-style: italic;"&gt;une&lt;/span&gt; animation. Encore quelques widgets et on pourra en manipuler autant qu'on veut et passer de l'une à l'autre comme s'il s'agissait de simples sprites.&lt;br /&gt;&lt;!-- &lt;ul&gt;&lt;li&gt;dans le SpriteEditor, les "données" à relayer d'un point à l'autre étaient un simple tableau. Ici, on a qqch de plus complexe avec une longueur d'animation variable et un nombre de "limbs" potentiellement différent d'une animation à l'autre (p.ex. animations pour plusieurs personnages dans le même fichier).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ce sera plus simple de faire un "save" si les données ont déjà été linéarisées&lt;/li&gt;&lt;li&gt;si &lt;code&gt;AnimWindow implements AnimHolder&lt;/code&gt;, je peux avoir &lt;code&gt;ah-&amp;gt;export(&amp;amp;vector)&lt;/code&gt; ou &lt;code&gt;ah-&amp;gt;import(&amp;amp;vector)&lt;/code&gt; pour que les données soient transférées.&lt;/li&gt;&lt;li&gt;&lt;code&gt;Metawindow=&amp;gt;PassiveThumbs=&amp;gt;(AnimWindow[=&amp;gt;ActiveThumbs] | FileWindow)&lt;/code&gt; permet de conserver les thumbs affichés même quand AnimWindow est utilisé.&lt;/li&gt;&lt;li&gt;SpriteSet::save(filename) accepte comme 2eme argument optionnel un std::vector&lt;datablock&gt; qui seront réécris tels quels : chaque élément reprend explicitement une structure avec le champ &lt;span style="font-style: italic;"&gt;magic&lt;/span&gt; et la &lt;span style="font-style: italic;"&gt;skipsize&lt;/span&gt; à réutiliser et un pointeur vers les données brutes à réécrire. SpriteSet::Load() offre un mécanisme similaire. les blocs inconnus sont 'malloc'és à la lecture et restent inchangés lors de la réécriture.&lt;br /&gt;&lt;/datablock&gt;&lt;/li&gt;&lt;/ul&gt; --&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Oh, btw, if you missed the post "&lt;a href="http://sylvainhb.blogspot.com/2011/04/animation-editor-01.html"&gt;animation editor 0.1&lt;/a&gt;", it has been translated earlier today.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-633479583327132489?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/633479583327132489/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=633479583327132489' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/633479583327132489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/633479583327132489'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/04/c-doesnt-help.html' title='C++ doesn&apos;t help!'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Tm85YkgEOYk/Ta3XI2E9CrI/AAAAAAAACtY/XOr-LLN_FCo/s72-c/sparking-light.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-34057821.post-3293506708499039165</id><published>2011-04-17T16:57:00.003+02:00</published><updated>2011-08-12T12:10:41.762+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animeds'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><category scheme='http://www.blogger.com/atom/ns#' term='animation'/><category scheme='http://www.blogger.com/atom/ns#' term='mybrew'/><category scheme='http://www.blogger.com/atom/ns#' term='english'/><title type='text'>Animation editor ... 0.1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-QEREhqOWDFQ/TasAJSQ5a-I/AAAAAAAACtA/4ZYOQOuiEak/s1600/test.gif"&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; cursor: pointer; width: 252px; height: 188px;" src="http://4.bp.blogspot.com/-QEREhqOWDFQ/TasAJSQ5a-I/AAAAAAAACtA/4ZYOQOuiEak/s320/test.gif" alt="" id="BLOGGER_PHOTO_ID_5596567121459506146" border="0" /&gt;&lt;/a&gt;La bonne nouvelle, c'est que mon éditeur d'animations est plus ou moins  au stade 0.1: on sait à présent définir une série &lt;abbr title="c'est-y comme ça que je vais traduire 'frame', avoù vôs permissiôn"&gt;"cellulos"&lt;/abbr&gt; en déplaçant les membres du personnage et les passer en revue avec le DPAD. Si ça manque encore un peu de finesse et d'intuitivité, la fonction primaire est là.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Good news first: AnimEDS has reached what we can hope for version 0.1: you can select limbs by touching them on the &lt;a href="http://sylvainhb.blogspot.com/2011/03/animeds-main-screen-mockup.html"&gt;FrameEditor&lt;/a&gt; widget, move limbs around on a frame by holding L, press Y to save that frame and proceed to the next one, etc. Once you're done, just click any frame on the timeline and then use 'UP' and 'DOWN' on the DPAD to preview the animation. &lt;a href="http://sylvainhb.blogspot.com/2006/08/premier-bilou-sur-la-ds.html"&gt;No way to save it, though.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Where things gets less funny, is that although &lt;a href="http://139.165.223.2/%7Emartin/scene/AnimEDS01.nds"&gt;I can provide you a download link for the app&lt;/a&gt;, I cannot ship the raymanim.spr file that turns it into a "raymanimator" -- not without the blessing of Michel Ancel or Ubisoft. And so far, some parameters of the animation (such as the number of limbs, and which one is on which SpritePage) are still hard-coded, so even if you had the time to draw the limbs for another character (I can't afford it right now), you would have hard time planning its use with AnimEDS :-/&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;La moins bonne nouvelle, c'est que &lt;a href="http://139.165.223.2/%7Emartin/scene/AnimEDS01.nds"&gt;même si je fais une release du programme&lt;/a&gt;, il restera inutilisable. La sélection des "membres" dans un fichier .spr est pour l'instant encodée en dur dans le programme pour coller avec mon fichier "rayman.spr", et sans l'accord d'Ubisoft ou de Michel Ancel, je ne peux pas distribuer ce fichier... Dommage, parce que je connais plus d'une tête blonde qui se serait bien amusé à faire faire quelque mouvements à ce personnage bien sympathique. Alors évidemment, je pourrais vous proposer un autre personnage de mon crû avec lequel jouer au marionnettes. N'étant pas graphiste, celà risquerait de me prendre un temps de dingue. Il faudrait peut-être que je lance une annonce sur Deviant Art ou Pixelation ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/34057821-3293506708499039165?l=sylvainhb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sylvainhb.blogspot.com/feeds/3293506708499039165/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=34057821&amp;postID=3293506708499039165' title='1 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3293506708499039165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/34057821/posts/default/3293506708499039165'/><link rel='alternate' type='text/html' href='http://sylvainhb.blogspot.com/2011/04/animation-editor-01.html' title='Animation editor ... 0.1'/><author><name>PypeBros</name><uri>http://www.blogger.com/profile/10564522267743689261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://3.bp.blogspot.com/-n4BHlEt1N94/TvLpeQlpBPI/AAAAAAAADV0/OKfqN8ykOWM/s220/PypeBros.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-QEREhqOWDFQ/TasAJSQ5a-I/AAAAAAAACtA/4ZYOQOuiEak/s72-c/test.gif' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
