SquidLight [Lexaloffle Blog Feed]https://www.lexaloffle.com/bbs/?uid=47515 Spiro <p> <table><tr><td> <a href="/bbs/?pid=150300#p"> <img src="/bbs/thumbs/pico64_spiro-4.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=150300#p"> spiro</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=150300#p"> [Click to Play]</a> </td></tr></table> </p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/47515/Screenshot from 2024-07-12 19-17-15.png" alt="" /> <p>Updated version that allows you add and remove pens and control the size of the cog etc.</p> <p>Note the size of the Wheel is set. The size of the cog is derived by the amount of teeth on the cog. This is to ensure that the teeth of the big wheel and the small cog work together.</p> <p>A simple toy to play with. I was going to add a UI for adding pens changing the colours of the pens. Changing the number of teeth in the wheel etc but probably won't do that.</p> <p>Feel free to play around with the code. Changing the number of teeth on the wheel will change the ratios for getting back to the same place.</p> <p>Pens are just objects with 3 values the angle of the pen (0-1) the distance in radiuses of the pens 0-1 and the colour.</p> <p>If you change the number of teeth on the cog the cog will change size accordingly.</p> https://www.lexaloffle.com/bbs/?tid=142826 https://www.lexaloffle.com/bbs/?tid=142826 Sun, 23 Jun 2024 11:55:51 UTC Random effect <p> <table><tr><td> <a href="/bbs/?pid=126122#p"> <img src="/bbs/thumbs/pico8_splat_lines-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=126122#p"> splat_lines</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=126122#p"> [Click to Play]</a> </td></tr></table> Just a random effect.</p> https://www.lexaloffle.com/bbs/?tid=51706 https://www.lexaloffle.com/bbs/?tid=51706 Tue, 21 Feb 2023 18:27:50 UTC Cryptic error message when playing on bbs <p>I don't have any reproduction steps, however one of the featured carts crashed on me earlier today.</p> <p>The error message that it produced makes me think this is coming from the internals of pico-8 unfortunatly the text is truncated.</p> <p><strong>I DO NOT</strong> have any replication steps. Others have suggested that this error occurs when an error happens with a coroutine.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/47515/bbs-bug.png" alt="" /> <p>I did check the code of the cart and the word HEADER didn't appear in it.</p> https://www.lexaloffle.com/bbs/?tid=51643 https://www.lexaloffle.com/bbs/?tid=51643 Wed, 15 Feb 2023 18:55:06 UTC Shmup Showcase Launcher <p> <table><tr><td> <a href="/bbs/?pid=118135#p"> <img src="/bbs/thumbs/pico8_shmup_show_launch-5.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=118135#p"> shmup_show_launch</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=118135#p"> [Click to Play]</a> </td></tr></table> </p> <p>This is just a cart to launch the games I've been given premission to launch from the basic shump showcase jam.</p> <p>This jam was run by <a href="https://www.lexaloffle.com/bbs/?uid=16423"> @Krystman</a> to go along with his video series. <a href="https://www.youtube.com/watch?v=81WM_cjp9fo&amp;list=PLea8cjCua_P3Sfq4XJqNVbd1vsWnh7LZd">https://www.youtube.com/watch?v=81WM_cjp9fo&amp;list=PLea8cjCua_P3Sfq4XJqNVbd1vsWnh7LZd</a></p> <p>I asked for permission from people to add their carts here. And I have done so. I'd like more entries and also would love if they would provide me with a 24x24px image to represent their cart.</p> <p>If anyone else has a cart that they would like added from the shmup showcase then please let me know and I'll add it.</p> <p>If any aspiring musician wants to write a bit of background music for this then please feel free.</p> <p>Navigate using up and down press X to launch cart. If you want to return to the launcher then this can be done from the pause menu of the games.</p> <p>v2</p> <ul> <li>Added Galaxis, Cross Gunr, Eye of Yox and shmdown.</li> </ul> <p>v3</p> <ul> <li>Added icon for Simple Shooter Bullet barrage.</li> <li>Added Dart-07</li> <li>Added Nightly Air Patrol</li> </ul> <p>v4 </p> <ul> <li>Added Fulmosago</li> </ul> <p>v5</p> <ul> <li>Added Dauntless Dog</li> </ul> <p>v6</p> <ul> <li>Added Starsucker</li> </ul> https://www.lexaloffle.com/bbs/?tid=49520 https://www.lexaloffle.com/bbs/?tid=49520 Wed, 28 Sep 2022 22:42:38 UTC Spline Editor <p> <table><tr><td> <a href="/bbs/?pid=117952#p"> <img src="/bbs/thumbs/pico8_spline-2.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=117952#p"> spline</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=117952#p"> [Click to Play]</a> </td></tr></table> </p> <p>This is a tool for creating and editing splines within your game. I used this initally for a shmup i was working on where I wanted to create an intresting enemy flight pattern.</p> <p>The black area represents a 128x128 screen.</p> <p>Just click in the points you want then press CTRL+C to copy to clipboard This will copy all points to the clipboard as a string.</p> <p>This string can be then used within your game.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/47515/spline p8_0.gif" alt="" /> <p>This is what I use it for.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/47515/shootinator p8_0.gif" alt="" /> <p>You can test out pasting of splines here. Also this cart has code for handling the splines.</p> <p> <table><tr><td> <a href="/bbs/?pid=117952#p"> <img src="/bbs/thumbs/pico8_spline_demo-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=117952#p"> spline_demo</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=117952#p"> [Click to Play]</a> </td></tr></table> </p> <h1>How to use</h1> <h2>Reading code</h2> <p>copy the following code to your cart (this can also be read from tab 2 of the demo cart)</p> <div> <div class=scrollable_with_touch style="width:100%; 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> --distance vunerable to overflow function pdist(p1,p2) return ((p2.x-p1.x)^2+(p2.y-p1.y)^2)^0.5 end --cubic bezier single dimension function cub_b_p(a,b,c,d,t) local tm=1-t return tm*tm*tm*a+ tm*tm*3*t*b+ tm*3*t*t*c+ t*t*t*d end --cubic bezier x&amp;y function cub_bez(p1,p2,p3,p4,t) return {x=cub_b_p(p1.x, p2.x, p3.x, p4.x, t), y=cub_b_p(p1.y, p2.y, p3.y, p4.y, t)} end --read splines --expected table with multiple --of 8 entries. --p1.x,p1.y function read_spline(points) local curves,dists,td={},{},0 local limits={0} for i=1,#points,8 do local pts={} for j=i,i+8,2 do add(pts, { x=points[j], y=points[j+1]}) end local function c(t) return cub_bez( pts[1], pts[2], pts[3], pts[4], t) end local d=0 for j=0x0.1,1,0x0.1 do d+=pdist(c(j-0x0.1),c(j)) end add(curves,c) add(dists,d) td+=d end local l=0 for d in all(dists) do l+=d/td add(limits,l) end limits[#limits]=1 local function spl(t) if t==1 then return curves[#curves](1) end local i,l=1,0 while t&gt;=l do i+=1 l=limits[i] or 1 end local ol=limits[i-1] local fact=1/(l-ol) local t2=(t-ol)*fact return curves[i-1](t2) end --return curves return spl end </pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <h2>2 Generating curves</h2> <p>Generate curves using the main cart that represent how you would like your mobs to move. Just click different points into place. <strong>Note</strong> that the black area represents a whole screen of 128x128 pixels.</p> <p>You can click and drag points around, press delete to delete the last point. When you are happy with your curve press CTRL+C to copy a string to the clipboard.</p> <p><strong>NOTE:</strong> Sometimes the string doesn't copy correctly in the web player, if this happens from pico-8 you can <code>load #spline</code> and run the cart locally. The copy seems far more reliable when running in pico-8</p> <p>Paste the following into your <code>_init()</code> function.</p> <p><code>path=read_spline(split(*your pasted string*))</code></p> <p>Then whenever you want a point along the path you just call path using the decimal of what portion of the path you want covered.</p> <h2>examples</h2> <p><code>local point = path(0)</code> Will give you the start point of the path<br /> <code>local point = path(0.25)</code> Will give you a point 1/4 the way through the path.<br /> <code>local point = path(1)</code> Will give you a point at the end of the path.</p> <div> <div class=scrollable_with_touch style="width:100%; 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> local point = path(0.5) --half way spr(1, point.x, point.y) --draw sprite 1 at this point.</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>Feel free to look at the demo cart for code that uses a sprite.</p> <h1>Update</h1> <p>Now cart accepts pasting of splines not just upload.<br /> Now curves are more round by default</p> <h1>Credits</h1> <p>Thanks to <a href="https://www.lexaloffle.com/bbs/?uid=27691"> @pancelor</a> for the idea about the splines.<br /> Thanks to <a href="https://www.lexaloffle.com/bbs/?uid=66501"> @Heracleum</a> for assistance writing up how to use the cart.</p> https://www.lexaloffle.com/bbs/?tid=49479 https://www.lexaloffle.com/bbs/?tid=49479 Sun, 25 Sep 2022 17:35:21 UTC Stripe Print <p> <table><tr><td> <a href="/bbs/?pid=114291#p"> <img src="/bbs/thumbs/pico8_stripe_print-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=114291#p"> stripe_print</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=114291#p"> [Click to Play]</a> </td></tr></table> </p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/47515/untitled_3_1.gif" alt="" /> <p>Hi All,</p> <p>This is just a quick util method for printing in multiple colours per line of pixel. Its probably been done many time before but this is just my take on it.</p> <p>The function in question is 41 tokens:</p> <div> <div class=scrollable_with_touch style="width:100%; 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 stripe(txt, x, y, cols) local w = print(txt,x,y,0) for i=1,#cols do clip(x,y+i-1,w,1) print(txt,x,y,cols[i]) 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>cols is an array of colours which should be at least as large as the height of the text being printed. For normal text this will be 5 values, but if split into multiple lines or you print bigger text then you need more values.</p> <p>In the cart I've demonstrated some uses of it including a scrolling table that could be used as an effect.</p> https://www.lexaloffle.com/bbs/?tid=48497 https://www.lexaloffle.com/bbs/?tid=48497 Thu, 14 Jul 2022 09:59:27 UTC Performance issue when prtinting off screen <p>According to the manual</p> <p>&gt; Additionally, when X, Y are <strong>not specified</strong>, printing text below 122 causes the console to scroll. This can be disabled during runtime with POKE(0x5f36,0x40).</p> <p>However I've got a cart that has a performance issue as soon as the print leaves the screen.</p> <p> <table><tr><td> <a href="/bbs/?pid=114042#p"> <img src="/bbs/thumbs/pico8_gejegufku-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=114042#p"> gejegufku</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=114042#p"> [Click to Play]</a> </td></tr></table> </p> <p>Adding in</p> <p><code>poke(0x5f36,0x40)</code> to the cart fixes the issue so the performance issue is to do with screen scrolling.</p> <p>To see in the above cart press X to start the game and wait for the ship to leave the bottom of the screen</p> https://www.lexaloffle.com/bbs/?tid=48444 https://www.lexaloffle.com/bbs/?tid=48444 Thu, 07 Jul 2022 22:42:49 UTC Shootinator <p>Following lazy devs tutorial sort of at <a href="https://www.youtube.com/watch?v=81WM_cjp9fo&amp;list=PLea8cjCua_P3Sfq4XJqNVbd1vsWnh7LZd">https://www.youtube.com/watch?v=81WM_cjp9fo&amp;list=PLea8cjCua_P3Sfq4XJqNVbd1vsWnh7LZd</a><br /> 29th Jan 2023<br /> <table><tr><td> <a href="/bbs/?pid=113933#p"> <img src="/bbs/thumbs/pico8_shootinator-6.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=113933#p"> shootinator</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=113933#p"> [Click to Play]</a> </td></tr></table> <br /> I think this just has some music changes and small tweaks to the previous version.</p> <p>Music by LokiStriker <a href="https://lokistriker.itch.io/">https://lokistriker.itch.io/</a></p> <p>I'm so happy with the music.</p> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> 29-Oct-2022<br /> <table><tr><td> <a href="/bbs/?pid=113933#p"> <img src="/bbs/thumbs/pico8_shootinator-5.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=113933#p"> shootinator</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=113933#p"> [Click to Play]</a> </td></tr></table> <br /> </div></div></div></p> <p>Below is the beginnings of level2 I've uploaded as a separate cart but its just uncomment some code to run this level.</p> <p> <table><tr><td> <a href="/bbs/?pid=113933#p"> <img src="/bbs/thumbs/pico8_shootinator_l2-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=113933#p"> shootinator_l2</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=113933#p"> [Click to Play]</a> </td></tr></table> </p> <p>Added title text and level intro.<br /> Changed life display from the hearts to ships as comments seemed to be confused when all hearts were empty why wasn't the game over.<br /> Tweaked shooting speed.</p> <p>12-Oct-2022<br /> <div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"> <table><tr><td> <a href="/bbs/?pid=113933#p"> <img src="/bbs/thumbs/pico8_shootinator-3.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=113933#p"> shootinator</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=113933#p"> [Click to Play]</a> </td></tr></table> </div></div></div></p> <p>Nearly a game now. This is what what submitted to the basic shmup showcase.</p> <p><a href="https://itch.io/jam/basic-shmup">https://itch.io/jam/basic-shmup</a></p> <h2>I've more or less run out of steam.</h2> <p>21-July-2022</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/47515/shootinator_39.gif" alt="" /> <p>Some gameplay added still very much a work in progress. </p> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"> <table><tr><td> <a href="/bbs/?pid=113933#p"> <img src="/bbs/thumbs/pico8_shootinator-1.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=113933#p"> shootinator</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=113933#p"> [Click to Play]</a> </td></tr></table> </div></div></div></p> <hr /> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"></p> <p> <table><tr><td> <a href="/bbs/?pid=113933#p"> <img src="/bbs/thumbs/pico8_shootinator-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=113933#p"> shootinator</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=113933#p"> [Click to Play]</a> </td></tr></table> </div></div></div></p> <p>So far this is what I've got no gameplay as of yet.</p> https://www.lexaloffle.com/bbs/?tid=48402 https://www.lexaloffle.com/bbs/?tid=48402 Sun, 03 Jul 2022 17:17:49 UTC Suggestion: Metadata block in a p8 file <p>Hi All,</p> <p>I've a suggestion that I believe has some value to people making tooling chains is the ability to <strong>store metadata</strong> within the text version of a cart cart.</p> <p>This would allow for saving anything that an external editor of a p8 file would want to save and restore upon loading a cart.</p> <p>For example storing custom pallets or even palette transitions means that they could draw their sprites and see how they look in a fade/palette swap. If they had a fade that they liked they could work in the sprites in an external tool. Anyone else using the same tool could see the settings that were applied.</p> <p>Pico8 could also store its own metadata there, like the undo history. so if someone reloaded or switched platform they could pick up where they left off.</p> <p>&quot;save the .p8 on your desktop, move it over to your handheld while you travel, and then back to desktop, and there's no need to get back in the groove manually each time you load up the file&quot; - this is what someone suggested on discord, I'm not naming them in case they don't want to have their name associated with this post.</p> <p>Even something as simple as linter settings would be useful for people who work together.</p> <h1>How I imagine it would work.</h1> <p>the p8 file is already made of blocks like <code>__lua__</code> <code>__sfx__</code> etc. I suggest that another block is put in that pico8 doesn't read but does keep on save. You would be free to specify any limit in size that tools have to agree too.</p> <p>This could be in any format you like. Raw text, json, a hex byte array similar to the binary blocks we have at the moment.</p> <p>In this way a tool could use the extra space, but I wouldn't expect this data to be retained when in PNG or any of the other binary formats. It can't be abused to get extra space in the cart as it would not be visible to the user code running within pico8.</p> <p>I just thought you may appreciate the suggestion as it seems pico8 and picotron are both going down the external tooling path.</p> https://www.lexaloffle.com/bbs/?tid=47063 https://www.lexaloffle.com/bbs/?tid=47063 Mon, 21 Mar 2022 21:54:47 UTC 30 Second Oath - WIP <p> <table><tr><td> <a href="/bbs/?pid=95330#p"> <img src="/bbs/thumbs/pico8_oath30second-4.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=95330#p"> oath30second</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=95330#p"> [Click to Play]</a> </td></tr></table> </p> <h2>12th Aug</h2> <p>Changed how drifty the main character is. Made the hitboxes more forgiving.</p> <p>Okay there is no way I'm finishing this in time for the jam.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/47515/oath2_7.gif" alt="" /> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/47515/oath2_6.gif" alt="" /> <p>Most of the time has been just working on the Character's mechanics and nothing else.</p> <h1>Concept</h1> <p>Dr Evil Lulzs has just killed your master you vow to get your revenge in 30 seconds. This gives you thirty seconds to reach Dr Evil Lulzs and attack or you will explode violently.</p> <h2>01 Aug</h2> <p> <table><tr><td> <a href="/bbs/?pid=95330#p"> <img src="/bbs/thumbs/pico8_oath30second-1.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=95330#p"> oath30second</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=95330#p"> [Click to Play]</a> </td></tr></table> <br /> Managed to get some actual gameplay in. Added title screen/intro. Added actual level that can be played through but not completed. Death implemented, music (not mine added) one type of trap entity added.</p> <p>Got the attack mostly implemented but nothing to attack at the moment :( (it does give you a speed boost however)</p> <hr /> <h2>27th July</h2> <p>At the moment you can jump, roll, run left/right and nothing much else.</p> <h1>TODO</h1> <p>Still to do wall sliding/jumping</p> <ul> <li>Attacking</li> <li>unjank the roll,</li> <li>change the hitbox for the roll.</li> <li>Enemy AI</li> <li>Death</li> <li>Level design</li> <li>Trap code</li> <li>Intro sequence</li> <li>Cart Label</li> <li>Optional tutorial section</li> <li>Lame jokes.</li> <li>A game</li> </ul> <h2>Intended mechanics</h2> <p>Rolling is slower than running but its good for avoiding things.<br /> Attacking will give you a slight speed boost.<br /> Air friction will be less than ground friction, (so chaining attack and jump should give you more speed)<br /> Intend to do an optional tutorial level where your master trains you.</p> <h2>Tutorial ideas.</h2> <h3>Screen one.</h3> <p>Your master is sitting out of reach on the top of the screen.<br /> you: &quot;Why am I wearing red. I thought ninjas should be stealthy&quot;<br /> master: &quot;Ninja secret. Red allows you wall jump&quot;<br /> you: &quot;..&quot;</p> <p>Wall jump your way to a flag.</p> <h3>Screen two.</h3> <p>Flag on right of screen. low gap with spikes in middle.<br /> master: &quot;Roll past spikes, young tardigrade&quot;<br /> you: &quot;why put spikes in training&quot;</p> <h3>Screen three.</h3> <p>Large gap to jump across:</p> <p>master: &quot;Attack makes you faster, young sushi&quot;<br /> you: &quot;That makes no sense&quot;</p> <p>when you attack and jump you can jump over gap<br /> you: &quot;Where did that sword come from&quot;</p> <h1>Screen four</h1> <p>master &quot;you have done well young snotrag&quot;<br /> you: &quot;could you learn my name&quot;<br /> master: &quot;..&quot;<br /> master: &quot;Now for the secret of eternal life&quot;<br /> master: &quot;All you need is ...&quot;<br /> master hit by a flying syringe</p> <p>you &quot;NOOO Dr Evil LULZS&quot;<br /> you &quot;You killed my master&quot;<br /> you &quot;I will kill you in 30 seconds&quot;</p> <p>cut to main game.</p> <hr /> <p>previous version<br /> <table><tr><td> <a href="/bbs/?pid=95330#p"> <img src="/bbs/thumbs/pico8_oath30second-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=95330#p"> oath30second</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=95330#p"> [Click to Play]</a> </td></tr></table> </p> https://www.lexaloffle.com/bbs/?tid=43961 https://www.lexaloffle.com/bbs/?tid=43961 Tue, 27 Jul 2021 08:43:06 UTC Particle Exploder <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/47515/exploder_0.gif" alt="" /> <p>I was told that this may not be too helpful but I thought I'd upload anyway.</p> <p> <table><tr><td> <a href="/bbs/?pid=95271#p"> <img src="/bbs/thumbs/pico8_particle_exploder-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=95271#p"> particle_exploder</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=95271#p"> [Click to Play]</a> </td></tr></table> </p> <p>Its basically some code to turn an area of the sprite-sheet into an explosion. I haven't referenced other peoples work on this so if there is a better implementation I apologise.</p> <p>Feel free to reuse any or all parts. </p> https://www.lexaloffle.com/bbs/?tid=43946 https://www.lexaloffle.com/bbs/?tid=43946 Sun, 25 Jul 2021 16:29:28 UTC Fitting code in editor. <p>Hi all, </p> <p>This is a question I asked on discord, but I thought to get some feedback on here.</p> <p>Stupid question maybe. I'm editing in vscode. I've put rulers at 32 chars to match the in built editor. How the heck do you all make your code fit inside a pico8 editor horizontally. </p> <p>I don't mind going over every so often but 32 chars is very very little.</p> <div> <div class=scrollable_with_touch style="width:100%; 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>ico_zoom_in = create_icon(0x3844.92ba, 0x9244.3a01, 100, 40)</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>comes to 62 chars.<br /> even if I rename to be</p> <div> <div class=scrollable_with_touch style="width:100%; 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>zi = ci(0x3844.92ba, 0x9244.3a01, 100, 40)</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>it comes to 44 chars but zi is a horrible name for zoom in icon. and ci is a horrible name for create icon.</p> <p>maybe something like this.</p> <div> <div class=scrollable_with_touch style="width:100%; 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> local top = 0x3844.92ba local btm = 0x9244.3a01 local x,y = 100, 40 zoom_in_ico=c_ico(top,btm,x,y)</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>That fits but need to lift a lot of variables out and still c_ico isn't very clear name.</p> <p>Do you all even consider this?</p> <p>I find I just can't work with 32 chars.</p> <p>If people download the carts its hard to read carts in splore. I honestly think we need more resolution in the code editor.</p> <p>If pixels in the editor were half width It would be a lot easier to fit into the in built editor 64 chars is still difficult to fit, but I think I could make the majority of lines fit into that.</p> <p>What do you all think? I feel like having code not fit in the editor could be off putting for well basically anyone who uses the internal editor but especially for new people trying to learn.</p> https://www.lexaloffle.com/bbs/?tid=43410 https://www.lexaloffle.com/bbs/?tid=43410 Sat, 19 Jun 2021 22:17:08 UTC Unfun car work in progress. <p> <table><tr><td> <a href="/bbs/?pid=85829#p"> <img src="/bbs/thumbs/pico8_saziwepaju-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=85829#p"> saziwepaju</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=85829#p"> [Click to Play]</a> </td></tr></table> </p> <p>Not really fun, but I'm uploading to see.</p> <p>Anyone have any idea how handling should work for a track of approximately this width.</p> <p>No collision detection.</p> <p>x to accelerate. </p> <p>Sprite rotation using a function supplied by <a href="https://www.lexaloffle.com/bbs/?uid=25532"> @freds72</a></p> https://www.lexaloffle.com/bbs/?tid=40945 https://www.lexaloffle.com/bbs/?tid=40945 Sun, 27 Dec 2020 19:55:29 UTC Map Zoom <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/47515/zoom_map_0.gif" alt="" /> <p> <table><tr><td> <a href="/bbs/?pid=85076#p"> <img src="/bbs/thumbs/pico8_map_zoom-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=85076#p"> map_zoom</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=85076#p"> [Click to Play]</a> </td></tr></table> <br /> Do you want to zoom in our out of your map during the game this may be for you.</p> <p>Simple cart to show off the zoom function.</p> <p>Cursor keys to scroll x/z to zoom in and out.</p> <p>actual function is as follows</p> <div> <div class=scrollable_with_touch style="width:100%; 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>--prints the map zoomed -- zoom is the zoom factor 2 for twice as big -- 0.5 for half as big -- mx = the pixel cordiante of the map to start -- my = the pixel cordiante of the map to start -- sx = screen offset x -- sy = screen offset y function zmap(zoom,mx,my,sx,sy) zoom = zoom or 1 mx= mx or 0 my= my or 0 sx= sx or 0 sy= sy or 0 for i=0, 127 do tline(0,i,127, i, mx, my+i/8/zoom, 1/8/zoom) 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>Please feel free to adapt for your own projects.<br /> A better version of this could use a screen clipping rectangle but I wasn't sure if it was necessary or not</p> https://www.lexaloffle.com/bbs/?tid=40671 https://www.lexaloffle.com/bbs/?tid=40671 Sat, 05 Dec 2020 17:41:41 UTC Loca Conda 1.1 <p> <table><tr><td> <a href="/bbs/?pid=83869#p"> <img src="/bbs/thumbs/pico8_loca_conda-1.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=83869#p"> loca_conda</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=83869#p"> [Click to Play]</a> </td></tr></table> </p> <p>Inspired by a game on Amstrad CPC this is my attempt make a game in the snake category. This is my first ever pico8 game.</p> <p>15 Levels<br /> 2 Types of enemy, CPU controlled snakes and the vicious seeker.<br /> 3 Types of bonus<br /> S to make your snake short<br /> L to gain a new life<br /> Ghost gain one new life every three levels.</p> <p>I hope you all enjoy this as much as I enjoyed playing the original.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/47515/sna_sm_3.gif" alt="" /> <p>Level music by <a href="https://www.lexaloffle.com/bbs/?uid=42184"> @SmellyFishstiks</a></p> <p><em>Update v1.1</em><br /> Minor update to allow input buffering as suggested.</p> https://www.lexaloffle.com/bbs/?tid=40244 https://www.lexaloffle.com/bbs/?tid=40244 Fri, 06 Nov 2020 19:00:02 UTC A Happy Accident <p> <table><tr><td> <a href="/bbs/?pid=83066#p"> <img src="/bbs/thumbs/pico8_pohedoruto-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=83066#p"> Happy Accident</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=83066#p"> [Click to Play]</a> </td></tr></table> </p> <p>I wasn't going for a 3d effect, but it looks 3d to me. Feel free to copy/ change</p> https://www.lexaloffle.com/bbs/?tid=39943 https://www.lexaloffle.com/bbs/?tid=39943 Sun, 18 Oct 2020 11:43:15 UTC WIP another snake game <p> <table><tr><td> <a href="/bbs/?pid=82800#p"> <img src="/bbs/thumbs/pico8_tepigiyaga-1.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=82800#p"> Loca Conda 0.3</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=82800#p"> [Click to Play]</a> </td></tr></table> <br /> new version adds enemies, 10 levels to complete. </p> <hr /> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> <table><tr><td> <a href="/bbs/?pid=82800#p"> <img src="/bbs/thumbs/pico8_sehofebari-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=82800#p"> Loco Conda-1</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=82800#p"> [Click to Play]</a> </td></tr></table> <br /> <table><tr><td> <a href="/bbs/?pid=82800#p"> <img src="/bbs/thumbs/pico8_tepigiyaga-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=82800#p"> Loca Conda 0.2</a><br><br> by <a href="/bbs/?uid=47515"> SquidLight</a> <br><br><br> <a href="/bbs/?pid=82800#p"> [Click to Play]</a> </td></tr></table> <br /> </div></div></div><br /> previous version</p> <p>This is a unfinished version to see the finished version see: <a href="https://www.lexaloffle.com/bbs/?tid=40244">https://www.lexaloffle.com/bbs/?tid=40244</a></p> <p>Hi this is my first attempt at making a game. I'm feeling mixed opinions. I was hoping to do a clone of a snakes game called Crazy Snakes from the Amstrad CPC (by Fraggle and Duck). However I feel like the 128x128 grouping is just too small for this type of game, especially if I use 8x8 sprites.</p> <p>What would you do to improve the gameplay. I've only done three levels so far. I wanted to add in enemy snakes and one other type of enemy like the game I'm emulating. I've also not added in any of the bonus items such as extra lives, or a snake shortener.</p> <p>So first impressions of pico8. Love the music editor, its not your fault I'm crap with that. Love the map editor, and the sprite editor. Little disappointed in the fixed palette but It isn't too bad and makes me more creative.</p> <p><em>But I am disappointed in the 128x128 resolution. It just seems too much of a restriction. When using 8 bit computers in the past the resolution I had available was 320x200 which is a huge amount more.</em></p> <p>What do you think? Is this just me not using screen estate effectively?</p> <hr /> <p>Okay it was me not using the screen estate well.</p> <p>Okay I tried a version with 5x5 sprites and I'm a lot happier with it.</p> <p>This leaves that I can have more speed and more complicated setups, and more length. Though for the early levels the big version was better.</p> https://www.lexaloffle.com/bbs/?tid=39886 https://www.lexaloffle.com/bbs/?tid=39886 Sun, 11 Oct 2020 14:47:07 UTC