Hi, here are 2 games I migrated from pico-8 recent.
One principle of migration I set to myself is keep original source code as much as I can. So I made a adaptor layer to emulate pico-8 APIs, which is a big hole I falt into, some features takes me lots of my time. Luckily, they worked, almost 99% source in this 2 games kept as it is(except syntax rewrite).
Both games are full of game elements, especially comparing their code sizes. Worth to read, and study, I think.
1K-Among-Fish
This is a cute small game. Really small, as a game in 1022 Compressed Bytes of code for PICO-1K Jam.
More info:
BTW, some diferrences between pico-8 and MCA:
- diff resolution: 128x128 vs 160x120
- no class, all complex struct implement by map/array
- array in pico8 starts from 1, instead of 0. Include palette
- pico8 allow function overrides (same name but diff args)
- priority of operators, /1 > +/- in pico8, vs. |0 < +/- in MCA
- ^ → **
- self in pico map object, but Arcade noesn’t support, use static invoke instead.
- font, 4 * 6 → 6 * 7
- and many …
The adaptor (see pico8adaptor.ts)
- Most functions implemented, but not all of them emlated full features, cause there are too many feature to do, and some feature working mode are conflict with MCA’s, so I just do my best to implement them in a generate way.
- Duplicate one into your project, if you migrate another pico8 game, and then modify or implement functions lacked.
- Didn’t combin fillp() supporting in SSPR() yet, see world_race_aqee