Log In  
Follow
lulublululu

Cart #strtab-0 | 2025-07-08 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Hey everyone!

Today I present a few simple functions for managing tables!

strtab()

local t=strtab[[
 dark=false,
 red=lala,
 5=32,
 kiss={
  me,before,you,go
 }
]]

a whitespace agnostic function for converting strings into tables. numbers and booleans are cast into their respective types. this lets you write tables out in a human readable way, making it a powerful tool for data-driven development. note that because it removes all white space, there is currently no way to include strings with white space.

tblcpy()

local t2=tblcpy(t,{
 kiss={
  please=don't
 }
})
result:
{
 dark=false,
 red=lala,
 5=32,
 kiss={
  me,before,you,go,please=don't
 }
}

this function (optionally) deep copies any table, and can optionally take another table as a parameter to overwrite values into it. combined with strtab(), this can form a simple yet powerful entity and inheritance system, which I am using in a current project.

tass()

print(tass(t2))

convert a table into a whitespace-formatted string. great for debugging!

rmchr()

str=rmchr("hyuck","h")
result:
"yuck"

removes a character from a given string. this is primarily a helper function for strtab().


I hope these may be useful for you! happy pico-8'ing! 💖

0 comments



Cart #esperexile_final-0 | 2025-06-30 | Code ▽ | Embed ▽ | No License
5

What future do you believe in?

ESPER//EXILE is a vertical scrolling shmup I jammed in about 2 months. It features a light narrative and a unique HEAT system where you derive your score and shot power from grazing enemy bullets!

O: Primary fire, X: Reflect bullets (hold)

If you enjoyed the game, you can follow me at @evergreengames on Bsky and Mastodon, or at itch.io!

If you'd like to support me, you can check out my Patreon 💖

Happy gaming!

5
1 comment



Cart #eggecs-0 | 2025-06-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Evergreen Games Pico-8 Entity Component System (EGG-ECS)

I was inspired to have another go at writing a simple ECS for pico-8.
This one takes only 270 tokens and is quite efficient and extensible.
It is a very traditional and otherwise minimal ECS that I created to have a simple and flexible interface. For example, systems are called on user demand, letting you create coupled systems in a simple way and have direct and flexible control over your code execution.

Full documentation is within the cartridge!

I hope it can be of use.

0 comments



Cart #esperexile00-0 | 2025-06-21 | Code ▽ | Embed ▽ | No License

this is the playtest version of the shmup I'm currently working on.

O - primary fire
X - reflect bullets (hold and release)

my goal is to release it at the end of the month.
it'll have 5 stages in total!

0 comments



Cart #tomewafagi-1 | 2025-05-23 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

hey everyone, I was watching this video going over the basics of ECS, and I was inspired to try a lightweight pico-8 implementation of the concept. this is pretty rough and unoptimized, but I thought I'd post it here in case it's of use to anyone or happens to spark a conversation.

I implemented it slightly differently, with the "systems" and "relations" part bundled into one system I refer inside as "relations". essentially, you can easily specify pairs of entity types to call a function over. this is the part that isn't super optimized, since there's no caching going on. but the upside is the whole thing is only 242 tokens atm.

[ Continue Reading.. ]

0 comments



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

i don't really want to work on this anymore

let me know if you like what i was getting at

feel welcome to hacking it up and putting something together yourself, the game engine is relatively complete

3
3 comments



Cart #14069 | 2015-09-12 | Code ▽ | Embed ▽ | No License
6

Game I created as my submission for Pico Zine #3 with a couple extra embellishments. Haven't had a chance to playtest it with a pal yet, but it seems like its definitely good fun :)

6
1 comment



Cart #13377 | 2015-08-31 | Code ▽ | Embed ▽ | No License
6

This has been my little baby over the past week or so. It started with jotting down the train game by @PROGRAM_IX from the Pico-8 zine #1, and then making it my own. I ended up using over half my tokens, two sprite banks, and the entire map space. I will leave it to you to discover its mysteries. Playing alongside a warm beverage recommended.

v1.1: Small update to effectively double the rate you gain resources.

6
7 comments



function mchk(x, y)
 return mget(flr(x/8),flr(y/8))
end

function move(x, y, w, h, dx, dy, col)
 w-=1
 h-=1
 if dx < 0
 and mchk(x+dx, y) != col
 and mchk(x+dx, y+h) != col
  then x += dx
 elseif dx > 0
 and mchk(x+w+dx, y) != col
 and mchk(x+w+dx, y+h) != col
  then x += dx end

 if dy < 0
 and mchk(x, y+dy) != col
 and mchk(x+w, y+dy) != col
  then y += dy
 elseif dy > 0
 and mchk(x, y+h+dy) != col
 and mchk(x+w, y+h+dy) != col
  then y += dy end

 return x, y
end

As an exercise, I wrote a small general-purpose collision script and thought I'd offer it up for folks new to P8 or relatively inexperienced with programming.

This is purposefully not a one-stop solution, but it may get you going. It is probably more in the spirit of PICO-8 to come up with specified collision routines yourself. At the very least, there's some study value here.

Things to consider:

  • This was built to collide bodies <= 8 pixels wide and tall. With some thoughtful fiddling you can get it to accommodate bodies of any size, but I kept it this way for brevity.
  • It takes up 226 memory.
  • This is made for colliding against maps only.
3
7 comments