Hi,
I've made two games in pico-8 until now and because pico-8 is meant to be both a fantasy game system and a development environnement, I wanted to make sure that my code could be read inside the pico-8 editor.
The problem I came across is that lua is highly verbose. That means that writing a simple if else statement takes almost all of the screen width. Since pico-8 already include some shorthands such as += or -=, I though we could have some more to reduce the number of characters used in code. This could be useful for future twitter jam eventually.
so I've read a bit of the lua doc to know which keywords and which tokens are already used:
--used keywords
and break do else elseif end
false for function goto if in
local nil not or repeat return
then true until while
--used tokens
+ - * / % ^ #
& ~ | << >> //
== ~= <= >= < > =
( ) { } [ ] ::
; : , . .. ...
--token added by pico-8
+= -= *= /= %= != ?
|

re: Reload/Run/Restart cart: Ctrl+R
Not sure if this is a reported bug, or just something I'm doing wrong, but it appears that CTRL-R is not "Reloading" the file, but rather re-running the current one in memory. (Handy if you use an external editor)
I'm using "pico-8_0.1.8_i386.zip" on a linux system.

Here's a 7500 word dictionary cart for making word games and whatnot. It contains the most common 3-6 letter words according to wiktionary.com, including proper names. The loader is 264 tokens, and the data is 11317, stored over the full map (including shared gfx), plus the last 44 SFX. So there are just 128 sprites and 20 SFX spare. The 5 most common and 10 least common words on the list are:
THE AND THAT WAS HIS RADIUM BAWL LINTEL WAFER WELTER AUNTY OPTICS SIKH LIL BARB |
Technical details..
The data is generated using a convoluted toolchain process, that I'll post later on if I find time to organize it into something useful.
The compression works by enumerating every possible word in order of word size first, and then alphabetical order. So, A is 0, B is 1, AA is 26, and so on. This means that to store the whole dictionary, only the distances between each word's index is needed. There are many clusters of close words (e.g the distance between CAN and CAP is only 2), so the distances are sorted into range categories depending on how many bits are needed to store each range. Repeated categories are common and so can be encoded with a single bit -- otherwise a 3-bit value is used to store the category for each distance. The encoding utility greedy-searches sets of 5 category bit-lengths and a roman cypher to try to optimize the encoded size, which saved around 1k compared with hand-optimizing the parameter set.

Got a nice surprise tonight when some friends linked me to PC Gamer where they highlighted BuzzKill and High Climb in their "Free Games of the Week" blog. Very cool...and very cool that folks everywhere are noticing Pico-8 development.
PC Gamer article:
http://www.pcgamer.com/free-games-of-the-week/
Play BuzzKill
https://www.lexaloffle.com/bbs/?tid=3877
Play High Climb
https://www.lexaloffle.com/bbs/?tid=3950


Needless to say, it's the last thing I expected to see for my game...but pretty happy to see it get some attention. And for that I need to thank everyone here for their support in making Pico-8 fun to learn and share.
Controls
arrows: validate the notes
O + up/down: adjust the synchronization offset
X + up/down: adjust the hi-speed
O + X: hide/show debug
0.2
Small update here :
- Optimizing the rendering by caching arrows gradients in the spritesheet
- Added long notes
- Added combo counter
- Notes pattern is defined by a multiline string (much like a stepfile)
0.1

I created a custom launcher for my Gnome desktops (running Fedora 23/24 and Ubuntu Gnome 14.04), but I can't get it to launch in the SPLORE mode.
The .desktop file I added to ~/.local/share/applications looks like:
[Desktop Entry] Encoding=UTF-8 Value=1.0 Type=Application Name=PICO-8 GenericName=PICO-8 Comment=PICO-8 Icon=/home/username/Games/pico-8/lexaloffle-pico8.png Exec="/home/username/Games/pico-8/pico8" Categories=Game; Path=/home/username/Games/pico-8/ |
If I change the Exec line to include the -splore option, like this:
Exec="/home/username/Games/pico-8/pico8 -splore" |
it doesn't work at all.
Any ideas?

Stars and Bucks: A fairly stressful little game of memory. Make coffee drinks from the ingredients the baristabot sends down the conveyor belt, and hope your customers rate you high enough to keep your job! "Enjoy" playing.
This is my first PICO-8 game, so, the code is pretty rough. The gameplay is somewhat intentionally stressful and un-fun -- it's simulating a job, after all.

This is my little autojumper "Floomy" bouncing its way to the top.
It features endless random platforms, pickups, deadly obstacles and highscores. My highest score is around 5200 at the moment. Can you beat it?

I was looking at some of the tweet jam carts and noticed some of them use srand() in the loop, so srand() is called A LOT to generate whatever...
I took one of those carts and am firing rnd() when the user presses a button, hoping to get a new random number each button press...but that doesn't seem to be happening.
Without a lot of debugging otherwise, it seems like rnd() spits out the same number each time (ie, not so random)
I figure this is happening because srand() is running almost constantly in the tweet code. Just for shits, I took out the srand() and that solved the rnd() problem but then totally messes up the tweet jam cart.
So I guess I need to find a way to generate a random number that doesn't involved rnd()...? Or find something that avoid having to use srand() so then rnd() will work as expected...?
Just seems like rnd() and srand() is flakey...not sure what to do and/or try.
Any thoughts or insight is appreciated.
I started this as a tweetjam contribution weeks ago, failed miserably, decided to make a full cart instead, didn't achieve the proper effect anyway, and let it dry on my hd...
then fms_cat posted POKE-8
and I felt compelled to give it another go, so here it is !
one cart off my backlog ;)

Now that O/X button glyphs were added in 0.1.7 I just had a crazy idea: what if the glyphs could be customized to be displayed differently on your PICO-8 so that they could look like the buttons on whatever controller you are using? (or whatever keyboard keys you are using)
I realize that the O and X on the current glyphs are only 3x3 and that's not a lot of room to work with...anyway, thought I'd throw the idea out there just in case :)
have a great day!
-kittenm4ster

This maybe not new for some users, but I did search the forums and I didn't found any post about this, so...
ANSI escape codes do work on Pico-8!
when using printh()
Let me explain. ANSI escape codes are sets of commands to use in terminals to "control the formatting, color, and other output options on video text terminals".
Yes. And what? (you say)
It means a lot! Look at this piece of code. It clears the screen on _init(). And it sets text to green, then resets it to the default color afterwards. (PSST... It may be useful for debugging purposes!)
function _init()
init_console()
printh("what is this? color??")
end
function init_console()
-- note: ansi escape codes
-- are case-sensitive.
-- note: printh still adds a
-- new line each time you
-- call it, even if it only
-- contains escape codes.
-- clear the screen
-- ("\27" is esc char)
-- ("\74" is capital j)
a_clear = "\27[2\74"
-- reset the cursor top left
-- ("\72" is capital h)
a_cur_tl = "\27[1;1\72"
-- set to green
a_col_gr = "\27[32m"
-- reset color to default
a_col_df = "\27[39;49m"
-- let's print some text
printh(
a_clear ..
a_cur_tl ..
a_col_gr ..
"==> console initialized..." ..
a_col_df
)
end
|

hello,
"I Have Created 50 Games in 2014". Well, certainly not me :)
But this clever guy (abagames):
http://www.asahi-net.or.jp/~cs8k-cyu/blog/2014/12/12/games-in-2014/
I think several good concept could be ported to new pico-8 games (sources are provided for the game mecanisms)





9 comments


