Log In  

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

Small minesweeper clone.
Keyboard controls: Arrows to move yellow selector. x to flag, z to sweep.
Mouse controls: left click to sweep, right click to flag.

sweeping on already cleared cells auto-flags or auto-sweeps if the solution for the square is clear from the label and adjacent uncleared or flagged cells.

Cart #sweeper-0 | 2022-10-24 | Code ▽ | Embed ▽ | No License

0 comments


Hey all,

So what I'm trying to do is this... I've used a rotary spinner controller that reads as a mouse axis on other platforms before (Unity). I can get the 'velocity' of the spinner controller by reading the difference in mouse X values between frames. I enabled mouse support on PICO-8 to try a similar thing with PICO (a rotary spinner PICO-8 game! How cool would that be, right?); however, I noticed the mouse position no longer updates beyond the end of the screen, which is somewhat expected. In fact, I don't know why it works on Unity/Windows. This means the 'spinner' has a definite start and stop and I can't spin the spinner indefinitely and continue to measure its virtual velocity in this way.

Is there a way.... to 'write' a new mouse position so I can have the mouse 'wrap' around the edge of the screen? I know this is sort of an.... off the wall issue to be having but any thoughts are appreciated!

Nick

3 comments


Cart #pico_pong_online-3 | 2022-10-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
8

NOTE: In order to play this game online, go to https://pico-pong-online.herokuapp.com/

This game is one example of how to make online multiplayer games with pico-socket, a new library that I've been working on, that came out of a collaborative project with Ethan Jurman and his Tiny Tanks game

You can read some of the finer details about the pong game here: https://github.com/JRJurman/pico-pong-online

For a smaller example, and details around the library, and how to use it, check out the project on github. Below is an abridged version of the README and how it works:

[ Continue Reading.. ]

8
7 comments


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


Cart #spacewar_pico-1 | 2022-10-23 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

Hello, it's me again! After finishing the Asteroids clone, I wanted to make a "sister" game of sorts, so I made a Spacewar clone! Including gravity, and a sun to crash into! No AI, so you need a second player to play this with! It took a bit of time to get the second player to work, having to convert the player into a tabled object. I hope this one works well, too!

Thank you very much!

2
1 comment


Cart #jegurokug-1 | 2022-10-22 | Code ▽ | Embed ▽ | No License

Hello, im wondering why the velocity and acceleration (vx and va) dont go to zero when you go left then let go.
Also note that the maximums are different.

Controls:
Left -- go left
Right -- go right
X -- force vx and va values to zero

is this just a quirk with pico-8?

Thanks :)

Code:
[hidden]

function _init()
x=0
vx=0
ax=0
end

function _update60()
	if btn(➡️) then
		ax+=.01
	end
	if btn(⬅️) then
		ax-=.01
	end
	if btn(❎) then
		ax=0
		vx=0
	end

	vx+=ax
	x+=vx

	vx*=.9
	ax*=.9
end

function _draw()
	cls()
	line(x,0,x,127,7)

	print(vx.." velocity",0,0,2)
	print(ax.." acceleration")
	print(x.." x")

end

[ Continue Reading.. ]

3 comments


Cart #frozen_laser-2 | 2022-10-23 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
8

Can you manage the endboss?
This is a shoot-em-up mini-game.

It is very short. But my boys and I are proud to have programmed our first own computer game.



Update v1.1:

  • Collision behaviour of bullets on walls
  • Nomalised movement in diagonal directions

Thanks to Ancient Pixel, phil, Aktane and otto_piramuthu for their help and ideas

8
3 comments


Cart #bizomopiro-4 | 2022-10-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
11


Recreation of the board game. Menu music by Robby Duguay.

11
7 comments


[128x128]

𝕳𝖊𝖑𝖑𝖔 𝕭𝖔𝖎𝖑𝖘 & 𝕲𝖍𝖔𝖚𝖑𝖘 !

