i've been thinking about something for pico-8 that could be nice: Having a kind of online high score rankings by game on the website.
Let's say the easiest way to do it first would be just in the web player on that site with logged in users.
API can be as minimal as score(value). The advantage of the opaque function is that it can redirect score anywhere (online db for webplayer, local file when ran from pico-8 sdk, silently ignored...)
This kind of feature is cool as it gives game dev more feedbacks on their games as well as increasing their replay value. Plus the community will benefit from that as it gives another axis to consolidate it.
I'm aware it is not that trivial to implement and it requires some work but I love the idea!
New Version 1.1.1:
Oops I introduced a bug with previous version. Fixed!
As I was asked several times, I added options to allow manual fire and non inverted Y axis.
I also slightly lowered the laser sound as it was a bit annoying (It is still but lower :D)
I finally found the time to finish my shooter.
Here is Hyperspace, a 3D shooter with endless enemy waves. Try to beat your score during your last stand! Dodge through asteroids, resist enemy waves and defeat the bosses.
The barrel roll (with X) allows you to be untouchable for a short period of time.
The time is accelerating continuously so kill all enemies the fastest possible to get the best score.
I struggled a lot with token limit and I couldnt implement all i wanted. The code is messy as hell as I had to hardcode everything to save tokens
More sfx/music can still be added if I find some more tokens.
Looking forward to seeing your feelings about the game! And dont hesitate to share your highscores!
PS: The webplayer may have some slowdowns from time to time, the game in pico 8 client should run at a stable 30fps
This is my first contribution and it is not a game. It is a small terrain renderer I made to see what was possible to do with pico 8 and how far.
The terrain definition is based on height maps of 32x32. The cartridge goes with 4 different maps.
The rendering has two modes:
a real time one, sort of voxel based that allows to move camera/lighting
an actual rasterization that is computed in background when the camera/lighting stays still
arrows: in camera mode, move the orbital camera, in lighting mode, move the directional camera
when in camera mode, pressing x/v while moving allows zooming in/out
z/c: switch camera / lighting mode
a/q: hide/show info (current mode, mem and cpu usage)
_ w: access to the menu to change settings
As it is a technical demo/test there's not much to do except moving around. you can play around with settings to change maps, palettes. I also included 5 different filters to dither lighting and terrain.
I have optimized quite a lot but there is still some room. The stable 30fps when moving near terrain is hard without implementing occlusion (because it is limited by rectfill) which will eat a lot too.
I've cleaned the code a bit so that it should be readable.
I dont know if I will work on this again later on but possible upgrades can be:
ingame height map editor
free camera and collision with terrain
rendering improvement (shadow cast, sun and specular on water...)
_ animation in renders (waves, birds, clouds...)
hope you'll enjoy !
added perspective correction in rasterizer
optimize rasterizer (back face culling)
_ somes fixes in dithering sprites
Hi, I was trying to cache an entire frame in ram to be able to blit it later on on screen.
However the user defined memory is not big enough to hold an entire frame (lacks 1kB)
Fair enough, as I was not using sfx at all, i tried to overlap on that memory but for some reasons some bytes in that area seem to be masked and cannot take value greater than 0x7F
So my question is: Is there a place in RAM where i can safely read/write the extra 1024 bytes i need to cache an entire screen frame ?