fuzzy notepad

Atom feed everything

[dev] Weekly roundup: Asymptotically close to finishing

My sleep has been pretty weird, and I’ve had a few drowsy days lately, but I’m mostly keeping the momentum going.

  • art: I made an effort to draw something every day. I drew a January avatar, doodled with some friends, made a weird pixel animation, and whipped up a quick illustration for a game jam I’m accidentally running.

  • music: Sketched out a few phrases and studied Cave Story a little more. I made a pretty decent start on a new remix of the Isaac background music, after some feedback from Mel. I hacked it into the game, too, and hearing it while testing other stuff turns out to be a good way to find what needs improvement.

  • isaac: Mostly implemented the stone doors, drew a credits Eevee, found a way to draw sprites inside text (sorta). I think this just leaves the title/credits, music, and bugfixing. So, so close.

  • veekun: Cleaned up and committed some recent extraction work, but didn’t make much new progress.

This week is AGDQ, which means I’m going to spend an awful lot of time watching people play video games instead of doing anything useful. I was pretty unhappy about that last year, so this time I’m “running” a non-serious game jam all about trying to make a game during that otherwise-lost time.

[dev] Weekly roundup: Welcome to the future

Finally, 2016 is dead. Good riddance. I’m sure this year will be different, as though time were composed of discrete chunks with different moods.

  • isaac: I set about moving a bit more hardcoded stuff into Tiled, which is better than nothing. Fixed a few oddball physics bugs, like being able to walljump, which I’d somehow never noticed. Made the inventory actually work correctly, and gave it a HUD. Made the book mostly work. Finished up the laser. Spent far too much time drawing rock and brick tiles.

    It’s not quite at the point of playing the original game as I’d hoped, but it’s reeeally close.

  • music: Worked a little bit on a remix of the Isaac background music.

  • book: Dicked around with Sphinx and LaTeX for hours instead of actually writing anything. Did a teeny tiny bit of writing.

  • veekun: I figured out how texture animations work, which is incredible and makes my model viewer actually almost correct. It still has some bugs and weirdness, and I haven’t actually tried it on every single dang Pokémon yet, but this is looking extremely viable.

    I went a-hunting for more artwork, ended up writing a thing that just dumped every single image it could find in the entire game, and managed to dig up the bigger sprites used in the Pokédex. Alas, naturally, only the Pokémon actually catchable in Sun and Moon have a big Pokédex sprite.

  • art: I did some doodling in a vain attempt to remember how to draw. Not sure if successful. I got a couple scraps of concept art for Isaac HD out of it, though.

Despite how it sounds, I’ve actually had a lazy last few days, which has been a nice change after several solid weeks of plowing ahead at maximum speed. Priorities remain the same as they have been.

[dev] Weekly roundup: Happy Boxing Eve

  • veekun: I worked on extracting and viewing Pokémon models.

    That’s it. That’s all I did all week. I got rather into it. (I guess I also worked on some Sun/Moon dumping, but that wasn’t very exciting.)

    I’ve put it on hold for now, but after a solid 8 or 9 days of work, the results so far are pretty dang cool. I absorbed a whole lot of stuff about 3D, too.

See you next year!

[dev] Weekly roundup: A model week

A couple solid days each went towards different things, with pretty good progress for all of them.

  • isaac: Did a little bit of cleanup. Added some raycasting to the “physics engine”, so the laser eye now actually works correctly — it fires a ray along the laser’s path and looks for the first solid obstacle. (In the PICO-8 version, it just checked map tiles straight down until it found something other than empty space.)

  • art: Spent a few days on some inked reward drawings for Mel’s Kickstarter.

  • music: Studied how Cave Story’s music is put together in exquisite detail. It helps that the music was all written in tracker style, and the whole soundtrack is available in XM format, which trackers are happy to open. The result of this effort was a song that’s not entirely terrible, which isn’t bad considering I’ve only spent a week or two combined on learning anything about music.

  • veekun: I, uh, spent a couple days on actually beating the game, so now I don’t have to worry about spoilers.

    I also resurrected my ancient WebGL model viewer, taught it to play back animations, improved the outlining, and added a bunch of controls. Work continues on this, but I’d really like to have interactive models available on veekun.

