Log In  

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

Hi! I am looking for a pixel art tutorial specific to PICO-8’s restrictions.

My students start to create sprites and tile sets. I would like to help them make something great. Of course there are lots of pixel art tutorials online, but they are nearly always about larger sprites, 16x16 or greater. Good stuff, but mostly frustrating if you try to apply that to 8x8 sprites.

I guess there is a lot to be said about …

  • dealing with only 8x8 pixels
  • how to use the 16 color palette
  • how to create depth
  • how to design a tile set for creating interesting maps
  • how to avoid repetition

Has anybody ever tried to write that down? Or made a video? I‘ve looked through all PICO-8 resources, tutorials and magazines I could get a hold of – and that’s a lot! – but I could not find anything suitable.

Any ideas?

1
4 comments


Cart #hdarohene-0 | 2020-10-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

My implementation of the "Lander" game from the "Game Development with Pico-8" zine by Dylan Bennett.

zine: https://mboffin.itch.io/gamedev-with-pico-8-issue1

1
0 comments


Cart #starship-2 | 2021-05-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
14

About

Starship is my third Pico-8 game, and is influenced by old single screen ZX Spectrum games like Manic Miner, Jet Set Willy, and Jetpac. Gather all the ship parts scattered about each of the 20 stages. Take them back to your starship for repairs to transcend into outer space!

Tips

  • Skillful play will spawn a cosmic flower. Kneel before the cosmic flower to attain the gift of the cosmos.
  • Chasing score will make the game more difficult.
  • Don't tread on the worms!

Downloads

Downloads for Windows, Linux, OSX, and Raspberry Pi can be found on my itch.io page:

https://exq-bytes.itch.io/

Updates

v1.0 - Initial release

[ Continue Reading.. ]

14
12 comments


Cart #wezemogowo-0 | 2020-10-11 | Code ▽ | Embed ▽ | No License
2


This is my second published Pico-8 cartridge. It shows a near-perfect (in collision detection, not in the way it works) tiny collision detection function for a square. It can be expanded to any arbitrarily-sized rectangle. A square was chosen for simplicity.

There is no doubt in my mind that this can be improved upon. You know what, there's probably a way better, super obvious way that I glanced over.

I don't recommend using this for any of your games, as it has a blazingly obvious issue: You can't go into anything that isn't a black pixel. Also, due to the way it detects the pixels, it cannot detect sprites/map tiles that are smaller then a square.

The only reason I made this was to see if I could make a collision detection system that didn't use:

[ Continue Reading.. ]

2
7 comments


Cart #tepigiyaga-1 | 2020-10-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3


new version adds enemies, 10 levels to complete.



Cart #sehofebari-0 | 2020-10-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3


Cart #tepigiyaga-0 | 2020-10-13 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3


[ Continue Reading.. ]

3
9 comments


I was setting up PICO-8 on a raspberry pi on my TV, and I thought to myself, "Wouldn't it be nice if I could use my phone as a controller?". Obviously not ideal for games where tight controls are necessary, but a perfectly valid use case for slower or turned-based games.

Enter in Unified Remote!

At it's core, Unified Remote allows you to turn your phone into a remote, and it comes bundled with a bunch of remotes for various applications. However, I couldn't find anything that worked with PICO-8 out of the box. So I took it upon myself to create a custom remote.

This tutorial will assume you are running PICO-8 on a raspberry pi, and does not go into the setup of that piece.

First, you'll need to install the Unified Remote Server on your raspberry pi:

wget -O urserver.deb http://www.unifiedremote.com/d/rpi-deb
sudo dpkg -i urserver.deb 
rm urserver.deb 

Next, you'll need to setup Unified Remote Server to run as root whenever your pi starts up:

[ Continue Reading.. ]

3
0 comments


Hey all! I'm trying to find a code editor, or code editor extension, that can highlight matching pairs such as function/end, for/end, if/end, etc. - similar to how most code editors will highlight matching parentheses or brackets.

I haven't really gotten the hang of proper indentation yet, and I'm having trouble troubleshooting nested bits of code where I end up with the wrong number of "end"s at the end!

Except for this issue, Brackets and Visual Studio Code have both worked nicely for me so far. Simple/lightweight programs are preferred if possible.

Any suggestions, even of what terms to search for, are greatly appreciated! Thanks for helping me with this total amateur question!

4 comments


Cart #spajukuro-0 | 2020-10-10 | Code ▽ | Embed ▽ | No License
1

made this little test and while you can only set one
cartdata address you can use run() to do it again with breadcrumbs
and such. this is both a stupid way to store data and the biggest
brain way possible. does anyone think this is a bug?

1
6 comments


I love the Pico8, but I have to admit I find the user interface for actually making stuff really hard to use, and the font went too far in trying to be small instead of easy on the eyes and readable.
And I was just wondering, in general, if there were any plans for a "Super" version of the Pico8, with a larger font, larger resolution, expanded colour palette, etc, and maybe some OOP stuff instead of being purely functional.

2 comments


Cart #hayodasuy-0 | 2020-10-10 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4


Hi everybody.

This is my first offering. I thought I'd share some of my hacking around making a 3d rotating object. Currently can make a cuboid with length, width, height and rotate around x,y,z axis using the arrow and 'z' 'x' keys.

I've been working at making classes so that I can easily extend the shapes I can create.

Let me know what you think.

4
4 comments


Is there any difference in performance between doing this

player = {
 update = function(self)
  -- do things
 end
}

and

player = {}

function player:update()
 -- do things
end

Thank you!

1 comment


Hey, all. I picked up PICO-8 in the Itch bundle a couple months ago. Finally got around to poking at the PICO-8 and I love what I'm seeing. The idea of the picture being the cartridge is just something that brings back the feels.

Reminds me of the old days, manually typing in games from a book. A whole weekend spent programming Star Trek only to find out that I had the wrong version of BASIC.

Anyway, I hope to get going with game design soon. My history in that field is in the tabletop space, so going digital is a whole new thing for me.

Quick question, but is there a way to make map screens connect to one another to simulate a cube? I am thinking about doing a pseudo-3D space shooter.

2
2 comments


Cart #picuno-1 | 2021-07-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
10

A simple UNO clone with some AI.

Z/Circle: Play card
X/Cross: Call UNO (on yourself defensively or on others offensively)

Arrows to move the cursor.
Press Up to move the cursor to the deck (so you can draw a card).

Revision 1 Bugfixes:

  • Fixed a bug where debug controls to draw cards without spending your turn were left in.
  • Fixed a bug where the game would crash if more than one AI player attempted to call UNO at the same time.
10
4 comments


*edit 2: 0.2.3 has a built-in way to do this with tostr

edit: see downthread for a better function

I was thinking about high scores in PICO-8 a while ago and it occurred to me that they'd make more sense as unsigned 32 bit integers than 16b.16b fixed point decimals. The easy part in that case is adding points - simply increment in units of 0x0.0001 instead of units of 1 - but if it's a high score, I'd also like to be able to display it.

Thus:

function tostr_u32(n)
	-- return n as a 32-bit uint
	-- 92 tokens, ~1/780 of a 30 FPS CPU per call
	-- " " as thousands divider

	-- calculate ones
	-- (0x.03e8 = 1000 * 0x0.0001)
	local s=tostr(shl(n%0x.03e8,16))
	if n>0 then
		n/=1000
	else
		-- if not-actually-a-sign-bit is set
		-- have to be a little tricksy

		-- splitting in half
		--  n&0x0.ffff lower
		--  lshr(n,16) upper
		-- upper half unit = 65 536
		-- so within thousands:
		local m=536*lshr(n,16)
		m+=n&0x0.ffff
		-- originally used
--		local m=536*lshr(n,16)+n&0x0.ffff
		-- but that returned wrong results
		s=tostr(shl(m%0x.03e8,16))
		-- and doing the division by
		-- 1000 in two steps:
		n=lshr(n,1)
		n/=500
	end

	while n~=0 do
		while #s%4~=3 do
			-- pad with zeros
			s="0"..s
		end
		s=tostr(shl(n%0x.03e8,16))
			.." "..s
		n/=1000
	end

	return s
end

I'm sure this could be minimized further and/or optimized further and/or made more general, but I'd be willing to use it as is so I figured I'd share.

3
15 comments


My game for Ludum Dare 47, a little puzzle game with a tline rotation effect.
I made the effect without any idea what I was doing with it, then scrambled to finish the puzzle part for the jam deadline...

Cart #pcc_ld47_chronometry-0 | 2020-10-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
7



7
5 comments


Cart #rwunsire-0 | 2020-10-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1


Cart #wofbifete-0 | 2020-10-09 | Code ▽ | Embed ▽ | No License
1


Cart #yomuzusoti-0 | 2020-10-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

My 3 cool test things!

1
1 comment


Cart #stridee-1 | 2020-10-09 | Code ▽ | Embed ▽ | No License

1 comment


Cart #crowded_dungeon_crawler-3 | 2021-11-11 | Code ▽ | Embed ▽ | No License
169

Controller/Keyboard

Mouse and Keyboard

Gameplay

Crowded Dungeon Crawler is a mix of puzzle and dungeon crawler. Your goal is to defeat enough enemies to open the door to the next level.

  • The TIME bar depletes as you play. Once it's empty it's game over. Attacking enemies and buying items will stop time for a few seconds.
  • Melee items require HP to be used. When attacking multiple enemies, only the strongest one in the group will damage you.
  • Magic items require MANA. Each item has a specific mana cost. If you don't have enough mana to cast an ability, you can hold the attack button to convert TIME into MANA.

[ Continue Reading.. ]

169
22 comments


Cart #gemdrop-2 | 2020-10-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
5

Gem Drop (beta)

Please let me know what you think! Feedback welcome.

Thanks!

5
4 comments


Controls:

-Arrow keys to move
-X to open key UI

Cart #theblues-7 | 2020-10-09 | Code ▽ | Embed ▽ | No License
1

1
1 comment




Top    Load More Posts ->