Log In  
Follow
JTE

Important note: Due to the multi-cart nature of this game, do not use the "reset cart" menu option. All that will do is corrupt the data loaded from another cartridge and make the whole system crash.

Cart #58338 | 2018-10-24 | Code ▽ | Embed ▽ | No License
12

A massively multi-cart Mario Party type of game. Currently an early proof-of-concept tech-demo type of thing and not actually "playable".

The character select can be huge because every character exists in its own "sprite blueprint" cart and gets chainloaded compressed into RAM when the game starts, followed by the game board or game mode (eg. a minigame select free-play menu) cart which drives the rest of play. The board/mode itself (and any minigames it loads into) decompress only the specific sprites they need into the active sprite sheet for use in play. Some minigames might only use the sideways character sprites because they're 2D. Some might use tiny Jelpi-style sprites for players. Some might opt to use player portraits instead of world sprites. And so on.

The sprite blueprint system supports multi-part sprites (in this case Nora's head is separated from her body in all but the portrait sprites) made of parts which are independently offset, vertically and horizontally flipped, and palette-remapped (including primary and secondary "special colors" which might be remapped for duplicate players or special events), and all that data is transferred between carts so the sprites, colors, and character names are consistently recreated.

12
13 comments



I'm about to make a dozen blind assumptions based on this old Tamagotchi device, the original Digimon Digital Monsters Fighting Virtual Pet. I know very little about electronics and don't currently own one of these devices to do any tests on, so please excuse my ignorance if I'm completely wrong.

Those two metal bits on top? They're GPIO pins, essentially. If you're lucky, it's likely even 3.3 volt and won't need to be converted up or down to utilize it.

Because they're oriented vertically, the top pin will always connect to the matching top pin of the partnered device. Therefore, instead of using one pin as an input and the other as an output and just hoping the clock speeds of both devices match (which would require a horizontal pin layout so that the input pin of one device connects with the output pin of the other and vice versa), they probably use an i2c method of communication. https://learn.sparkfun.com/tutorials/i2c

Therefore, if you carefully inspect the transmissions between two of these devices (which should be simple, considering the pins are spring-loaded and would easily compensate for a wire being shoved between them), figure out which pin is the clock and which pin is the data, and what kind of data is being transmitted...

Theoretically, you should be able to develop a virtual pet on Pico-8 which can utilize the GPIO pins of a Pocket CHIP or Raspberry Pi device to fight a Digimon. And win. How cool is that? :3

2
4 comments



-- generate tile
srand(0x1b0f)
for y=0,7 do
 for x=8,15 do
  local c=flr(x/2)+y
  if(x%2==0) c+=rnd(2)-1
  sset(x,y,c%4)
 end
end

-- set map tiles
for y=0,15 do
 for x=0,15 do
  mset(x,y,1)
 end
end

-- display map
local t=0
function _update()
 t+=1
end
function _draw()
 palt(0,false)
 for i=0,3 do
  pal(i,flr(t/4)%4==i and 12 or 1)
 end
 map(0,0, 0,0, 16,16)
end

Cart #41801 | 2017-06-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

2
2 comments



For literally-years now I've had this comment at the top of my Kid Radd cart, right under the label comments:

--__ext__
--pal[1]=0x243566
--pal[6]=0xc0c2e3
--pal[12]=0x576dff
--pal[14]=0xff5e98

Although more recently, Pico-8 has become able to properly handle standard Lua multi-line comments, so that could be changed to a cleaner block with a defined ending, like this:

--[[__ext__
pal[1]=0x243566
pal[6]=0xc0c2e3
pal[12]=0x576dff
pal[14]=0xff5e98
]]

These comments are entirely unused, waiting for some kind of extension format to come along and read metadata to make modifications to the machine before the cart runs as normal. With the theory being that the block of comments could be "cut out" of the script and run as their own, separate, "configuration script" with reasonable ease, using an extension API of some sort. In this case, the configuration script expects to be given an array named "pal" (no relation to the Pico-8 command of the same name) which is pre-populated with Pico-8's default palette, and then internally gets read back to set the screen palette before the game script even begins.

However, if such extensions [i]were

[ Continue Reading.. ]

0 comments



Instead of just giving carts the ability to replace colors in the palette with other colors outright, I propose a totally dumb alternative:

A new screen rendering mode which does linear blending on the image by shrinking the 128x128 screen area to 64x64, turning this:

into that:

Games would have to be designed as 64x64 to make proper use of this of course (unlike my test case there...)

The basic idea is: To make a new color, all you need to do is color each pixel in a 2x2 area with different colors you want to blend together to make the new one. Then when the screen gets scaled down, all those pixels will get combined, making a huge number of new shades and hues available without just letting you change Pico-8's base palette colors outright.

Now excuse me while I study how composite video cables work so I can figure out CGA Composite Mode rendering to make 16 colors out of 4...

2 comments



When I made Nora's Mouse Chase! for p8jam2 last month, it left me unsatisfied. So I started work on my own 2D game engine again. At first I was making it from scratch, but then I realized all the C libraries I had gathered made up basically the same thing as LÖVE anyway, so I switched to using that as the base. There were some other snags and I've had to basically start over a few times, but I'm working out the details as I go.

I don't have anything to show for my work yet, so I don't know why I'm posting... And I certainly don't know why I'm posting it here, of all places. Maybe I just really adore this quiet little corner of the Internet.

Anyway, I've given this project the working name of Nora-Net. The goal? A decentralized online multiplayer game engine and service, capable of supporting at least 100 players per server (although ideally somewhere around 1024 players would be amazing), where the game itself can be edited cooperatively online by admins who can upload new scripts and sprites on the fly and build the world together.

In one sense, the continuing efforts where pico-hotel left off. In another, a decent replacement for BYOND and Second Life, with realtime action gaming in mind. I want Nora-Net to be able to support puzzle games, platformers, and RPGs all just as effortlessly, with a Bitcoin Wallet type of client-side account registration and identification to access server-side save data which servers can share with eachother if set up to allow it.

I want this to be something I can go to as my game engine of choice for all my future projects, an engine capable of virtually any 2D game imaginable, supporting singleplayer, multiplayer, and massively multiplayer, with optimized renderig and networking behind the scenes. I want to run a Mii-like character creation service on it which exports finished character head sprites in a variety of sizes, styles, and poses for other games on the engine to use with their own body sprites to make a unified-yet-customizable avatar for you to take with you everywhere, whether that head is getting tacked on to a space marine or used as a portrait when you win or lose a round of Puzzle & Flower Land 3.

This is too big of a project for me to tackle alone, and I know it. I also have no income and approximately two years left before my life will almost certainly take a turn for worse. But what the hell, let's see where this road takes me anyway. It'll be fun.

2
2 comments




Cart #21677 | 2016-05-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
69


Overworld Controls:
◁ ▷ △ ▽ - Move
Ⓧ - Interact, continue dialog
Ⓞ - Speed up dialog

Combat controls:
◁ ▷ △ ▽ - Change selection
Ⓧ - Activate
Ⓞ - Cancel / Back

Standard Pico-8 keyboard assignments:
Arrow keys = ◁ ▷ △ ▽
Z,C,N = Ⓞ
X,V,M = Ⓧ
P,Enter = Pause menu (useful for resetting the game to play it again)

For the best experience, take the time to try interacting with all the objects, too!

[ Continue Reading.. ]

69
38 comments



Here's a recent interesting project which is completely unrelated to Pico-8.
http://superpowers-html5.com

It's an HTML5 game engine. More importantly, it's a free and open-source web-based development IDE. That is to say, instead of using Superpowers IDE to make Unity-like Superpowers games, you can add a plug-in to your Superpowers server to add additional project types, including (officially supported, in fact) LÖVE games and static webpages.

Superpowers is a real-time multi-user collaborative development environment unlike anything I've ever seen before, albeit still very much in its infancy. We should seriously consider adding Pico-8 cartridge support to it, as an alternative to using Pico-8's built-in IDE.

It would take a bit of effort, but with the result, you'd basically have the ability for any number of developers to simultaneously log onto a hosted Superpowers server, upload scripts and sprites, and download and run the resulting combined cartridge from the server in real time.

Superpowers is pretty much designed for small teams working together on game jam entries with strict time limits, getting all the work together immediately in real-time as individual files are changed and saved, without having to worry about committing and merging changesets like you would with Git or other collaboration methods.

... I don't know, just a passing thought. Probably wouldn't be worth it, considering how difficult it would be to manage Pico-8's arbitrary limits in a development environment meant to handle limitless modern PC games.

0 comments



Happy birthday to me, I guess.

1
1 comment



Zep made me an adorable little plastic coaster commemorating Frog Home.

So I turned the design back into a little Pico-8 cart.


Sorry it's so barebones, I just wanted to share with everyone. An amusing way to upscale a little sprite, I guess?

7
2 comments



Cart #17988 | 2015-12-22 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
6

Cart #17974 | 2015-12-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
6

Just a "music" cart.
It shouldn't desynch even if the web client lags because the floating text spawns the music.

6
1 comment



Cart #16965 | 2015-11-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
7


Here's my generic "Look everyone! I made raindrops!" cart, since the theme is rain.

If it sounds absolutely horrible, don't use the web player. The web player skips frames, which does not bode well when the raindrops themselves are playing the music.

If it still sounds absolutely horrible, I'm sorry for being terrible at music. I will try harder next time.

7
8 comments



Cart #froghome-0 | 2023-01-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
106


Press Z to frog. Go do frog stuff.

This is now a complete game and solvable. It'll tell you when it's over.

Puzzle games are meant to have solid mechanics, so unless a frog starts floating, you're probably not actually stuck and it's probably not a bug.


Pico-8 Jam 1 version
Cart #16983 | 2015-11-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
106

Unrefined, but still "finished" version
(May contain bugs)

Cart #16979 | 2015-11-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
106


[ Continue Reading.. ]

106
43 comments



I've been using the Pico-8 for a while now, since it's pretty much everything I've ever wanted in a "fantasy console", and I would have made one almost exactly like it (albeit with a larger palette and looser limits, perhaps...) if and when designing and programming one myself. So to skip that entire process and jump straight into making nifty little widgets and toys for this device... Well it's been quite a dream come true!

That said, Pico-8 is far from being without issues, and more keep cropping up the more I play with it. So, outside of bug reports, here's a small laundry list of things I "want", or would be nice to have at some point...

Note: This is a blog post, an off-the-cuff rattling of random things I personally would desire. I'm not expecting it to be directly acted on or hotly debated or anything like that, this just keeps track of what I want so I don't forget, you know?

  • The ability to call non-system functions without arguments in the same way as system functions, eg. as "run" instead of "run()". Maybe before trying to process the input as a Lua script, it should try to see if there's a global variable by that name first, and if that variable is a function, call it?! There's no reason to make such a distinction in most cases.

[ Continue Reading.. ]

5 comments



So, today I made a Pico-8 paint program... in Pico-8.

You might be wondering why I would do such a thing, since the Pico-8 development platform comes with a built-in paint program that's almost exactly the same, except it can use the mouse instead of clunky keyboard controls. The simple answer is... This is the beginning of what might be the biggest thing I'm likely to do on the Pico-8. Ever.

Imagine a Pico-8 game shared by a Dropbox folder or similar system, where every user gets their own character and their own room, and every object in the game world was uniquely painted up by users, held, given, and placed in those rooms to furnish them with things, and all of it was maintained by a slow, asynchronous system of a multitude of carts, set up in such a way that multiple copies of the game being run by tens of players should never cause data collisions.

Welcome to Pico Hotel, an oldschool collaborative world-building and interaction experience.

12 comments



Cart #16507 | 2015-11-10 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA


Sorry for your eyes. I am so bad at math.

3 comments



You know how in "Kong" they called Mario "JumpMan" because he jumped over things? Well I call this little guy "RunMan" because... Well, you'll see!

Cart #16486 | 2015-11-10 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
17

17
11 comments



Cart #16461 | 2015-11-09 | Code ▽ | Embed ▽ | No License
4


(Warning: It takes more effort to lose than it does to "win" endlessly.)

This is a little something I threw together specifically to make into a microgame for the PicoWare collab project

I may have gotten a little carried away with the music, it's way more awesome than the gameplay at this point...

4
7 comments



Here's a funny little collaboration project that I'm afraid only works offline by nature. I've set up a system to pass data back and forth between carts for a "WarioWare Inc."-style micro-game system.

If you have Pico-8 installed, you can download the current API / project and microgames from here: picoware-inc_2015-11-19_2.zip
You're all set to play and/or make your own microgames, microgame loaders, etc. Have fun!

Starter pack microgame list:

  • Jelpi by Zep
  • ennuigi by joshmillard
  • Simon Says by Connorses
  • pick the nose booger by Connorses
  • Tech Exercise by Connorses based on Graphics Exercise by Mason
  • Puzzlecave - Raiders Of The Lost Potato by hackefuffel
  • Endless Train by le_gars

Currently missing features:

  • "Skill" ramping. The microgames never get harder, only faster.
  • The interface is entirely barebones right now. It could use some art assets, fuller music, etc.

[ Continue Reading.. ]

13
23 comments



Cart #16385 | 2015-11-08 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3


3D week? I think we're skipping a big technological step going straight to filled and dithered polygons...
I made a triangle out of lasers, I guess.

3
1 comment





Top    Load More Posts ->