All Projects → morningtoast → pico8dev

morningtoast / pico8dev

Licence: other
Pico-8 Development

Programming Languages

lua
6591 projects

Projects that are alternatives of or similar to pico8dev

pico-test
⚡ PICO-8 testing framework
Stars: ✭ 33 (+94.12%)
Mutual labels:  pico-8
PICO-8.vim
A vim plugin package for PICO-8 programming.
Stars: ✭ 42 (+147.06%)
Mutual labels:  pico-8
pico-8-adventure
An open-world adventure game written in Pico-8, including full tutorial.
Stars: ✭ 24 (+41.18%)
Mutual labels:  pico-8
P8Coder
A programming tool that replaces the lua code in pico-8 cartridges (p8) with the code you write in P8Coder.
Stars: ✭ 89 (+423.53%)
Mutual labels:  pico-8
pico2tic
PICO-8 Wrapper for the TIC-80
Stars: ✭ 48 (+182.35%)
Mutual labels:  pico-8
fake-08
A Pico-8 player/emulator for console homebrew
Stars: ✭ 374 (+2100%)
Mutual labels:  pico-8
p8
👾 PICO-8 dependency manager
Stars: ✭ 44 (+158.82%)
Mutual labels:  pico-8
Awesome Pico 8
A curated list of awesome PICO-8 resources, carts, tools and more
Stars: ✭ 1,955 (+11400%)
Mutual labels:  pico-8
Pyxel
A retro game engine for Python
Stars: ✭ 9,133 (+53623.53%)
Mutual labels:  pico-8
PICO-EC
A tiny scene-entity-component library created for the PICO-8 fantasty console.
Stars: ✭ 37 (+117.65%)
Mutual labels:  pico-8
pico8-emmylua-definitions
EmmyLua intellisense definitions for PICO-8
Stars: ✭ 25 (+47.06%)
Mutual labels:  pico-8
tac08
tac08 is an an emulation of the runtime part of the Pico-8 fantasy console. It takes a .p8 (text format) pico-8 cart file and runs it as closely posible
Stars: ✭ 144 (+747.06%)
Mutual labels:  pico-8
Anteform
Anteform is a retro weird detective game written using the Minima Engine for PICO-8.
Stars: ✭ 17 (+0%)
Mutual labels:  pico-8
pico-8-projects
Just my repository for mocking and writing down basic implementations I have been thinking about.
Stars: ✭ 40 (+135.29%)
Mutual labels:  pico-8
Pico8Platformer
A platformer sample written for Pico-8, includes slopes and jump buffering
Stars: ✭ 38 (+123.53%)
Mutual labels:  pico-8
p8-programming-fonts
A collection of fonts I've modified for PICO-8 programming.
Stars: ✭ 67 (+294.12%)
Mutual labels:  pico-8
sublime-PICO-8
PICO-8 plugin for the Sublime Text 3 editor.
Stars: ✭ 42 (+147.06%)
Mutual labels:  pico-8
jspicl-mario-sample
A basic Mario game showcasing how to create PICO-8 games in JavaScript.
Stars: ✭ 19 (+11.76%)
Mutual labels:  pico-8
midi2pico
Midi to PICO-8 converter
Stars: ✭ 51 (+200%)
Mutual labels:  pico-8

Pico-8 Development Tools

This repo includes snippets, demo carts and libraries to help make Pico-8 games.

Some of the code is my own, a lot of it is taken from the Pico-8 Community and tweaked a bit my me so I could understand it...or just make a nice wrapper for it.

All the code here is intended to be a starting point for your own development. Change, tweak and reuse code as you need.


Contents

  • boilterplate.p8 - Ready to go cart with basic structure and helpers
  • blankcart.p8 - Barebones for cart
  • mousetouch.p8 - Functions for mouse/touch detection
  • explosion_lib.p8 - Explosion particle library
  • fadetext.p8 - Fading text screens. For game startup.
  • glitchfx.p8 - Scanline glitch effect

My approach

I approach most of my games with the same process and structure, as you'll find in the boilerplate. I'll do my best to explain myself a bit.

Defining a scene

I think about each major type of content as a scene. So the title screen is a scene. The tutorial is a scene. The game over is a scene. And the main gameplay is a scene. Every time the game content and/or interaction changes, that's when I define a new scene.

Each scene has its own init, update and draw functions.

Inside each of those functions exists calls to the specific item/object functions, like moving the player, enemy movement, backgrounds, UI...whatever.

You'll see that the boilerplate comes with 3 predefined scenes: title, game over, and gameplay. And specifically, the gameplay scene calls the player functions.

Keep the main loop lean

The main system loops - _update() and _draw() - I try to keep as lean as possible. I define an global cart update and cart draw function that is called within the system loop all the time. I then assign these cart functions to appropriate scene update/draw functions. Then when I need to switch scenes, I just reassign and go from there.

This lets me not only chain together a bunch of scenes to make a complete game, it lets me run any given scene individually at any time during development, which makes for much easier debugging and building.

Getting better at saving tokens

Token count is the only real risk in Pico-8 as far as I'm concerned. However, for most games, that count will never be reached. I've only had one game reach the limit and that was because of my quasi-poor coding and not because my game was big or anything fancy. But out of that, I learned a lot.

I tried to bring my existing programming knowledge to Pico-8 and while it helped me think of how to solve a problem, it didn't help me in code. Bringing forward modern coding practices into Pico-8 will kill your token count.

Check out this article for token-saving techniques. Good stuff. https://github.com/seleb/PICO-8-Token-Optimizations

I've found it saves more to be feel less efficient with your code. Once you start adding complexity while trying to be smart about things, that's when you'll start to burn tokens. Don't bring modern worries to this "old school" language.

Code quality rarely matters

I see a lot of people on the Pico-8 forum talking about how bad their code is and saying it could be better...well, of course it could. It can always be better, but here's the thing - the quality of your code doesn't matter.

Remember, you're making a game for people to play. You're not making something to be able to tout your coding skill. The person playing your game doesn't care about your code. As long as they can play your game, they're happy.

Which should go to say code quality does matter if starts to impact how your players experience the game. Otherwise, it doesn't matter one lick.

As long as you get your game working and doing what you want, your code is great. Don't worry about it. You'll get judged on game quality before you get judged on code quality. Don't lose sleep over well-formed code or too many variables or whatever. If your game works, it works...move along.

This article talks about Eugene Jarvis's game development and there's a great quote that I try to remember when making Pico-8 games.

...creating classic arcade games meant that they had to focus all on gameplay, challenge, difficulty ramping, and more, since relying on realism was out of the question

Rolled inside that list is quality of code. Do battle with your game ideas and player experience, don't do battle with your code.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].