What's that ? You got Halloween on the brain ? Well who wouldn't !

It's that spooky time of year where things go bump in the night and you watch scary movies with popcorn and friends.

So having looked at the many programs of LIFE and how the pixels behave I thought I would one up this and create DEATH. Yep. Truly a creepy decay program, based on GFA code I wrote 20-years ago called "Plague," although there I had true 24-bit color so it was much more colorful and spooky.

by dw817
Cart #mcaf-0 | 2022-10-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

(v00 10-20-22) TO LOAD THIS PICO-8 CART, in immediate mode, type: load #mcaf

[ Continue Reading.. ]

4
0 comments


I'm working on a bullet pattern function that shoots out bullets in a direction, at a speed, etc...nothing fancy and nothing new to me, all my games have bullets! BUT this time some bullets are magically moving mid-stream and I can't figure out why.

See here...

I've narrowed it down to happening when bullets from the line ahead of it get deleted from the table. When a bullet goes off screen, I'm removing it from the table so as to not get overloaded and so on. Normal stuff. But when that deletion happens, the next bullet in the table magically moves out of line yet all the rest follow orders.

If there are 15 bullets in every line, why would the 16th bullet move when the ones ahead of it get deleted? Is it something to do with table order? Or some process not happening due to deletion time?

It's like the addition math gets skipped at that moment. Very weird...but also something I'm sure that is very simple I'm overlooking. Lord knows I've spent way too much time on whittling this down the simplest version and I'm not sure how to refactor any more. A man can only bang his head so much :)

Any thoughts, insights, or suggestions are appreciated.

Code for the example above.

function add_bullet(x,y,a,s)
	local dx=cos(a)*s
	local dy=sin(a)*s
	add(bullets,{x=x,y=y,dx=dx,dy=dy})
end

function bullet_update()
	for k,o in pairs(bullets) do
		o.x+=o.dx
	  o.y+=o.dy

	  if o.x>130 or o.x<-5 or o.y>130 or o.y<-60 then del(bullets,o) end
	end
end

function bullet_draw()
	for k,o in pairs(bullets) do
	 rectfill(o.x,o.y,o.x+1,o.y+1,8)
	end
end

function _init()
	fr=0
	bullets={}
end

function _update60()
	bullet_update()
	fr+=1
	if fr==50 then -- this is here to repeating demo only
		for i=1,15 do
			add_bullet(120,10+3*i,.5,1)
		end	
		fr=0
	end
end

function _draw()
	cls()
	bullet_draw()
end
1
2 comments


Cart #deepinthehouse-1 | 2022-10-27 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
30

Deep in the House

Version 1.1

Deep in the House is a short horror game.

After a long and tiring walk, you wander into an old house with an open front door, hoping to find shelter.
As you enter the main hall, the door closes and locks itself behind you.
It looks like this house isn't as welcoming as you'd hoped...
Will you make it out alive ?

Explore the (many) rooms of the house as you try to find a way out.
You'll have to fight enemies, collect items and solve (simple) puzzles.

It is recommended to play with sound if you have the option.

Controls

Move with the arrow keys.
Tap left or right twice to run.

Press C to show the inventory and health status.

[ Continue Reading.. ]

30
14 comments


Cart #kpjagugu-1 | 2022-10-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
15

Controls & Rules

⬅️⬆️⬇️➡️ - Move the snake!
Z - Next line in conversation | Start game
X - Undo previous move | Respawn

Snakedventure

Move around the level finding fruits to eat and grow longer, but there'll also be rooms to unlock, NPCs to meet, and quests to complete! Once you've found all the fruits and are of the right size, slide your way into a very special sweater from a special someone.

Quarterly Made Games HK

Quarterly Made Games HK is game development collective based in Hong Kong with the aim of developing and finishing personal project(s) every 3 months. It’s low stakes, low pressure, and focused on motivating people with a shared environment and deadline.

