Log In  

BBS > Community Superblog
All | Following | GIFs | Off-site

The Question

Hello everyone,

I am ludicrously close to finishing the engine for my game, but some physics equations have me stuck. Here is what I'm trying to achieve:

  • The players are effectively nodes that can switch between being pendulum bobs and fulcrums. One can be anchored to serve as a fulcrum while the other swings. If both are anchored, neither moves. If both try to un-anchor themselves, they fall.
  • In order to let the players navigate the playfield, I want the swing of a pendulum bob to increase bit by bit. (This will let players climb the playfield by swinging upward instead of just descending.)
  • Once a bob makes a full loop around the fulcrum, I want it to continue in a circle at a more-or-less consistent speed.

With the help of this math writeup, I managed to assemble a simplified set of physics variables and equations that do an okay job of simulating momentum and creating a non-degrading swing (i.e., the swing distance never shrinks due to friction). But I haven't figured out how to make the desired increase in swing distance happen. I'm sure it's a single value or sign that I haven't identified.

[ Continue Reading.. ]

1
3 comments


Cart #kabuto-0 | 2024-06-14 | Code ▽ | Embed ▽ | No License
2

Trying out the mechanics for a Kabuto Sumo type game

2
0 comments


Cart #celestetextmod-0 | 2024-06-13 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1


A funky little texture mod for Celeste. Mod by Skyler Clark.

1
2 comments


Cart #vexor-1 | 2024-06-15 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

Vexor is a cute lil shmup I made!

Enojoy! :)

Changelog:
-Fixed slow down
-Fixed phantom plane glitch

4
9 comments


I made a function to draw an equilateral triangle that I could animate:

function triangle(_x,_y,_size,_angle,_clr)
 for i=0,2 do
  local _offset=.33*i
  local _x1=_x+(cos(_angle+_offset)*_size)
  local _y1=_y+(sin(_angle+_offset)*_size)
 	line(_x1,_y1,_clr+i)
 end	
end

Pico 8 does something weird when I try to draw 2 triangles made out of lines:

I can draw each triangle just fine, but when I put the triangle() function twice it weirdly connects the triangles.

I have no idea why it does that, I could use some help.

here's the full code

function _init()

end

function _update()

end

function _draw()
 cls()
	triangle(64,64,30,0.255,8)
	triangle(64,64,30,0.255+0.5,12)
end

function triangle(_x,_y,_size,_angle,_clr)
 for i=0,2 do
  local _offset=.33*i
  local _x1=_x+(cos(_angle+_offset)*_size)
  local _y1=_y+(sin(_angle+_offset)*_size)
 	line(_x1,_y1,_clr+i)
 end	
end
1 comment


Cart #stickyfoot-2 | 2024-07-04 | Code ▽ | Embed ▽ | No License
24

You are Stickyfoot, a squishy sewer creature who dreams of escaping to the surface world. Leap and dodge through a host of dangerous levels to escape the sewer and bask in the sunny, flowery fields above!

A short, challenging puzzle-jumper in the vein of Chip’s Challenge, Tomb of the Mask, and Pac-Man. Do you have what it takes to beat the gauntlet?

How to Play

Arrow Keys: Move
Z/X: Self-destruct
Enter: Pause/menu
Collect all coins in each level to win. There are 56 unique levels to beat!
Aim for the target score to get a gold trophy. Beat every target speed to prove you’re the best!

[ Continue Reading.. ]

24
7 comments


Cart #astrox-0 | 2024-06-13 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
24

Astrox is a thrilling pico-8 shoot-'em-up (shmup) game inspired by the classic Galaga. Players navigate their ship through waves of diverse spaceship enemies, engaging in intense firefights and dodging enemy fire. With retro aesthetics and fast-paced gameplay, Astrox offers an exhilarating arcade experience.

Mechanics

Astrox comprises 15 enemy waves you need to clear to win the game. Kill them before they respawn back at their location, as they will restore their health. Enemies will shoot and move towards you. Avoid colliding with enemies or comets and don't get hit without a shield or you'll lose 1 life. If you lose all your lives, you lose the game.

[ Continue Reading.. ]

24
13 comments


Cart #sesufeyoho-0 | 2024-06-13 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Here's my latest version of Nybble Quest, an adventure game with a 4-bit aesthetic.

Since the last dot release, I've put a ton of work into the map. It's not done, but most of the pieces are there. The city to the NE still needs to be filled in.

This isn't all that playable because only a few of the objects have been moved to appropriate places from their initial testing locations. The win state trigger is in the old location, but the king is in his new location, for example. The enemies are all in the NW wasteland. There aren't enough keys for all the doors. Some of the loot isn't really visible against the wasteland.

But you can wander about the full map instead of just 2 screens worth or so in prior versions. The full map is 8x4 screens. With its 4-bit aesthetic, you get a pseudo-resolution of 32x32 tiles on-screen, which makes for a lot of map tiles overall.

[ Continue Reading.. ]

0 comments


Cart #thatdicegame-0 | 2024-06-12 | Code ▽ | Embed ▽ | No License
6

It's that dice game.

6
2 comments


Cart #rebsepar-3 | 2024-06-16 | Code ▽ | Embed ▽ | No License
2


This is a game i made for my friend's birthday, so the "secret" ending won't really make sense

2
5 comments


Cart #sakafafabe-1 | 2024-06-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4


This is my first celeste mod(and my first time using pico 8)
Its mildly difficult so if you haven't played celeste I would recommend playing that first
Its still a WIP so it may have bugs. if you find anything please let me know
Also, any feedback would be appreciated.

4
2 comments