I’m mostly charging ahead on veekun stuff right now, and probably for the next few days.

Isaac plods ever closer to matching the feature set of the PICO-8 game.

[dev] Weekly roundup: Descent

  • art: I did a little pixel animation and a lot of doodling trying to remember how to draw. Almost a bit of character design, too.

    My pixel art keeps getting compliments, which is really cool, but at the same time I’ve been frustrated with how lackluster my non-pixely art is. I tried repainting an idea from last year on a whim, but used the DB32 palette (which I’ve used for pixel art before), and it came out kind of_amazing_. So that confirms my problem is color, and it’s given me a few ideas for how to think about color differently.

  • isaac: Level transitions now work, though the spawn point is still ignored, so it’s pretty common to get stuck in a wall. Isaac grew a simple jump animation and a… sleepytime sequence. The appearing platforms now look much better, and the resurrection rune is now animated.

    The cave texture I had was kind of underwhelming, so I tried drawing a new one at a higher resolution. That stood out way too much, but after a few attempts and refinements, I ended up with something very nice that also lets me draw edge tiles fairly easily. I also wrote a shader from scratch for the very first time and was reminded of what a pain GLSL is!

    Between using a textured blending brush for a Bob Ross style background in the above painting, and a whole lot of studying Cave Story art (and actual cave walls) before finally landing on the tiles above, I feel like I’ve finally started to grasp some deeper idea about how the illusion of depth and form works.

  • music: Finally, finally tried my hand at this for real. I even made a whole song, which is not very good, but is better than having made zero songs. I’ve sketched out a bunch of simple melodies, but none of them are particularly great yet; it’s going to take a lot of experimentation before I can really make any music worthy of putting in Isaac HD.

    I also worked on recreating sound effects, with some modest success. I’m not satisfied with what I have yet, but I’ve learned a lot about combining waveforms and how to use a bunch of knobs in LMMS. (I must’ve spent four to six hours just trying to make a satisfying grinding-rock sound.)

  • veekun: I tracked down where most of the remaining Sun/Moon data is. I’m still, er, trying to finish the game, but I’m getting close to the end, I think!

I’m having to teach myself half a dozen new things at once for the sake of Isaac HD, which feels like slow going but is ultimately kind of great. I think I’m on a good pace to have the original levels playable by the end of the month. (I don’t intend to stop there by any means, but it’s a great milestone.)

Not having four lengthy posts looming all month is a huge weight off my shoulders, by the way. I’ve barely even thought about writing tons of prose in a week and a half, and now I have enough prose juice saved up that working on a book for a while is sounding appealing! This is great. Thanks, y’all. ♥

[dev] Weekly roundup: Freedom

  • zdoom: On a total whim, I resurrected half of an old branch that puts sloped 3D floors in the software renderer. It kinda draws them, but with no textures.

  • blog: I wrote a thing about not copying C which was surprisingly popular.

  • sylph: I accidentally spent 45 minutes writing a microscopic parser for a language that can only print string literals.

  • patreon: I finished up some revamping of my Patreon — the wall of text is now a short and straightforward stack of images, and I dropped the blogging milestones. I’m no longer obliged to write X posts per month, huzzah.

  • art: I pixel-drew some new veekun version icons, which may or may not go live. Also drew a December avatar.

  • veekun: I got started on adapting my ORAS dumping code for Sun and Moon, and have box and dex sprites 90% dumped. Text is mostly done as well.

  • art: I did a few pixels, which you may or not be seeing in the near future.

veekun effort continues (as I scramble to actually finish the game so I don’t spoil myself). Also trying to, uh, remember how to draw?

[blog] Let’s stop copying C

Ah, C. The best lingua franca we have… because we have no other lingua francas. Linguae franca. Surgeons general?

C is fairly old — 44 years, now! — and comes from a time when there were possibly more architectures than programming languages. It works well for what it is, and what it is is a relatively simple layer of indirection atop assembly.

Alas, the popularity of C has led to a number of programming languages’ taking significant cues from its design, and parts of its design are… slightly questionable. I’ve gone through some common features that probably should’ve stayed in C and my justification for saying so. The features are listed in rough order from (I hope) least to most controversial. The idea is that C fans will give up when I call it “weakly typed” and not even get to the part where I rag on braces. Wait, crap, I gave it away.

