Log In  

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

Cart #map_perf_tests-0 | 2024-04-28 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
5

A performance test for showing different ways of rendering the map to the screen

Fork Link

5
2 comments


Cart #meeeeep-0 | 2024-04-27 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Hi, so im trying to make a platfomer, but when you jump into a wall, a glitch happens, i slide into it and telepoet to the top, how do i make it better and more polished?

3 comments


Cart #triple_jump-0 | 2024-04-27 | Code ▽ | Embed ▽ | No License
9

Hop, step, and jump your way to gold in this Track & Field inspired game.

Controls

Alternate S and F to or the left and right arrow keys to run.

Press X to jump.

Rules

You must start your jump before the foul line and then jump two more times before landing in the sand pit. Running across the foul line, in between jumps, or into the sand pit will result in a foul.

Credits

Programming, music, and art by me.

Playtesting by szunami and Liam.

9
3 comments


Hello, I need some help with an error that I have been encountering in my code. I started coding a few days ago but I have been working on someone else's game. For some weird reason when I call cartdata() in the init function and later in the update60() function I get a error "DGET CALLED BEFORE CARTDATA() IN _INIT LINE 287 (TAB 0) AT LINE 1 (TAB 3) you can see it for yourself if you run the game and chose "TIMED" and collect 25 flowers.

Cart #kuba_mt_1-0 | 2024-04-27 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Credit to Lucatron for creating the base game: https://www.lexaloffle.com/bbs/?tid=36520

The cartdata() function is in init so I do not get why the error is occuring.

2 comments


Cart #picoball-1 | 2024-04-28 | Code ▽ | Embed ▽ | No License
4

🏐 PICOBALL 🏐

Play against a bot 🤖 or your friend 👴🏼!

Controls
Player 1 ⬅/⬆/➡
Player 2 S/E/F

Thanks a lot to @cheesemug 🧀☕️ for remaking the game!
Go follow him

4
10 comments


Cart #raidous-5 | 2024-04-27 | Code ▽ | Embed ▽ | No License
2

RAIDOUZ

Raidouz is a really simple shoot-em-up type game, you can shoot, you can upgrade and you can even change weapon, but for now not everything is balanced as all things should be. It is a work in progress ! There is still some little bugs but the game is playable and you can get fun with it !

Controls

Z to shoot.
X to change between two weapons.
Arrow keys to move.

The Goal

Have fun, kill everyone and try to score as much as possible !

2
1 comment


Cart #solar_collection-0 | 2024-04-26 | Code ▽ | Embed ▽ | No License
8

Controls

◀ ▲ ▼ ▶: to move.
z/o: make selection.

Orion CORP. General Pilot Contract:
You will be using a rental Star Catcher vessel. You are welcome to choose whichever craft that suits you from the ship-lot. This document binds you until completion of a full tour of duty. you will be billed for any towing services if you run out of fuel. you will be responsible for the maintenance of your craft. Awards will be given to those who meet the assigned quota. Sign below if you agree.

ORION CORPORATION ltd.

....................

[ Continue Reading.. ]

8
2 comments


Cart #hwd_elite_dock-5 | 2024-07-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
16


Cart #hwd_elite_enc-3 | 2024-05-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
16

Welcome to Elite for the Pico-8 home console!

This game is intended to be less grindy and slow version of the NES Elite, suited more for an evening of fun rather than a week of space-trucking. If you're wondering how to play, I've written a Game Manual

Before you play: Holding down the (X) button and pressing Left or Right is how you navigate menus. Double-tap (X) to select a menu option.

[ Continue Reading.. ]

16
16 comments


A short little game about eavesdropping on conversations in the park.

Cart #soztasoja-1 | 2024-04-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
5

Thanks to my partner for contributing dialogue, and NerdyTeachers for the tutorial on text animations that sparked the idea.

5
2 comments


Cart #marching_squares-0 | 2024-04-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

Basically, I’m working on a digging game and am revisiting something I have worked with in the past: marching squares. I recommend looking it up, but basically the way it works in this project is for each “tile” a table of tables is examined and depending on whether each of the tiles coordinates are on or off the algorithm figure out which sides does the line on the square intersect. Sometime marching squares also uses linear interpolation, but since my screen is stored in binary instead of floating point values I am storing intersection points in separate nested tables. The main thing is that each square is checked, and depending on stored values a specific line might be drawn through it.

[ Continue Reading.. ]

2
0 comments


Cart #mapshuffle-0 | 2024-04-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
5

I made this tool for myself, for reordering levels to fix difficulty curves. But I thought I'd share it in case anyone else finds it useful.

How it works:

  • Press X to select a room, and then X again to swap the two rooms
  • Press C to preview a room
  • Maps are imported/exported manually using cstore. Cry about it :(

Note: Mapshuffle cannot import/export maps in the web player. You must download the cart and use it in immediate mode.

Instructions:

  • Back up your project in case something goes wrong.
  • Download mapshuffle.p8 and place the cart in the same folder as your project.
  • Open your project, type the following line into the terminal, and hit enter:

[ Continue Reading.. ]

5
4 comments


people often ask about object orientation (OOP) and inheritance, but can get confusing or incomplete guides. I want to help everyone understand how prototypes work!

lua does support object-oriented programming (but does not require it), based on prototype inheritance — not classes.
metatables are part of this but also often misunderstood. this is a complete explainer that I wrote on discord and keep not putting here in a clean way. so I am putting it here as it is!

so what is a prototype?

goblin={
 sp=42,
}

function goblin:new(x,y)
 local obj={x=x, y=y}
 return setmetatable(obj, {__index=self})
end

function goblin:draw()
 spr(self.sp,self.x,self.y)
end

gob1=goblin:new(40,40)
gob2=goblin:new(60,70)

alright so this is like 6 different things working together.

1) table with methods: goblin is a table with property sp and methods new and draw (a method is a function attached to an object)