[ Continue Reading.. ]

15
14 comments


Cart #bruteforcepw-1 | 2022-10-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4


(v01 10-20-22)TO LOAD THIS PICO-8 CART, in immediate mode, type: load #bruteforcepw

Hello.

I was looking at the source-code of @Guest122's program:

https://www.lexaloffle.com/bbs/?pid=119387

To guess someone's password and while his has a dictionary, I did want to point out just how quickly and how unsafe it is to have a small password for instance on one of your internet accounts.

So I wrote this program. What it does is allow you to input a 4-letter word via the regular joystick and then through brute force go from AAAA to ZZZZ to find what your password was, and tell you how long it took to search.

[ Continue Reading.. ]

4
4 comments


My attempt at John Conway's Game of Life.

Press Z to bring up a settings menu or X to randomly fill the area with cells.

Note: At 64x64 and 128x128 the refresh rate will be very slow regardless of the fps setting.

Cart #jc_game_of_life-1 | 2022-10-20 | Code ▽ | Embed ▽ | No License
2

2
1 comment


Hello,

Please feel free to delete this post if it is too off topic.

I am looking to commission an artist for a few different ASCII art renderings of my company's logo. You can see my company website here: https://rainlab.co.jp/en/, with the logo in the top left. As you can see, we're already going for a retro hacker aesthetic. The hope is to end up with 3 separate ASCII renditions---small, medium, and large.

Looking for ASCII artists these days rapidly ends up in a morass of old archived URLs and non-functioning email addresses. Despite no ASCII art floating around here, I absolutely love the artwork on display and thought there might be some overlap.

Anyway, if anyone is willing and able, I would love to chat.

0 comments


Is there a plan to add multiplayer to PICO8 ?

As it is a virtual console, it would be super awesome to have a native way of simply doing lockstep simulation with rewind to cope with network latency, but that means pico8 has to implement it. Ideally just relying on a STUN server, so it works without config on a LAN, and with very simple config on the Internet.

I don't know which category to post it, so if someone who know moves it to the correct one, I'd be glad.

8 comments


Cart #beamrider-0 | 2022-10-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
22

My Pico-8 interpretation of the 1983 Activision game for the Atari 2600.

How to Play

Shoot all 15 UFOs to clear a sector.

Collect glowing power-ups but, if you shoot them, don't let them hit you!

Controls

[X] - Laser
[O] or [Up Arrow] - Missile

Thanks To

  • Finn for testing
  • notehead (@noteheadmusic) for the excellent title-screen music

Version History

0.80 - 18-Oct-2022 - Released

22
2 comments


Cart #picoroid-1 | 2022-10-22 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

Hello everyone!

I'm fairly new to PICO-8, so I figured trying to port a game might help me get used to PICO-8. I decided to start with Asteroids, figuring it would be a fairly simple port. It was actually more complex than I thought. I think I've managed to replicate the feel of the original game, but I wouldn't be surprised if I've missed a thing or two - I was never the best at this game.

Feedback would be appreciated,
Thank you!

2
1 comment


Cart #slipping_hazard-0 | 2022-10-19 | Code ▽ | Embed ▽ | No License

0 comments


Cart #nawefibuwa-7 | 2022-10-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
6

Just finished my first PICO-8 game! :D

It's an absolute mess - but that's to be expected, I guess.

I would appreciate any feedback on it - I'll probably update it soon if anything is terribly wrong with it.

TODO:

  • Nothing, right now!

DONE:

  • Made the lines more readable!
  • More fill patterns, circles and lines now fade out smoothly
  • Removed "lines" from the sidebar, as it wasn't very useful
  • Palette names are now centred and labelled
  • Lives counter no longer goes weird on the gameover screen
  • Circles are now more likely to spawn nearby you, making it harder to just stand still

http://8x8.me/ was very useful

6
6 comments




Top    Load More Posts ->