ible
professional vim user
I wanted to start a bit of a dev feedback and discussion regarding a project I've been working on in my off hours for the last bit. It's inspired by PICO-8, but open-source, of course . The bitbox itself is open source, open hardware. Some links for the bitbox in the spoiler.
Part of the challenge for the bitbox is dealing with the limited CPU cycles, and limited RAM, among other things. My project uses a tile/sprite based approach which helps with RAM and makes it easy to race the beam (for drawing to screen), though it's very hybrid with some text stuff layering on top. Here's the git repository:
https://github.com/lowagner/bitbox-16
Oh, and one last thing before I get into the design of the thing: you can emulate bitbox games on CPU-based computers via SDL, so that helps with development. I'll try to figure out how to do bitbox dev on the Pyra, so eventually you'll be able to play bitbox games there, too.
The idea for the integrated dev environment/game maker -- is to force almost everything into 4 bits... so you get 16 choices for things. There are 16 colors, 16 tiles, 16 sprites (though each consists of 4*2 frames for right/left/up/down animation), 16 instrument commands. Oh, and each character in the font fits into 16 bits, which is quite compact. (Though, that doesn't exactly fit the 4 bit theme, although each row of each character is 4 bits...) Each level is also somewhat constrained in size, although that is somewhat arbitrary. Though you'll probably want to load up different levels with different tiles for variety. Here are some screenshots.
Done:
If it's not already clear, this thing is pre-beta, so don't attempt to make games with it yet. But you can make some pixel art, and play a bit around with a chiptune engine. There's also no timeframe for release or anything, though I hope to have most of the editing stuff (for tiles, sprites, music) finalized soon, though the game engine/editing will come later.
[edit] sprite collisions with damage enabled
https://pyra-handheld.com/boards/threads/bitbox-a-small-open-diy-32-bit-vga-console.74724/ -- Pyra Forum Thread
https://groups.google.com/forum/#!forum/bitbox-console -- bitbox dev forum
http://bitboxconsole.blogspot.com/ -- bitbox blog
https://github.com/makapuf/bitbox/ -- main bitbox SDK
https://github.com/makapuf/bitbox/wiki -- bitbox wiki
old repository (where the project started), sharing space with some other prototype view modes:
https://github.com/lowagner/bitbox-modes#palette16tile
https://groups.google.com/forum/#!forum/bitbox-console -- bitbox dev forum
http://bitboxconsole.blogspot.com/ -- bitbox blog
https://github.com/makapuf/bitbox/ -- main bitbox SDK
https://github.com/makapuf/bitbox/wiki -- bitbox wiki
old repository (where the project started), sharing space with some other prototype view modes:
https://github.com/lowagner/bitbox-modes#palette16tile
Part of the challenge for the bitbox is dealing with the limited CPU cycles, and limited RAM, among other things. My project uses a tile/sprite based approach which helps with RAM and makes it easy to race the beam (for drawing to screen), though it's very hybrid with some text stuff layering on top. Here's the git repository:
https://github.com/lowagner/bitbox-16
Oh, and one last thing before I get into the design of the thing: you can emulate bitbox games on CPU-based computers via SDL, so that helps with development. I'll try to figure out how to do bitbox dev on the Pyra, so eventually you'll be able to play bitbox games there, too.
The idea for the integrated dev environment/game maker -- is to force almost everything into 4 bits... so you get 16 choices for things. There are 16 colors, 16 tiles, 16 sprites (though each consists of 4*2 frames for right/left/up/down animation), 16 instrument commands. Oh, and each character in the font fits into 16 bits, which is quite compact. (Though, that doesn't exactly fit the 4 bit theme, although each row of each character is 4 bits...) Each level is also somewhat constrained in size, although that is somewhat arbitrary. Though you'll probably want to load up different levels with different tiles for variety. Here are some screenshots.
Done:
- Tile and sprite pixel editor - 16 tiles and 16 sprites with 8 frames each, each with 16x16 pixels.
- Map editor - place tiles and sprites, adjust map width and height (min 22x17 tiles)
- Tile property editor - safe to land on, water, air, solid, passable in certain directions, etc.
- Sprite property editor - safe to land on, vulnerable to certain attacks, etc.
- Sprite pattern editor (for enemies and NPCs, and also players)
- Sprite collisions - and damage, based on attack types, invulnerability, and side properties
- Palette editor - choose 16 colors, each with 32 values per channel (15 bit RGB)
- Instrument editor - command based, can make arpeggiators, etc.
- Track editor - command-based, can also adjust global song speed, transpose, and track length
- Song editor - "piano-roll" based
- Most awesome 4x4 font
- Excellent BSOD screen showcasing the font
- Saving and loading from (micro) SD card
- Better wiki page and documentation (https://github.com/makapuf/bitbox/wiki/16)
- Game modes (platformer, top-down adventure, maybe RPG...)
- "Unlock" command editor, for when hitting switches etc., can add or delete tiles, or add sprites
- Allow levels to link to other levels (load from SD card different palettes, sprites, tiles, music, etc.)
- ???
- ???
- ???
- Not run out of 1MB program memory...
- Decided to go with a bare-bones track editor, just like the instrument editor, over which you have very precise control, though perhaps not intuitive control. This also works as the basis for the sprite pattern editor and the unlock pattern editor, the latter of which hasn't materialized yet.
- Maybe allow each tile to have 2 frames for an animation loop. Currently you can animate tiles in a slightly different way, but it might be more consistent with the sprite animation if we give each tile two frames. You could make each frame have a different property (one is stab you to death, the other is nice, for example). DECIDED AGAINST. keep things simple, and global, for tiles. this should be easier to compute than something individually for each tile.
- ??? will discuss more about these.
If it's not already clear, this thing is pre-beta, so don't attempt to make games with it yet. But you can make some pixel art, and play a bit around with a chiptune engine. There's also no timeframe for release or anything, though I hope to have most of the editing stuff (for tiles, sprites, music) finalized soon, though the game engine/editing will come later.
[edit] sprite collisions with damage enabled
Last edited: