<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>ZLG - Work</title><link href="https://zlg.space/" rel="alternate"/><link href="https://zlg.space/feeds/work.atom.xml" rel="self"/><id>https://zlg.space/</id><updated>2026-09-06T00:00:00-07:00</updated><entry><title>ZLG's MaloDance Emote</title><link href="https://zlg.space/c/work/zlgs-malodance-emote.html" rel="alternate"/><published>2026-08-03T00:00:00-07:00</published><updated>2026-09-06T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2026-08-03:/c/work/zlgs-malodance-emote.html</id><summary type="html">&lt;p&gt;&lt;img alt="A silly man dancing with his arms back and 
forth" src="https://zlg.space/images/zlg_emote-malo-dance.png"/&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;img alt="A silly man dancing with his arms back and 
forth" src="https://zlg.space/images/zlg_emote-malo-dance.png"&gt;&lt;/p&gt;


&lt;p&gt;My community unlocked this emote during &lt;a href="https://zlg.space/c/work/zlgs-subathon-2026.html"&gt;Subathon 2026&lt;/a&gt;! I 
leaned on the skills I learned from the last year or so of pixel art practice 
and commissions to take on two birds with one stone.&lt;/p&gt;
&lt;h2&gt;Bird One: Community Satisfaction&lt;/h2&gt;
&lt;p&gt;It's quite simple, really. Despite my Twitch stream having a good number of
emotes, they're just kinda silly and general in their usage. I needed some that
were purpose-built. This emote's job is explicitly &lt;em&gt;dancing and vibing&lt;/em&gt;. It can
be used for hype moments or good music during stream.&lt;/p&gt;
&lt;p&gt;The Malo Mart dance from &lt;em&gt;Zelda: Twilight Princess&lt;/em&gt; is a classic goofball
routine that is just the right kind of weird. It was the right choice, everyone
was in favor.&lt;/p&gt;
&lt;h2&gt;Bird Two: Testing my Skill&lt;/h2&gt;
&lt;p&gt;The second prong of this project was to really put my skills to the test. I 
thought to myself, "Twitch allows emotes up to 60 frames. What can I do that 
needs that many frames?" That thought was left to percolate while I figured out 
how the emote would be made.&lt;/p&gt;
&lt;p&gt;There are many characters I could've chosen to do the dance, but I chose the
most obvious from &lt;em&gt;Twilight Princess&lt;/em&gt;: the stuck-up shopkeeper in Hyrule Castle
Town. He looks down on Link for looking shabby, but is eventually forced to
dance as he serves you later in the game, after Malo purchases the shop. The
irony is rich. One of my favorite scenarios in the &lt;em&gt;Zelda&lt;/em&gt; series.&lt;/p&gt;
&lt;p&gt;What better way to pay homage to Zelda with another 2-for-1, though? &lt;em&gt;The Minish 
Cap&lt;/em&gt; had a great art style for its format. Despite that game's sprites being 
larger than the 28×28 constraints I work with for Twitch emotes, I found a way 
to put the Malo Mart guy into those dimensions! The torso had to be shortened a 
little to do it, but I'm largely pleased with the result.&lt;/p&gt;
&lt;p&gt;I was aiming for the &lt;em&gt;Minish Cap&lt;/em&gt; style due to its focus on outlines with a hue 
to them. The pastels often used in that game were inspirational to some degree, 
but the Malo Mart guy's outfit used quite a number of varied hues that were hard 
to capture in such a small sprite. I like the style for its ability to convey 
shape and color together with smart selective outlining. In the end, my piece 
deviates from Capcom's style, but if you look closely I think you can see its 
influence.&lt;/p&gt;
&lt;h2&gt;Production&lt;/h2&gt;
&lt;p&gt;Building it was harder than you'd think. Making the face was fairly 
straight-forward, as were the hands. Getting the motion correct in the legs 
(very minimal in &lt;em&gt;Twilight Princess&lt;/em&gt;, actually!) and the sway in the arms was 
quite trying. Once I got one side correct, I did essentially mirror it for the 
return trip, with some modifications to ensure it looks correct.&lt;/p&gt;
&lt;p&gt;One of the best parts of pixel art is its re-usability. I try to build my pieces 
out of smaller, reusable pieces where I can, because even &lt;em&gt;re&lt;/em&gt;building them 
isn't so bad, if you have the pieces you built it with. ProMotionNG makes that 
simple by letting me turn any selection into a brush, to store in any &lt;code&gt;.pmp&lt;/code&gt; 
file, or in its global brush storage. It's an essential part of my workflow now.&lt;/p&gt;
&lt;p&gt;It's also the original purpose of pixel art: reusable game assets. So, this
guy's hands and arms were copied and mirrored a little to shorten production,
because the most challenging was yet to come...&lt;/p&gt;
&lt;p&gt;The Malo Mart guy has a rotating horn on his cap. To make this look good, the 
horn should do a full rotation during the animation, so it loops correctly and 
is seamless. Doing this in 60 frames is quite a challenge!&lt;/p&gt;
&lt;p&gt;First, I divided the task into smaller, more manageable segments. I chopped
it in half, &lt;em&gt;twice&lt;/em&gt;, which gave me 15 frames per "quadrant" of the horn's
rotation. If I could produce a 15-frame animation that looks like a smooth
quarter-turn, then I should be able to keep whatever pixel steps I used, 
establish some key frames, and make a smooth, consistent animation.&lt;/p&gt;
&lt;p&gt;That task took quite a while! The emote sat there, unfinished, for at least a
month or two. Rendering a shiny, rotating horn in pixel art isn't easy. But
eventually, I gathered the gumption to grind it out, do the work, and refine
every last pixel. And damn, look at it! It's one of the smoothest animations
I've ever done. The rotating horn is still pleasant to watch, even after
obsessing over the final version for two or three days before I released it.&lt;/p&gt;
&lt;p&gt;It wouldn't have happened without my awesome subscribers! Thanks a lot to &lt;strong&gt;the 
REAL Game Z&lt;/strong&gt;!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This is an emote that you can use on Twitch when you subscribe to &lt;a href="https://twitch.tv/zlg_creates"&gt;my 
channel&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content><category term="Work"/><category term="Emotes"/><category term="Pixel Art"/><category term="Animated"/></entry><entry><title>ZLG's Subathon 2026</title><link href="https://zlg.space/c/work/zlgs-subathon-2026.html" rel="alternate"/><published>2026-08-03T00:00:00-07:00</published><updated>2026-08-08T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2026-08-03:/c/work/zlgs-subathon-2026.html</id><summary type="html">&lt;p&gt;&lt;a href="https://zlg.space/images/zlg-creates_subathon2026_front.png"&gt;&lt;img alt="A promotional poster for ZLG's subathon 2026, looking like an NES cartridge box, with ZLG giving a 
thumbs up. August 3rd through 5th, 2026, at 3PM Pacific 
Time" src="https://zlg.space/images/thumbs/zlg-creates_subathon2026_front_thumb.png"/&gt;&lt;/a&gt;
&lt;a href="https://zlg.space/images/zlg-creates_subathon2026_back.png"&gt;&lt;img alt="The back of the 
subathon 'box', with subscriber goals every 10 subscribers until 
200." src="https://zlg.space/images/thumbs/zlg-creates_subathon2026_back_thumb.png"/&gt;&lt;/a&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;a href="https://zlg.space/images/zlg-creates_subathon2026_front.png"&gt;&lt;img alt="A promotional poster for ZLG's subathon 2026, looking like an NES cartridge box, with ZLG giving a 
thumbs up. August 3rd through 5th, 2026, at 3PM Pacific 
Time" src="https://zlg.space/images/thumbs/zlg-creates_subathon2026_front_thumb.png"&gt;&lt;/a&gt; 
&lt;a href="https://zlg.space/images/zlg-creates_subathon2026_back.png"&gt;&lt;img alt="The back of the 
subathon 'box', with subscriber goals every 10 subscribers until 
200." src="https://zlg.space/images/thumbs/zlg-creates_subathon2026_back_thumb.png"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;This was the first major event ever put together for my stream. I wanted
something that would be a fun event but hopefully not too much pressure on 
anyone.&lt;/p&gt;
&lt;p&gt;During the event, my community unlocked a good amount of stuff for the stream!
I played some &lt;em&gt;Pokémon Labyrinth&lt;/em&gt; with Tamago_Bento, took a few shots
(responsibly), and after the subathon, I played through the rest of the
&lt;em&gt;ALttP-Super Metroid&lt;/em&gt; randomizer, which was quite an enjoyable challenge with
the right settings.&lt;/p&gt;
&lt;h2&gt;Acknowledgements&lt;/h2&gt;
&lt;p&gt;I want to thank &lt;strong&gt;Tamago_Bento&lt;/strong&gt; and &lt;strong&gt;Elomeno_&lt;/strong&gt; for showing up in person for 
the event and assisting in preparation, snack procurement, etc.&lt;/p&gt;
&lt;p&gt;While we're at it, let's list everyone who contributed during the event! Without 
you, there would be no Game Z!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/ADHDisKay"&gt;ADHDisKay&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/al_my_pal_"&gt;al_my_pal_&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/Amathyst217"&gt;Amathyst217&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Anonymous&lt;/li&gt;
&lt;li&gt;colorama1&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/DiJaDi"&gt;DiJaDi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/Elomeno_"&gt;Elomeno_&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/GingerSnapz_NV"&gt;GingerSnapz_NV&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/HatBastion"&gt;HatBastion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Inewbs&lt;/li&gt;
&lt;li&gt;kimileini&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/LetsConquer"&gt;LetsConquer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/NekroG"&gt;NekroG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;OCS1_Specter&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/ReaperFae"&gt;ReaperFae&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/Tamago_Bento"&gt;Tamago_Bento&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also a shoutout to the streamers who sent their people my way in a raid during 
the event!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/al_my_pal_"&gt;al_my_pal_&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/Blu3per"&gt;Blu3per&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/DrHamburgerJ"&gt;DrHamburgerJ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/Elreydelleon"&gt;Elreydelleon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/Firebolt_KWA"&gt;Firebolt_KWA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/HatBastion"&gt;HatBastion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/Linsplaysgames"&gt;Linsplaysgames&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitch.tv/Shorester"&gt;Shorester&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Afterthoughts&lt;/h2&gt;
&lt;p&gt;Due to some circumstances outside of our control, there were some logistical
problems. There was also a lack of preparedness on my behalf that delayed
things during the event. I was too zeroed-in on getting the promo graphics
correct. They're important, but other things ended up getting missed and I
didn't establish a proper schedule for actual participants, so coordination
suffered. That's squarely my fault.&lt;/p&gt;
&lt;p&gt;Still, the event was largely a success and I've learned a lot from the 
experience. I hope that the next event that I plan lives up to at least Game B 
levels.&lt;/p&gt;
&lt;p&gt;Thank you again to everyone who attended and made the event more fun! I couldn't 
have done it alone.&lt;/p&gt;</content><category term="Work"/><category term="Events"/><category term="Promos"/><category term="Digital Art"/></entry><entry><title>Shwack's Creeper Explosion</title><link href="https://zlg.space/c/work/shwacks-creeper-explosion.html" rel="alternate"/><published>2026-06-26T00:00:00-07:00</published><updated>2026-06-28T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2026-06-26:/c/work/shwacks-creeper-explosion.html</id><summary type="html">&lt;p&gt;&lt;img alt="a Minecraft creeper slowly enlarging before exploding into 
smoke" src="https://zlg.space/images/shwack_creeper.png"/&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;img alt="a Minecraft creeper slowly enlarging before exploding into 
smoke" src="https://zlg.space/images/shwack_creeper.png"&gt;&lt;/p&gt;


