world.hello();

Not sure how to introduce this blog or myself, but here goes:

I go by Tangent, or Rose, and I’m a programmer with interests in video game design, web services, motorcycles, the furry fandom, and probably a bunch of other stuff. This blog is where I will be sharing ideas, mostly of the variety that have not been turned into a successful project. I am starting it to declutter my notes and various books of ideas that I cannot continue, but I am sure there will be more to write about.

In addition to my primary goal of sharing ideas related to video game design, web services, and any other area of programming, I sometimes write short stories or attempt to write novels. These will be shared here as well.

That’s it for now, hopefully you find something of note or worth from reading things here in the future.

Breakable Objects & Walls: A One Hour Game Jam Post-Mortem

(This post has been imported from an old blog of mine.)

The One Hour Game Jam is a weekly game jam, of one hour. I participated in #64 long time ago (though I did not get anywhere), and more recently, #152. The submission period is for the entire week, so if you can’t make the official hour, you can still participate. There’s also a Discord server for it, and weekly livestreams during the official hour and playing the games after.

Breakable Objects (#152)

Long story short, this one was a big success for me. I took about 2 hours to make the game* and a couple hours over the next couple days polishing it and adding quality of life features. I made a simple asteroid-dodging game, Asteroid Dodge. Newtonian physics, the number of asteroids increases every second, and your score is based on how quickly you travel between randomly created waypoints. Everything is circles and lines, inspired by a realistic air traffic control project I had just started (see Endless ATC, a game similar to what I’m aiming for).

My biggest success and failure was the same thing: Deciding to make a version-checking library during a game jam. I knew very quickly that I was going to be rapidly iterating on the idea (even once published), and I wanted to be able to notify players. I’d done this for SCP Clicker some time ago, but that was hardcoded for it only, and I needed something for any game project going forward. It was a success because I made something I’m happy with, a failure because it took too much time away from the game itself.

I’m very glad to have managed to get my game shown on the livestream, even though it required making them wait and was the last thing shown (whoops!). I was able to watch people have their first impression and read comments from stream viewers, and thus noticed bugs and improvements to be made. Also, the original score was based on velocity alone, which made it feel like there was no goal. What I had when the jam was over was pretty crap, but I also knew exactly what to do to make it a finished (albeit small) game.

Walls (#153)

Or, as is relevant to here: Ambition Destruction. I spent the first 20 minutes thinking of an idea, ultimately deciding to make a clicker/incremental-type game about being contracted to build Trump’s “great wall”. After struggling through some GUI code and realizing I needed to make a vector map of the southern border of the US for what I was imagining, wasting another 20 minutes, I realized this idea was waaay too ambitious for the timeframe and my knowledge, and did something simpler: click to place bricks on a wall. After working on the graphics of building a brick wall for the last 20 minutes, I realized even this was too ambitious, as it required me to code something I hadn’t done before, and figure out how to do incremental upgrades (something I’ve only done very limited experimentation with so far).

Ultimately, I never submitted anything for this jam. A couple days after those two failures, I had another idea based on the player being a firewall, that slowly morphed into the player running an ISP, building out a network (how does this relate to the theme? well eventually you’d put in firewalls when there was too much traffic). I still want to finish that idea someday, but even after working on the plans for a while without coding it, I realized that I would again need to code some things I am unfamiliar with, and I believe it too ambitious to work on right now.

Lessons Learned

Some of these became much more apparent the second time around, but all of these are relevant to both weeks:

  • Use libraries that are simple, or that you have used recently. The second week, I struggled a lot using Pop.Box, an alpha-stage GUI library. I hadn’t worked with it in a very long time, so I ended up spending way too much time looking into the code or documentation to remember how to use it. If I had been using it more recently (or, let’s be honest here, if it was a better library), I wouldn’t have had nearly as much trouble and wasted time there. I could also say don’t use alpha-stage libraries, but as far as I am currently aware, there isn’t a good general-purpose UI library for LÖVE just yet. (To the point where I am developing my own..twice now.)
  • Do not create new components. By that, I mean any aspect of code that is something you are unfamiliar with. In the simplest case, this could be something like the algorithm I made for Walls to generate a brick wall from a number (how many bricks it has). That’s a very simple piece of code (once done!) but took way too much time. Likewise, you really shouldn’t go make a version-checking library during your one tiny little freaking hour for the whole project. I got away with that once, only because I was given more time and had made something very similar to it before.
  • Strip your idea to less than the minimum, or abandon it immediately. This lesson applies a lot more strictly here than in general, but one concept that I hear is core to game design in general is to fail faster, that is, to go as quickly as you can from an idea to realizing the idea won’t work, so that you don’t waste time on it. This is especially true when you only have an hour to go from nothing to finished. Both times I spent too long thinking about ideas, and while I managed to pull something off the first time, both times I was too ambitious initially.

* Half an hour thinking of ideas, half an hour coding it, half an hour making a version-checking library for it, half an hour setting up a page on Itch.io and building it.

Self-Terminating vs Inertial Activities

(This post has been imported from an old blog of mine.)

I listen to a podcast called Cortex, a productivity maybe show, or “listening in on a monthly discussion of work over lunch.”* In episode 66, they discussed a book about behavioral change, and seems to be based on evidence instead of the “just follow these steps” other self-help books spout.

During their discussion, Grey mentioned the idea of self-terminating vs inertial activities. Some activities suck up way more time than you thought they would (e.g. watching entertainment, playing video games), while others take exactly the time they should (a commute to work, or a shower). Grey finds script-writing, exercise, reading (tasks his future self is happy with his completion of) are all self-terminating tasks, whereas activities to spend little time on (such as watching Netflix and playing Factorio), he ends up spending far more time on.**

I find this idea beneficial to think about. With the exception of programming, it seems that everything I should be doing (but don’t, or don’t nearly enough) is a self-terminating activity, and everything I shouldn’t be doing as much of is an inertial activity. For example, I want to get into writing again, and I’m certainly done writing as soon as I’m done with this post.

I’ll end it here with a copule lists of activities I find self-terminating or inertial, each of which is something I spend too much time on, or not enough time on.

Self-terminating activities

  • Showering
  • Brushing my teeth
  • Cooking/eating (in general, but especially with healthier foods)
  • Making YouTube videos
  • Writing

Inertial activities

  • Playing video games, especially Factorio, Minecraft, Minetest (and maybe American Truck Simulator)
  • Browsing the internet
  • Watching YouTube

I’m intentionally listing things that fit the model of self-terminating activities as productive and inertial activities as unproductive. It’s also just a preview of things on top of my mind right now. I’ll be thinking this through a bit more on my own time.

* Yes, I know they are not monthly episodes, but they feel kind of like it to me. :/
** Took these examples specifically from his reply to this comment on reddit.

Chocolate (Drabble)

(This post has been imported from an old blog of mine.)

Dark brown stains led down the hallway, a sticky substance showing the path my victim took. The stench of blood rose into the air. I followed the trail, heard ragged breathing from behind the closet door.

He tried to lunge for my knife as I exposed his hiding place, but the furry paws of a teddy bear are not very strong. I stabbed down, and more dark liquid poured from his wounds.

The sound of police sirens came from somewhere in the distance, I grabbed an arm and squeezed the blood into a container before running. Chocolate is so good.


Drabble is a form of extremely short storytelling, where you are limited to exactly 100 words. I wrote this one a long time ago.