Integrated game/music/sprite editor for the bitbox

What is a good name for this program?

  • 16tiles - (current placeholder name)

    Votes: 0 0.0%
  • 16g - (g being 16 in extended "hexadecimal")

    Votes: 0 0.0%
  • 16

    Votes: 1 33.3%
  • 4shift - (>>4 or <<4 also being common)

    Votes: 0 0.0%
  • shift4 - (see above)

    Votes: 1 33.3%
  • nibbles - (a half byte)

    Votes: 1 33.3%
  • and15 - (&15 being a common operation)

    Votes: 0 0.0%

  • Total voters
    3
  • Poll closed .

@makapuf
ok, that makes sense. it should be super easy to code it up as a u32, at least for the standard case (when the whole sprite is onscreen).

the null nibble is specific to each sprite. each sprite can choose which color of the palette is invisible for them; that way you can have sprites which have different "palettes". i suppose it's not a huge advantage.

sounds good for the pointer being bufferX + 16. if the whole buffer is aligned on 1024 (on 16-bit increments?) not sure if it makes memory access less efficient, but it would make it easier to use!
 
another quick side project -- was hoping to code it in a day, but it took two or three (well, not coding 24 hours straight in any case):
https://github.com/lowagner/bitbox-greeble
BlockEditor.png


some info:
We label a "block" from 0 to 127 (inclusive), and each quadrant of each block can be specified as another block (B) or a pure color (C). There are 0-127 colors, too, each of which can be adjusted as well.

Infinite recursions are eliminated at the lowest resolution by turning the quadrants labeled as B into C quadrants (using the same index for C as for B). Thus instead of descending into e.g. B05, at the lowest level, it will resolve as C05.


also have an idea for making sprites for a fighting game (like smash bros, but perhaps a bit more physics based):
Fiight.png
 
no super big news, but a month-or-two-old video of the dueling snakes, with more than one actual person playing it...
 
some updates with the 16 game editor. now the sprites animate a bit when moving around:
a longer video (feel free to skip around to various interesting parts):
and a shorter one showing how to copy and paste a rotated or mirrored version of a sprite (feel free to skip to about 1 minute in):

And it all runs nicely on the bitbox, too. (Notice some updates/improvements from last videos.)
 
Last edited:
i've modified an 8x8 font for a different purpose (another bitbox game), where you'll be able to choose your name and such.

any requests for additional characters? or other comments?

i do mean to put in thorn and eth.

test.png
 
Nice project you are making! Would love to have this thing as a handheld, but then again there are several of them already. A Cyrillic alphabet is needed IMO.

Now on the project status do you consider moving to a beta status? You are also building those for us fans. If it wasn't a fear that it would mostly gather dust as I lack time lately, I'd definitely order one...
 
Nice project you are making! Would love to have this thing as a handheld, but then again there are several of them already. A Cyrillic alphabet is needed IMO.

sure, if you'd like to contribute, put in a code block like this with the important letters:

Code:
["    *  ", # number 1
 "   **  ",
 "  ***  ",
 " ****  ",
 "  ***  ",
 "  ***  ",
 " ***** "],
...
["", # a
 "",
 "****** ",
 "   ****",
 "*** ***",
 "**  ***",
 "**** **",
 ""],

note that while you can have 8 characters across, you should only use 7 for your letters (otherwise they'll hit the next one). also, capital letters take up the top 7 rows, lowercase letters take up row 3 through 7 (or 1 through 7 if they're letters like h, or can drop down into row 8 for characters like g and j). i'm not sure i have a ton more space left, but i can also take out a few less important accents/letters.

Now on the project status do you consider moving to a beta status? You are also building those for us fans.

sure, i can push it out as a beta soon. most of the core functionality is there, though i'd like to be able to spawn sprites, too, for a fire routine.

If it wasn't a fear that it would mostly gather dust as I lack time lately, I'd definitely order one...

well, you can do what i did; start playing with the emulator versions of things on a development-ready computer, and order when you feel it's justified, or when you've made your first game...
[doublepost=1480463793,1480447597][/doublepost]well, added sprite spawning, though without collision detection they're useless as projectiles and such.