&lt;p&gt;My client approached me one day, asking "hey do you think you could do a 
Minecraft Creeper exploding?" At first blush, I thought "Well, it's already kind 
of pixel art, how hard could it be?" Well, it's a bit more complex than that, 
but I was essentially correct! My rendition is a little more saturated, and has 
less moss on it.&lt;/p&gt;
&lt;p&gt;The big detail to get right in this piece is the smaller bits of smoke. I wanted
them to look and feel close to the original game, complete with the multiple
shades and going in multiple directions. The creeper itself simply expands a
little while blinking before the big BOOM happens, just like it does in-game.
I used multiples of the same animation to follow up the big blast, and then
scatter tiny smoke pieces at the end.&lt;/p&gt;
&lt;p&gt;We were both very happy with the result, and his community enjoyed it as well! 
The smoothness I think is what stands out the most with this one.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;To see this emote in action, &lt;a href="https://twitch.tv/shwackgaming91"&gt;visit my client's
stream&lt;/a&gt;!&lt;/em&gt;&lt;/p&gt;</content><category term="Work"/><category term="Animated"/><category term="Emotes"/><category term="Commissions"/><category term="Pixel Art"/></entry><entry><title>Kay's Darth Kissing</title><link href="https://zlg.space/c/work/kays-darth-kissing.html" rel="alternate"/><published>2026-05-21T00:00:00-07:00</published><updated>2026-05-21T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2026-05-21:/c/work/kays-darth-kissing.html</id><summary type="html">&lt;p&gt;&lt;img alt="A pixel version of Darth Vader blowing a kiss to the 
viewer" src="https://zlg.space/images/kay_darth-kissy.png"/&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;img alt="A pixel version of Darth Vader blowing a kiss to the 
viewer" src="https://zlg.space/images/kay_darth-kissy.png"&gt;&lt;/p&gt;


&lt;p&gt;My client requested an emote for her stream that was Vader-themed and showing 
affection. I didn't have much to go on, but immediately had an idea. The 
reference showed Vader holding his hand out with hearts, and my first instinct 
was to focus on the heart, since Vader's helmet doesn't exactly scream "I'm 
lovey dovey".&lt;/p&gt;
&lt;p&gt;The animation consists of Vader blowing a kiss with his hand, while a heart
comes out and throbs as it floats upward. The heart's animation came out really
well, and conveys the juxtaposition of Vader's imposing helmet and a silly
heart. Another job completed!&lt;/p&gt;
&lt;p&gt;This piece tested my ability to work with a monochromatic, complex shape that's 
shiny. It came out pretty solid, but I didn't quite capture the shininess I was 
hoping for.&lt;/p&gt;
&lt;p&gt;My client's community enjoyed it when they went Affiliate and had emotes ready 
to go!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;To see this emote in action, &lt;a href="https://twitch.tv/adhdiskay"&gt;visit my client's
stream&lt;/a&gt;!&lt;/em&gt;&lt;/p&gt;</content><category term="Work"/><category term="Commissions"/><category term="Animated"/><category term="Emotes"/><category term="Pixel Art"/></entry><entry><title>ZLG's Bonfire Emote</title><link href="https://zlg.space/c/work/zlgs-bonfire-emote.html" rel="alternate"/><published>2026-05-14T00:00:00-07:00</published><updated>2026-09-06T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2026-05-14:/c/work/zlgs-bonfire-emote.html</id><summary type="html">&lt;p&gt;&lt;img alt="A glowing sword in a smoldering bonfire" src="https://zlg.space/images/zlg_emote-bonfire.png"/&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;img alt="A glowing sword in a smoldering bonfire" src="https://zlg.space/images/zlg_emote-bonfire.png"&gt;&lt;/p&gt;


