MinBytes – A Minimal Bytebeat Album in 1024 Bytes

This is a full album with 9 tracks and visualizer in 1k of JavaScript! Each song is created by a tiny function. For example, the first song on the album uses the simple function (t&t>>8). It is amazing the complexity and chaos that can arise from such a simple system. I’ve collected my experiments together into this album and made it available in several formats, please enjoy!

Live Demo @ minbytes.3d2k.com

Listen to the album on SoundCloud


Here’s the JavaScript code for the first song TAKEOFF!

// TAKEOFF ~ By Frank Force 2019 ~ minbytes.3d2k.com
A=new AudioContext
B=A.createBufferSource()
C=(B.buffer=A.createBuffer(1,1e7,1e5)).getChannelData(0)
C.set(C.map((_,t)=>t&t>>8))
B.connect(A.destination)
onclick=TAKEOFF=>B.start()
Posted in Music | Tagged , , | Leave a comment

“SPENDOTRON: 2019” – Ludum Dare 44

The theme for Ludum Dare 44 was “Your Life is Currency”. This was my 9th Ludum Dare and first one using Javascript. You can play it in browser on itch.io! It’s been over 4 years since the last time I’ve competed in a Ludum Dare so I’m excited to get back into it. I think this is one of my best entries, a super difficult twin stick shooter demake of Robotron. Continue reading for link to the game and my thoughts on the experience.

Continue reading
Posted in Game Dev | Tagged , , , | Leave a comment

I made 7 1k JavaScript demos in 2 weeks for JS1k!

For the past month I have been doing a deep dive into making tiny JavaScript programs. It started when I learned the JS1k (JavasScript 1 kilobyte) competition was underway, with the deadline rapidly approaching. I had programmed only a small amount of JavaScript before, but always wanted to learn more. It’s such a fun language, fast, simple, accessible, and it runs in any modern web browser. Byte for byte I don’t think there’s a better language for “code golf”.

So, I took the plunge and spent 2 weeks working on JS1k entries all day, every day. I learned a lot, had some fun, and made 7 new JavaScript demos. Read on for an epic postmortem with technical notes!

Continue reading
Posted in Game Dev | Tagged , , , | Leave a comment

I’m only making business card sized games now

Over the years I’ve worked on many games, some big, some small. I’ve found that the smaller the game, the more fun I seem to have making it. So I set out to make the smallest game I possibly could, and it was a blast.

Ladies and gentlemen, I give you the smallest game I’ve ever released. I call it “Tiny Ski!”, and it’s 960 bytes of pure magic. Please watch this short demonstration and continue reading for more info and source code.

Continue reading

Posted in Game Dev | Tagged | 27 Comments

Piroot Video Devlog 4 – NPCs, Text Effects and Bubble Blocks

Posted in Game Dev | Tagged , , | Leave a comment

Piroot Devlog – MAGFest 2019

I love MAGFest, there’s nothing else like it. It’s not like a regular convention, and I don’t know how best to describe it to those who haven’t been there. Something like a giant all-hours party for gamers, but that doesn’t really do it justice. It’s more like a community of very cool and weird people that live, game, and party together for 4 days straight once a year. My game Piroot was chosen to be in the MAGFest Indie Showcase. In this post I will recap my MAGFest experience, what I learned, and analyze the data I collected. 

My MAGFest Booth

Continue reading

Posted in Game Dev | Tagged , , | Leave a comment

MAGJam Tabletop Game Jam 2019

I just got back from MAGFest and it was truly awesome as always! I’m working on another post about showing my game Piroot in the Indie Showcase, but I wanted to first talk about my experience running MAGJam, a 2 hour table top game jam at MAGFest.

This year we had over 100 people show up, split into 20 teams. It was an amazing experience, thanks to some talented volunteers and a fantastic group of participants. If you are planning a tabletop jam like this, feel free to steal my ideas and make them better.

Continue reading

Posted in Game Dev | Tagged , , | Leave a comment

Piroot Video Devlog 3 – Weapons, Enemies, and Level Design

Posted in Game Dev | Tagged , | Leave a comment

Piroot Devlog – Lasers, Conveyor Belts, Mini Bosses, and Procedural Tile Randomization

I have made huge progress in the past few weeks. Previously I could speed run the demo in under 5 minutes. Now I’ve yet to get through it in under 10 minutes even when skipping as much as possible. I think for a first time player it would take 20-30 minutes. So, yeah, there’s much more to the game. I still have another large area that I want to build before MAGFest that has some water to play around in. The demo build on itch has been updated!

New features…

  • Lasers
  • Conveyor Belts
  • Mini Boss fight!
  • Completely re-tweaked physics and re-balanced everything
  • Added more to the level and polished existing areas
  • Flying enemies
  • Several more varieties of rolling enemies
  • Low health enemies have random chance of going haywire
  • Missile launcher player weapon, homes in and can be controlled manually
  • Tiles that drop when touched and rebuild after a few seconds
  • Limited player’s weapon range, forces you to get closer to enemies
  • Improved hit/miss effects
  • Procedural tile randomization
  • Enemies and the player flash white when hit
  • Lots of polish on everything

View post on imgur.com

View post on imgur.com

View post on imgur.com

The procedural tile randomization is also really cool. I wanted something to help with repeating patterns of tiles without needing to do the level design work to add variation. I also don’t want to do the art work to create a ton of different variations.  This kind of look is iconic to the Metroid series and it just really helps break up the repeating patterns.

So I set up a simple algorithm to add some randomization. It searches for these blue rock tiles that are surround by that same tile. The it randomly swaps it for 3 other tiles and applies some rotation and mirroring to further mix it up. It is super simple but I may use some more complex algorithms in the future. This kind of thing will be a big help on both the art and level design side. 

Procedural Tile Randomization

Posted in Game Dev | Tagged , | Leave a comment

Piroot Video Devlog 2 – Tile Set Features Demo

Posted in Game Dev | Tagged , , , | Leave a comment