calling goblin:new(40,40) is the same as goblin.new(self,40,40); self is «the object we are working on»; defining function goblin:draw() is the same as function goblin.draw(self) and the same as goblin={sp=42, draw=function(self) spr(...) end, somethingelse=true}

there is a difference between the two methods in my example: when we call goblin:new, the self param inside it will be the goblin table itself (the prototype), but when we have gob1:draw() then self inside draw will refer to gob1.

2) metatables. there are special methods that lua uses to implement operators (+, /, .., etc). the method for addition for example is __add (we call these metamethods). if I want to be able to do vector1 + vector2for my custom vector tables for example, I need to define a method named __add but I can’t do it in the vector prototype table, lua will not look it there; it is required to define these metamethods in a table’s metatable. (the metatable is similar to a class in other object-oriented languages: it is the template, or the definition, or the model for many tables.) so that’s what happens in goblin:new: I define a metatable with one metamethod and set it on my goblin object.

3) prototype. these are great! if I have 50 goblins on screen and they have different health and coordinates but the same properties for sprite, width, height, etc, and the same methods for update, attack, draw, etc, I would like to define all the shared things in one place, then have custom things in each goblin table. that’s what a prototype is for! here in goblin example we have sp and draw shared, and in a specific goblin table (it starts as obj on line 6, then it’s gob1 or gob2 in my example) we have specific data like x and y.
much more info on this really useful site: https://gameprogrammingpatterns.com/prototype.html

alright so how do I say «gob1 and gob2 should delegate to goblin prototype for some properties»? I define a metatable with an __index property. it is called by lua when I do gob1.sp and sp is not found inside gob1. it can be a function (can be useful to have a dynamic property that’s computed from other properties) or another table: the prototype!
more: https://www.lua.org/pil/13.4.1.html

now this is the cool thing with prototype-based object-oriented language that you don’t have in such a nice way with class-based OO languages
what if I want 40 goblins on screen and 10 archer goblins? these should have a different sprite and different attack method.

archer=goblin:new()

archer.sp=52

function archer:attack(target)
 --use the bow
end

arcgob1=archer:new(20,50)
arcgob2=archer:new(40,70)

look at this from bottom to top:

  • arcgob1.x will be 20, y 50
  • arcgob1’s and arcgob2’s prototype is archer, because when we call archer:new, self on line 6 of my first code block points to archer
  • arcgob1.sp is 52 (the value comes from the prototype)
  • arcgob1:attack(hero) will use our archer:attack method.
  • arcgob1:draw() will use goblin:draw! archer itself is a table that has goblin for prototype
    draw is not found in arcgob1, look at its prototype archer, not found, look at its prototype goblin, found! call it with self pointing to arcgob1.

result:

[ Continue Reading.. ]

24
5 comments


Cart #dashplus1-0 | 2024-04-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

1 comment


Cart #bad_rooms_ld55-2 | 2024-04-28 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

Ludum Dare 55 entry

X/C cycle spells + Arrow keys to move
1-4 players vs 0-3 CPU players (max 4)

3
9 comments


Cart #rebooter_-0 | 2024-04-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
9

--REBOOTER--

Ordered by Elevated Recovery
Made by Charlie Boudchicha (https://www.fiverr.com/charlie_boud)

You need to complete every achievements to win the game :

  • make a bad decision
  • make a productive decision
  • do something to rest
  • unlock the 4 blue rooms
  • go through 15 rooms
  • survive 3 trap rooms
9
6 comments


Cart #basic_platformer_mecanics-0 | 2024-04-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

2
1 comment


Cart #duwiramope-0 | 2024-04-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3


jus a little wip game

3
2 comments


Cart #dashlessplus-0 | 2024-04-23 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

2 comments


Cart #dualnback-0 | 2024-04-23 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3


n-back (Wikipedia, Gwern)

How to play:

1-Back: Remember whether the position or color (or both) is the same as in the previous round, press the according button/buttons if they match.

2-Back: Remember whether position or color are the same as 2 rounds ago.

N-back: Remember whether position or color are the same as n rounds ago.

Controls:

Z or <- for a position match

X or -> for a color match

P to pause (+ additional menu)

Tips:

Try playing in standard mode to understand how the game works, in endless the game ends when you make a mistake or miss a match.

[ Continue Reading.. ]

3
0 comments


Cart #cascade_cascade-2 | 2024-04-27 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
9

Cascade Cascade

A game somewhere in the space between a breakout clone and a puzzle bobble clone, inspired by a half-remembered game I played on an airplane seatback.

Controls

  • Aim with left and right arrows
  • Press [x] to fire

Or, as of 2024.04.27, point and click with the mouse to aim and fire.

Rules

This is an endless arcade game. Your goal is to survive by keeping the blocks from reaching the bottom.

  • Each hit reduces a block's strength by one. When a block's strength reaches zero, it's destroyed.
  • Powerups (white concentric circles) increase the number of balls you can accumulate for your next shot.
  • The number of balls you'll fire next shot is indicated by the combo meter on the right side of the screen. It increases by one-half for each block you hit.

[ Continue Reading.. ]

9
3 comments




Top    Load More Posts ->