just a few more touches before beta (should have sprite-sprite collision detection, too...)
 
Now you can add "Quake" to your sprite patterns (shaking the camera).

it can get a bit ridiculous.

oh, and here's a brief tutorial on the music editor:
 
ok, so! thought about putting in a new file format (ASCII, readable, avoid endian issues, etc.), but the bitbox does things easier with small files, and it was having trouble putting everything in one file. (or i didn't have my code all correct. if you'd really prefer a readable format, and you'd like to debug io.c, feel free ;).)

i'm still semi-tempted to put the music files (.A16, .I16, .V16) in one file (.C16), which probably could be human readable. (i think it's small enough, data-wise, to do, with loading/unloading on the bitbox, and still be fast.) i'll choose one way or the other before i release a beta, but wouldn't mind feedback.

ok, so sprite collisions are probably the next big thing i should do, as well as implementing some tile-sprite collision logic (like damage). after that, i still have "unlock" logic to figure out, but then we could do beta.

so, the unlocks will work like this: you'll have about 8 of them to specify, 4 of which can trigger when you hit a sprite or tile with an "unlock 0", "1", "2", or "3" feature, and the other four will trigger when the game starts, when you die, when you win, and one will just loop constantly through the level. the unlock patterns can set gravity, change the game mode (platformer to overhead control, etc.), change the damage multiplier, all sorts of things...

oh, and @makapuf, i've changed up the draw mode a bit, and i think it helps a little. i write to a u8 line (not frame) buffer (though each u8 is only 0-15, as if it were a u4), then i do a single pass through at the end, drawing using a double palette (palette2[256]), though i have to do a bit of bit shifting to get from the u8 buffer to drawing u4's :)
https://github.com/lowagner/bitbox-16/commit/e84dccc685d42f8a187f2546a8e6dcad07de5b2c

i didn't want to write to a u4 buffer, because i was a bit lazy with how the tiles get written on screen. (it also hurt my brain to think about shifting over tiles that fell on odd indices...)
but if someone can demonstrate a faster implementation, i'm all ears :)
 
now our hero sprite has some health concerns. if you hit a damaging surface, you'll get hurt depending on your impact speed, but you get to blink some time with invulnerability.
also refactored the code to accept the other various surface properties of tiles (damaging, sticky, slippery, etc.), for which i've coded up some neat effects (see the video), though some of the later properties (like checkpoint and win) don't do a ton yet...

 
oh, forgot to update here, but i've worked on some rudimentary sprite collisions. no damage yet, but you can push each other around a bit.

i had some family playing bitbox tetris almost nightly for the last few days, apparently it's been a big hit!
 
Looks good. I'm still tempted to try and get a bitbox, but I know I just don't really have the time to make something of it.
 
yeah, it's something fun to work on, but you should definitely try out the emulator to make sure you'll do anything with it before getting one.

instead of creating a new thread for random things people probably don't care about, here's an online calculator and base converter:
https://patchsoul.github.io/baseball/

it also has some rudimentary calculator features with postfix syntax. (some practice for a postfix language i'm developing, for no reason at all.)

i think the main goal is to find an expression which yields "POOP" in the balanced ternary box. here's one:
O MOM - MOO - MOO -
 
ok, so back on topic. sprite-sprite collisions are implemented, with damage, so that makes for a more game-like experience. you can choose which sprites do what kind of damage, and you can choose some sprites to be immune to certain types of damage, or have one (or more) invincible sides.
 
it's weird we're coming up on 1 year since i first posted here!

i'm finally back into working on 16 again. i changed the file format (essentially concatenating all the separate files together). since there were lots of small files floating around, this is more efficient and doesn't clutter the directory up too much. i need to do some more tests to make sure i'm not overwriting any other data when saving tiles for example.

in the off chance that any of you have been making music/tiles/games with the old executable, i've created a branch of the repository which will open the old style and save the new style. lucky you :).
 
Back
Top