&lt;p&gt;After knocking out an &lt;a href="https://zlg.space/c/work/hb-sleepy-ham.html"&gt;emote&lt;/a&gt; so quickly for HatBastion and his crew,
I had &lt;em&gt;Dark Souls&lt;/em&gt; on the mind and was looking for an opportunity to try out
palette cycling in an animation. The first inspiration was the central figure of
the games: the bonfire. It's on the loading screen, it's your respite against
the Hollows, and it could serve as a break or rest time emote for the stream. I
thought it was a great idea, so work began!&lt;/p&gt;
&lt;h2&gt;About Palette Cycling&lt;/h2&gt;
&lt;p&gt;"What is palette cycling?" one might ask. It's a technique where the pixels
in an image don't change, but the assigned colors &lt;em&gt;do&lt;/em&gt;. In older games, the
graphics use what's called an &lt;strong&gt;indexed palette&lt;/strong&gt;, where colors are stored in a
table of numbers, and the image is represented by those color indexes instead.
This reduces the space needed to store image data. When you do palette cycling,
you're re-assigning the color indexes so that the image displays different
colors, usually in a sequence of some kind. It's the animated form of a palette
swap!&lt;/p&gt;
&lt;p&gt;There are two ways to do this that are most obvious: the first is the
&lt;em&gt;repeating&lt;/em&gt; palette cycle. That's used in titles like &lt;em&gt;Super Mario World 2:
Yoshi's Island&lt;/em&gt;, some of the &lt;em&gt;Mega Man&lt;/em&gt; games, and more, usually to give
the water and lava their dynamic feel, or to make energy weapon shots look
otherworldly. The ramp cycles through its colors, and returns to the first
color, which is usually much brighter/darker and a different hue.&lt;/p&gt;
&lt;p&gt;The second palette cycling type is the &lt;em&gt;mirrored&lt;/em&gt;, i.e. it ramps up, and then 
back down. This gives the colors a glowing, embery feel. Lots of lighting, and 
some weapon effects use this property, but it's usually used in places like 
animated tiles to reduce the number of tile updates. It was more present in 
older games where there was limited space to create a complicated engine &lt;em&gt;or&lt;/em&gt; 
enough assets to achieve the look designers were going for.&lt;/p&gt;
&lt;h2&gt;Production&lt;/h2&gt;
&lt;p&gt;I used the &lt;em&gt;mirrored&lt;/em&gt; palette cycling technique to build the bonfire emote. I
started with a ramp from the deep red to the bright yellow and white, built the
emote at its darkest, and then fiddled with the palette in ProMotionNG until it
felt like it was a proper palette cycle that gave it the same glow the bonfire
has on the loading screen in &lt;em&gt;Dark Souls&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It's important that whatever image editing tool you have allows you to grab an
entire selection of colors and re-assign their indexes live, so you can plan
your art better. While I use &lt;abbr title="GNU Image Manipulation Program"&gt;GIMP&lt;/abbr&gt; for digital drawing, it's ill-suited for
fine-tuned pixel or palette manipulation despite having extensive &lt;em&gt;other&lt;/em&gt; image
editing capabilities. ProMotionNG and GraphicsGale can do this sort of palette
cycling with ease.&lt;/p&gt;
&lt;p&gt;Something I added that other artists might not is two different cycle durations,
so it isn't a uniform animation. One is slightly slower than the other, so it
gives it more of a dynamic feel. I would have added a third speed to it, but I
had trouble getting three variations that didn't feel same-y. I think two is a
good compromise.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This is an emote that you can use on Twitch when you subscribe to &lt;a href="https://twitch.tv/zlg_creates"&gt;my 
channel&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content><category term="Work"/><category term="Animated"/><category term="Emotes"/><category term="Pixel Art"/></entry><entry><title>HatBastion's Sleepy Hamster</title><link href="https://zlg.space/c/work/hb-sleepy-ham.html" rel="alternate"/><published>2026-05-06T00:00:00-07:00</published><updated>2026-05-14T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2026-05-06:/c/work/hb-sleepy-ham.html</id><summary type="html">&lt;p&gt;&lt;img alt="A hamster sleeping with a bubble coming from his nose" src="https://zlg.space/images/hb_sleepy-ham.png"/&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;img alt="A hamster sleeping with a bubble coming from his nose" src="https://zlg.space/images/hb_sleepy-ham.png"&gt;&lt;/p&gt;


&lt;p&gt;My client approached me looking to make a fun, reusable emote to signify 
sleepiness. Their community is big on cute, fluffy animals, and a sleepy hamster 
was the perfect way to go! Before details got sorted out, I had a sketch of the 
idea ready.&lt;/p&gt;
&lt;p&gt;We spent some time deciding on a good pose for him. Midway through, the ears 
ended up looking "like mushrooms", which I thought was an amusing way to convey 
what was going on, but I understood and we straightened it out quickly!&lt;/p&gt;
&lt;p&gt;In the animation, our hamster boy sighs, a bubble expands quickly, and it
(somewhat slower) deflates in time for another breath. It was satisfying to work 
on something easy to animate and expressive!&lt;/p&gt;
&lt;p&gt;In the end, my client and their mod team had no critiques at all and it was a
hit in the community! Another awesome piece to bring fun to the screen!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Production of this emote was broadcast live on Twitch, with my client's 
permission.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This asset was originally animated, and I lack an easy way to watermark it in
that form. Thus, only a static thumbnail for now. To see it in action, &lt;a href="https://twitch.tv/HatBastion"&gt;visit my
client's stream&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content><category term="Work"/><category term="Commissions"/><category term="Pixel Art"/><category term="Animated"/><category term="Emotes"/></entry><entry><title>ZLG's MarcusBOOM Emote</title><link href="https://zlg.space/c/work/zlgs-marcusboom-emote.html" rel="alternate"/><published>2026-04-20T00:00:00-07:00</published><updated>2026-09-06T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2026-04-20:/c/work/zlgs-marcusboom-emote.html</id><summary type="html">&lt;p&gt;&lt;img alt="Marcus looking at, aiming and firing a gun at the 
viewer" src="https://zlg.space/images/zlg_emote-marcus-boom.png"/&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;img alt="Marcus looking at, aiming and firing a gun at the 
viewer" src="https://zlg.space/images/zlg_emote-marcus-boom.png"&gt;&lt;/p&gt;


&lt;blockquote&gt;
&lt;p&gt;Robert... I am Leon Kennedy. &lt;em&gt;BOOM&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The full details of this piece are hard to remember, but it mostly boiled down 
to how much I and fellow Twitch peeps enjoy the roflgator memes, so I tried my 
hand at making him pixel style. It came out pretty decent!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This is an emote that you can use on Twitch when you subscribe to &lt;a href="https://twitch.tv/zlg_creates"&gt;my 
channel&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content><category term="Work"/><category term="Animated"/><category term="Emotes"/><category term="Pixel Art"/></entry><entry><title>ZLG's Majora's Mask-themed Stream Layout</title><link href="https://zlg.space/c/work/zlg-mm-layout.html" rel="alternate"/><published>2025-11-06T00:00:00-08:00</published><updated>2025-11-06T00:00:00-08:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2025-11-06:/c/work/zlg-mm-layout.html</id><summary type="html">&lt;p&gt;&lt;a href="https://zlg.space/images/zlg_mm-layout-day.png"&gt;&lt;img alt="A stream layout based on Majora's Mask, during the 
day" src="https://zlg.space/images/thumbs/zlg_mm-layout-day_thumb.png"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://zlg.space/images/zlg_mm-layout-night-rain.png"&gt;&lt;img alt="A stream layout based on Majora's Mask, during the 
night" src="https://zlg.space/images/thumbs/zlg_mm-layout-night-rain_thumb.png"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://zlg.space/images/zlg_mm-layout-with-source.png"&gt;&lt;img alt="A stream layout based on Majora's Mask, with a source on top" src="https://zlg.space/images/thumbs/zlg_mm-layout-with-source_thumb.png"/&gt;&lt;/a&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;a href="https://zlg.space/images/zlg_mm-layout-day.png"&gt;&lt;img alt="A stream layout based on Majora's Mask, during the 
day" src="https://zlg.space/images/thumbs/zlg_mm-layout-day_thumb.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://zlg.space/images/zlg_mm-layout-night-rain.png"&gt;&lt;img alt="A stream layout based on Majora's Mask, during the 
night" src="https://zlg.space/images/thumbs/zlg_mm-layout-night-rain_thumb.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://zlg.space/images/zlg_mm-layout-with-source.png"&gt;&lt;img alt="A stream layout based on Majora's Mask, with a source on top" src="https://zlg.space/images/thumbs/zlg_mm-layout-with-source_thumb.png"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;This is a stream layout inspired by &lt;em&gt;The Legend of Zelda: Majora's Mask&lt;/em&gt;, one of
my all-time favorite games. It's a game about friendship, loss, forgiveness, and
finding courage to heal.&lt;/p&gt;
&lt;p&gt;Early in the game is a scene that punched me in the gut, and has stuck with me 
over the years. It depicts the Skull Kid shivering in the rain under a log in 
Termina Field, with the fairy duo, Tatl and Tael.&lt;/p&gt;
&lt;p&gt;That scene touched my heart because of the idyllic nature of how we sometimes
meet friends in life. Skull Kid met the fairies after causing trouble in Clock
Town and being cast out. Although the Skull Kid was still was overtaken by the
mask he stole, his friendship with the fairies is ultimately what brings him
back from the brink of Majora's total control. Tael stuck by him despite what he
had become, and Tatl joined forces with Link to save him from the mask. Despite
it all, they stayed friends and went back to Hyrule together.&lt;/p&gt;
&lt;h2&gt;Planning&lt;/h2&gt;
&lt;p&gt;Accuracy was important to me in composing the scene. I played through the game 
until I was able to exit to Termina Field, then moved Link around until things 
looked close to what I wanted.&lt;/p&gt;
&lt;p&gt;&lt;img alt="A screenshot of Zelda: Majora's Mask 3D, depicting the scene in the layout" src="https://zlg.space/images/zlg_mm-layout-screenshot.png"&gt;&lt;/p&gt;
&lt;p&gt;Both exits (Southern Swamp, Romani Ranch) are obscured, to not take away from
other elements in the scene. The perspective is ideal because it
shows the height of the posts leading southward at good perspective, and makes
the hollow log appear larger. I wanted to emphasize depth while filling space on
the canvas. A lower vanishing point will do that.&lt;/p&gt;
&lt;p&gt;&lt;img alt="A simple sketch of the scene in black outlines, on a gray background" src="https://zlg.space/images/zlg_mm-layout-sketch.png"&gt;&lt;/p&gt;
&lt;p&gt;What started as a fun "what if" sketch has become the coolest overlay I've
made thus far. I've leaned on my OBS knowledge, plugin knowledge with
&lt;a href="https://twitch.tv/elomeno_"&gt;Elomeno_&lt;/a&gt;'s help, pixel art knowledge, HTML and CSS, general
programming, and color design. Knowing how to make each asset in a way that can
be mixed with other assets to remix them is important, too. I leaned on a tiling
trick to make the backgrounds seamless so they can scroll, too.&lt;/p&gt;
&lt;p&gt;The layout as it stands is every single idea that was both feasible and
workable. At first, I only wanted an overcast sky and some rain. The idea ran
wild in my head for a few weeks while I was producing the base, and eventually
it hit me to have day and night. Then I needed a way to shade the entire scene
for the clouds. During the tweaking of that, it hit me that I could &lt;em&gt;also&lt;/em&gt; swap
clouds, and rain, in and out! I could vastly increase the number of states that
the layout could be in (increasing the visual appeal) while only messing around
with a handful of layers.&lt;/p&gt;
&lt;h2&gt;Building&lt;/h2&gt;
&lt;p&gt;I decided to use &lt;abbr title="GNU Image Manipulation Program"&gt;GIMP&lt;/abbr&gt; as my editor, mostly because I was already familiar with
it, and I wanted to gain more mastery, such as making or using custom brushes,
learning texturing techniques, and so on. My tablet was already picked up by it
and had a number of preset dynamics that seemed Good Enough, so work started on
it.&lt;/p&gt;
&lt;h2&gt;Automation&lt;/h2&gt;
&lt;p&gt;Once I completed the initial scene for the layout, I wanted to add some dynamism
to it. Rain and a night/day cycle would be ideal for this, because they can fade
a source in and out.&lt;/p&gt;
&lt;p&gt;That's when I began workshopping with Elomeno_ on motion and transitions.
Between the Move plugin and Advanced Scene Switcher, we arranged something that
creates the "weather script" for lack of better phrasing.&lt;/p&gt;
&lt;p&gt;To do it, I put together a spreadsheet acting as a sort of Gantt chart to
represent the 'tracks' of transitions, similar to a video editing program. That
helped me visualize what the script should be like in numeric terms, since each
column represented a single minute. Aligning the script requires precise delays 
and durations, so it took a lot of experimentation to get things lining up.&lt;/p&gt;
&lt;p&gt;After an hour or so of thorough checking and re-checking, and watching the
sequence, I'm really satisfied with what has been put together.&lt;/p&gt;
&lt;h2&gt;Result&lt;/h2&gt;
&lt;p&gt;Perfectionism is something I struggle with. I spent over a month working on this
layout, partly for the vision, but also to challenge myself. It feels really
weird to say I'm happy -- truly happy -- about something I've made. I can stand
next to this and boldly say, "It's good." That matters to me.&lt;/p&gt;
&lt;p&gt;Looking back, there are still things I could include or improve, but that's true 
of &lt;em&gt;any&lt;/em&gt; creative process. They're simply lessons to apply in the next project.&lt;/p&gt;</content><category term="Work"/><category term="Digital Art"/><category term="Stream Layout"/></entry><entry><title>HatBastion's Godzilla Holding a Heart</title><link href="https://zlg.space/c/work/hb-godzilla-heart.html" rel="alternate"/><published>2025-10-26T00:00:00-07:00</published><updated>2025-10-26T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2025-10-26:/c/work/hb-godzilla-heart.html</id><summary type="html">&lt;p&gt;&lt;img alt="A cutesy interpretation of Godzilla, holding a heart" src="https://zlg.space/images/hb_godzilla-heart.png"/&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;img alt="A cutesy interpretation of Godzilla, holding a heart" src="https://zlg.space/images/hb_godzilla-heart.png"&gt;&lt;/p&gt;


