20 down, 30 to go! Turns out: making 50 of anything is *a lot*! But I really like this exercise, it makes me think outside the box, and allows me to follow my curiosity. @vihartvihart@twitter.com's 2018 article inspired me to try this: vihart.com/fifty-fizzbuzzes/

I'd like to do five more today!

The further we progress on the x-axis, the more probable the right color becomes!

22: Day of the week

#tic80's tstamp() function gets us the seconds since 1970-01-01! Compared with most other date calculations, finding out the day of the week is relatively straightforward! (Famous last words.)

23: Screen shake

An effect that helps make games 💦juicy💦! This is really satisfying. :D I'm sorry, Japan. Today's earthquakes are on me.

24: Particles

Another 🥵juicy🥵 part of many games! These particles have a position, a color, a direction, a speed, and a "frames to live" counter. They shrink and slow down as they age. #tic80

25: Liquify

Quick effect to finish the day off! Because #tic80's UI is still in the screen RAM when a cart runs, we can do effects on it! Here, each pixel has a chance to assume a neighbor's color!

Without breaks and the time it took to write this thread, I spent around 8 hours on creating the 25 carts! So on average, one took me 19 minutes to make.

I feel excited and exhausted! Stay tuned for part 2 tomorrow! 👾 Which cart was your favorite? :)

26: Tree

Second day! 😊 Here, I'm doing a simple recursion with a dash of randomized angles, using a green color gradient. #tic80

27: Bliss

Having some fun with #tic80's sprite editor, and assembling dynamically-sized objects from tiles!

28: Inversion

Again, this is a custom circle rasterizer that checks the current pixel value, and inverts it. A little shadow to round it off. Kudos to @TRASEVOL_DOG@twitter.com, whose "Doodle Insights" were a big inspiration for me! #tic80

29: Vignette

I love vignetting effects, where the image corners fade out into darkness. It's harder to replicate with a 16-color palette, but I'm not unhappy with this. #tic80

30: Animated character

In many games, you move around with a character, and it looks much nicer when it's animated! This was good practice for implementing a system like that. #tic80

31: Fuzzing

Okay, let's just put random bytes all over #tic80's entire RAM! This can change the screen offset, the border color, or make cute noises! And if you watch the recording until the end, you can watch me learn that there's a bit for capturing the mouse! :'D

32: Cross-stitch

I had the idea to make a filter which takes the current screen content, and replaces each pixel with a stitch! Here it is being applied to the duck cart! :3 #tic80

33: Paint

A very rudimentary drawing program. Really wanted to spend more time on this, but I had to move on! #tic80

34: Falling sand

The same program as #33, but with an additional rule! :D #tic80

35: Water reflection

Each pixel from the top half of the screen is reflected to the bottom half, mapped to a darker color, and shifted around a bit horizontally! Really happy with the interactive part here! #tic80

I'll share all carts later, under free licenses, so you can try them for yourself or modify them! :)

I'm in a deep flow state! 35 down, 15 to go! But I also need food, and a break. So I'll continue after baking some cookies!

36: Rain

A modification of #24, but with two types of particles – raindrops and water splashes! #tic80

37: Spirograph

Three connected arms with random lengths and rotation speeds. We trace the last arm's path (and memcopy to an unused part of the RAM, so we can draw the arms on top)! #tic80

38: Voronoi diagram

I've never implemented Voronoi cells before! Each point has an associated color, and we paint each pixel according to which point it's closest to. #tic80

39: Game of life

A classic "cellular automaton", which simulates its cells in a particular way, often leading to interesting patterns. This starting pattern is called "Acorn"! #tic80

40: Cursor impostors

Only one of these cursors is real! Can you figure out which one? The others dance with you in the same speed. (Note to self: make a real game around this idea at some point.) #tic80

41: Television

A filter that adds noise, some horizontal lines, and cheap distortion using the SCN() function. #tic80

42: Typewriter

#tic80 has access to the states of most buttons on your keyboard, so we can build a typewriter! With some letter imperfections, "editing" capabilities, and *ding* sound at the end of the line! :P

43: Moiré pattern

An interference pattern created by two sets of concentric circles. #tic80

44: Map generator

For this, I distribute some colored pixels on the plane, and make them grow outwards, like bacteria. Surprisingly effective and cheap! #tic80

45: Truchet tile editor

This patterns is made from four tiles, which all fit together. You can click on a tile to change it. Would be fun to make a font with this! #tic80

Only 5 more to go! I can do this! Crunching these out is extremely mentally and physically exhausting, though. At this point, I often think "okay, I'm out of ideas, what now?" Which is the point of this exercise, I guess.

Time for another break.

46: Mountains

The layers keep track of a up/down direction for changing the height. They add noise to it, but also try to flatten it out over time. I like how smooth this makes them. #tic80

47: Timeline

I heard you like timelines, so I put a timeline in your timeline so you can scroll through a timeline while you scroll through your timeline! #tic80

48: Squircle

The so-called squircle is a superellipse defined by x^4+y^4=r^4. It's close to a rounded rectangle, but I like it much better! It's being in UI design, for example for app icons! #tic80

49: Mandelbrot set explorer

A famous fractal! It has a simple definition, but a highly complex boundary! The colors show how many iterations we did from that point before diverging. #tic80

50: Fireworks!

And finally, let's do another application for a particle system. Here, I spawn the particles along some hand-crafted lines and ellipses. Whoa, I really made it!! 🎆 #tic80

I feel proud, and excited, and completely exhausted! This was a really fun experiment! For the last 15 carts, I used a 20-minute timer to remind me to move on.

In total, I spent around 16 hours on creating the 50 carts, and around 4 hours on writing this thread!

My ears are ringing, my eyes are dry, and my mind feels restless. What an intense exercise! I felt some time pressure, because I wanted to finish this weekend, but similar to game jams, that mostly motivated me! The encouragement and accountability y'all gave me also helped! <3

I'll release the carts and do a write-up about this experience sometime soon! But today is not that day! 💤

Today, I'm releasing all 50 programs from my #tic80 challenge under CC0! :) You can run them in your browser! #creativecoding #generativeart

What other things might be fun to make 50 of? Landscape paintings? Koans? Sandwiches?

What would you enjoy see me do? What would you enjoy doing yourself?

@blinry Cooking 50 different curries (or another dish which has a lot a varieties)

This Mastodon instance is for people interested in technology. Discussions aren't limited to technology, because tech folks shouldn't be limited to technology either!