Log In  

BBS > Superblog
Posts: All | Following    GIFs: All | Postcarts    Off-site: Accounts

how to i export a cart as an image

2 comments


Cart #ydodawpi-0 | 2022-11-27 | Code ▽ | Embed ▽ | No License

2 comments


Cart #bowazejame-0 | 2022-11-27 | Code ▽ | Embed ▽ | No License
1

1
0 comments


Cart #picobirdgame-2 | 2022-11-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Almost finished still need to polish this game more

0 comments




Hi all,
I'm still working on a better version of my first game, Alien Invaders.

I make a map, add new features, like bonus dropped by dead ennemis, 3 levels and one boss lvl, 4 differents ennemis type, life persistance bettewen level and more...
I want to make 3 more level but with another gameplay, more like a space shooter, but that's mean i have to make a lot of new things to spawn ennemis, make their mouvement, fire...

And i wonder if it would be better to make a full new game rather than make one big game with two different gameplay...

Wath's your thoughts ?
🙏

2 comments


Hello everyone !

This is my first post on my blog !
I hope i continu to inform you of the futur project !

Stay tuned !

2
2 comments


Cart #picochar-0 | 2022-11-20 | Code ▽ | Embed ▽ | No License
8


Connect 3 or more shapes with similar colors or numbers, and watch the points rack up!

(will update when 1.0.0 comes out)

8
4 comments


Cart #maruuhhelloo-0 | 2022-11-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Just re-uploading my first program. :D

[44x8]

-based on "hello.p8" by zep

2 comments


im gunna off pico 8 for a while to work on asumthing

0 comments


YouTube introduced user handles recently (somewhere around September/November 2022), making it possible for channels of any follower count (not just 100+) to have the username which starts with "at" ("@") character. For example this is my channel: https://www.youtube.com/@beetrootpaul

Sadly, Lexaloffle BBS profile doesn't allow to use "@", since it is just removing it: I type "@beetrootpaul" and save, then it changes to "beetrootpaul". In result URL of my YouTube channel is broken on BBS – it points to https://youtube.com/beetrootpaul


4
1 comment


I just wanted to make a quick summary of what content foxpedition is going to have:

4-5 Levels: depends on if i have enough space.
A collectible in every level
A new "gimmick" in every level
A timer
Some funky beats/ background noise
A good but simpple story
Very responsive character controller
And last but not least: JUICE!!!

1
2 comments


Hello. It's been a while, but i didn't do nothing! I am working on the third stage right now, and im trying to make the world more varied. I've come up with a story, and added spikes. I also created ramps so the platforms can have more natural shapes. And the checkpoint-statues are now broken before you use them.

1
0 comments


Can someone please help me. I am following lazy devs' breakout tutorial and I am having trouble
getting the bricks to work. I think the problem is my definition of the box variables but if I remove them the game breaks.

10 comments


I'm working on a game using procedural generation and although the game is nowhere near done I thought the generation technique itself was interesting enough on its own to post about.

Rather than try to explain it myself I'll just send you to someone who already has, better than I likely could. BorisTheBrave: Graph Rewriting for Procedural Level Generation

Instead, I'll just share some of my initial results. The general idea is to generate the "big picture" details first and then successively refine them to build a fleshed out so the levels generated here are shown at 1/8 scale. Eventually every pixel in these maps will expand to be one tile at full scale with additional generation filling in the fine details along the way.

Cart #nisofunajo-0 | 2022-11-06 | Code ▽ | Embed ▽ | No License
3

[ Continue Reading.. ]

3
0 comments


A few days back @dw817 posted a thread about the number of possible combinations in 256 bytes in which they asked:

> Is there a way to calculate 256^256 ?

And knowing there are all sorts of tools and languages which can handle such huge numbers I cheekily posted the answer and caused a bit of a derail.

Anyway, I had some time on my hands so I figured I'd implement large number support for Pico-8.

Cart #jd_bignum-1 | 2022-11-05 | Code ▽ | Embed ▽ | No License
4

Edit: Fixed a bug in divide()

Is this likely to be of use to anybody? Probably not. Is it major overkill? You betcha! Though in fairness, at 706 tokens it came out smaller than I was expecting.