&lt;p&gt;This little guy was a lot of fun to put together! My client was looking for a 
cute, chubby Godzilla holding a heart for their community to use. I loved the 
idea, and after we pulled together some references and agreed on a few colors, I 
started pixel-pushing.&lt;/p&gt;
&lt;p&gt;A few iterations were all it took to settle on lizard boi's head shape, tail 
arrangement, how he's holding the heart, and so on. The hardest part of this 
piece was figuring out the best way to dither it, to suggest the texture of his 
scaly skin. That's super hard at this resolution, so I opted to shade the 
dithering itself, once a good pattern was established. It's a rarely-used 
technique due to how hard it is to get forms correct, but it worked here.&lt;/p&gt;
&lt;p&gt;The way he blinks and opens his mouth also brought a lot of personality to the
emote, without a whole lot of rework! Since we ran out of vertical pixels to get
a really big &lt;em&gt;RAWR&lt;/em&gt;, I went with turning his head back a little bit, and shaded
the teeth pixels in-place to give the illusion of depth in limited space.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This asset was originally animated, and I lack an easy way to watermark it in
that form. Thus, only a static thumbnail for now. To see it in action, &lt;a href="https://twitch.tv/HatBastion"&gt;visit my
client's stream&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content><category term="Work"/><category term="Commissions"/><category term="Pixel Art"/><category term="Animated"/><category term="Emotes"/></entry><entry><title>ZLG's Nugget Emote</title><link href="https://zlg.space/c/work/zlg-emote-nugget.html" rel="alternate"/><published>2025-09-24T00:00:00-07:00</published><updated>2025-09-24T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2025-09-24:/c/work/zlg-emote-nugget.html</id><summary type="html">&lt;p&gt;&lt;img alt="A pixelated image of a chicken nugget in honey mustard" src="https://zlg.space/images/zlg_emote-nugget.png"/&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;img alt="A pixelated image of a chicken nugget in honey mustard" src="https://zlg.space/images/zlg_emote-nugget.png"&gt;&lt;/p&gt;


