TheRoboZ [Lexaloffle Blog Feed] Picodraw - compressed full-screen graphic drawing tool <p> <table><tr><td> <a href="/bbs/?pid=81235#p"> <img src="/bbs/thumbs/pico8_picodraw-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=81235#p"> picodraw</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=81235#p"> [Click to Play]</a> </td></tr></table> </p> <h3>Mouse and Keyboard are required!</h3> <p>This is a first release of PicoDraw, the tool I created to draw all backgrounds in my <a href="">Masters of the Universe</a> carte, in a special compressed format.<br /> It uses a mixture of primitives and tile-maps. Maybe someone else will find it useful too or just contribute to further development.</p> <p>The reason for its creation is explained in this <a href="">devlog</a></p> <h2>Thanks to <a href=""> @JadeLombax</a> for his triangle functions!</h2> <p>Code is messy and the tool is not complete but it's quite usable. According to my plan, this is what left to do:</p> <p>-import/export from serial channel or at least drag/drop text file to load drawings<br /> -sprite tool<br /> -pset tool<br /> -reload() maps and sprites from other carts<br /> -major code cleanup</p> <h3>End of post has a demo cart decoding the drawing from this <a href="">video</a></h3> <h2>Instructions</h2> <p>Usually I use it after starting pico from a command prompt window (start c:\users\andrea\pico-8\pico8.exe), so I can see live debug info</p> <h3>Tile maps and sprites must be pre created/imported both in picodraw and your cart!!!</h3> <p>(Tile maps can also be used as a temporary reference for shape drawing, I will post an example soon)</p> <img style="" border=0 src="/media/32989/9_picodraw_000.png" alt="" /> <p>This is the very minimalistic interface, most work is done with key commands</p> <img style="" border=0 src="/media/32989/picodraw_001.png" alt="" /> <p>After you select a shape you can hold the left mouse button to drag it around or hold the right mouse button to resize it</p> <img style="" border=0 src="/media/32989/picodraw_002.png" alt="" /> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>Keyboard commands: Backspace : delete selected shape +,- : change selected shape drawing order 9 : hide/unhide background layer 0 : hide/unhide foreground layer 1,2,3,4,5 : select tool [rectangle,oval,line,map,shape picker] 6 : triangle tool (experimental) ` : cycle through tools Tab,Q : select next/previous shape B : switch between background and foreground layer K : clone selected shape L : move selected shape to other layer G, Shift+G : cycle selected shape gradient fill [,] : cycle selected shape color or cycle drawing color if no shape is selected C : open color picker (left mouse button picks current tool or current shape color, right button sets background cls() color) M : enable/disable background horizontal mirroring (toolbar is blue) T : shape mutation (changes between rect, oval and line keeping the existing parameters) F : fill mutation (changes between filled or stroked shape) R : show/hide 8x8 grid H : ghost/unghost all unselected shape (useful when working with a small or gradient-filled shape) O : enable/disable omni mode, to move all shape at once (with arrows or mouse) (toolbar is green) Ctrl+Z : Undo (unlimited but can run out of memory) Ctrl+Y : Redo (unlimited but can run out of memory) Ctrl+V : Paste shape data (only way for now to import existing drawing) UP, DOWN, LEFT, RIGHT: move selected shape by 1 pixel W,A,S,D: increse/decreas selected shape width and height Shift+W,A,S,D: when a TILE-MAP is selected, will offset the starting tile position</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>You can draw 256 shapes on each of the 2 layers, when you reach the limit the toolbar turns purple</p> <p><a href="">This video</a> shows how it works, I use a mixture of mouse/toolbar and keyboard commands, everything is on the background layer except the sun, so it's not mirrored.<br /> When you see additional ovals appear, I am pressing the clone &quot;K&quot; key and then work on the new shape.</p> <p>After the drawing is done, I quit to the prompt and just Ctrl+V paste the drawing data, it's always copied to the clipboard after every operation and it's automatically escaped/unescaped when you copy it from an editor. Then I reset the cart and just Ctrl+V paste it directly into picodraw, to recreate the drawing and continue working.</p> <p>This is the output:</p> <p>,'K&hellip;|にᵇ'K&hellip;|にK'K★|ねS't❎★てᵇ&amp;Nき★ゅ &amp;Nの★チっ&amp;Nへ★ナそ&amp;Nや★フx&amp;Nき★そ&sup1;#RこUこ⁷#[す]す⁷#dこfこ⁷#jすnす⁶#qさtさ⁶#\け^け\r#xす|す\r#○こ⬇️こ\r#&hearts;し☉し⁷#☉し웃し⁷#🅾️さ◆さ⁷#yけ{け⁷F'QQ|xち'UTxuJ'YXur9</p> <h3>Data format explanation:</h3> <p>First byte encodes the background color, then it's a sequence of shapes, all drawn to the background, 6 bytes per shape,</p> <p>command byte, and 5 parameters until we reach an F as the command byte, this prompts a layer switch, and all the following shapes (again as a series of 7 bytes) are drawn to the foreground.</p> <p>Command byte is 1=rect,2=oval,3=line,4=map,6=rectfill,7=ovalfill,8=tri,13=trifill</p> <p>if command is not map, then parameters in bytes 2 to 6 are x1,y1,x2,y2,and color+gradient packed liek this: color | gradient &lt;&lt;4</p> <p>if command is map then parameters follow pico-8 map functions (cell_x cell_y sx sy cell_w cell_h)</p> <p>gradient is an index in a preexisting 16 values table</p> <p>all x,y values have an offset of 46 and are byte-encoded starting from a value of 32, so the final range is -46 to 174</p> <h3>Decode the output in your cart with the following functions</h3> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>function do_draw_cmds(commands) dither_p = split(&quot;32768, 32736, 24544, 24416, 23392, 23391, 23135, 23131, 6747, 6731, 2635, 2571, 523, 521, 9, 1&quot;) for i=1,#commands do local cmd = commands[i] if cmd[7]!=0 and cmd[1] !=4 then fillp(-dither_p[cmd[7]] +.5) end _ENV[split(&quot;rect,oval,line,map,select,rectfill,ovalfill,,,,,,trifill&quot;)[cmd[1]]](cmd[2],cmd[3],cmd[4],cmd[5],cmd[6],cmd[7]) fillp() end end function add_draw_commands(bg_commands,fg_commands,string) local cmd_table,dest_table,cmd,c_i = string,bg_commands,{},0 if (#cmd_table&gt;0) bg_color = ord(cmd_table,1)-32 for i=2,#cmd_table do if c_i==0 and sub(cmd_table,i,i) == &quot;F&quot; then dest_table = fg_commands else local o = ord(cmd_table,i) if c_i==5 then add(cmd, o &amp; 15) add(cmd, (o &amp; 240)&gt;&gt;4) if (cmd[1] == 4) cmd[6]+=1 cmd[7]+=1 else local ofs = (c_i&gt;0 and c_i&lt;5) and -46 or 0 add(cmd, o-32+ofs) end c_i+=1 if (c_i==6) add(dest_table,cmd) cmd={} c_i=0 end end end -- you need the following if you use triangles (I only used trifill in my drawings) function trifill(x1,y1,x2,y2,c) local inc=sgn(y2-y1) local fy=y2-y1+inc/2 for i=inc\2,fy,inc do line(x1+.5,y1+i,x1+(x2-x1)*i/fy+.5,y1+i,c) end line(x1,y1,x2,y2) end function tri(x1,y1,x2,y2,c) line(x1,y1,x2,y2,c) line(x1,y2,x2,y2,c) line(x1,y2,x1,y1,c) end --if you use background mirroring you need this and you need a global need_copy to keep track of it, as in the demo code --copies the left screen area from start_y to end_y, --lines before ofs_line have a 1 pix offset to the left to avoid double pixels when mirroring function copy_from_ram(start_y,end_y,ofs_line) if need_copy then for y=start_y,end_y do for x=0,63 do local cc, ody = pget(x,y), y&lt;ofs_line and 1 or 0 pset(126-x,y+ody,cc) end end for y=start_y,end_y do memcpy(work_ram + y*32, screen_ram + y*64, 32) end need_copy = false else for y=start_y,end_y do memcpy(screen_ram + y*64, work_ram + y*32, 32) end end end</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>Check this cart for example code on how to put it all together</p> <p> <table><tr><td> <a href="/bbs/?pid=81235#p"> <img src="/bbs/thumbs/pico8_picodraw_test-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=81235#p"> picodraw_test</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=81235#p"> [Click to Play]</a> </td></tr></table> </p> Thu, 27 Aug 2020 02:26:04 UTC Masters of the Universe <p> <table><tr><td> <a href="/bbs/?pid=81037#p"> <img src="/bbs/thumbs/pico8_motu-4.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=81037#p"> motu</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=81037#p"> [Click to Play]</a> </td></tr></table> </p> <h3>The battle for Eternia is in your hands!</h3> <p>Side with He-Man and his allies or Skeletor and his minions in this new take on the classic Barbarian sword fighting game.</p> <p>Battle 8 levels against increasingly difficult foes or play against a friend.</p> <p>You have the power!</p> <p>This Pico-8 cart is bursting with the Power of Grayskull, featuring:</p> <ul> <li>16 Characters</li> <li>16 combat moves</li> <li>4 stages</li> <li>8 difficulty levels</li> <li>3 game modes</li> <li>A kickass soundtrack</li> </ul> <h3>Updated to v1.4 - 2020/10/03</h3> <p>Thanks to <a href=""> @RoundUpGaming</a> suggestions, here's what changed:</p> <ul> <li>fixed infinite roll attack so you can't chain them and stuck opponent to the edge of the stage</li> <li> <h3>added gore disabling option for kids, no decapitations and no blood.</h3> <p>This makes the game a bit more challenging because you can't have a sudden victory with the flying chop</p> </li> </ul> <p>I want to remind also that you can disable sprite outlining to play with the original style the game had during development</p> <img style="" border=0 src="/media/32989/motu_001.png" alt="" /> <p>current stats: tokens 8182 / chars 44437 / compress 99.87</p> <h3>Updated to v1.3 - 2020/09/03</h3> <ul> <li>fixed losing last fight will restart from first opponent, very sorry about this</li> <li>fixed grayskull bg glitch introduced in last update<br /> current stats: tokens 8182 / chars 44523 / compress 99.87 </li> </ul> <h3>Updated to v1.2 - 2020/08/31</h3> <ul> <li>Fixed some P2 controls still affecting CPU opponent</li> </ul> <h3>Updated to v1.1</h3> <ul> <li>Fixed a bug where if the winning blow caused a character to fall it wouldn't display the winning/losing animations</li> <li>Fixed a minor music mistake</li> <li>The flying neck chop was overpowered so now it only decapitates your opponent if his health is 75% or less</li> </ul> <h2>How to play:</h2> <p>Arcade mode is a battle against enemies of increasing difficulty to regain control of Eternia</p> <p>P1 vs CPU is a 1 round fight with customizable difficulties, characters and stage</p> <p>P1 vs P2 allows you to fight a friend with your favorite characters</p> <p>While selecting your character in vs modes, use up and down to select stage and difficulty.</p> <h3>Controls:</h3> <p>Player1: Pad 1 \ arrow keys + Z/N ([O] Button - Attack) + X/M ([X] Button - Defense) </p> <p>Player2: Pad 2 \ E S D F + W/Left Shift ([O] Button - Attack)+ Q/A ([X] Button - Defense)</p> <h3>Move list:</h3> <img style="" border=0 src="/media/32989/controls.png" alt="" /> <p>UP -Jump, RIGHT - move forward, DOWN &ndash; crouch, LEFT - move backward,</p> <p>​ATTACK - Body Chop, RIGHT+ATTACK - Neck Chop, UP + ATTACK - Overhead Chop, LEFT + ATTACK - Sword spin, DOWN + ATTACK - Leg Chop,</p> <p>​DEFENSE - Protect Body, UP + DEFENSE - Protect Head, RIGHT+ DEFENSE - Headbutt, DOWN + DEFENSE &ndash; Leg chop,</p> <p>​ATTACK + DEFENSE - Flying Neck Chop</p> <h2>Credits</h2> <p>Original artworks and idea: John Henderson</p> <p>Music: </p> <ul> <li><a href=""> @dhostin</a> (Damien Hostin​ - check out his great pico-8 games: <a href="">Brutal Pico Race</a> and <a href="">Pico Cyberbank</a>)</li> <li>Matt Kimball</li> <li>Geoff Sejai-Smith</li> </ul> <p>Programming and gfx: Andrea Baldiraghi</p> <p>Masters of the Universe and all related characters TM by Mattel Inc.</p> <p>Barbarian TM by Palace Software Ltd. 1987 </p> <h2>Thanks to:</h2> <p>John Henderson - for granting me permission to develop this version of his original idea</p> <p>FL - for his barbarian archive and source codes: <a href=""></a></p> <p><a href=""> @freds72</a> Frederic Souchu - for finding and sharing it</p> <p><a href=""> @JadeLombax</a> - for his triangle drawing functions</p> <p><a href=""> @zep</a> - for pico-8 <a href=""></a></p> <p>And all pico-8 users for their support and contributions on this game<br /> and on Mortal Cards</p> <h2>Development Stats:</h2> <p>Started on may 29 with the first teaser</p> <p>35% of the time on picodraw for backgrounds</p> <p>July 9 &ndash; complete graphics foundation and picodraw</p> <p>Aug &ndash; 18 game code completed</p> <p>Aug 22 - Added Music and released online</p> <p>About three months, working around three hours per day 5 days a week when possible.</p> <p>My goal for this game was to experiment and expand upon the sprite techniques I used for mortal card, as that was a simple and quite rushed game, made for a jam, but I felt the same ideas could be used for a proper action game. After starting, I also decided to experiment a bit with this mixed shapes/map tiles backgrounds to try and give the game a &ldquo;big&rdquo; look, big animated sprites, full screen , painterly style background. I already thought about a barbarian remake since I remembered the game graphics had a lot of repetition that was suitable to be broken into components, and just a short time later, I found John&rsquo;s post about his motu idea and that gave me the final push as it made it a bit more original and interesting. While scouting the pico bbs to see if a barbarian remake was already attempted or even done, I found this&hellip; post that lead to a treasure trove of info that greatly helped for moves timing, AI and overall game flow, even if the code had to be mostly rewritten from scratch for size reason. Overall I am satisfied with the result even if I feel I made a couple of mistakes in the way I manage frames that lead to unnecessary complexity. I should have finalized the frame set once and for all before starting with the input cope and I could have had a more compact representation and probably save some more tokens and compression space.</p> <p>To fit everything into a cart I had to give up some additional &ldquo;flourishes&rdquo; I had in mind, such as an animated intro and an ending mimicking the cartoon with a character giving some moral lesson.. and pre and post fights vignettes with some text and characters portrait.</p> <p>I had to simplify a bit the bg animations to save tokens so they are not as refined as while they were just work in progress and I had to cut personalized winning poses for every character. I also planned to have a dramatic &ldquo;clashing&rdquo; sometimes when swords collided with a lightning and black and white silhouette, but , while I have the code to draw it, it&rsquo;s simply too much tokens to fit. I might code a deluxe multicart version in the future, but all these are just decorations and don&rsquo;t really add much to the game itself.</p> <p>This is my second full game and the third pico coding experiment I also wanted to try to do a port of an existing game to a system, writing my own tools etc.. as old school-style as possible, as I really love reading about classic game programming but never really did anything at the time. Glad that pico-8 gave me a similar, albeit more comfortable chance to experience something close to it. , it was overall a very fun experience, and I hope you all enjoy playing it as much as I enjoyed coding it.</p> <p>From this experience, I hope I can get some improves tricks for the next game, which I&rsquo;ll start after a needed break</p> <p>I will document and release PicoDraw soon, so it can be improved with the input from other pico users.</p> Sat, 22 Aug 2020 08:27:55 UTC Bitwise shift precedence inconsistency <p>Trying to use shifts instead of multiplication, I noticed an odd thing:</p> <div> <div style="max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre>work_ram = 0x4300 printh(work_ram + 2*32) -- result: 17216 printh(work_ram + 2&lt;&lt;5) -- result: 24640 + has higher precedence than shift, is this correct? printh(work_ram + (2&lt;&lt;5))-- result: 17216 printh(work_ram | 2*32) -- result: 17216 printh(work_ram | 2&lt;&lt;5) -- result: 17216 printh(work_ram | (2&lt;&lt;5))-- result: 17216</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>pico-8 version: pico-8_0.2.1b_windows</p> <p>Am I missing something and this is an intended behavior or there's an operator precedence inconsistency?</p> Mon, 03 Aug 2020 02:18:03 UTC tline sprite rotation/scaling <p>Here are three general-purpose example of my sprite rotation function using tline, one for square sprites (112 tokens), one for rectangular ones(154) and an advanced one with support for scaling and flipping</p> <p> <table><tr><td> <a href="/bbs/?pid=78451#p"> <img src="/bbs/thumbs/pico8_tline_sprite_rotation-2.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=78451#p"> tline_sprite_rotation</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=78451#p"> [Click to Play]</a> </td></tr></table> </p> <p>draw_rotated_rect(x,y,sw_rot,mx,my,w,h)</p> <p>draw_rotated_tile(x,y,rot,mx,my,w,flip,scale)</p> <p>It always draw a screen-oriented rectangular area, (centered at x,y) large enough to contain the rotated tiles (from mx,my to mx+w,my+h), and calculates the rotated (sw_rot 0 to 1) tline coordinates and deltas. </p> <p>The catch is that you need a &quot;clearance-space&quot; around the map part to be rotated, matching the largest side of the sprite or you get some additional map tiles drawn as well, visible in pink in the example. But you can just prepare one rotating area and just swap tiles with mset()</p> <p>The rectangular one could be improved by recalculating the bounding area at each rotation at the cost of additional tokens.</p> <p>this line just draw a bounding box to show the exact draw area and is not necessary outside of this example:</p> <pre><span style=" display:inline-block; background-color:#eee; padding:2px; margin: 4px; padding-left: 8px; padding-right: 8px; color:#222">rect(x-delta_px,y-delta_px,x+delta_px,y+delta_px,5)</pre> <p>Hopefully someone will improve this further.</p> Wed, 24 Jun 2020 05:59:42 UTC Mortal Cards <p>My entry for #rndgame2020 - MORTAL CARDS (Mooooooortal Caaaaaaards!)</p> <p> <table><tr><td> <a href="/bbs/?pid=77103#p"> <img src="/bbs/thumbs/pico8_mortal_cards-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=77103#p"> mortal_cards</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=77103#p"> [Click to Play]</a> </td></tr></table> </p> <p>With more powerful characters, more secret moves, more depth, more control and the most advanced pico-digitized graphics around &ndash; this card game is worth fighting for!</p> <p>Mortal Cards challenges you with the ultimate card playing experience&hellip;<br /> On a secluded island, six elite fighters have gathered to test their deadly skills.</p> <p>Each competes with a deck of 15 cards, 5 cards each round, as they battle each other and finally, the 4-armed mutant warrior Goro.</p> <p>Featuring a digitized graphics, multi-layered backdrops and a pulse-pounding soundtrack.</p> <p>For the most realistic chop-em-up challenge yet, it&rsquo;s Mortal Cards. The competition will bow in submission.</p> <h3>HOW TO PLAY:</h3> <pre><span style=" display:inline-block; background-color:#eee; padding:2px; margin: 4px; padding-left: 8px; padding-right: 8px; color:#222">- Check opponent's next card and react accordingly - Select with left and right arrow, confirm with &quot;Z&quot; Key (Circle button on pico 8) - Same moves will cancel each other - Special moves are un-blockable, some will inflict reduced damage when blocked and others will be parried completely - Discover all the moves interaction - If health reaches 0 before all card in a hand are used, you can finish with a Fatality!</pre> Sun, 24 May 2020 04:17:44 UTC my TweetTweetJam4 entry: p_harrier <p> <table><tr><td> <a href="/bbs/?pid=75965#p"> <img src="/bbs/thumbs/pico8_p_harrier-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=75965#p"> p_harrier</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=75965#p"> [Click to Play]</a> </td></tr></table> </p> <p>my tweettweetjam4 entry, based on the awesome froggy road by 2darray:</p> <p><a href=""></a></p> <p>It's a pacifist endless space-harrier demake for pico-8, you can;t shoot but must avoid ground obstacles and projectiles (from invisible enemies!)</p> <img style="" border=0 src="/media/32989/pharrier_0.gif" alt="" /> <p>I'm having problems uploading it to, so I'll post it here for now</p> <p>559 chars, here's source code:</p> <p>x=64u=127z=0q=0h=0n=16y=x<br /> d=0r,g,w=rnd,circfill,x::<em>::flip()cls(1)b=btn()<br /> k=6<em>((b\2)%2-b%2)x+=k;y=mid(n,y+6</em>((b\8)%2-(b\4)%2),u)h+=.4if(z-h&lt;1)z+=1<br /> if(x&lt;9or x&gt;=u)q+=k/4x-=k<br /> for b=z+n,z-1,-1 do<br /> srand(b)p=(b-h+2)/24m=6+r(9)rectfill(0,w+9/p,u,u,9+b%2)for i=1,r(5)do<br /> for v=0,1 do<br /> for j=v,1 do<br /> t=(i<em>m</em>4+j+r()-q)%(200-u<em>v)-w<br /> o=p</em>(1+.5<em>v)-1/(w-n</em>v)k=t/o+w<br /> l=v<em>(r(n)-13)+5t=l/o+w<br /> o=1/o<br /> v</em>=2t-=n<em>v<br /> if(o&gt;v)g(k,t,o,5+v)g(x,y-4</em>v,6-v,8+v)<br /> if(z-d&gt;2 and o&gt;8-v and abs(x-k)&lt;o+4 and abs(y-t)&lt;o+6) goto d<br /> end;end;end;end;goto </em>::d::d=z<br /> ?&quot;❎get ready&quot;,2,2<br /> if(btn(5))goto _<br /> goto d</p> Wed, 06 May 2020 14:24:51 UTC Skiddy - the slippery puzzle <p>Hello, this is the pico-port of our Windows Store game: Skiddy, the slippery puzzle.</p> <p> <table><tr><td> <a href="/bbs/?pid=74434#p"> <img src="/bbs/thumbs/pico8_bbp_skiddy-1.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=74434#p"> bbp_skiddy</a><br><br> by <a href="/bbs/?uid=32989"> TheRoboZ</a> <br><br><br> <a href="/bbs/?pid=74434#p"> [Click to Play]</a> </td></tr></table> </p> <p>Help skiddies leave a level by sliding them around all together and using the available obstacles to your advantage.<br /> 110 levels with different completion medals (explained in the tutorial).<br /> Can you get them all?</p> <p>It was a lot of fun to write this lean version for this wonderful fantasy console.<br /> I only cut some bonus levels and hard mode to fit in the .png cart compression limit.<br /> You can erase your progress from the pause menu.</p> <p>Thanks to zep for his font and to the community for the awesome learning resources</p> <p>UPDATE V 1.01</p> <ul> <li>fixed a crashing bug after tutorial</li> <li>cosmetic and music fixes</li> </ul> <p>Game design by Christian &quot;CH&quot; Costanza, original programming and PICO-8 version by Andrea &quot;TheRoboZ&quot; Baldiraghi</p> <p>Hope you'll enjoy it!</p> Fri, 03 Apr 2020 03:37:50 UTC