Porting Bitsy engine to Pokitto

So recently I discovered Bitsy. It is a tiny game engine for making simple narrative games. It uses 8x8 tiles, 1bit gfx per tile and a total of 128x128 resolution.

I think those games would be awesome fit for Pokitto (and would also introduce pokitto to the growing bitsy community).

I am wondering if anyone would be interested in making a port that would allow bitsy games to be run on Pokitto (sadly it is above my skill level)?

The games are stored in plain text and the html runtime doesn’t look too complex. It would be awesome if we had a pokitto code that we can just post the plain text data into to make a game. Maybe even something that would allow us to run a game from a saved text file?

You can check out the games here and here.
You can see how a complete game data looks in the Bitsy Archive.

I think it is doable because we can see the html code embedded in each game and I am pretty sure the author would be happy to see his creation on new platforms (there is already a “bitsy arcade” in the wild).

Any programmers interested in porting the html bitsy runtime to pokitto?

Edit: Forgot to add that bitsy is a WYSIWYG engine, so you can make games on the PC with a GUI, and then copy the game data from the gui to your pokitto. Because of it’s simplicity, it could be used by young kids as a very broad intro to programming.

5 Likes

First thing’s first:

  • Is the source code available?
  • Is there a formal spec of the file format?
  • What licence is it released under?
    • We may have to ask the creator for permission

I found the source on github (although this source is for the full GUI editor, we would just need the “game player” module).
I can’t seem to find license or the format spec info.

I am reaching out to the author to see if he would be ok with the port, and if he has a spec we could use.

1 Like

Interesting. I hadn’t heard about bitsy before. From the amount of games available (600!), it looks like its worth the effort of writing a runtime.

1 Like

Yep, and while they are mostly few minute long games, there are some great narratives there. I would love to just pass a pokitto to someone and have them play it :slight_smile:

Right now I am waiting for a response from the author, but looking at the community around bitsy, I think he will be ok with us porting it :slight_smile:

That looks quite interesting! However the screen size is not the best for Pokitto: big borders.

1 Like

I don’t think it will be a big issue, after all when you launch the game in the browser it also has “borders.”

And I think bitsy has some option for the “background” color that the webpage would have. I think we can use that color for those pokitto borders.

1 Like

That is clever :slight_smile:

1 Like

Reminds me of puzzle script, anyone tried that web engine it’s all in text and more like a ruleset then a programing language
Resolution is even smaller then 128

I see what you mean.

Kind of reminds me of Prolog or a functional language.

Also that extra screen space can be used for editor tools, if we want to make also Bitsy editor for Pokitto.
Did you get any response from the author?

3 Likes

That would be cool if we could port the whole game making engine, but I am not holding my breath.

No word from the author yet. I contacted him on twitter (his preferred method) and via bitsy Discord, but it seems he wasn’t active on those in the last few days. After some digging I have found his email, so I will send one today as well.

Edit: well, the email I found is inactive :confused: I will keep on digging.

Anybody have any experience with Espruino? Looks like one of the boards it supports has similar specs to the Pokitto.
Instead of rewriting the bitsy engine, maybe we could make it run as-is?
It doesn’t actually use HTML, just a Canvas. If we can make JS work with a fake Canvas, it’d be one more option for easily making games for the Pokitto.

You might want to give it another day or two in case he’s busy, otherwise it might look a bit awkward if he finds he’s been bombarded in 2-3 different places.

That said, I looked at the bitsy source code on github and the last push was 3 days ago by the author himself, so you might be better off raising an issue on the github page if you don’t get a reply through the other systems.

Getting persmission is the easy bit though, this would be a fairly substantial undertaking.

Some dude’s been waiting since January: https://github.com/le-doux/bitsy/issues/5

There are older issues than that, and I found out why:

thanks for the suggestion trevor! I should probably add a readme.

that said, I’m not planning on managing the project via github or doing pull requests and that sort of thing - this repository is really just a backup for the code. so if you have suggestions for bitsy, the forum (which I read pretty regularly) is the best place to post about it: https://ledoux.itch.io/bitsy/community

I will wait few more days for a response. After that I will post on bitsy forums (this was my first idea, but I thought keeping the question more private would be better).

As for porting. I would love if we could just run it as is as @FManga mentioned, but it might be more tricky than just porting what’s inside that canvas.

It would be a HUGE task to port the whole game making application. What I was thinking is to port the canvas that runs the game data. I have posted an almost blank game (it has 1 room, 1 sprite, 1 tile, 1 dialog…basically the default layout) to pastebin here.

While it looks long with 6k lines of code, a lot of that is data (fonts take over 2k lines on their own), and there aren’t that many functions that would need to be ported.

Good News Everyone!

I just received green light from Adam on the port. He is excited to see bitsy ported.

He said he doesn’t have a spec for the file/game data format, but he said that the methods parseWorld() and serializeWorld() should give us understanding how the file format works.

Now, anyone interested in porting the runtime to pokitto?

3 Likes

Great!
I think that before porting we should evaluate if the games are really playable on tiny Pokitto screen at 128x128 pixels. They are made to play on browser window using “big pixels”. One issue might be text readability also.

Good to hear!

Edit: Forgot the stupid breakpoint in the code again! >_<

Edit2:BitsyTest.bin (33.6 KB)