Seven Fav Pico-8 Games

#7FavePico8Games
PICO-8_38
Ufo Tofu
http://www.lexaloffle.com/bbs/?tid=4055

 

PICO-8_36
Uhura
http://www.lexaloffle.com/bbs/?tid=3736

 

PICO-8_34
Matchy Matchy
http://www.lexaloffle.com/bbs/?tid=4022

 

PICO-8_37
Tea
http://www.lexaloffle.com/bbs/?tid=2829

 

PICO-8_39
Triotos-8
http://www.lexaloffle.com/bbs/?tid=3996

 

PICO-8_40
Nora’s Mouse Chase
http://www.lexaloffle.com/bbs/?tid=3414

 

PICO-8_41
P.Craft http://www.lexaloffle.com/bbs/?tid=3200

 

Not included anything by Benjamin Soule. His are all A+. Also check out Sophie Houldens game!

 
19 Kudos
Don't
move!

Arrays and Tables in Pico-8

I see a lot of questions about how Pico-8 handles arrays, 2D arrays, and objects. Since the Pico-8 language is a variant of Lua we can use tables for almost everything. This is a comprehensive guide to arrays and containers in Pico-8.

2D Arrays

Screen Shot 2016-07-16 at 17.36.17

For beginners, I suggest you use concatenation to index 2D arrays. Create a new object in a 2D cell at (i,j) in a table called myArray with the following code:


myArray[i..","..j] = {}

To iterate over all objects in the myArray you can use the pairs iterator. Caution: the objects are not ordered when using pairs!


for k,v in pairs(myArray) do
	-- v is the cell object
	-- k is a string in the form of "i,j"
end

If we want to access the objects in a particular order we should use nested for loops:


for i=1, 8 do
	for j=1, 8 do
		local cell = myArray[i..","..j] 
		-- do stuff with the cell
	end
end

Objects And Container

PICO-8_5

Entities like the spaceship in this gif are objects. Containers for objects are special in Pico-8 because we have a couple of built-in functions to help us manage insertion and deletion. I strongly suggest to use add(), del() and all() for container and entity management.

Create and add an object to a table with add():


local entities = {}
local player = {
	x = 3,
	y = 3,
	sprite = 5
}
add(entities, player)

In your _update or _draw callbacks, you will most likely want to loop over all objects. You should use all() for that:


for entity in all(entities) do
	-- do stuff here
end

You can use del() to remove an object from the container even while iterating over the container:


for entity in all(entities) do
	del(entities, entity)
end

This only works with all() and del() together! This is great for games where you have dynamic objects such as bullets, effects or timed events that are added and removed dynamically.

I hope that these two hints help you to get started with the awesome Pico-8 engine. For advanced users, other methods might be more efficient. I recommend reading the Pico-8 Docs or the PIL for more information.

 
39 Kudos
Don't
move!

NanoFL and HiDPI

NanoFL is a minimalistic and free alternative to Animate CC (formerly Flash Professional). It publishes to Apaches Cordova or HTML5 with for example an CreateJS generator. While fiddling around with it I ran into the usual high resolution issues that always come up with HTML5: Blurry images and text.

Thankfully, there is an easy fix:

If you use the CreateJS just add a Scene class in the Document Properties Screen Shot 2016-04-07 at 13.36.14

If you hit publish a directory structure is created:

├── bin
│   └── library.js
├── gen
│   └── base.js
├── library
│   └── scene.xml
├── publish
│   ├── cordova
│   └── html
│       ├── bin
│       │   └── library.js
│       └── test.html
├── src
│   └── Game.js
├── test.html
└── test.nfl

Inside the src folder you will find a Game.js file with some boilerplate code. As suggested by Kevin Newman it is quite easy to change the canvas of CreateJS to use the HiDPI settings. We modify the code from his blog to fit our NanoFL environment into the init function of the Game prototype:

var canvas = document.getElementById("mainCanvas");
var stage = this.parent;
if (window.devicePixelRatio) {
    // grab the width and height from canvas
    var height = canvas.getAttribute('height');
    var width = canvas.getAttribute('width');
    // reset the canvas width and height with window.devicePixelRatio applied
    canvas.setAttribute('width', Math.round(width * window.devicePixelRatio));
    canvas.setAttribute('height', Math.round( height * window.devicePixelRatio));
    // force the canvas back to the original size using css
    canvas.style.width = width+"px";
    canvas.style.height = height+"px";
    // set CreateJS to render scaled
    stage.scaleX = stage.scaleY = window.devicePixelRatio;
}

Et voila, that’s it!

 
10 Kudos
Don't
move!

Burn The Boards – Background Information

Georg wrote a pretty interesting article about the development and background of the Burn The Boards project for Madewithunity: http://madewith.unity.com/stories/burn-boards-making-unpleasant-reality-immersive-gaming-experience-1.

I was involved in the creation of the project and was part of the design team for it. The problems of electronic waste and the associated health risks of workers are a topic that interest me greatly. If you want some insight into how that serious game was made check out the article.

 
6 Kudos
Don't
move!

New Game: Jack

I once again set out to join the fun of Ludum Dare this time in it’s 34th instalment. The result is a relaxing and simple game about growing trees for your pleasure. The slightly refined post compo version is available on itch.io or the original ludum dare site.

nW0DI-

Get it here: http://headchant.itch.io/jack

 
3 Kudos
Don't
move!

Pico-8 Palette CLR for OSX

Pico-8 is an awesome fantasy console by lexaloffle. I really wanted to use the palette in other pixel art editors so I made a clr file, to be used with the standard color picker under OSX.

How To Use:

  1. Download the pico8.clr

  2. Copy the file to ~/Library/Colors/

If you open your color picker (for example in the amazing pikopixel pixel art editor) you will be able to find it in the drop down menu under the ‚Color Palettes‘ tab.

Screenshot 2015-11-16 17.57.05

Have fun!

 
8 Kudos
Don't
move!

Minipixel Style – A New Indie Aesthetic

Thinking about game design and art is one of my hobbies. And I admit it: I love pixel art. And the last couple of years were a renaissance of pixel art fueled by the indie boom and games like minecraft. And right as you think you have seen it all – a new style seems to emerge: the minipixels

What?

Pixel art is often seen scaled up by 2x, 3x or more. Minipixels are different. The art usually isn’t scaled at all but still the edges are hard and no anti-alias is used. Pixelart is very small and detailed but minipixels are usually bigger pictures with bigger uniform areas since there is no upscaling involved in the postprocess. It can be made with the same tools as pixelart: the pen tool in PS/GIMP and by turning of anti-aliasing for your fills.

Examples

Relic Hunters is a free game that uses this for it’s feature art and mixes it with more ‚traditional‘ pixel art:

01

http://www.relichunters.com.br/

The colors are totally different but in Orcish Inn we also see minipixels. Steven Colling, the developer of orcish inn, calls this a „grispy style“.

shot_a_typical_inn

http://orcish-inn.stevencolling.com

(Disclaimer: I work on the music for that game. But that does not change that I really like the graphics that Steven made!)

Is this is a thing now?

I don’t know if this a thing or will be. But I think it might be. It is nice to look at when used correctly and a nice fresh breeze after years of blocky pixels. Do you have more examples? Do you like this style? Do you want to see more games with this?

 
1 Kudos
Don't
move!