&lt;p&gt;This was one of the "unhinged" emotes that my community wanted, as part of a 
channel subscription goal. It all started when I was messing around in 
ProMotionNG on stream, and made something vaguely chicken nugget shaped.&lt;/p&gt;
&lt;p&gt;It evolved into quite a funny sight: it dunks itself into a little vat of honey
mustard, and wiggles around as it makes a face that could only be described as,
uh, &lt;em&gt;sensual&lt;/em&gt;, before being lifted out of the vat. If that sounds kinda weird,
then I accomplished my job as artist.&lt;/p&gt;
&lt;p&gt;The little particles of honey mustard were &lt;em&gt;so&lt;/em&gt; satisfying to put together and 
animate correctly. I was laughing nearly the whole time!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This is an emote that you can use on Twitch when you subscribe to &lt;a href="https://twitch.tv/zlg_creates"&gt;my 
channel&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content><category term="Work"/><category term="Emotes"/><category term="Pixel Art"/><category term="Animated"/></entry><entry><title>ReaperFae's Super Metroid-themed Stream Layout</title><link href="https://zlg.space/c/work/rf-sm-layout.html" rel="alternate"/><published>2025-08-22T00:00:00-07:00</published><updated>2025-08-22T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2025-08-22:/c/work/rf-sm-layout.html</id><summary type="html">&lt;p&gt;&lt;a href="https://zlg.space/images/rf_sm-layout.png"&gt;&lt;img alt="A stream layout based on Super Metroid's look and 
feel" src="https://zlg.space/images/thumbs/rf_sm-layout_thumb.png"/&gt;&lt;/a&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;a href="https://zlg.space/images/rf_sm-layout.png"&gt;&lt;img alt="A stream layout based on Super Metroid's look and 
feel" src="https://zlg.space/images/thumbs/rf_sm-layout_thumb.png"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;Making stream layouts based on a game's original graphics can be difficult, 
depending on what you're aiming to do with them, and how you're gathering the 
graphics. Typically, this is done using emulators, which have ways to take 
screenshots, grant access to the emulated system's RAM, toggle graphical 
layer visibility, or show the current sprite and tile sheets.&lt;/p&gt;
&lt;p&gt;My client wanted to make a layout based on &lt;em&gt;Super Metroid&lt;/em&gt;, after seeing the 
&lt;em&gt;Zelda II&lt;/em&gt;-based layout I made for myself. They wanted their username styled the 
same way as the game's title screen, too. After explaining a couple particulars 
and caveats to the contract, I got to work.&lt;/p&gt;
&lt;h2&gt;Planning and Preparation&lt;/h2&gt;
&lt;p&gt;Leveraging these technical features, I gathered the source data by painstakingly 
visiting every major area of the game that I needed to gather graphics from, and 
taking screenshots or exporting tiles as I went. I had looked on the Web for 
other sources of these tiles, but none of the collections I found were complete 
enough for my purposes, so I was forced to gather them myself.&lt;/p&gt;
&lt;p&gt;I was mid-way through the project, when I noticed that the tilesheet also needed 
its palette selected correctly, or things wouldn't display correctly. Some tiles 
were animated via palette changes, as well, necessitating more screenshots and 
exports. &lt;em&gt;"This is why there isn't a thorough tileset for this game,"&lt;/em&gt; I 
thought.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Super Metroid&lt;/em&gt; is a technical marvel for the Super Nintendo. It employs a
minimum of 4 layers of graphics, and supports things like gradients, alpha
transparency, palette rotation and swapping, screen-wide palette changing,
parallax scrolling, screen-wide wavy effects, the works. All this to say,
&lt;em&gt;gathering the graphics to build this was a huge task&lt;/em&gt;. I'm not sure I would
have taken the job if I wasn't interested in building one for myself, due mostly
to the sheer number of tiles that &lt;em&gt;Super Metroid&lt;/em&gt; contains, and the unclear
arrangement of how they fit together.&lt;/p&gt;
&lt;p&gt;This was also only the &lt;em&gt;second&lt;/em&gt; project I had put together using a new tool I 
was learning: Cosmigo's ProMotion NG. While a capable editor, it has some quirks 
and edge cases that made building this particular layout less ideal than a 
"normal" image editor, due in no small part to the limit in palette size.&lt;/p&gt;
&lt;h2&gt;Building&lt;/h2&gt;
&lt;p&gt;It took lots of experimentation to learn the "convention" of how the tiles went 
together in their world. The general goal was to create a microcosm of impactful 
or cool areas of the game (according to my client's taste) and make a new logo 
for their username, in the same style of the game's title screen.&lt;/p&gt;
&lt;p&gt;When it came to the logo, I was excited to flex my pixel art muscles instead of
moving a bunch of tiles around that I couldn't change. It was fun to learn how
Nintendo designed their art, and to follow in their style to create a logo that
represented my client &lt;em&gt;and&lt;/em&gt; felt true to the feel of &lt;em&gt;Super Metroid&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;It was the &lt;em&gt;Metroid&lt;/em&gt; series that made me appreciate the combination of red, 
yellow, and purple. So, building a look-alike logo leaning heavily into those 
colors was a good practice session. It's truly difficult to convey perspective 
and depth at that resolution, and it came out looking good!&lt;/p&gt;
&lt;h2&gt;Automation&lt;/h2&gt;
&lt;p&gt;I made this layout after the &lt;em&gt;Zelda II&lt;/em&gt;-inspired layout, so I leaned on some new
animation skills in Javascript and &lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt; to put together a few garnishes
with the rest of our budget: the Baby Metroid inside the capsule, and Samus
going up and down an elevator. They added a little dynamism to the layout that
I'd like to build on some day, if we revisit it.&lt;/p&gt;
&lt;p&gt;Much respect to the original Deer Force team (Intelligent Systems, today) who 
built the game. Over 30 years later, it is still a beautiful game to look at and 
study.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;My client was very pleased with the result, as well as their community. It was a 
project that pushed my technical and artistic skills, which I always appreciate.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This stream layout has animated browser sources, which are not
displayed in the thumbnail. To see it in action, &lt;a href="https://twitch.tv/reaperfae"&gt;visit my client's
stream&lt;/a&gt; during a Super Metroid run!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;DISCLAIMER: The original game tiles belong to Nintendo Co., Ltd. I was paid
to make an original logo for my client in the style of Super Metroid's title
screen. The only ownership expressed here is over the layout design itself and
the original logo, made by me.&lt;/em&gt;&lt;/p&gt;</content><category term="Work"/><category term="Commissions"/><category term="Pixel Art"/><category term="Arrangements"/><category term="Stream Layout"/></entry><entry><title>ZLG's Zelda II-themed Stream Layout</title><link href="https://zlg.space/c/work/zlg-z2-layout.html" rel="alternate"/><published>2025-08-09T00:00:00-07:00</published><updated>2025-08-18T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2025-08-09:/c/work/zlg-z2-layout.html</id><summary type="html">&lt;p&gt;&lt;a href="https://zlg.space/images/zlg_z2-layout-clean.png"&gt;&lt;img alt="A stream layout inspired by Zelda 2: Adventure of Link" src="https://zlg.space/images/thumbs/zlg_z2-layout-clean_thumb.png"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://zlg.space/images/zlg_z2-layout-with-source.png"&gt;&lt;img alt="A stream layout inspired by Zelda 2: Adventure of 
Link, with source" src="https://zlg.space/images/thumbs/zlg_z2-layout-with-source_thumb.png"/&gt;&lt;/a&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;a href="https://zlg.space/images/zlg_z2-layout-clean.png"&gt;&lt;img alt="A stream layout inspired by Zelda 2: Adventure of Link" src="https://zlg.space/images/thumbs/zlg_z2-layout-clean_thumb.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://zlg.space/images/zlg_z2-layout-with-source.png"&gt;&lt;img alt="A stream layout inspired by Zelda 2: Adventure of 
Link, with source" src="https://zlg.space/images/thumbs/zlg_z2-layout-with-source_thumb.png"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;When I received &lt;em&gt;ProMotionNG&lt;/em&gt; as a gift, the first thing I wanted to explore was 
its &lt;em&gt;color bit-depth&lt;/em&gt; and &lt;em&gt;tiling&lt;/em&gt; capabilities. I was trying to come up with 
something new to do for my stream, and the first thing that came to mind was a 
new layout. I wanted to use a game that you don't see represented often in 
stream layouts, but was a good showcase of the game's flavor and what I 
personally like about it as a game.&lt;/p&gt;
&lt;p&gt;I settled on &lt;em&gt;Zelda II: The Adventure of Link&lt;/em&gt;. It's a "black sheep" within its
own series, but it is still a good game and concept under the layers of jank
and general lack of budget put into the game. I have always wanted Nintendo
to come back to this game and give it a proper re-imagining, while remaining
more-or-less faithful to the original. They'd done this before with &lt;em&gt;Metroid:
Zero Mission&lt;/em&gt; and &lt;em&gt;Samus Returns&lt;/em&gt;, oddly both from the same franchise. Why
shouldn't &lt;em&gt;Zelda II&lt;/em&gt; get a modern Metroidvania re-imagining? But I digress.&lt;/p&gt;
&lt;p&gt;To some extent, this layout was an experiment, of sorts. I went into this 
project wanting the answer to a few questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is ProMotionNG something I can lean on for professional work?&lt;/li&gt;
&lt;li&gt;Can I leverage my prior Javascript and PICO-8 knowledge to animate in a 
  browser source?&lt;/li&gt;
&lt;li&gt;Can I produce layouts that are fun and legible?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Planning&lt;/h2&gt;
&lt;p&gt;Before I began any brainstorming, I wanted to break down what a stream layout 
really &lt;em&gt;is&lt;/em&gt; and what it typically consists of. This is a broad question to ask, 
because everyone's stream is a little different. Some people do anonymous follow 
acknowledgement, others want to shower the follower in attention and welcome 
them. Some streamers want to show chat on screen, some don't. You get the idea. 
But, to build a layout, you need to account for these differences in 
preferences, and make things in a composable or movable way.&lt;/p&gt;
&lt;p&gt;I started with a sort of template or blueprint for myself, aligned to a 16x16 
grid. The core elements my layout takes into account are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Logo&lt;/li&gt;
&lt;li&gt;Stream Title&lt;/li&gt;
&lt;li&gt;Video Capture (i.e. "the content")&lt;/li&gt;
&lt;li&gt;Webcam/VTuber&lt;/li&gt;
&lt;li&gt;Reactiv Fugi or other VC participant overlay&lt;/li&gt;
&lt;li&gt;Stream Goals&lt;/li&gt;
&lt;li&gt;Accolades (last subscriber, follower, bit contributor)&lt;/li&gt;
&lt;li&gt;Chat Box&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From the beginning, I knew I wanted a sort of "town" along the top, the 
curtained area in the top right, and some representation of every dungeon's 
tileset, on the way down to Thunderbird. I also wanted contrast in the layout 
instead of all blue sky, red caves, or darkness.&lt;/p&gt;
&lt;p&gt;In the bottom right is where miscellaneous widgets and other things go, so I 
used that area as level design experimentation, and settled on an underwater 
ruin -- something that wasn't actually in &lt;em&gt;Zelda II&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;Building&lt;/h2&gt;
&lt;p&gt;ProMotionNG has support for tilesheets, which you can use to build scenes in the 
editor, much like you would in an actual video game. It takes some finagling 
with modes, but it's doable.&lt;/p&gt;
&lt;p&gt;It was hard for me to keep track of layers when I was building. One idea would 
lead me down the road to another layer, and I'd come back to another task and 
screw it up. I was still gaining familiarity with the tool, though, so that's to 
be expected.&lt;/p&gt;
&lt;p&gt;Along the bottom, I gave myself space for the accolades; essentially just
acknowledging the last people who contributed to the channel in some way. Some
people really like to see their username in these fields, because it gives them
a sense of contribution and belonging. I like to promote this, so I wanted each
accolade to have its own theme and NPC association. I set up browser sources
with both StreamElements and Firebot for the usernames, so some tweaking of
fonts and coordinates was necessary.&lt;/p&gt;
&lt;p&gt;The lavafall was sort of a cop-out, because there wasn't much room to do 
something impactful. It wasn't going to lead anywhere, and it's in the space 
that would be covered when a 16:9 source is visible. So, I made a drop-off with 
the tiles the game had, and set up a sort of platform that maybe people would be 
flung into. I mean, there's a giant hole near the King's Tomb, so it's not 
unlikely for there to be holes all over the place! Hah!&lt;/p&gt;
&lt;p&gt;Along the left side, I wanted to have one floor per dungeon style, and culminate 
in a room containing the Thunderbird and the last piece of the Triforce. On each 
floor, I wanted the dungeon's primary item, and a notable enemy from that 
dungeon that would be easy enough to program its animation in Javascript.&lt;/p&gt;
&lt;h2&gt;Animating&lt;/h2&gt;
&lt;p&gt;Animating tiny pixel art on a giant 1080p canvas &lt;em&gt;can&lt;/em&gt; be done with some crazy,
giant GIF or other format, but realistically you should be taking the tiny
graphics and doing things with them to animate. &lt;em&gt;Why?&lt;/em&gt; It's easier to change if 
you mess something up, generally, and it can make parts of your workflow 
repeatable on other assets. Reusability is a virtue in asset production!&lt;/p&gt;
&lt;p&gt;In an OBS environment, that means either hooking graphics up to plugins, or
a browser source. I wanted something easy to use &lt;em&gt;and&lt;/em&gt; share, for example
if I made stream layouts for other people in the future. That calls for a
browser source. Plugins are nice, but they can change between versions, their
compatibility with OBS versions can change over time, and sometimes their
developers lose interest in maintaining it or are pushed away from development
because of some sort of drama. This makes a self-contained browser source
a longer lasting artifact to use -- at least for animations -- and I can
reasonably guide someone on extracting it somewhere and adding it to their OBS
scene.&lt;/p&gt;
&lt;h3&gt;Coding&lt;/h3&gt;
&lt;p&gt;For starters, &lt;strong&gt;I do not like Javascript&lt;/strong&gt;. It's the jankiest language I've
ever used, and that's saying something because &lt;em&gt;I also know PHP&lt;/em&gt;. Dealing with
differences between Firefox and &lt;abbr title="Chromium Embedded Framework"&gt;CEF&lt;/abbr&gt; was also a pain in the ass. That said,
the &lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt; API isn't the worst thing I've seen. I chose that because the
built-in animations API is for the curve-based presets that are also used by
CSS. I had odd results when I tried to "just use the Animations API" like
current advice indicates. When you're doing pixel-level manipulations or trying
to re-create movement from a video game, you need to &lt;em&gt;build the animation like a
video game&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;So, that's what I did. There's a function you can hook into that's tied to the
refresh rate of the canvas element. That's effectively &lt;em&gt;a frame&lt;/em&gt;, so I used that
as my primary loop event, and built each animated entity as a simple object
containing a few fields like &lt;code&gt;x&lt;/code&gt;, &lt;code&gt;y&lt;/code&gt;, &lt;code&gt;current_frame&lt;/code&gt;, and so on. This is
close to game development with PICO-8, since Javascript objects and Lua tables
are similar. From there, all animation would simply occur in each object's
&lt;code&gt;update()&lt;/code&gt; method, and track state internally. No more image editing from here,
it was all "update this sprite at this time" or "wait this many frames, and do
this" in varying forms.&lt;/p&gt;
&lt;p&gt;Flying or floating objects were harder to implement, partly due to unfamiliarity 
with sin() and cos() on an intuitive level. Some day I'll be able to abstract it 
in my head, but for now it was a lot of tweaking before I got something that 
resembled the original behavior. The Thunderbird in particular took a lot of 
iteration before I felt it was more than a static oval path.&lt;/p&gt;
&lt;h2&gt;Result&lt;/h2&gt;
&lt;p&gt;I'm largely happy with the result! It was a great learning experience, too.
There's a lot of animation on the screen, the colors are bright, it's just solid
for classic 4:3 gaming. It's not suited for every game, however, so I paired it
with a transluscent Color Source so I can darken the scene for darker content.
It retains the same look while giving it a "lights off" feel.&lt;/p&gt;
&lt;p&gt;The answer to all three of my questions was "Yes," for what it's worth. :)&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;DISCLAIMER: The original game tiles belong to Nintendo Co., Ltd. The only
ownership expressed here is over the layout design itself and the code used to 
animate sprites.&lt;/em&gt;&lt;/p&gt;</content><category term="Work"/><category term="Stream Layout"/><category term="Pixel Art"/><category term="Animated"/></entry><entry><title>Chibi Zonai Elemental Sets</title><link href="https://zlg.space/c/work/zlg-chibi-zonai.html" rel="alternate"/><published>2025-07-12T00:00:00-07:00</published><updated>2026-06-24T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2025-07-12:/c/work/zlg-chibi-zonai.html</id><summary type="html">&lt;p&gt;&lt;img alt="a chibi figure dressed in the Charged Set from Zelda 
TotK" src="https://zlg.space/images/zlg_chibi-farosh.png"/&gt; &lt;img alt="a chibi figure dressed in the 
Frostbite Set from Zelda TotK" src="https://zlg.space/images/zlg_chibi-naydra.png"/&gt; &lt;img alt="a chibi figure dressed in the 
Ember Set from Zelda TotK" src="https://zlg.space/images/zlg_chibi-dinraal.png"/&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;img alt="a chibi figure dressed in the Charged Set from Zelda 
TotK" src="https://zlg.space/images/zlg_chibi-farosh.png"&gt; &lt;img alt="a chibi figure dressed in the 
Frostbite Set from Zelda TotK" src="https://zlg.space/images/zlg_chibi-naydra.png"&gt; &lt;img alt="a chibi figure dressed in the 
Ember Set from Zelda TotK" src="https://zlg.space/images/zlg_chibi-dinraal.png"&gt;&lt;/p&gt;


&lt;p&gt;I was hanging with al_my_pal_ and they were going through various pre-made
brushes in one of their art programs. Some brushes stood out to me that looked
like they could be chibi dolls, so I asked them to send me a few poses. I used
these as bases for the art.&lt;/p&gt;
&lt;p&gt;Hence, the Zonai chibi sets were born. I started with Farosh, then Naydra. The
colors were taken from screenshots, for the most part, but I got creative with
low color count shading.&lt;/p&gt;
&lt;p&gt;My technique improved with the Naydra set, and I used the bump in skill to go 
back and improve the Farosh set. The Dinraal set was finished last, but the 
horns were super fun to work on!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;All three of these designs are available on the &lt;a href="https://zlg-creates-shop.fourthwall.com"&gt;FourthWall 
shop&lt;/a&gt;!&lt;/em&gt;&lt;/p&gt;</content><category term="Work"/><category term="Pixel Art"/></entry><entry><title>Z-bert the Feesh</title><link href="https://zlg.space/c/work/zlg-zbert-feesh.html" rel="alternate"/><published>2025-07-04T00:00:00-07:00</published><updated>2025-07-04T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2025-07-04:/c/work/zlg-zbert-feesh.html</id><summary type="html">&lt;p&gt;&lt;img alt="A pixelated bass fish" src="https://zlg.space/images/zlg_zbert-feesh.png"/&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;img alt="A pixelated bass fish" src="https://zlg.space/images/zlg_zbert-feesh.png"&gt;&lt;/p&gt;


&lt;p&gt;This guy... THIS guy. This all started due to meeting
&lt;a href="https://twitch.tv/al_my_pal_"&gt;al_my_pal_&lt;/a&gt;, who wanted to integrate something 
new to their stream. We lacked the knowledge to pull off what Al was going for, 
so we pivoted to pixel art. &lt;em&gt;"That's something I can teach!"&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;When I was going over the basics of pixel art with them, I suggested practicing
on something small and contained, like an icon of an item in a game's inventory.
Nothing terribly ambitious, just enough to get a taste for it. Since we were
discussing fish and playing &lt;em&gt;Zelda: Tears of the Kingdom&lt;/em&gt;, Hyrule Bass came up
as an option. It's an important shape to get correct, has clear opportunities to 
blend with gray and experiment with anti-aliasing, and there's enough detail to 
warrant learning how to do single-pixel lines. To me, it was a great candidate 
for &lt;em&gt;Someone's First Pixel Art&lt;/em&gt;, as it were.&lt;/p&gt;
&lt;p&gt;And so it began... I began teaching lines vs. shapes for sketching, color ramps, 
anti-aliasing, selective outlining, hue-shifting, lighting basics, dithering, 
and so on. We focused on things that maintained momentum, and would come back to 
things after a round of something that was going smoothly. That allowed the 
motivation to stay consistent and the pieces to be finished.&lt;/p&gt;
&lt;p&gt;As an artist, I know how easy it is to get lost in, and defeated by, details.
They'll suck up every ounce of your momentum, because you get in the zone and
start thinking, &lt;em&gt;"I must do these tasks in-sequence."&lt;/em&gt; Unless your target task
depends on another task to be done before it, there's no reason you &lt;em&gt;can't&lt;/em&gt;
switch focus to different part of your project, and let that momentum push you
further to completion in &lt;em&gt;some&lt;/em&gt; direction, even if it's not the one that's
really bugging you. You can come back to the difficult details with more
confidence and a fresher eye.&lt;/p&gt;
&lt;p&gt;Before long, we had both completed our own Hyrule Basses. Huzzah! Then someone 
came up with the genius idea of &lt;em&gt;naming them&lt;/em&gt;. I still don't remember how we 
landed on Z-bert and Al-bert, but, yep.&lt;/p&gt;
&lt;p&gt;He's the laughing emote on my stream, has a redeem to sing with Al-bert,
relays ideas to the Discord server, and sometimes shows up uninvited, as a feesh
can do from time to time.&lt;/p&gt;
&lt;p&gt;And it all started because someone asked me to teach them The Way of the Pixel. 
It was a lot of fun, both to make this and to share my passion for pixels. To be 
real, this piece was pivotal to the momentum I gained in 2025.&lt;/p&gt;</content><category term="Work"/><category term="Pixel Art"/><category term="Emotes"/></entry><entry><title>Tamago_Bento's Tamagomaki-san and Tamagomaki-neko</title><link href="https://zlg.space/c/work/tb-tamago-cat.html" rel="alternate"/><published>2024-12-15T00:00:00-08:00</published><updated>2025-08-07T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2024-12-15:/c/work/tb-tamago-cat.html</id><summary type="html">&lt;p&gt;&lt;img alt="a pixelated tamago-maki with cute 
eyes" src="https://zlg.space/images/tb_emote-tamago-san.png"/&gt; &lt;img alt="a pixelated tamago-maki 
cat" src="https://zlg.space/images/tb_emote-tamago-cat.png"/&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;img alt="a pixelated tamago-maki with cute 
eyes" src="https://zlg.space/images/tb_emote-tamago-san.png"&gt; &lt;img alt="a pixelated tamago-maki 
cat" src="https://zlg.space/images/tb_emote-tamago-cat.png"&gt;&lt;/p&gt;


&lt;p&gt;After a while of streaming, my partner wanted to support me by visiting the 
stream and participating in chat when she could. My community warmed up to her 
immediately, and encouraged her to get an avatar, broadcast herself, and so on.&lt;/p&gt;
&lt;p&gt;Since my partner likes Japanese folklore and cuisine, a tamago-maki was the
perfect object to make a mascot of. This is also a very Japanese thing to do;
just look at the imagery used for all sorts of things from PSAs to warning
labels. There's a &lt;em&gt;kawaii&lt;/em&gt; flavor to things.&lt;/p&gt;
&lt;p&gt;In the &lt;em&gt;kawaii&lt;/em&gt; spirit, I gave cute pink cheeks to the sushi, and in other
versions, it has a mouth. She later came back and asked me for a cat, which I
happily obliged and animated for her. My community enjoyed this quite a bit,
too!&lt;/p&gt;
&lt;p&gt;The weird textures like rice, seaweed, or shaped egg, made these emotes fun
projects that tested my skills. We usually shorten it to &lt;em&gt;tamago-san&lt;/em&gt; and 
&lt;em&gt;tamago-cat&lt;/em&gt; when talking about them, because it's usually clear it is in 
fact, sushi, and not just an egg. :)&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;You can enjoy both of these emotes on Twitch by subscribing to &lt;a href="https://twitch.tv/tamago_bento"&gt;Tamago_Bento's 
channel&lt;/a&gt;. They are only available on my channel 
for a limited time.&lt;/em&gt;&lt;/p&gt;</content><category term="Work"/><category term="Pixel Art"/><category term="Emotes"/><category term="Animated"/></entry><entry><title>ZSST - ZLG's Simple Stream Timer</title><link href="https://zlg.space/c/work/zlg-zsst.html" rel="alternate"/><published>2023-04-01T00:00:00-07:00</published><updated>2025-08-28T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2023-04-01:/c/work/zlg-zsst.html</id><summary type="html">&lt;p&gt;&lt;a href="https://git.zlg.space/zsst/"&gt;Homepage&lt;/a&gt; | &lt;a href="https://zlg.space/zsst/make_timer.html"&gt;Live Demo&lt;/a&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;a href="https://git.zlg.space/zsst/"&gt;Homepage&lt;/a&gt; | &lt;a href="https://zlg.space/zsst/make_timer.html"&gt;Live Demo&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;ZSST is &lt;strong&gt;ZLG's Simple Stream Timer&lt;/strong&gt;. It's a Browser Source that you configure, 
then copy the URL into your Browser Source in OBS, size to your liking, and 
style it with CSS!&lt;/p&gt;
&lt;p&gt;To use it, click the "Live Demo" link above or open the &lt;code&gt;make_timer.html&lt;/code&gt; file, 
then follow the instructions, and copy the resulting URL when you click "Make My 
Timer!"&lt;/p&gt;</content><category term="Work"/><category term="Widgets"/></entry><entry><title>VGStash</title><link href="https://zlg.space/c/work/vgstash.html" rel="alternate"/><published>2016-05-22T00:00:00-07:00</published><updated>2025-09-25T00:00:00-07:00</updated><author><name>ZLG</name></author><id>tag:zlg.space,2016-05-22:/c/work/vgstash.html</id><summary type="html">&lt;p&gt;&lt;a href="https://git.zlg.space/vgstash"&gt;Homepage&lt;/a&gt; | &lt;a href="https://pypi.org/project/vgstash/"&gt;PyPI Project Page&lt;/a&gt; | License: 
&lt;a href="https://spdx.org/licenses/AGPL-3.0-only.html"&gt;AGPL-3.0-only&lt;/a&gt;&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;a href="https://git.zlg.space/vgstash"&gt;Homepage&lt;/a&gt; | &lt;a href="https://pypi.org/project/vgstash/"&gt;PyPI Project Page&lt;/a&gt; | License: 
&lt;a href="https://spdx.org/licenses/AGPL-3.0-only.html"&gt;AGPL-3.0-only&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;VGStash is a video game collection tracker that gives the user a number of
fields to track their games with, including ownership, progress, and notes. It
also comes with a set of filters that give users the ability to make meaningful
inquiries to their collection.&lt;/p&gt;
&lt;p&gt;It also includes a web front-end to display the JSON data you can export with 
the tool, allowing you to share (and theme) a webpage detailing your game 
collection.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://zlg.space/misc/vgstash.html"&gt;ZLG's VGStash&lt;/a&gt; is a live demonstration of the author's own collection.
The colors can be customized to suit the user's preferences.&lt;/p&gt;</content><category term="Work"/><category term="Software"/></entry></feed>