Features/Functions

  • bignum(n): Create a 'bignum' with value n which is just a regular Pico-8 number. Most operations require both numbers to be bignums. So bignum(16000)*bignum(1254) but not bignum(16000)*1254.

    bignum() is equivalent to bignum(0)

  • divide(bn): You can use the division and mod operators (/, %) on bignums if you only need one or the other. The divide function returns both the quotient and remainder at once.

    q, r = divide(bignum(3)^16, bignum(2)^15)

  • show(bn): Converts a bignum into its decimal representation as a string.
  • factorial(n): Calculates the factorial of n and returns the result as a bignum. Factorials get very big, very fast so the input to factorial is just a regular number.
  • + - / % ^: Arithmetic operators behave how you would expect. All require both arguments to be bignums with the exception of ^ where only the first argument is a bignum and the second is a regular number. Division is integer division only so bignum(3)/bignum(4)==bignum(0).
  • > >= <= < ==: Comparisons similarly require both arguments to be bignums.

Issues

  • The arithmetic operators are all fairly efficent but probably not optimally so.
  • I wasn't taking negative numbers into account at all so I make no promises about what will happen if you try to use them. Maybe it will work! (It probably won't work.)
  • show is extremely inefficient. I'm sure there are better ways to convert very long binary strings to decimal but I'm not familiar with them so this is what I've got. Large numbers (like 52!) may take a bit of time and very large numbers will crash the program as it runs out of memory. (bignum(256)^256 does this, sadly. It calculates the number fine but crashes when you try to convert it.)
4
5 comments




Here is a little space shooter game done in 6days by me and 2 friends.

1
1 comment


Cart #longislandtrivia-1 | 2022-10-27 | Code ▽ | Embed ▽ | No License
2

2
1 comment


I know a lot of people, myself included, usually write their pico~8 code a little off the cuff tinkering with it until it works. Which tends to be more fun in my experience. But it can also be incredibly frustrating if I'm working on sometime more complex where every time I change something I break something else. And in those cases planning out some formal tests helps me maintain my sanity and get the thing actually working much faster than I probably would otherwise. And since I'm working on something fairly complex at the moment, I took a bit of a detour and put together a little test framework and thought I'd make it available for anybody else who might find it useful.

The code is on github: https://github.com/jasondelaat/pico8-tools/tree/release/testo-8
Or you can just copy it here:

--------------------------------
-- testo-8: testing framework
-- copyright (c) 2022 jason delaat
-- mit license: https://github.com/jasondelaat/pico8-tools/blob/release/license
--------------------------------
do
   local all_tests = {}

   local function smt(t, mt)
      return setmetatable(t, {__index=mt})
   end

   local function shallow_copy(lst)
      local copy = {}
      for l in all(lst) do
         add(copy, l)
      end
      return copy
   end

   local function filter(f, lst)
      local results = {}
      for l in all(lst) do
         if f(l) then
            add(results, l)
         end
      end
      return results
   end

   local execute_meta = {
      execute=function(self)
         local result = self[4](self[3](self[2]()))
         if self._cleanup[1] then
            self._cleanup[1]()
         end
         return {
            result,
            self[1]..self.when_txt..self.result_txt
         }
      end
   }

   local when_result_meta
   local result_meta = {
      result=function(self, txt, fn)
         local t = shallow_copy(self)
         t.when_txt = self.when_txt
         t.result_txt = 'result '..txt..'\n'
         t._cleanup = self._cleanup
         add(t, fn)
         add(all_tests, smt(t, execute_meta))
         return smt(self, when_result_meta)
      end
   }

   local _cleanup
   local when_meta = {
      when=function(self, txt, fn)
         _cleanup = {}
         local t = shallow_copy(self)
         t.when_txt = 'when '..txt..'\n'
         t[3] = fn
         t._cleanup = _cleanup
         return smt(t, result_meta)
      end
   }

   when_result_meta = {
      when=when_meta.when,
      result=result_meta.result,
      cleanup=function(self, f)
         add(_cleanup, f)
         return self
      end
   }

   local given_meta = {
      given=function(self, txt, fn)
         local msg = self[1]..'given '..txt..'\n'
         return smt({msg, fn}, when_meta)
      end
   }
   function test(name)
      _cleanup = {}
      local t = smt({name..':\n', _cleanup=_cleanup}, given_meta)
      return t
   end

   local function run_tests()
      cls()
      cursor(0, 7)
      local results = {}
      for t in all(all_tests) do
         add(results, t:execute())
      end
      local failures =
         results and filter(function(r) return not r[1] end, results) or 0
      if #failures == 0 then
         print('all '..#all_tests..' tests passed!', 0, 0, 11)
      else
         for f in all(failures) do
            print(f[2])
         end
         rectfill(0, 0, 127, 6, 0)
         print(#failures..'/'..#all_tests..' tests failed:\n', 0, 0, 8)
         cursor(0, 127)
      end
   end

   function _init()
      run_tests()
   end
end
-- end testo-8 ------------------------------

[ Continue Reading.. ]

1
0 comments




Top    Load More Posts ->