Hey! I'm Eevee. I make stuff. Here's some stuff I made.

You can keep up with what I'm doing by following my very active Twitter (hint: you can turn retweets off per-user), or by following the feed for my dev log.

If you like my work, you can help pay my salary!

Writing

blog

I write about game development, learning to draw, and miscellaneous technical stuff. I like to explore a single topic in depth, so my writing can be a bit long-winded.

dev log

Every week, I write up what I've been working on. It helps me see how much I'm getting done, and it's lower-volume than Twitter if you're looking for stuff I've released recently.

patreon

You can chip in a few bucks a month if you think my work is a good use of my time! I also write much more in-depth recaps of what I've been doing every month and what I plan to do in the future.

Games

Lunar Depot 38

A short, shooty, tower defense-ish platformer made with glip in 72 hours for Ludum Dare 38.

fox flux

A mildly NSFW puzzle platformer I made for my own month-long game jam.

Music, title screen, and a couple sprites were provided by glip, but the rest of the artwork was all mine, which makes this a cool accomplishment.

NEON PHASE

My partner glip and I made this exploratory platformer together for a week-long game jam I was running.

It's pretty chill, and is maybe our first "serious" game? Big game? Game not for the PICO-8.

Isaac's Descent

I made this short PICO-8 puzzle-platformer in 48 hours for Ludum Dare 36.

It's the first standalone game I created 100% by myself, and I'm pretty happy with it! Interesting mechanic, decent difficulty curve, and music that isn't entirely terrible.

Under Construction

This surreal explorational PICO-8 platformer is the first game glip and I made together, and the first standalone game either of us really released.

Throughfare

After many years orbiting the ZDoom community, I finally released a map for DUMP 2, a week-long newbie speedmapping project.

Don't Eat the Cactus

This very short and silly text adventure is extremely based on true events.

Mario Maker

I used Mario Maker to dip my toes more seriously into level design. In theory, these levels get more interesting over time.

You can find a less long-winded list on the Mario Maker bookmark site, assuming that still exists.

Twitter bots

@calloutbot

this is really an injoke

This is a very complicated... in-joke? If it doesn't make any sense to you, count yourself lucky.

@perlin_noise

beautiful, chaotic patterns built from perlin noise

Inspired by my post explaining how Perlin noise works, this bot tweets out Perlin noise in various ways: ASCII, obscure Unicode, emoji, generated images, and even the occasional GIF.

@unicodeveryword

every word in my dictionary, scrambled by unicode

A bot in the every word genre, with the added twist that each word is mangled somewhat by Unicode shenanigans.

Web stuff

PARTYMODE

an incredibly stupid effect i use on my birthday

Every year on my birthday, I add this incredibly stupid snow effect to my website.

Used to be a decades-old "DHTML" thing from DynamicDrive (!). I eventually rewrote it from scratch using CSS animations, which allowed for putting much more crap on the screen.

pure css unown

a datamined pokémon resource

Most of an Unown alphabet, implemented entirely with CSS — no images, no JavaScript.

Written on a whim one Christmas, inspired by a friend's... Christmas NES cartridge. Not sure how that leap happened.

spline

a datamined pokémon resource

I started writing this as extensions to Pyramid to eliminate all the boring tedious parts of web development.

I didn't really finish it — turns out an easier solution was to stop doing web development — but it does power glip's webcomic site, Floraverse.

flora cutscenes

a datamined pokémon resource

Several Flora updates have taken the form of visual novels, using a little engine I wrote and have haphazardly enhanced as necessary.

kouyou

a color picker

Simple color picker I made because I was frustrated with the lack of HSL support in everything. Don't really use it any more, now that CSS has HSL support built in.

veekun

a datamined pokémon resource

A data-mined Pokémon reference that I've been working on, on and off, since I was 12.

Libraries

camel

Simple Python library that makes it relatively easy to serialize objects to YAML in a more explicit, less magical, less dangerous way.

classtools

Small Python library with a few handy class-related utilities, in the vein of functools and itertools.

dictproxyhack

Microscopic Python library that exposes a dictproxy type for creating read-only dicts.

Miscellany

rc

My dotfiles. Pretty simple, but they contain a couple gems.

heteroglot

A (slow) ongoing quest to solve every Project Euler problem — in a different programming language.

Selected Abandonware

starbindery

I started working on this autogenerated Starbound database and did a few cool things with it. I lost interest in Starbound before it got very far, and it no longer works against their data layout.

flax

I started writing a console roguelike in Python, mostly to play with randomness and entity-component and ways of expressing object interactions. Then I lost interest.

dywypi

I started writing a pluggable IRC bot atop Python's asyncio library. Then I stopped doing that.

sanpera

Unfinished Python wrapper around ImageMagick that sought to hide the awfulness of the ImageMagick API. Alas, that turned out to be much more tedious than expected.

Open source

ZDoom

A modern continuation of the Doom engine. I added support for TERRAIN-based damage and friction to 3D floors; fixed texture scaling on 3D floors; and disabled using switches embedded in the floor when checkswitchrange is active.

Quixe / Glkote

A web implementation of the glulx interactive fiction engine. I sketched an initial implementation of graphics and audio support; fixed loading large games on some browsers; and found an overall 2× speedup in the VM.

Starbound

A procedurally generated adventure game. Not actually open source, but I sent one of their devs patches to fix some bugs in their data files, plus an initial implementation of a wiring object that later appeared in the game.

Testify

A (deprecated?) Python test framework. I sped up a few specific operations, which shaved entire minutes off a former employer's (very large) test runs.

urwid

A Python console UI toolkit. I added support for using asyncio as the event loop.

plumbum

A Python library for expressing shell pipelines. I added a TEE modifier for both capturing and piping a process's stdout.

SLADE

A Doom resource and map editor. I fixed a lot of crashes, geometry bugs, and UI papercuts; and wrote most of the implementation of slopes and 3D floors in the map editor.

Parsley

A Python PEG-based parser generator. I made it more fast.

SQLAlchemy

A Python database library and ORM. I fixed an obscure bug with pooled connections.

html2text

A Python library for converting HTML to Markdown. I fixed the translation of <br>.

pyScss

A Python implementation of Sass. I did a ton of work porting it from immediate evaluation to an AST; fixed myriad bugs and Sass mismatches; and added support for a lot of newer Sass features.

Mako

A Python templating language. I fixed parsing of dict literals inside ${}; fixed parsing of escaped quotes inside Python blocks; and added support for keyword-only arguments in <%def> blocks.

Firefox

A web browser. I made a microscopic CSS patch to a feature that has since been removed. My name ended up on their obelisk, so it still counts.