Flight! Finesse! Friendship?!
Kaito is on a mission. He's got a brand-new pair of jetboots. He's snuck himself a pass to the finest spacegate network of 30XX. And if he can reach the other side…
…he might even make a friend.
It's been a while, but I'm very pleased to present my second PICO-8 release! This one is very different to Signed by '89, with a whole different genre and set of constraints. It's the first arcade-style game that I've made, and I learned a lot.
How to play
Fly through gates with ← and → arrow keys.
Enjoy, and looking forward to your feedback!
this game is simple, but surprisingly very fun! the mechanics are really easy to understand, but even with an easy mechanic it still gives me a challenge in each waves and the vibe is very arcade-y. fun, simple, love it! great game pal!
Thanks for the kind words, everyone! That really means a lot to me. I hadn't heard of the two-button jam, but that does sound up my alley. :-)
No current plans to extend the game; in the course of making it I experimented with various other features, but nothing seemed to beat just a short intense race through eight waves. But who knows, inspiration may yet strike!
> How did you manage to display that multicolored text?
For the two-tone text on the title screen, I draw it once, then use
clip() to clip to half-way down the text, then draw it again in a different colour. Simple but effective! (Oh, and I do the recolouring with
pal() so that I can still get white on the button prompt.)
draw() function for the title screen looks like this:
local draw = function() cls() app.renderer.render_starfield(starfield) app.renderer.render_ship(player) app.renderer.render_particles(particles) app.renderer.render_title(title) local start_func if app.constants.special_capture then start_func = function() app.utils.print_center("\fca game by tim knauf",63,90) end elseif stats then app.utils.print_center("\fdlast:\fc"..app.strings.score(stats.score).." \fdbest:\fe"..app.strings.score(dget(0)),63,82) start_func = function() app.utils.print_center("\fcpress \f7❎\fc to play again",63,90,nil,4) end else start_func = function() app.utils.print_center("\fcpress \f7❎\fc to start",63,90,nil,4) end end --cheapass two-tone clip(0,0,128,93) start_func() pal(12,14) clip(0,93,128,128-93) start_func() pal() clip() end
As you can see, I never got around to moving it to a utility method!
Thanks for the honesty, and nice workaround for a nice effect! I quickly wrote a small function, maybe somebody might find it useful. Have fun with it!
function print_two_tone(t,x,y,c1,c2,opt_height) local height=opt_height or 3 print(t,x,y,c1) clip(0,0,127,y+height) print(t,x,y,c2) clip() end
I added an optional parameter for the height of the "split".
This is so smooth, and the music is great! I have been listening to it on the "Game over" screen for a while now.
At first, I didn't even realize you can "die", I was so much in the flow flying through the gates. Almost managed to get through 8 waves on the first try.
A magnificent game. I got to level 7 several times before finally surviving all the way to the end.
I'd love to see a version of this with the music tied to the gates - so if you miss a gate, you also miss a note. But that might either make the music or the gameplay less interesting, and the music you do have here is wonderful.
Or, for the same effect but simpler, adjust the number of instruments heard based on the current multiplier.
Glad you liked the music! I really really enjoyed making it. I've learned a little bit of piano since last time I composed with PICO-8, and I think that helped with working out the composition.
> I'd love to see a version of this with the music tied to the gates - so if you miss a gate, you also miss a note.
I had a very similar thought! I love music/rhythm games, and once the idea occurred to me, I tried so hard to make the game fun with the gates and music synced. There's even still a lot of code in the game related to that! I tried it so you'd hit the gates on the beat, I tried making it so you'd need to press the buttons on the beat, I tried triplet gates, I tried syncopated gates, I tried mixing all that up together, aaaaaand... in the end, I just had to admit to myself that it just didn't feel very fun to play that way. :-(
I'm still not sure why not. My theory is that there's a kind of interplay between the music and the gate-hitting gameplay that for this game, is actually better when it comes in and out of phase. One day I would love to solve this, and make a proper rhythm arcade game, though! (I really admire the old game Rez for this.)
[Please log in to post a comment]