Dissecting A Dweet #3: Mini Black Hole

Today we will be examining my most popular dweet, a miniature black hole simulation! It’s one of my easiest dweets to explain and the code is fairly straightforward. Read on for a full analysis…

for(i=0;i<2e3;x.fillRect(i?960+i*S(F=260*(t+9)/i+S(i*i)):0,i?500+.2*(2*i*C(F)+2e4/i):0,K=i++?S(i)*9:2e3,K))x.fillStyle=R(99*i,2*i,i,i?1:.4)

View post on imgur.com

Continue reading

Posted in JavaScript | Tagged , , | 12 Comments

Dissecting A Dweet #2: Spirograph Design Generator

Today we will be examining this crazy small JavaScript program that generates an array of endless random spirograph designs. Read on for a full explanation of how it works.

for(i=144;q=(8+t>>3)*i--;x.fillRect(i%16*120+T(S),(i>>4)*120+T(C),2,2))t%24<1?c.width|=r=n=>S(q**n)*9|0:T=f=>5*r(4)*f(r(3)*t)+9*f(r(2)*t)+60
https://imgur.com/ANwkwCg

Continue reading

Posted in JavaScript | Tagged , , | 2 Comments

Dissecting A Dweet #1: Spiral JavaScript Quine

This is the first in a series of posts where I will analyze a dweet’s code, explain how it works, and why it was done that way. A dweet is a 140 character JavaScript program published on Dwitter. The goal is to write small compact code that does something interesting. This ends up being much different from typical programming and creating quality dweets is something of an art.

I’ve published several hundred dweets but this is one of my favorites. A simple yet beautiful program that creates a winding spiral with the text of it’s own code.

Continue reading

Posted in JavaScript | Tagged , , | 4 Comments

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