Cart #library_page1-1 | 2024-06-24 | Code ▽ | Embed ▽ | No License
4


hehehehe

4
1 comment


Cart #airattack-0 | 2024-06-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
7

Controls

Press "X" to drop a bomb.

Rules

This a one button game. The aircraft flies by itself and will descend each time it reaches the end of the screen. Destroy all the buildings to land safely on the ground! A bomb has to explode {destroying 1-4 building blocks) before you can drop another, so use them wisely!

Behind the Scenes

This is my first Pico-8 game and is based on the Commodore Pet game, Air Attack, by Peter Calver. It was released in 1979 by Supersoft. This was the game that sparked my interest in computers and video games. We had a Commodore Pet at college and I typed in the code for this game from a magazine (possibly the December 1979 edition of Personal Computer World). The magic of being able to play this game, even with no understanding of the code at the time, was certainly a seed for my career in software and my love for game development.

[ Continue Reading.. ]

7
5 comments


Been following lazy Devs tutorial (with a few edits) and so far have got this:

Cart #tumiwubemi-0 | 2024-06-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Edit: Added Wibbly Wobbly stars.

0 comments


Cart #snailsattack-0 | 2024-06-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

2 players only - it's for family, friends or foes...

and for slime lovers --- enjoy

1
0 comments


Cart #gafjebuya-0 | 2024-06-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

1 comment


Cart #senseless_1-0 | 2024-06-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

A short adventure game.

Play as a little creature cursed with deafness an blindness-just not at the same time.
Press X to change curses and solve puzzles to find 3 stones to lift your curses.

Made in 1 day.
Thanks to Astorek86 for his map collision demo!

3
2 comments


In the second part of my blog (first part here), I show off my process designing and assembling a custom PCB that is able to run a simple PICO-8 demo! You can read it here (medium link)

If you like what you are seeing you can join the waitlist (https://pex-labs.com/) and hop on our discord (https://discord.gg/KzFn8Vb4qw) to stay updated on development!

7
1 comment


WIP something cooking

Cart #hyirofawi-0 | 2024-06-10 | Code ▽ | Embed ▽ | No License

0 comments


the thing is, this error only happens when I attempt to make a climbable wall.
here's my setup:

my collisions page:

--collisions

function collide_map(obj,aim,flag)
--obj = table needs x,y,w,h
--aim = left,right,up,down

local x=obj.x
local y=obj.y
local w=obj.w
local h=obj.h

local x1=0 local y1=0
local x2=0 local y2=0

if aim=="left" then
x1=x-2 y1=y
x2=x-1 y2=y+h-1

elseif aim=="right" then
x1=x+w+2 y1=y
x2=x+w+1 y2=y+h-1

elseif aim=="up" then
x1=x+3 y1=y-1
x2=x+w-3 y2=y

elseif aim=="down" then
x1=x+2 y1=y+h
x2=x+w-3 y2=y+h
end

--player hitbox test
x1r=x1 y1r=y1
x2r=x2 y2r=y2

--pixels to tiles
x1/=8 y1/=8
x2/=8 y2/=8

if fget(mget(x1,y1), flag)
or fget(mget(x1,y2), flag)
or fget(mget(x2,y1), flag)
or fget(mget(x2,y2), flag) then
return true
else
return false
end

end

my player page:
--player
function player_update()
--physics
player.dy+=gravity
player.dx*=friction

--controls
if btn(⬅️) then
player.dx-=player.acc
player.running=true
player.flp=true
end
if btn(➡️) then
player.dx+=player.acc
player.running=true
player.flp=false
end

--slide
if player.running
and not btn(⬅️)
and not btn(➡️)
and not player.falling
and not player.jumping then
player.running=false
player.sliding=true
end

--jump
if btnp(❎)
and player.landed then
player.dy-=player.boost
player.landed=false
end

--check collision up and down
if player.dy>0 then
player.falling=true
player.landed=false
player.jumping=false

player.dy=limit_speed(player.dy,player.max_dy)

if collide_map(player,"down",0) then
  player.landed=true
  player.falling=false
  player.dy=0
  player.y-=((player.y+player.h+1)%8)-1
end

elseif player.dy<0 then
player.jumping=true
if collide_map(player,"up",1) then
player.dy=0
end
end

--check collision left and right
if player.dx<0 then

player.dx=limit_speed(player.dx,player.max_dx)

if collide_map(player,"left",1) then
  player.dx=0
end

elseif player.dx>0 then

player.dx=limit_speed(player.dx,player.max_dx)

if collide_map(player,"right",1) then
  player.dx=0
end

end

--stop sliding
if player.sliding then
if abs(player.dx)<.2
or player.running then
player.dx=0
player.sliding=false
end
end

player.x+=player.dx
player.y+=player.dy

--limit player to map
if player.x<map_start then
player.x=map_start
end
if player.x>map_end-player.w then
player.x=map_end-player.w
end
end

function player_animate()
if player.jumping then
player.sp=7
elseif player.falling then
player.sp=8
elseif player.sliding then
player.sp=9
elseif player.running then
if time()-player.anim>.07 then
player.anim=time()
player.sp+=1
if player.sp>6 then
player.sp=3
end
end
else --player idle
if time()-player.anim>.3 then
player.anim=time()
player.sp+=1
if player.sp>2 then
player.sp=1
end
end
end
end

function limit_speed(num,maximum)
return mid(-maximum,num,maximum)
end

--attempting to climb
function player_climbing()
if collide_map(player,"right",2)
and btn(❎) and btn(⬆️)
then player.y+=500
end
end

flag 2 is meant to be climbable walls.
should this not increase my vertical velocity by 5?

5 comments




Top    Load More Posts ->