GabeD [Lexaloffle Blog Feed]https://www.lexaloffle.com/bbs/?uid=22294 Lanterna - A Puzzle Platformer <p>Hey all!</p> <p>A while ago I started working on a little platformer with a portal/hole mechanic. The idea was that you could toggle a hole through a level that would let you move through a parallel level and solve puzzles. I was working with a &quot;modern&quot; game engine and getting that to work was a breeze; I started thinking about how to nail that effect on pico-8 about a week ago but didn't begin writing it until last weekend. Turns out by using tline and some help from the pico-8 discord it took a couple of hours. Now I'm working on finishing it and releasing the game by the end of the month.</p> <p>This is what it currently looks like:</p> <img style="margin-bottom:16px" border=0 src="/media/22294/lanterna_1.gif" alt="" /> <p>If you have any suggestions, I'd love to hear them!</p> <p>- Gabe</p> https://www.lexaloffle.com/bbs/?tid=41373 https://www.lexaloffle.com/bbs/?tid=41373 Tue, 02 Feb 2021 00:10:25 UTC Custom Clip <p>Hey all!</p> <p>I'm working on a platformer right now and I've been kicking around the idea of custom masks. Essentially, I want to <strong>draw a map, and a map on top of that</strong>; a circle would then reveal <strong>(punch a hole through) the map</strong> that was drawn first through the foreground map.</p> <p>This effect can be done through a simple clip() call between drawing both maps, but that only gives me a rectangle (and only one at that). I'd like that effect, but with a circular shape (or an arbitrary shape ideally).</p> <p>A solution I've been messing with is <strong>saving the background map to memory</strong> (at the sprite data or general purpose address), then <strong>drawing the foreground map normally with map()</strong>. The game would then <strong>get the pixels within the shape</strong>, <strong>get the corresponding data from memory</strong> that would match the pixel location, and <strong>draw the correct pixels on top of the map</strong>, which would look like a &quot;hole&quot; punched through the map.</p> <p>Thing is: I'm shit at memory stuff.</p> <p>So, while I read through how memory works and how I can read would-be pixels from a memory address and draw them individually while keeping 60 fps <em>sigh</em> I would much appreciate any help with this. If you think my idea won't work, please let me know; if you have a better idea, PLEASE let me know; if you've done this before, I would be eternally grateful for the help.</p> <p>That's all for now, I guess I will keep posting as I slowly work my way through this?</p> <p>Thanks for the help,</p> <p>xoxo</p> <p>- Gabe</p> https://www.lexaloffle.com/bbs/?tid=41335 https://www.lexaloffle.com/bbs/?tid=41335 Sat, 30 Jan 2021 17:38:11 UTC POLLOCK <p> <table><tr><td> <a href="/bbs/?pid=69420#p"> <img src="/bbs/thumbs/pico8_pollock-1.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=69420#p"> POLLOCK</a><br><br> by <a href="/bbs/?uid=22294"> GabeD</a> <br><br><br> <a href="/bbs/?pid=69420#p"> [Click to Play]</a> </td></tr></table> </p> <p>This is the PICO-8 version of a game I wanted to make about 3 years ago. I figured I should make a smol version of it and actually finish.</p> <p>The final game will be a one-screen maze game with moving enemies, and hopefully something interesting with the painting mechanic. I also want people to make their own levels for it, so I made a separate level editor (not in PICO-8) that spits out a table that the game reads as a leves; super user f r i e n d l y .</p> <p>Anyways, that's what this is. I hope I have something more interesting</p> https://www.lexaloffle.com/bbs/?tid=35787 https://www.lexaloffle.com/bbs/?tid=35787 Mon, 28 Oct 2019 22:21:48 UTC Hell Hole <h1>Hell Hole: Final Release</h1> <p> <table><tr><td> <a href="/bbs/?pid=65844#p"> <img src="/bbs/thumbs/pico8_hellhole-10.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=65844#p"> Hell Hole</a><br><br> by <a href="/bbs/?uid=22294"> GabeD</a> <br><br><br> <a href="/bbs/?pid=65844#p"> [Click to Play]</a> </td></tr></table> </p> <h2>Manual</h2> <h3>Controls:</h3> <ul> <li>Movement: up,down,left,right</li> <li>Attack: Hold X or Z</li> </ul> <h3>How To Play:</h3> <ul> <li>Move your <strong>avatar</strong> around the screen to avoid getting hit by <strong>demons</strong> and <strong>saw-blades</strong>.</li> <li>Hold the attack buttons to shoot your <strong>soul</strong> out and control it to hit <strong>demons</strong>.</li> <li>You can't move your <strong>body</strong> while using your <strong>soul</strong>. Your <strong>body</strong> is still vulnerable.</li> <li>Let go of the attack button to return your <strong>soul</strong> to your <strong>body</strong>.</li> <li>You can't damage <strong>saw-blades</strong>.</li> <li>Survive 66 seconds...</li> </ul> <h3>Characters:</h3> <ul> <li>Player: <table><tr><td width=0> <img src="https://www.lexaloffle.com/bbs/gfxc/22294_1.png" width=0 height=0> </td> <td valign=bottom> <a style="cursor:pointer;font-size:8pt" onclick=' var el = document.getElementById("gfxcode_22294_1"); if (el.style.display == "none") el.style.display = ""; else el.style.display = "none"; microAjax("https://www.lexaloffle.com/bbs/gfxc/22294_1.txt", function (retdata){ var el = document.getElementById("gfxcode_22294_1"); el.innerHTML = retdata; el.focus(); el.select(); } ); '> [0x0]</a> </td></tr> <tr><td colspan=2> <textarea rows=3 class=lexinput id="gfxcode_22294_1" style="width:640px;background-color:#fed;display:none;overflow:hidden; font-size:6pt;"></textarea> </td> </tr> </table> </li> <li>Player Body (Vessel): <table><tr><td width=0> <img src="https://www.lexaloffle.com/bbs/gfxc/22294_2.png" width=0 height=0> </td> <td valign=bottom> <a style="cursor:pointer;font-size:8pt" onclick=' var el = document.getElementById("gfxcode_22294_2"); if (el.style.display == "none") el.style.display = ""; else el.style.display = "none"; microAjax("https://www.lexaloffle.com/bbs/gfxc/22294_2.txt", function (retdata){ var el = document.getElementById("gfxcode_22294_2"); el.innerHTML = retdata; el.focus(); el.select(); } ); '> [0x0]</a> </td></tr> <tr><td colspan=2> <textarea rows=3 class=lexinput id="gfxcode_22294_2" style="width:640px;background-color:#fed;display:none;overflow:hidden; font-size:6pt;"></textarea> </td> </tr> </table> </li> <li>Player Soul: <table><tr><td width=0> <img src="https://www.lexaloffle.com/bbs/gfxc/22294_3.png" width=0 height=0> </td> <td valign=bottom> <a style="cursor:pointer;font-size:8pt" onclick=' var el = document.getElementById("gfxcode_22294_3"); if (el.style.display == "none") el.style.display = ""; else el.style.display = "none"; microAjax("https://www.lexaloffle.com/bbs/gfxc/22294_3.txt", function (retdata){ var el = document.getElementById("gfxcode_22294_3"); el.innerHTML = retdata; el.focus(); el.select(); } ); '> [0x0]</a> </td></tr> <tr><td colspan=2> <textarea rows=3 class=lexinput id="gfxcode_22294_3" style="width:640px;background-color:#fed;display:none;overflow:hidden; font-size:6pt;"></textarea> </td> </tr> </table> </li> <li>Demon: <table><tr><td width=0> <img src="https://www.lexaloffle.com/bbs/gfxc/22294_4.png" width=0 height=0> </td> <td valign=bottom> <a style="cursor:pointer;font-size:8pt" onclick=' var el = document.getElementById("gfxcode_22294_4"); if (el.style.display == "none") el.style.display = ""; else el.style.display = "none"; microAjax("https://www.lexaloffle.com/bbs/gfxc/22294_4.txt", function (retdata){ var el = document.getElementById("gfxcode_22294_4"); el.innerHTML = retdata; el.focus(); el.select(); } ); '> [0x0]</a> </td></tr> <tr><td colspan=2> <textarea rows=3 class=lexinput id="gfxcode_22294_4" style="width:640px;background-color:#fed;display:none;overflow:hidden; font-size:6pt;"></textarea> </td> </tr> </table> </li> <li>Saw-blade: <table><tr><td width=0> <img src="https://www.lexaloffle.com/bbs/gfxc/22294_7.png" width=0 height=0> </td> <td valign=bottom> <a style="cursor:pointer;font-size:8pt" onclick=' var el = document.getElementById("gfxcode_22294_7"); if (el.style.display == "none") el.style.display = ""; else el.style.display = "none"; microAjax("https://www.lexaloffle.com/bbs/gfxc/22294_7.txt", function (retdata){ var el = document.getElementById("gfxcode_22294_7"); el.innerHTML = retdata; el.focus(); el.select(); } ); '> [0x0]</a> </td></tr> <tr><td colspan=2> <textarea rows=3 class=lexinput id="gfxcode_22294_7" style="width:640px;background-color:#fed;display:none;overflow:hidden; font-size:6pt;"></textarea> </td> </tr> </table> </li> </ul> <h3>Credits:</h3> <ul> <li>Original concept, design, programming, art: <strong>Gabe Duarte</strong></li> <li>Aditional art: <strong>Liam McAlinden</strong></li> </ul> <h3>Downloadable Version</h3> <p>You can download a build of this game over at <a href="https://elgabe.itch.io/hellhole">Itch.io</a>.</p> https://www.lexaloffle.com/bbs/?tid=34725 https://www.lexaloffle.com/bbs/?tid=34725 Sun, 14 Jul 2019 21:32:48 UTC HellHole Playtest <p> <table><tr><td> <a href="/bbs/?pid=65472#p"> <img src="/bbs/thumbs/pico8_hellhole-1.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=65472#p"> Hell Hole</a><br><br> by <a href="/bbs/?uid=22294"> GabeD</a> <br><br><br> <a href="/bbs/?pid=65472#p"> [Click to Play]</a> </td></tr></table> </p> <p>Hi!</p> <p>A while ago I decided to port a game I made to PICO-8, and I'm finally almost done :D All that's missing is SFXs and a dope title image/cart cover. I'm posting this here because I'd love to playtest it here and get your opinions on it so don't hesitate to tell me if something sucks!</p> <p>Also, don't look into the code too much, I'm not a great programmer...</p> https://www.lexaloffle.com/bbs/?tid=34607 https://www.lexaloffle.com/bbs/?tid=34607 Sat, 29 Jun 2019 21:01:49 UTC HellHole - PICO-8 port? <p>Wow. PICO-8 is extremely fun to work with, and I'm so happy I stuck around to learn how to use it!</p> <p>Right now I'm learning how to work with tables and 'objects' to sort of port a game I'm currently developing called HellHole. It's a top-down shooter where you choose between controlling your body or the bullet (which is your soul).</p> <p>So far, I've managed to not slow down the game with a shit ton of instances and that makes me happy!</p> <p>I'll leave you with a gif of the latest bit of progress: A spawner, soul particles, and screen-shake.</p> <img style="margin-bottom:16px" border=0 src="https://www.lexaloffle.com/bbs/files/22294/hellhole_0.gif" alt="" /> https://www.lexaloffle.com/bbs/?tid=32656 https://www.lexaloffle.com/bbs/?tid=32656 Fri, 21 Dec 2018 15:17:57 UTC Can a PICO-8 game close itself? <p>Hi! I'm developing a short little game in PICO-8 and plan to export it as an executable. The problem is, I would like the game to close itself after something happens. I've tried using the 'shutdown', 'exit' and 'stop' functions but none of them closes the window at the end of the game.</p> <p>Is there even a way to do this? Or perhaps I'm using the previously mentioned functions in a wrong way?</p> <p>Thanks for the help!</p> https://www.lexaloffle.com/bbs/?tid=32607 https://www.lexaloffle.com/bbs/?tid=32607 Tue, 18 Dec 2018 18:47:41 UTC Blue Balls <p> <table><tr><td> <a href="/bbs/?pid=43188#p"> <img src="/bbs/thumbs/pico43187.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=43188#p"> Blue Balls</a><br><br> by <a href="/bbs/?uid=22294"> GabeD</a> <br><br><br> <a href="/bbs/?pid=43188#p"> [Click to Play]</a> </td></tr></table> </p> <p>A game made in 1 hour for the 1 hour game jam.</p> <p>Shoot the blue thing 100 times.</p> https://www.lexaloffle.com/bbs/?tid=29779 https://www.lexaloffle.com/bbs/?tid=29779 Sat, 12 Aug 2017 17:24:32 UTC Weird Collision Bug on Corners <p> <table><tr><td> <a href="/bbs/?pid=43143#p"> <img src="/bbs/thumbs/pico43142.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=43143#p"> Weird Collision Bug on Corners</a><br><br> by <a href="/bbs/?uid=22294"> GabeD</a> <br><br><br> <a href="/bbs/?pid=43143#p"> [Click to Play]</a> </td></tr></table> </p> <p>Hi! I just started using PICO-8 and I'm having a little trouble with my collision code.</p> <p>It works fine when colliding against walls, but colliding against corners (the red tiles) breaks it.</p> <p>Here is the collision part of the code:</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 placeMeeting(x, y, f) local tilesize = 8 local tilex = flr(x/8) local tiley = flr(y/8) local s = mget(tilex, tiley) return (fget(s, f)) 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>And this is the movement part:</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> if (btn(0)) then if (not placeMeeting(p.x-1, p.y, solidtile)) then p.x -= p.speed end p.mirror = true elseif (btn(1)) then if (not placeMeeting(p.x+p.bbox_w+1, p.y, solidtile)) then p.x += p.speed end p.mirror = false end if (btn(2)) then if (not placeMeeting(p.x, p.y-1, solidtile)) then p.y -= p.speed end elseif (btn(3)) then if (not placeMeeting(p.x, p.y+p.bbox_h+1, solidtile)) then p.y += p.speed 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>Thanks for the help :D</p> https://www.lexaloffle.com/bbs/?tid=29769 https://www.lexaloffle.com/bbs/?tid=29769 Wed, 09 Aug 2017 00:52:45 UTC