I wrote an interpreted tree based programming language to be used for giving commands to units in an rts game. This allows you to write complex instructions and then compose them during gameplay with type checked suggestions. The game I wrote to test the language is as simple as possible.
Swap Zone is a match puzzle game made in the Godot engine. Each tile type uses different rules to match:
3+ in a row
any contiguous group
contiguous group touching the edge
making adjacent matches
tetromino shape tilings
The direction of gravity is determined by your swipe, and the next pieces that will fall in are visible, allowing a little more planning. The neverending game mode with just a scoreboard allows for the flow state of the moment to take priority over metagame progression.
I got fed up with kerning the font that I made for my business card and Ribbon Dive, Bit Curl. So I decided to adapt it into a monospace font, and use some angles instead of only pixels. The glyphs that I'm most proud of are the numbers, braces, and math symbols. The spacing of the i and j still stand out quite a bit.
I discovered some personal preferences through this exploration, namely that I like numbers to be centered in brackets, _ to line up with the bottom of brackets, and | to go the same height as brackets rather than all the way to the descender. I think I also found a way to handle kerning that will be less tiresome, which I am excited to try out in the future.
The protein leather covers on my headphones had been flaking for years and the stitches finally started coming out. I've been looking to get into more sewing projects and decided to replace them myself rather than buy new ones. I'm quite pleased with how they came out.
25 December 2018
Reflecting on the process of programming as if the tools I want to make already existed.
Explored through four example projects:
DRY Config Data Format
Error Handling Flow read more …
Started spring 2015, published January 2018
Ribbon Dive is a quick, difficult, high score game with a low poly aesthetic. Inspired by SF Cave, Super Hexagon, and Flappy Bird. My goal was to create a character that felt good to control. Using very simple input with only two states, touching or not touching the screen, I could focus on how the character responded. I accounted for touch delay on mobile phones, and adjusted based on playtesting with gaming and non gaming friends. A modular music composition was created by Jared Burrell.
I've been practicing my art at game jams, and it was quite satisyfing to animate frame by frame. The theme for this jam was "Waves", and you play as the runner trying to navigate the waves of emotion as the yeti throws a tantrum. If you make it the yeti you hug :)
Layered terrain system with custom pathfinding, procedural generation of islands and mountains, and connectivity checks. Terrain sculpting tools in editor to make multiple levels, shape edges, and direct ramps. Placement of buildings/doodads with footprints and. Intended for use in both a Roguelite and an RTS.
First Contact was made as part of Global Game Jam 2015, at Northeastern University, with a team of 5. The theme was "Now what do we do?" Our design was to simulate a world with two conflicting races of aliens, that the sentient planet had to influence in order maintain mutual happiness.
Frank Brizuela and I made a game for the 30th Ludum Dare Jam, for which the theme was "Connected Worlds." Music was provided by Jared Burrell. In the game you play as an individual on a floating island. You come accross other people in other environments, with their own skills, personalities, and preferences. The goal is connect to other people, help them sort themselves so that they are happy in the group and environment that they are in, and send them on their way.
We won 1st place among jam entries for our use of theme, 8th for innovation, and 74th overall out of over 1000 jam entries.
What began as an exercise in procedural generation and flocking algorithms expanded into an early stage prototype for an action rpg. The project is made in Unity. Features include:
I watch quite a bit of professional StarCraft II and have played a couple thousand games. Planning and executing strategies has been a satisfying use of my time. I enjoy micromanaging large numbers of units and feeling the feedback while controlling them.
Additionally, there are aspects of the game that I would do differently as a designer. Since maps play a significant role in dictating the shape of battles, creating my own has been a way to exercise my rts design aspirations. I participate in the community of map makers on Teamliquid.net, giving feedback to other mappers and running map jams to encourage creativity.
Sharing should be easy impulses collide in brawling clashes with barriers felled by guarded restraint and ugly colored cues break me; I hate you let it out; get it out, before I begin to identify crush escapism flee motionlessly paralyzed in a rote roar of scribbled screams
The fell of my fingers falls short. I want to cut the paper with my pen. I wish it would bleed and contribute something to the conversation.
(Watercolor, pencil, charcoal)
One once written wonder long lost spoke lightly of thee and thy grace: a tickling trickle drowning in a sea of waves. Too delicate at even a whisper or hum, to think the thought so fully flows too strong to find its way. The depth of cause and its effect, whose root eludes the power of truth, isn't easily ignored. This ethereal weight is found wanting, but is enough to be the difference between reflection and reality. The oppressive urge of right or wrong surfaces a muddy haze. Cloud cover reason and rain conviction, moving matter and minds. Open yourself to the world and you will find the way.
(Woodblock carving printed with acrylic, pen)