[dev] Weekly roundup: Arguing on the internet

November is improving.

  • zdoom: On a whim I went back to playing with my experiment of embedding Lua in ZDoom. I tracked down a couple extremely subtle and frustrating bugs with the Lua binding library I was using, and I made it possible to define new actor classes from Lua and delay a script executed from a switch. Those were two huge requirements, so that’s pretty okay progress.

  • blog: Zed Shaw said some appalling nonsense and I felt compelled to correct it. I also wrote about some of the interesting issues with that whole Lua-in-ZDoom thing. I have a final post half-done as well.

  • art: I did a few pixels, which you may or not be seeing in the near future.

Mostly writing and Pokémon, then. But I’m clearing my plate behind the scenes. Stuff’s a-brewin’.

[blog] Embedding Lua in ZDoom

I’ve spent a little time trying to embed a Lua interpreter in ZDoom. I didn’t get too far yet; it’s just an experimental thing I poke at every once and a while. The existing pile of constraints makes it an interesting problem, though.

[blog] A Rebuttal For Python 3

Zed Shaw, of Learn Python the Hard Way fame, has now written The Case Against Python 3.

I’m not involved with core Python development. The only skin I have in this game is that I like Python 3. It’s a good language. And one of the big factors I’ve seen slowing its adoption is that respected people in the Python community keep grouching about it. I’ve had multiple newcomers tell me they have the impression that Python 3 is some kind of unusable disaster, though they don’t know exactly why; it’s just something they hear from people who sound like they know what they’re talking about. Then they actually use the language, and it’s fine.

I’m sad to see the Python community needlessly sabotage itself, but Zed’s contribution is beyond the pale. It’s not just making a big deal about changed details that won’t affect most beginners; it’s complete and utter nonsense, on a platform aimed at people who can’t yet recognize it as nonsense. I am so mad.

[dev] Weekly roundup: Screw it

November is a disaster and I’ve given up on it.

  • runed awakening: I found a decent DAG diagrammer and plotted out most of the puzzles and finally had visual confirmation that a few parts of the game are lacking. Haven’t yet figured out how to address that.

  • blog: I finished an article for SitePoint. Also I wrote a thing about iteration.

  • veekun: Playing Pokémon has made me interested in veekun work again, so I did some good ergonomic work on the YAML thing, which is starting to look like it might end up kind of sensible.

  • zdoom: I had a peek at my zdoom-lua branch again, dug into object lifetime, and discovered a world of pain.

Everything is still distracting, and Pokémon came out, so.

[dev] Weekly roundup: Apocalypse now

November is about writing or whatever.

I’m at 22,798 words written, which is still 17,202 words behind where I should be, so that’s not very good. Apparently 100 kilowords is a lot?

  • book: I made some further progress reconstructing the Under Construction engine from scratch.

  • art: I tried to draw a few times, but most of it hasn’t been turning out right. Had a couple minor successes.

  • blog: Pretty much all I did? Have three different (huge) posts each like 80% done. Should probably, ah, finish a couple of them.

What a week. I was a bit distracted.

[dev] Weekly roundup: National Novelty Writing Month

Inktober is a distant memory.

Now it’s time for NaNoWriMo! Almost. I don’t have any immediate interest in writing a novel, but I do have plenty of other stuff that needs writing — blog posts, my book, Runed Awakening, etc. So I’m going to try to write 100,000 words this month, spread across whatever.

Rules:

  1. I’m only measuring, like, works. I’ll count this page, as short as it is, because it’s still a single self-contained thing that took some writing effort. But no tweets or IRC or the like.

  2. I’m counting with vim’s g C-g or wc -w, whichever is more convenient. The former is easier for single files I edit in vim; the latter is easier for multiple files or stuff I edit outside of vim.

  3. I’m making absolutely zero effort to distinguish between English text, code, comments, etc.; whatever the word count is, that’s what it is. So code snippets in the book will count, as will markup in blog posts. Runed Awakening is a weird case, but I’m choosing to count it because it’s inherently a text-based game, plus it’s written in a prosaic language. On the other hand, dialogue for Isaac HD does not count, because it’s a few bits of text in what is otherwise just a Lua codebase.

  4. Only daily net change counts. This rule punishes me for editing, but that’s the entire point of NaNoWriMo’s focus on word count: to get something written rather than linger on a section forever and edit it to death. I tend to do far too much of the latter.

    This rule already bit me on day one, where I made some significant progress on Runed Awakening but ended up with a net word count of -762 because it involved some serious refactoring. Oops. Turns out word-counting code is an even worse measure of productivity than line-counting code.

