seleb [Lexaloffle Blog Feed]https://www.lexaloffle.com/bbs/?uid=13070 Super Snow Shoveler <p> <table><tr><td> <a href="/bbs/?pid=59894#p"> <img src="/bbs/thumbs/pico8_super_snow_shoveler-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=59894#p"> Super Snow Shoveler</a><br><br> by <a href="/bbs/?uid=13070"> seleb</a> <br><br><br> <a href="/bbs/?pid=59894#p"> [Click to Play]</a> </td></tr></table> </p> <h1>Day 11 of the Pico-8 Advent Calendar 2018!</h1> <p><strong>a battle between efficiency &amp; exhaustion</strong><br /> <em>~a winter classic~</em></p> <p>Hey there folks, it's mid-December, and you know what that means: time to shovel the driveway! The snow's packed pretty heavy though - if it piles up too much, you'll have a hard time pushing it and probably just make a mess!</p> <p>Make sure to check back on the <a href="https://www.lexaloffle.com/bbs/?tid=32388">calendar</a> each day for a new gift!</p> https://www.lexaloffle.com/bbs/?tid=32531 https://www.lexaloffle.com/bbs/?tid=32531 Tue, 11 Dec 2018 13:10:26 UTC MATCH3+CONNECT4 (LD41) <p> <table><tr><td> <a href="/bbs/?pid=51914#p"> <img src="/bbs/thumbs/pico51913.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=51914#p"> MATCH3+CONNECT4</a><br><br> by <a href="/bbs/?uid=13070"> seleb</a> <br><br><br> <a href="/bbs/?pid=51914#p"> [Click to Play]</a> </td></tr></table> </p> <p>Hey folks! Been awhile since I've posted something on the BBS, but thought I'd share my LD41 entry.<br /> It's local multiplayer only unfortunately (I'd hoped to get a decent AI opponent in but didn't have time). If you manage to get someone to play with you though, let me know how it goes!</p> <p>HOW TO PLAY</p> <ul> <li>drop pieces in empty slots</li> <li>swap pieces in filled slots</li> <li>match 3+ to earn swaps</li> <li>connect exactly 4 to win</li> </ul> <p><a href="https://ldjam.com/events/ludum-dare/41/match3connect4">LD entry page</a><br /> <a href="https://seansleblanc.itch.io/match3connect4">itch.io page</a></p> https://www.lexaloffle.com/bbs/?tid=31166 https://www.lexaloffle.com/bbs/?tid=31166 Sun, 22 Apr 2018 20:45:00 UTC TV-GOTCHI <p> <table><tr><td> <a href="/bbs/?pid=36420#p"> <img src="/bbs/thumbs/pico36419.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=36420#p"> TV-GOTCHI</a><br><br> by <a href="/bbs/?uid=13070"> seleb</a> <br><br><br> <a href="/bbs/?pid=36420#p"> [Click to Play]</a> </td></tr></table> </p> <p>I'm a bit bummed because work and GGJ being this weekend meant I didn't get a chance to take this past a prototype stage, but it's still kinda neat!</p> <p>Controls:<br /> TAB: turn on TV<br /> ARROWS: hatch egg<br /> Z: feed<br /> X: love</p> https://www.lexaloffle.com/bbs/?tid=28710 https://www.lexaloffle.com/bbs/?tid=28710 Sun, 22 Jan 2017 18:55:04 UTC Sprites By Pico - twitterbot <p>Hey there! I made a little twitterbot recently that generates 8x8 sprites for PICO-8:</p> <p><a href="https://twitter.com/SpritesByPico">@SpritesByPico</a></p> <p>It tweets both a GFX tag ready for copy-pasting into PICO-8 or the BBS and an image preview of the sprite. Currently it has 3 colour modes (1, 2, or 3 colours on a black background) and 3 layout modes (top-bottom symmetry, left-right symmetry, and 4-corners).</p> <p>Here are some examples of sprites it's generated so far:</p> <p> <table><tr><td width=0> <img src="https://www.lexaloffle.com/bbs/gfxc/13070_0.png" width=0 height=0> </td> <td valign=bottom> <a style="cursor:pointer;font-size:8pt" onclick=' var el = document.getElementById("gfxcode_13070_0"); if (el.style.display == "none") el.style.display = ""; else el.style.display = "none"; microAjax("https://www.lexaloffle.com/bbs/gfxc/13070_0.txt", function (retdata){ var el = document.getElementById("gfxcode_13070_0"); el.innerHTML = retdata; el.focus(); el.select(); } ); '> [0x0]</a> </td></tr> <tr><td colspan=2> <textarea rows=3 class=lexinput id="gfxcode_13070_0" style="width:640px;background-color:#fed;display:none;overflow:hidden; font-size:6pt;"></textarea> </td> </tr> </table> <table><tr><td width=0> <img src="https://www.lexaloffle.com/bbs/gfxc/13070_1.png" width=0 height=0> </td> <td valign=bottom> <a style="cursor:pointer;font-size:8pt" onclick=' var el = document.getElementById("gfxcode_13070_1"); if (el.style.display == "none") el.style.display = ""; else el.style.display = "none"; microAjax("https://www.lexaloffle.com/bbs/gfxc/13070_1.txt", function (retdata){ var el = document.getElementById("gfxcode_13070_1"); el.innerHTML = retdata; el.focus(); el.select(); } ); '> [0x0]</a> </td></tr> <tr><td colspan=2> <textarea rows=3 class=lexinput id="gfxcode_13070_1" style="width:640px;background-color:#fed;display:none;overflow:hidden; font-size:6pt;"></textarea> </td> </tr> </table> <table><tr><td width=0> <img src="https://www.lexaloffle.com/bbs/gfxc/13070_2.png" width=0 height=0> </td> <td valign=bottom> <a style="cursor:pointer;font-size:8pt" onclick=' var el = document.getElementById("gfxcode_13070_2"); if (el.style.display == "none") el.style.display = ""; else el.style.display = "none"; microAjax("https://www.lexaloffle.com/bbs/gfxc/13070_2.txt", function (retdata){ var el = document.getElementById("gfxcode_13070_2"); el.innerHTML = retdata; el.focus(); el.select(); } ); '> [0x0]</a> </td></tr> <tr><td colspan=2> <textarea rows=3 class=lexinput id="gfxcode_13070_2" style="width:640px;background-color:#fed;display:none;overflow:hidden; font-size:6pt;"></textarea> </td> </tr> </table> <table><tr><td width=0> <img src="https://www.lexaloffle.com/bbs/gfxc/13070_3.png" width=0 height=0> </td> <td valign=bottom> <a style="cursor:pointer;font-size:8pt" onclick=' var el = document.getElementById("gfxcode_13070_3"); if (el.style.display == "none") el.style.display = ""; else el.style.display = "none"; microAjax("https://www.lexaloffle.com/bbs/gfxc/13070_3.txt", function (retdata){ var el = document.getElementById("gfxcode_13070_3"); el.innerHTML = retdata; el.focus(); el.select(); } ); '> [0x0]</a> </td></tr> <tr><td colspan=2> <textarea rows=3 class=lexinput id="gfxcode_13070_3" style="width:640px;background-color:#fed;display:none;overflow:hidden; font-size:6pt;"></textarea> </td> </tr> </table> <table><tr><td width=0> <img src="https://www.lexaloffle.com/bbs/gfxc/13070_4.png" width=0 height=0> </td> <td valign=bottom> <a style="cursor:pointer;font-size:8pt" onclick=' var el = document.getElementById("gfxcode_13070_4"); if (el.style.display == "none") el.style.display = ""; else el.style.display = "none"; microAjax("https://www.lexaloffle.com/bbs/gfxc/13070_4.txt", function (retdata){ var el = document.getElementById("gfxcode_13070_4"); el.innerHTML = retdata; el.focus(); el.select(); } ); '> [0x0]</a> </td></tr> <tr><td colspan=2> <textarea rows=3 class=lexinput id="gfxcode_13070_4" style="width:640px;background-color:#fed;display:none;overflow:hidden; font-size:6pt;"></textarea> </td> </tr> </table> </p> <p>If you're interested in how it works, I made it with <a href="http://www.cheapbotsdonequick.com">CheapBotsDoneQuick</a> and the source is available <a href="http://www.cheapbotsdonequick.com/source/SpritesByPico">here</a>. It's actually a pretty simple idea, but generating both the GFX tag and the image preview made it a lot more complicated (and more interesting IMO) than doing either one separately.</p> https://www.lexaloffle.com/bbs/?tid=28089 https://www.lexaloffle.com/bbs/?tid=28089 Sun, 20 Nov 2016 04:07:30 UTC listen to my game idea <p> <table><tr><td> <a href="/bbs/?pid=31062#p"> <img src="/bbs/thumbs/pico31061.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=31062#p"> listen to my game idea</a><br><br> by <a href="/bbs/?uid=13070"> seleb</a> <br><br><br> <a href="/bbs/?pid=31062#p"> [Click to Play]</a> </td></tr></table> </p> <p>Inspired by <a href="https://www.lexaloffle.com/bbs/?uid=49872"> @pippinbarr</a>'s tweet:</p> <p>&#9617; &#9617; &#9617; &#9617; GAME IDEA<br /> &#9617; &#9617; &#9617;<br /> &#9617; &#9617; YOU ARE AN ELEVATOR<br /> &#9617; &#9617; &#9617; JUDGING<br /> &#9617; &#9617;<br /> &#9617; &#9617; &#9617; &#9617; ELEVATOR PITCHES<br /> &#9617; &#9617; &#9617;<br /> &#9617; &#9617; BUT NO ONE<br /> &#9617; &#9617; &#9617; ASKED FOR YOUR OPINION</p> <p>Made for <a href="https://itch.io/jam/the-pippin-barr-game-idea-game-jam">The Pippin Barr 'GAME IDEA' Game Jam</a>.</p> <p><a href="https://seansleblanc.itch.io/listen-to-my-game-idea">play on itch.io</a></p> https://www.lexaloffle.com/bbs/?tid=27909 https://www.lexaloffle.com/bbs/?tid=27909 Sun, 16 Oct 2016 16:00:22 UTC General Purpose PICO-8 Token Optimizations <p>Forgot to post this here the other day: <a href="https://github.com/seleb/PICO-8-Token-Optimizations">PICO-8-Token-Optimizations</a></p> <p>Lots of people working on larger projects (or more topically, the <a href="https://www.lexaloffle.com/bbs/?tid=27729">collab16 games</a>) end up hitting the token limit, and people in the PICO-8 community have come up with plenty of handy tricks to deal with that. Some of them are common knowledge or pretty easy to figure out on your own, but others are a bit obscure, so I figured it'd be useful to compile a list of general purpose tricks and techniques for cutting down your tokens.</p> <p>If you know of any handy tips that aren't listed or have any corrections/improvements, feel free to let me know or contribute to the repository!</p> https://www.lexaloffle.com/bbs/?tid=27762 https://www.lexaloffle.com/bbs/?tid=27762 Wed, 28 Sep 2016 11:08:38 UTC Duck Duck on the Loose <p>Uh oh, a flock of ducklings has gone missing, and it's up to Duck Duck to save the day! Can you help them find all seven?</p> <p>I mean... it's not really your responsibility. I'm sure they'll be fine on their own. Why don't you just take some time to wander around and enjoy yourself? And hey, if you happened to find some ducklings along the way, that's cool too.</p> <p><a href="https://seansleblanc.itch.io/duck-duck-on-the-loose">play it on itch.io</a></p> <p>note: the web version on the BBS won't work because the module's TOTAL_MEMORY is too low, but I've included the cart here so you can still download it if you want. If you want to play it online I recommend the itch.io version.</p> <p> <table><tr><td> <a href="/bbs/?pid=28945#p"> <img src="/bbs/thumbs/pico29009.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=28945#p"> Duck Duck on the Loose v1.1</a><br><br> by <a href="/bbs/?uid=13070"> seleb</a> <br><br><br> <a href="/bbs/?pid=28945#p"> [Click to Play]</a> </td></tr></table> <br /> <table><tr><td> <a href="/bbs/?pid=28945#p"> <img src="/bbs/thumbs/pico28944.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=28945#p"> Duck Duck on the Loose v1.0</a><br><br> by <a href="/bbs/?uid=13070"> seleb</a> <br><br><br> <a href="/bbs/?pid=28945#p"> [Click to Play]</a> </td></tr></table> </p> <p>updates: fixed bottom-right corner crash</p> https://www.lexaloffle.com/bbs/?tid=27702 https://www.lexaloffle.com/bbs/?tid=27702 Wed, 21 Sep 2016 12:10:58 UTC One Button Duel <img style="margin-bottom:16px" border=0 src="https://www.lexaloffle.com/bbs/files/13070/onebuttonduel-cover.gif" width=315 height=250 alt="" /> <p>This is a one button dueling game.</p> <p>Hold to run, let go before passing to attack.</p> <p>Whoever hits hardest wins.</p> <p>Rules:<br /> If neither player let go before passing, it's a tie.<br /> If one player let go before passing, that player wins.<br /> If both players let go before passing, the winner is decided by speed. If speeds are the same, it's a tie.</p> <p>Made for <a href="https://itch.io/jam/one-button-to-rule-all-jam">#OneButtonJam</a>.</p> <p> <table><tr><td> <a href="/bbs/?pid=26821#p"> <img src="/bbs/thumbs/pico26820.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=26821#p"> One Button Duel</a><br><br> by <a href="/bbs/?uid=13070"> seleb</a> <br><br><br> <a href="/bbs/?pid=26821#p"> [Click to Play]</a> </td></tr></table> </p> <p><a href="https://seleb.itch.io/one-button-duel">Play it on itch.io!</a></p> <p>One of the main things I wanted to try out with this game is an online multiplayer mode using the webplayer + GPIO stuff I experimented with in my PICO-8 twitter feed. You can try that out on the itch.io version of the game, which lets you connect to another player for peer-to-peer matches (using the <a href="http://peerjs.com/">Peerjs</a> library and a heroku server to broker connections).</p> <p>All in all it's a pretty simple game, but I hope it's interesting anyway!</p> https://www.lexaloffle.com/bbs/?tid=4047 https://www.lexaloffle.com/bbs/?tid=4047 Fri, 12 Aug 2016 20:24:11 UTC STRUNG OUT in heaven's high <p>Hey there, this is a game made by <a href="https://twitter.com/ianmart1n">Ian</a> and I for the &quot;A Game By It's Cover&quot; jam.</p> <p>Play it on <a href="https://sweetheartsquad.itch.io/strung-out-in-heavens-high">itch.io</a></p> <p> <table><tr><td> <a href="/bbs/?pid=25988#p"> <img src="/bbs/thumbs/pico27185.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=25988#p"> STRUNG OUT in heaven's high 1.3</a><br><br> by <a href="/bbs/?uid=13070"> seleb</a> <br><br><br> <a href="/bbs/?pid=25988#p"> [Click to Play]</a> </td></tr></table> </p> <p><strong>Changelog</strong><br /> 2016-08-21: fixed PocketCHIP crash (with help from <a href="https://www.lexaloffle.com/bbs/?uid=12806"> @morningtoast</a>)<br /> 2016-08-15: updated menu navigation<br /> 2016-08-12: fixed random palette bugs</p> https://www.lexaloffle.com/bbs/?tid=3941 https://www.lexaloffle.com/bbs/?tid=3941 Wed, 27 Jul 2016 20:49:16 UTC P8T: A PICO-8 Twitter Client <p>Hey there! Over the past couple days I've been playing around with PICO-8's GPIO stuff and put together a simple Twitter client. There seemed to be a decent amount of interest in how I got this to work, so I thought I'd share a quick write-up to give others a potential starting point for using GPIO.</p> <p><a href="http://seleb.itch.io/p8t">Check out P8T over on itch.io</a> or <a href="https://github.com/seleb/pico-8-gpio">grab the source on GitHub</a>.</p> <p>This is more of a proof-of-concept than an actual attempt at making a good Twitter client, but hopefully it's good enough for educational purposes!</p> <p><strong>GPIO</strong><br /> I only discovered PICO-8's GPIO support yesterday. As near as I can tell, the GPIO is meant to represent pins on physical hardware so that PICO-8 apps could use accelerometers, LEDs, etc. on a Raspberry PI or PocketCHIP. I don't know how far along the development is on the hardware side, but in v0.1.7 JavaScript support was added to GPIO in the web player, which essentially gives us 128 bytes of browser/cart shared memory! Using this memory is super easy too:</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> // JavaScript // initialize the pico8_gpio array before the cart loads (this is the only necessary step) var pico8_gpio = new Array(128); // alert the value of the first pin and set the fourth pin's value to 10 alert(pico8_gpio[0]); pico8_gpio[3] = 10; </pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <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> // PICO-8 // print the value of the third pin and set the first pin's value to 2 print(peek(0x5f80+2)) poke(0x5f80, 2); </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's it!</p> <p><strong>Communication</strong><br /> 128 bytes is a pretty big chunk of data for a PICO-8 app, so we could probably get by using GPIO as-is without issues in a simple app. However, I wanted Twitter integration: even if I only used one-way communication and stripped out all the metadata, 128 bytes isn't enough to fit a 140 character tweet! To get around this, I had to come up with a more formalized structure for communications. (I've never been much of a networking guy, so feel free to point out better or easier ways to handle this stuff.)</p> <p>My communication structure uses a simple frame-packet analogy. We start with a frame: a single big block of data (e.g. a tweet) which we then convert into smaller, more manageable chunks of data (packets). Each packet is split into two sections: a header which describes the packet content (length, id, etc.) and a body which contains a portion of the original data.</p> <p>On the browser's side, this means taking the result of a Twitter search, parsing it into a single string of text, splitting the string into an array of strings where each item has at most X characters, where X is the length of a packet body, and then sending this one-by-one through the GPIO.</p> <p>On the cart's side, this means reading the header pins and using the values to help us parse and interpret the body pins. It also means concatenating data from multiple packets in order to form a full frame.</p> <p>The trick to getting this working is to make sure that the browser and the cart are always in agreement on who's doing what. If both were just arbitrarily accessing the GPIO, we'd have no idea what was actually in the shared memory at any point. My solution for this was fairly simple:<br /> -the first header pin always stores either a 1 or a 0<br /> -if the browser sees a 1, it updates and sets the pin to 0<br /> -if the browser sees a 0, it skips the update<br /> -if the cart sees a 1, it skips the update<br /> -if the cart sees a 0, it updates and sets the pin to 1</p> <p>Initially, I had the browser updating on a setInterval with a fairly large delay, but after some experimentation I found that there wasn't really much benefit to this and put it on a requestAnimationFrame loop instead. Writing/reading to the GPIO doesn't seem to be a particularly expensive operation, so this allows for near real-time communication.</p> <p>Once we've got a reliable order for our operations set up, concatenating the packet data into a frame is pretty easy too: we use one of the header pins to tell us how many packets are in the current data transfer, and another to tell us what the current packet's ID is. We create a new buffer for frame data when we receive the first packet, and append packet data until the packet ID matches the number of packets in the frame.</p> <p>My focus was on sending data from the browser to PICO-8, but this system also supports limited two-way communication: after we've read the current packet data in PICO-8, we can replace it with a new packet, and the browser can similarly read it back before it sends the next one. In P8T, the state of the buttons are sent from PICO-8 to the browser in this way. If you've looked at the code for an exported PICO-8 app you'll probably notice that this is a bit redundant: the web player already has some separate variables you can use to query button state, but if you were to use GPIO to create a multiplayer game in PICO-8, you're probably going to need to send more than just button presses and the principle is the same regardless of the data.</p> <p><strong>Sending text</strong><br /> One of the hurdles in developing P8T was that I was originally sending text data to PICO-8 in ASCII, but PICO-8 has no built-in functionality for converting an ASCII character code into the character string. My workaround for this was to create a string with all the characters I needed and use sub() to grab individual characters based on their position:</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> // JavaScript // converts characters to a format which the cart can read // case is reversed, characters are offset, and newline is a special character charToPico: function (c){ if(c == '\n'){ return 0; }else{ // swap case c = (c == c.toLowerCase() ? c.toUpperCase() : c.toLowerCase()); // convert to ASCII c = c.charCodeAt(); // offset c -= this.char_offset; return c; } } </pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <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> // PICO-8 //ignores control characters except \n //includes symbols (128-153) chars=&quot;\n\32\33\34\35...\153&quot; function char(k) return sub(chars,k+1,k+1) 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><strong>What could've been done better</strong><br /> -Currently, only one frame can be sent from the browser at a time. A fairly simple extension would be to place &quot;send&quot; commands in a queue for a more asynchronous experience.<br /> -The browser can send an arbitrary amount of data, but the cart implementation is limited to a single packet. It wouldn't be too hard to recycle the frame/packet structure used on the browser's end to allow for unlimited communication in both directions, but the order of operations would get a bit more complicated (do you send packets in both directions at the same time knowing the frames won't be in sync, or do you wait for full frames knowing that they take multiple frames to send?)<br /> -The twitter integration in general is pretty sloppy since I focused on just getting simple functionality working. Tweets are pulled one at a time and only on user-request; it would make a lot more sense to grab a dozen or so all at once, and then pull in new batches as the user browses through the ones you've stored locally. With a bit more work, you could even add a login and let the user interact with the tweets!</p> https://www.lexaloffle.com/bbs/?tid=3909 https://www.lexaloffle.com/bbs/?tid=3909 Fri, 22 Jul 2016 20:33:17 UTC PICO-8 Styler v1.6: Multiplayer gamepad support <p><a href="https://seleb.itch.io/pico-8-styler">PICO-8 Styler</a></p> <p><strong>Current feature list:</strong><br /> -Page colours can be customized (background, button background/hover, text)<br /> -Canvas scale can be customized, has no border, and defaults to 512x512<br /> -Canvas is centered horizontally and vertically<br /> -Canvas and buttons use image-rendering CSS for sharper fullscreen viewing<br /> -First script tag includes &quot;var require = null;&quot; in order to address a node.js issue which prevents PICO-8 games from running in things like NW.js<br /> -Buttons are &quot;text-align:center&quot; instead of &quot;float:left&quot;<br /> -Buttons are slightly smaller to better fit default canvas size<br /> -Button text can't be selected<br /> -Buttons can be excluded<br /> -Link button label/target can be customized<br /> -Page can be autofocused for more accessible iframe embeds (without this, sometimes PICO-8 games won't receive input until you click on a button)<br /> -HTML5 Gamepad API support can be included for singleplayer or multiplayer</p> <p>If you have ideas for more useful features, feel free to <a href="https://github.com/seleb/PICO-8-Styler">contribute on GitHub</a> or send me suggestions!</p> https://www.lexaloffle.com/bbs/?tid=3834 https://www.lexaloffle.com/bbs/?tid=3834 Fri, 15 Jul 2016 13:53:45 UTC atopy <p> <table><tr><td> <a href="/bbs/?pid=23123#p"> <img src="/bbs/thumbs/pico23122.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=23123#p"> atopy</a><br><br> by <a href="/bbs/?uid=13070"> seleb</a> <br><br><br> <a href="/bbs/?pid=23123#p"> [Click to Play]</a> </td></tr></table> </p> <p>try to fight it</p> <p>Controls:<br /> -Arrows to move<br /> -Z to attack<br /> -X to sneak</p> <p><a href="https://seleb.itch.io/atopy">itch.io page</a></p> https://www.lexaloffle.com/bbs/?tid=3633 https://www.lexaloffle.com/bbs/?tid=3633 Sat, 18 Jun 2016 12:45:49 UTC Soda-Pop Sailin' <p> <table><tr><td> <a href="/bbs/?pid=22592#p"> <img src="/bbs/thumbs/pico22591.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=22592#p"> Soda-Pop Sailin'</a><br><br> by <a href="/bbs/?uid=13070"> seleb</a> <br><br><br> <a href="/bbs/?pid=22592#p"> [Click to Play]</a> </td></tr></table> </p> <p>Oh no! There's been a disaster, and your crew has gotten lost at sea. Luckily, you've got a supremely buoyant sailboat: it's up to you to pick them up and tow them back to safety!</p> <p>Controls:<br /> -Arrows for movement<br /> -Z to toggle UI<br /> -X to swap palettes</p> <p>I went with some extra self-imposed challenges on this one:<br /> -1-bit colour<br /> -No text<br /> -No assets (i.e. sprites, tiles, sounds, or music)</p> <p>Made for <a href="https://itch.io/jam/simple">#simplejam</a>.</p> https://www.lexaloffle.com/bbs/?tid=3576 https://www.lexaloffle.com/bbs/?tid=3576 Fri, 10 Jun 2016 05:10:59 UTC Star Picker-Upper <p>The finished game:<br /> <table><tr><td> <a href="/bbs/?pid=21189#p"> <img src="/bbs/thumbs/pico21359.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=21189#p"> Star Picker-Upper 1.0</a><br><br> by <a href="/bbs/?uid=13070"> seleb</a> <br><br><br> <a href="/bbs/?pid=21189#p"> [Click to Play]</a> </td></tr></table> <br /> It turned out pretty good for a first attempt at making a game with PICO-8 in my opinion. The gameplay itself is a little uninspired, but I had a lot of fun playing with the visuals and learning about the system. </p> <p>Older versions: <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=21189#p"> <img src="/bbs/thumbs/pico21270.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=21189#p"> Chain Reaction (WIP) 0.3</a><br><br> by <a href="/bbs/?uid=13070"> seleb</a> <br><br><br> <a href="/bbs/?pid=21189#p"> [Click to Play]</a> </td></tr></table> <br /> -Fixed x-overflow/underflow bug<br /> -Changed default palette<br /> -Rough menus<br /> -Points/Combos/Lives<br /> -Generally more stylish</p> <p> <table><tr><td> <a href="/bbs/?pid=21189#p"> <img src="/bbs/thumbs/pico21212.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=21189#p"> Chain Reaction (WIP) 0.2 0.2</a><br><br> by <a href="/bbs/?uid=13070"> seleb</a> <br><br><br> <a href="/bbs/?pid=21189#p"> [Click to Play]</a> </td></tr></table> <br /> <table><tr><td> <a href="/bbs/?pid=21189#p"> <img src="/bbs/thumbs/pico21188.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=21189#p"> Chain Reaction (WIP) 0.1</a><br><br> by <a href="/bbs/?uid=13070"> seleb</a> <br><br><br> <a href="/bbs/?pid=21189#p"> [Click to Play]</a> </td></tr></table> <br /> Still needs a lot of work, but it's turning out ok!</div></div></div></p> https://www.lexaloffle.com/bbs/?tid=3432 https://www.lexaloffle.com/bbs/?tid=3432 Mon, 23 May 2016 17:12:16 UTC