tobiasvl [Lexaloffle Blog Feed]https://www.lexaloffle.com/bbs/?uid=29213 tempres <p> <table><tr><td> <a href="/bbs/?pid=69861#p"> <img src="/bbs/thumbs/pico8_tempres-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=69861#p"> tempres</a><br><br> by <a href="/bbs/?uid=29213"> tobiasvl</a> <br><br><br> <a href="/bbs/?pid=69861#p"> [Click to Play]</a> </td></tr></table> </p> <p>controls: press x</p> <p>a demake of <a href="https://tak.itch.io/tempres">tempres by tak</a>, the best puzzle game of all time.</p> <p>source code in 257 characters.</p> https://www.lexaloffle.com/bbs/?tid=35904 https://www.lexaloffle.com/bbs/?tid=35904 Tue, 12 Nov 2019 22:40:48 UTC Replacing all text in editor breaks undo <p>Normally, replacing text and then undoing works great &ndash; the undo will immediately change it back to how it was before replacing, as expected.</p> <p>However, replacing the first character in the cart acts a little differently (but not drastically): If you highlight the first character, replace it, and then press undo, it will first go back to a state where neither the replaced text or the replacement text is present (unlike when you undo replacements elsewhere in the file). If you undo one more time, the originally replaced text will be back, as expected.</p> <p>Worse, though: If you replace all the text in the cart and then undo, nothing will be undone, and the both the replaced and the replacement text is gone.</p> <p>How to reproduce:</p> <ul> <li>Write some text in the code editor</li> <li>Highlight all the text (for example with CTRL+A)</li> <li>Write some new text, replacing the highlighted text (or paste something in with CTRL+V)</li> <li>Try to undo the replacement with CTRL+Z</li> </ul> https://www.lexaloffle.com/bbs/?tid=34284 https://www.lexaloffle.com/bbs/?tid=34284 Mon, 20 May 2019 10:27:48 UTC Devkit keyboard layout <p>People have made mockups of how a &quot;real&quot; PICO-8 console and controller could look... But what about the devkit keyboard?</p> <ul> <li>Small, compact keyboard layout, like 75%, 65% or 60%</li> <li>Mechanical clicky switches</li> <li>Retro keycap profile (ADA?)</li> <li>Iconic PICO-8 font and colors on the keycaps</li> </ul> <p>Here's a quick 75%-ish mockup I made (in ISO-NO since that's what I use, but a real one would probably be ANSI or JIS?). It's pretty busy, printing is WIP, and it's probably a bit too big; I added the F key row to try out symbols for GIF recording and stuff.</p> <img style="margin-bottom:16px" border=0 src="https://www.lexaloffle.com/bbs/files/29213/pico-8-devkit-keyboard-mockup.png" alt="" /> <p>Group buy when?</p> https://www.lexaloffle.com/bbs/?tid=34168 https://www.lexaloffle.com/bbs/?tid=34168 Thu, 09 May 2019 20:49:17 UTC Manual/license have UNIX newlines in Windows build <p>This is a very very minor thing, but the two text files that come with the Windows build of PICO-8 (the manual &quot;pico-8.txt&quot; and &quot;license.txt&quot;) have UNIX newlines, which means that they might be hard to read on Windows, at least if you use a &quot;dumb&quot; editor like Notepad or similar to read them.</p> https://www.lexaloffle.com/bbs/?tid=33880 https://www.lexaloffle.com/bbs/?tid=33880 Tue, 16 Apr 2019 14:36:10 UTC stat(102) returns nil in 0.1.12 <p>When running a local cart in 0.1.12, stat(102) returns nil, instead of 0 as it did in 0.1.11g and before.</p> https://www.lexaloffle.com/bbs/?tid=33853 https://www.lexaloffle.com/bbs/?tid=33853 Fri, 12 Apr 2019 08:20:30 UTC hexagon <p> <table><tr><td> <a href="/bbs/?pid=63376#p"> <img src="/bbs/thumbs/pico8_hexagon-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=63376#p"> hexagon</a><br><br> by <a href="/bbs/?uid=29213"> tobiasvl</a> <br><br><br> <a href="/bbs/?pid=63376#p"> [Click to Play]</a> </td></tr></table> </p> <p>Inspired by Terry Cavanagh's game Hexagon. <a href="https://twitter.com/Spug/status/1115910739577974786">Tweet.</a></p> <p>Use the left and right arrow keys to move. (Any other button press will unfortunately crash the game, but I didn't have room for error handling.)</p> https://www.lexaloffle.com/bbs/?tid=33836 https://www.lexaloffle.com/bbs/?tid=33836 Wed, 10 Apr 2019 09:13:43 UTC Return values from add and del <p>This isn't exactly a bug, but an aspect of the API that bothers me a bit.</p> <p>In PICO-8:</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>add(table, element) -- returns the added element del(table, element) -- returns nil</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>This doesn't make much sense to me. Returning the added element is a nice convenience, since it allows you to do things like creating multidimensional tables succintly:</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>for x=1, width do local col = add(table, {}) for y=1, height do add(col, {}) 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>But returning nil when deleting an element does not make sense to me. If it returned the deleted element, it would be possible to know whether an element was found or not, without first checking for membership.</p> <p>For comparison, this is how it is in Lua:</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>table.insert(table, element) -- returns nil table.remove(table, position) -- returns the removed element</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> https://www.lexaloffle.com/bbs/?tid=33686 https://www.lexaloffle.com/bbs/?tid=33686 Thu, 21 Mar 2019 12:37:32 UTC Deleted code appears if you delete EOF <p>This is a fun bug, but not exactly a big deal. I'm not sure if it has been reported before.</p> <p>If you delete any amount of text at the end of a cartridge, you can retrieve it by pressing the DELETE key while your cursor is at the end of the file (as long as the buffer is not empty).</p> <p>Simplest way to reproduce: Write something in the PICO-8 code editor, and then delete everything. Write something (one character will do) and then press DELETE. Voila!</p> https://www.lexaloffle.com/bbs/?tid=33474 https://www.lexaloffle.com/bbs/?tid=33474 Sat, 02 Mar 2019 23:54:19 UTC Delay in detecting keypresses (devkit vs. btnp) <p>Hey, I'm trying to figure out why btnp(x) seems to be true for one frame after stat(31)==&quot;x&quot; is true in devkit mode, or if I'm doing something dumb.</p> <p>Here's an example cart. Press X, and it will show display the number of the frame that it registered the devkit keypress and the X button press respectively. There seems to be one frame difference.</p> <p> <table><tr><td> <a href="/bbs/?pid=62134#p"> <img src="/bbs/thumbs/pico8_zoyifizotu-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=62134#p"> zoyifizotu</a><br><br> by <a href="/bbs/?uid=29213"> tobiasvl</a> <br><br><br> <a href="/bbs/?pid=62134#p"> [Click to Play]</a> </td></tr></table> </p> <p>My actual usecase is this: I have a password input in a game where I want to record numerical input from the devkit keyboard, but I also want it to record the X button, which confirms the password. Unfortunately, the 8 key is mapped to the X button; when they're also recorded on different frames it becomes a little convoluted to separate the two.</p> <p><em>Edit: The 8 key is no longer mapped to the X button (in non-Pocket CHIP builds) as of v0.1.12.</em></p> https://www.lexaloffle.com/bbs/?tid=33346 https://www.lexaloffle.com/bbs/?tid=33346 Thu, 21 Feb 2019 18:58:57 UTC Iterating over neighboring tiles <p>Just a small snippet from a token-saving discussion on the Discord last night.</p> <p>If you need to iterate over neighboring tiles (for example when writing a path finding algorithm for 7DRL), this natural approach is pretty token heavy:</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>-- four directions, 29 tokens for direction in all{{-1,0},{0,-1},{1,0},{0,1}} do local x,y=direction[1],direction[2] end -- eight directions, 45 tokens for direction in all{{-1,0},{0,-1},{1,0},{0,1},{1,1},{-1,-1},{1,-1},{-1,1}} do local x,y=direction[1],direction[2] end -- eight directions, 43 tokens directions={0,-1,-1,0,1,0,0,1,1,-1,-1,1,1,1,-1,-1} for i=1,16,2 do local x,y=directions[i],directions[i+1] end -- eight directions, 30 tokens directions={-1,0,1} for x in all(directions) do for y in all(directions) do if x!=0 or y!=0 then -- 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>Why not use trigonometry?</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>-- four directions, 16 tokens for i=0,1,0.25 do local x,y=cos(i),sin(i) end -- eight directions, 24 tokens for i=0.125,1,0.125 do local x,y=flr(cos(i)+.5),flr(sin(i)+.5) end</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> https://www.lexaloffle.com/bbs/?tid=33322 https://www.lexaloffle.com/bbs/?tid=33322 Tue, 19 Feb 2019 10:00:13 UTC Lighthouse <p> <table><tr><td> <a href="/bbs/?pid=61430#p"> <img src="/bbs/thumbs/pico8_lighthouse-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=61430#p"> lighthouse</a><br><br> by <a href="/bbs/?uid=29213"> tobiasvl</a> <br><br><br> <a href="/bbs/?pid=61430#p"> [Click to Play]</a> </td></tr></table> </p> <p>A tweetcart I made to teach myself what sin() and cos() actually do. I never took trigonometry.</p> https://www.lexaloffle.com/bbs/?tid=33117 https://www.lexaloffle.com/bbs/?tid=33117 Fri, 01 Feb 2019 09:54:16 UTC Patrick's Picochallenge (tweetweetcart) <p> <table><tr><td> <a href="/bbs/?pid=61429#p"> <img src="/bbs/thumbs/pico8_picochallenge-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=61429#p"> picochallenge</a><br><br> by <a href="/bbs/?uid=29213"> tobiasvl</a> <br><br><br> <a href="/bbs/?pid=61429#p"> [Click to Play]</a> </td></tr></table> </p> <p>A demake of my game <a href="https://www.lexaloffle.com/bbs/?pid=54572#p">Patrick's Cyberpunk Challenge</a> for the TweetTweetJam.</p> <p>The object of the game is to move Patrick the Leprechaun around the board and remove all 28 squares. Squares with special symbols will remove extra squares:</p> <p><a href="https://www.lexaloffle.com/bbs/files/29213/picochallenge_legend.png" target=_view_image><img style="margin-bottom:16px" border=0 src="https://www.lexaloffle.com/bbs/files/29213/picochallenge_legend.png" width=160 height=80 alt="" /></a></p> <p>Move Patrick to a square using the arrow keys. Note that you can (and sometimes must) move diagonally by pressing two arrow keys simultaneously.</p> <p>Puzzles might be impossible to solve, and the game doesn't recognize if you win or lose. If the screen is empty except for Patrick, you win! If you have no legal moves, you lose and must restart the game manually.</p> <p>Source 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>poke(24364,3)x=&quot;웃&quot;v=&quot;▥&quot;h=&quot;▤&quot;b={}for i=1,36 do b[i]=i%9&lt;2 and&quot;&quot;or&quot;█&quot;end for i in all{&quot;⬆️&quot;,&quot;➡️&quot;,h,&quot;⬅️&quot;,&quot;⬇️&quot;,v,x}do repeat f=1+flr(rnd(36))until b[f]!=&quot;&quot;b[f]=i if(i==x)p=f end::_::t=btnp cls()for i=0,35 do k=b[i+1] ?k,i%9*8,6*flr(i/9)+20,k==x and 11 or 7 end b[p]=&quot;&quot;q=p if(t(0))q-=1 if(t(1))q+=1 if(t(2))q-=9 if(t(3))q+=9 if(b[q]and#b[q]&gt;0)p=q t=b[p] if(t==&quot;⬆️&quot;or t==v)b[p-10]=&quot;&quot;b[p-9]=&quot;&quot;b[p-8]=&quot;&quot; if(t==&quot;⬇️&quot;or t==v)b[p+10]=&quot;&quot;b[p+9]=&quot;&quot;b[p+8]=&quot;&quot; if(t==&quot;⬅️&quot;or t==h)b[p-10]=&quot;&quot;b[p-1]=&quot;&quot;b[p+8]=&quot;&quot; if(t==&quot;➡️&quot;or t==h)b[p+10]=&quot;&quot;b[p+1]=&quot;&quot;b[p-8]=&quot;&quot; b[p]=x flip()goto _</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>&quot;Unminified&quot; source 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>--patrick's picochallenge --by tobiasvl --use 64x64 resolution poke(0x5f2c,3) --generate a blank board of --empty █ tiles board={} --the board is 7x4, but we --represent it as a one- --dimensional table. we also --represent it as 36 tiles, ie --a 9x4 grid, with two columns --of &quot;&quot; on each end, so ⬅️➡️▤▥ --tiles don't wrap around when --they destroy adjacent tiles. for i=1,36 do if i%9&lt;2 then --first and last column board[i]=&quot;&quot; else board[i]=&quot;█&quot; end end --populate the board with tiles --and the player's starting tile tiles={&quot;⬆️&quot;,&quot;➡️&quot;,&quot;▤&quot;,&quot;⬅️&quot;,&quot;⬇️&quot;,&quot;▥&quot;,&quot;웃&quot;} for i in all(tiles) do --find a random tile which is --not in the &quot;invisible&quot; outer --columns repeat position=1+flr(rnd(36)) until board[position]!=&quot;&quot; board[position]=i --remember the player if (i==&quot;웃&quot;) player=position end --game loop ::_:: cls() --print the board --here's the only obfuscation i --left in: here i loop from --0 to 35, instead of 1 to 36, --because then i only need to --do i+1 once instead of i-1 --twice. for i=0,35 do local tile=board[i+1] --the player is green if tile==&quot;웃&quot; then color(11) else color(7) end --properly centering the board --takes up too many characters --so just an approximation print(tile,i%9*8,6*flr(i/9)+20) end --erase the player character --and destroy the tile board[player]=&quot;&quot; --remember the player's position new_player=player --move the player's position if --an arrow key is pressed if (btnp(⬅️)) new_player-=1 if (btnp(➡️)) new_player+=1 if (btnp(⬆️)) new_player-=9 if (btnp(⬇️)) new_player+=9 --if we're still inside the --board proper, ie the tile isn't --nil (outside the board) or &quot;&quot; --(the border columns), make --that the new position. if board[new_player] and board[new_player]!=&quot;&quot; then player=new_player tile=board[player] end --if the player lands on one of --the special tiles, destroy --adjacent tiles if tile==&quot;⬆️&quot; or tile==&quot;▥&quot; then --destroy three tiles above board[player-10]=&quot;&quot; board[player-9]=&quot;&quot; board[player-8]=&quot;&quot; end if tile==&quot;⬇️&quot; or tile==&quot;▥&quot; then --destroy three tiles below board[player+10]=&quot;&quot; board[player+9]=&quot;&quot; board[player+8]=&quot;&quot; end if tile==&quot;⬅️&quot; or tile==&quot;▤&quot; then --destroy three tiles left board[player-10]=&quot;&quot; board[player-1]=&quot;&quot; board[player+8]=&quot;&quot; end if tile==&quot;➡️&quot; or tile==&quot;▤&quot; then --destroy three tiles right board[player+10]=&quot;&quot; board[player+1]=&quot;&quot; board[player-8]=&quot;&quot; end --put the player in the new --(or old!) position board[player]=&quot;웃&quot; --loop flip() goto _</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> https://www.lexaloffle.com/bbs/?tid=33116 https://www.lexaloffle.com/bbs/?tid=33116 Fri, 01 Feb 2019 08:53:03 UTC Alt+arrow key moves cursor in code editor <p>Not a big problem, but probably easy to fix.</p> <p>If you're in the sprite editor and press Alt+Left to go to the code editor, the cursor will move one space to the left.</p> <p>The same happens if you're in the music editor and press Alt+Right; the cursor will move to the right.</p> https://www.lexaloffle.com/bbs/?tid=33113 https://www.lexaloffle.com/bbs/?tid=33113 Thu, 31 Jan 2019 23:26:26 UTC CTRL+G in code editor skips occurences <p>Here's a strange bug I found. If you write something like this in the code editor:</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>rectfill(0,0,5,5)</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 you search for 0 with CTRL+F, it will highlight the first 0. If you then press CTRL+G, however, it will fail to find the second one. The same goes for the 5.</p> <p>From my testing, this seems to only happen with every other occurence. If you search for 0 here:</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>rectfill(0,0,0,0)</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <p>then CTRL+G will only highlight the first and the third argument.</p> <p>I've only had it happen with function arguments, and only with single-character arguments; single-letter variable names also have this problem. Putting a space after the commas also makes it behave properly.</p> <p>It's a bit of a problem when writing tweetcarts where you have little whitespace, short variable names, and want to find variables or number literals to replace while optimizing :)</p> https://www.lexaloffle.com/bbs/?tid=33112 https://www.lexaloffle.com/bbs/?tid=33112 Thu, 31 Jan 2019 23:23:14 UTC sunrise <p> <table><tr><td> <a href="/bbs/?pid=61403#p"> <img src="/bbs/thumbs/pico8_sunrise-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=61403#p"> sunrise</a><br><br> by <a href="/bbs/?uid=29213"> tobiasvl</a> <br><br><br> <a href="/bbs/?pid=61403#p"> [Click to Play]</a> </td></tr></table> </p> <p><a href="https://twitter.com/Spug/status/1090559155436511232">Tweetcart</a>, 272 chars.</p> <p>Grid based on <a href="https://www.lexaloffle.com/bbs/?pid=24283#p">tweetcart</a> by <a href="https://www.lexaloffle.com/bbs/?uid=10844"> @electricgryphon</a>.</p> https://www.lexaloffle.com/bbs/?tid=33108 https://www.lexaloffle.com/bbs/?tid=33108 Thu, 31 Jan 2019 18:30:57 UTC Can't use DEL key on the first character <p>In the code editor, if you place the cursor at the very first character in the file, the delete key does nothing.</p> <p>Expected behavior: It should delete the character under the cursor.</p> https://www.lexaloffle.com/bbs/?tid=33090 https://www.lexaloffle.com/bbs/?tid=33090 Wed, 30 Jan 2019 19:19:34 UTC Parsing errors for escaped backslash <p>There seem to be some bugs with the parsing of an escaped backslash:</p> <p><a href="https://www.lexaloffle.com/bbs/files/29213/PICO-8_000.png" target=_view_image><img style="margin-bottom:16px" border=0 src="https://www.lexaloffle.com/bbs/files/29213/PICO-8_000.png" width=160 height=160 alt="" /></a></p> <p>So, two issues:</p> <ol> <li>The syntax highlighter doesn't stop parsing the line as a string if it encounters two backslashes in a row, although it will run without problems</li> <li>...except when used as an argument to the ? shorthand function, which will give an error</li> </ol> <p>It's not in the screenshot, but if there are any trailing characters after the double backslash, the syntax highlighter will be happy again.</p> https://www.lexaloffle.com/bbs/?tid=33089 https://www.lexaloffle.com/bbs/?tid=33089 Wed, 30 Jan 2019 19:17:55 UTC The Zen of PICO-8 <p>I watched <a href="https://www.lexaloffle.com/bbs/?uid=1"> <a href="https://www.lexaloffle.com/bbs/?uid=1"> @zep</a></a> <a href="https://www.lexaloffle.com/bbs/?tid=31634">talk about PICO-8 and cozy design spaces</a> again today, and it really resonates with me. I work as a developer, and I really hate all the cruft we have to deal with. Like the web! God, I hate the web and what it has turned into.</p> <p>I really like stuff like <a href="https://www.python.org/dev/peps/pep-0020/">Zen of Python</a>, programming aphorisms, principles like DRY, POLA, KISS, etc. I watched through the video and tried to write down some nuggets of wisdom. Apologies to <a href="https://www.lexaloffle.com/bbs/?uid=1"> <a href="https://www.lexaloffle.com/bbs/?uid=1"> @zep</a></a> if he feels misrepresented in any of these quotes.</p> <h2>Manifesto</h2> <ul> <li>Small things matter</li> <li>Discard and move on (the &quot;license to abandon&quot;)</li> <li>Inhabit boundaries</li> <li>Follow a new path</li> <li>Ignore the real world</li> <li>Work in a cosy place</li> </ul> <h2>The Zen of PICO-8</h2> <ul> <li>When you type cls() you're not just clearing the screen, you're clearing your mind and your soul, preparing for something new.</li> <li>You're among friends.</li> <li>Value design over content.</li> <li>Be playful.</li> <li>Focus on what's important to you and throw away what's not important.</li> <li>Confront cute problems.</li> <li>Don't be afraid to do anything wrong.</li> <li>Make something for the love of making.</li> <li>Just make something, capture the concept, and then move on to something else.</li> </ul> <h2>The Zen of Zep?</h2> <p>And then some words of wisdom that aren't necessarily tied to PICO-8, or directed at us as PICO-8 users.</p> <ul> <li>Software sucks. It's terrible.</li> <li>The tools shape the work.</li> <li>Remove the semantics.</li> <li>No magic.</li> <li>Avoid minification.</li> <li>People don't know what they want.</li> <li>Fantasy consoles are impressionist hardware.</li> <li>The tool has the manifesto inside itself.</li> <li>A tool sometimes invites you to make something for it.</li> <li>Machines can be cute.</li> <li>The thing that makes a console a console is not the hardware, it's everything else.</li> </ul> https://www.lexaloffle.com/bbs/?tid=32928 https://www.lexaloffle.com/bbs/?tid=32928 Thu, 17 Jan 2019 20:56:19 UTC Lights Out (tweettweetcart) <p> <table><tr><td> <a href="/bbs/?pid=59034#p"> <img src="/bbs/thumbs/pico59036.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=59034#p"> Lights Out (tweettweetcart)</a><br><br> by <a href="/bbs/?uid=29213"> tobiasvl</a> <br><br><br> <a href="/bbs/?pid=59034#p"> [Click to Play]</a> </td></tr></table> <br /> The classic Lights Out puzzle game for the <a href="https://itch.io/jam/tweettweetjam">TweetTweetJam</a>. The source code fits in <a href="https://twitter.com/Spug/status/1063201690982248448">two tweets</a> (560 characters).</p> <p>Your goal is to turn all the lights off. However, each light toggles all four adjacent lights as well.</p> <p>I didn't have room for different levels, but there's two modes:</p> <ul> <li>Lights Out Classic: Lights toggle between off and on (red). Best solution is 15 moves.</li> <li>Lights Out 2000: Lights toggle between off, red and green. Best solution is 18 moves.</li> </ul> https://www.lexaloffle.com/bbs/?tid=32251 https://www.lexaloffle.com/bbs/?tid=32251 Thu, 15 Nov 2018 18:15:34 UTC Meteor Night <p> <table><tr><td> <a href="/bbs/?pid=56746#p"> <img src="/bbs/thumbs/pico8_meteor_night_2_0-2.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=56746#p"> Meteor Night</a><br><br> by <a href="/bbs/?uid=29213"> tobiasvl</a> <br><br><br> <a href="/bbs/?pid=56746#p"> [Click to Play]</a> </td></tr></table> </p> <p>This is a small game based on the <a href="http://famicase.com/11/softs/39.html">Famicase &quot;Meteor Night&quot;</a> for the &quot;Chill&quot;-themed <a href="https://itch.io/jam/a-game-by-its-cover-2018">A Game By Its Cover jam 2018</a>. (<a href="https://tobiasvl.itch.io/meteor-night">itch.io page here</a>)</p> <p><strong>Instructions</strong></p> <p>There's a meteor shower coming, and you take your friend or date stargazing after dark. They've never gone stargazing before, so you'll have to point out any meteors you see to your friend or date.</p> <p>It's chilly outside, so make sure you keep your friend or date warm. If they see a beautiful meteor, they will forget the cold for a little while; if they keep missing meteors you point out, they'll grow frustrated and cold.</p> <p>Eventually, though, they'll probably want to go home. Maybe to your place?</p> <p><strong>Controls</strong></p> <p>Using a mouse is recommended for precision and speed. Don't miss the meteors!</p> <ul> <li>Mouse / arrow keys: Look around the sky</li> <li>Left click / X: Point out meteor</li> </ul> <p><strong>Chill/Chill Out</strong></p> <p>Press O on the title screen to toggle between Chill mode and Chill Out mode.</p> <p>In the default Chill mode, your friend or date will get colder with time. Point out as many meteors as you can to get a new high score.</p> <p>In Chill Out mode, it's a warm, summer night; you won't get cold, and can just chill out as long as you want to. High score is not tracked in this mode.</p> <p><strong>Credits</strong></p> <ul> <li> <p><a href="http://tinycartridge.com/post/5140085690/tiny-cartridge-x-ashley-davis-in-famicase-2011">Title screen and cartridge art</a> by Ashley Davis, based on an idea by Eric Caoili and JC Fletcher of Tiny Cartridge, used with permission.</p> </li> <li>Music: &quot;Arpument&quot; from <a href="https://www.lexaloffle.com/bbs/?tid=2619">Nine Songs in PICO-8</a> by Robby Duguay, used under CC BY-NC-SA 4.0.</li> </ul> https://www.lexaloffle.com/bbs/?tid=31893 https://www.lexaloffle.com/bbs/?tid=31893 Sun, 16 Sep 2018 16:52:29 UTC