These rules are specifically crafted to nudge me into working a lot more on my book and Runed Awakening, those two things I’d hoped to get a lot further on in the last three months. And unlike Inktober, blog posts contribute towards my preposterous goal rather than being at odds with it.

With one week down, so far I’m at +8077 words. I got off to a pretty slow (negative, in fact) start, and then spent a day out of action from an ear infection, so I’m a bit behind. Hoping I can still catch up as I get used to this whole “don’t rewrite the same paragraph over and over for hours” approach.

  • art: Last couple ink drawings of Pokémon, hallelujah. I made a montage of them all, too.

    I drew Momo (the cat from Google’s Halloween doodle game) alongside Isaac and it came out spectacularly well.

    I finally posted the loophole commission.

    I posted a little “what type am I” meme on Twitter and drew some of the interesting responses. I intended to draw a couple more, but then I got knocked on my ass and my brain stopped working. I still might get back to them later.

  • blog: I posted an extremely thorough teardown of JavaScript. That might be cheating, but it’s okay, because I love cheating.

    Wrote a whole lot about Java.

  • doom: I did another speedmap. I haven’t released the last two yet; I want to do a couple more and release them as a set.

  • blog: I wrote about game accessibility, which touched on those speedmaps.

  • runed awakening: I realized I didn’t need all the complexity of (and fallout caused by) the dialogue extension I was using, so I ditched it in favor of something much simpler. I cleaned up some stuff, fixed some stuff, improved some stuff, and started on some stuff. You know.

  • book: I’m working on the PICO-8 chapter, since I’ve actually finished the games it describes. I’m having to speedily reconstruct the story of how I wrote Under Construction, which is interesting. I hope it still comes out like a story and not a tutorial.

As for the three big things, well, they sort of went down the drain. I thought they might; I don’t tend to be very good at sticking with the same thing for a long and contiguous block of time. I’m still making steady progress on all of them, though, and I did some other interesting stuff in the last three months, so I’m satisfied regardless.

With November devoted almost exclusively to writing, I’m really hoping I can finally have a draft chapter of the book ready for Patreon by the end of the month. That $4 tier has kinda been languishing, sorry.

[dev] Weekly roundup: Inktober 4: A New Hope

Inktober is over! Oh my god.

  • art: Almost the last of the ink drawings of Pokémon, all of them done in fountain pen now. I filled up the sketchbook I’d been using and switched to a 9”×12” one. Much to my surprise, that made the inks take longer.

    I did some final work on that loophole commission from a few weeks ago.

  • irl: I voted, and am quite cross that election news has continued in spite of this fact.

  • doom: I made a few speedmaps — maps based on random themes and made in an hour (or so). It was a fun and enlightening experience, and I’ll definitely do some more of it.

  • blog: I wrote about game accessibility, which touched on those speedmaps.

  • mario maker: One of the level themes I got was “The Wreckage”, and I didn’t know how to speedmap that in Doom in only an hour, but it sounded like an interesting concept for a Mario level.

I managed to catch up on writing by the end of the month (by cheating slightly), so I’m starting fresh in November. The “three big things” obviously went out the window in favor of Inktober, but I’m okay with that. I’ve got something planned for this next month that should make up for it, anyway.

[dev] Mario Maker: The Wreck

33E8-0000-02B2-76DF
Difficulty: very easy
Quality: ★★★★☆
Secrets:

I was rolling a Doom random level theme generator for speedmapping purposes, and one of the prompts it gave was “The Wreckage”. I didn’t really know how to make that in Doom in only an hour, but I did know how to make it in Mario, so I did.

The additional rules were “no monsters” and “no stairs”, so neither of those things appear in this level. It’s quick and entirely atmospheric. I like it. Though it’d be slightly better if I’d correctly named it “The Wreckage”. Oh well.