I hadn't thought so far in advance. I was staring at a blank code editor, the carat blinking in half second intervals with no text behind it. At this point I only had the most nebulous inkling of what this thing was going to be. It would need to take words in one computer language and reconstitute them into something else. There’s always this tension when writing code between a sort of punk-rock hacker attitude and the deliberate thoughtful process of an engineer--I often either fall into it face first and risk causing costly problems later or intellectualize the problem into meaninglessness, being paralyzed by my own good intentions and hopes that I won’t just find a good solution, but the best solution. Hesitant, I write the first line.

string[] delim = new string[] { ":: " };

The class it sits in is called Parser. The namespace that surrounds it is called Silk. Objects like Silk already exist, but this one is mine. There’s something to be said for code you write to solve problems that you alone have created. When I was in the throes of learning how to program, I often found problems that I didn’t know the answer to. Furthermore, I was beset by many more problems that were unknown unknowns, which was a massive impediment to learning how to think computationally. How could I, when I didn’t know the problem existed? I came to solutions that were weird or sometimes obtuse, but they were mine. In the dark past of last year, when I wrote the first hideous version of _transfer’s graph traversal algorithm, I barely knew that the term “graph traversal” existed, much less how deep a hole it was. Suffice it to say, graphs are a solved, but extensive problem. Plenty of people with way more experience than I have worked on them for their entire lives. And here I am, a late-20-something gamedev with no background in computer science basically making it up as I go along. The funny thing is that sometimes I get it right.

Now, what getting it right means differs greatly from person to person. There have been philosophies kicking around for a while that espouse the virtue of the “egoless programmer”, and while I understand the value of not letting my attachment to my work get in the way of the ability to change it later, seeing code as completely objective is naive. Programming is seemingly the purest representation of logical thought we can muster. Machines cannot think, after all, they can only run instructions. However, code itself is a designed artifact, as is everything it is used for. This comes front loaded with its architect’s values, expectations, assumptions, and life experience. As far as I’m concerned, no one, no matter how analytically inclined, is capable of making something and removing themselves entirely from the equation. The decision, or necessitation to attempt objectivity is in itself a reflection on the creator. So why do we want to get ourselves out of our code so bad?

Why do I want to put myself into my code is the real question. Beyond wanting to know it intimately, I sometimes simply prefer systems that haven’t had all of the edges sanded off. They feel more human, in a still cold mechanical way. Plus, I know my audience better than anyone, and I know what I need this thing to do. Even if I haven’t quite figured it out yet. I type on.

Hello digital thralls. It has certainly been a while since we've posted one of these things. We have been busy, as have you I hope.

October was full of excitement as I traveled out to LA for Indiecade and Reed held down the fort back in NY. Halloween was fantastic as we showed at Playcrafting's Halloween Expo--I ate way too much chocolate and we got some of the best reactions we've yet had to people playing _transfer.

We had a fun showing in New York at Gaymer X's first ever East Coast show in November. We made several new friends and saw a bunch of old ones there. That was our last event for the year and as we pivot into December we have a few little announcements to make! Development is coming along and we're still looking for faces to be in the game. If you'd like, send us ~10 seconds of footage shot from a webcam and it'll be in a video sequence in _transfer. In our efforts to make development more seamless, we're working on a tool to help us get text into the game easier, and I'm planning on releasing the code once it's done so look for that in the (hopefully) not too distant future. Lastly, because reasons, we're changing our name. This won't affect you at all, but from here on out we are Abyssal Uncreations. This will help us be more recognizable, both to you humans as well as the robots that scan the internet.

You might have heard about this from other sources of ours, but I do like to be thorough. _transfer is 35% off until July 24th. So if you haven't picked up the first part of the game and would like to, it's even less expensive than usual. Enjoy~

E3 was an absolute blast, and solidified my thoughts around _transfer--we're doing the right thing and making something cool that people want to engage with. But I also came away thinking about all the things that still need to be done, and that I gave myself about 5 months to do them in. The cool thing about making text games is that I don't have to deal too much with lots of art or anything like that, but there are still major changes that need to happen to the workflow that might take a few weeks to hammer out before I get to....you know...finishing the game.

The first big thing is that I need to fix is how the content actually gets into the game. Right now, it's kind of hastily assembled nonsense that is so convoluted that making edits to the text (which is basically the core of the game) can be a nightmarish proposition. I threw it together when we were on a deadline and it works so I figured there was no need to change it for a bit. But now we're on another deadline that's visible but a ways away so I have a bit of padding to actually think about a smart way to assemble something that will be robust enough for me but straightforward enough for Reed to be able to get new dialogue in without having to tear apart the entire system if either of us messes up. It should also make editing easier as well.

Springing from that, I also need to change how conversation itself works. This will take some doing but I never much cared for the current system. It does the job well enough and again was the easiest to implement on short notice but from the beginning we've wracked our brains around the best way to be simultaneously evocative of the somewhat constrained nature of hypothetical "machine thought", exclusively use the keyboard, and not make it impossible to write. I have the next system designed, though and know how I'm going to get it in, but it will require some substantial reorganization.

And everything will. That's point 3, and maybe the most dire. I need to just carve out several days and sit down to refactor the entire project. I started on this yesterday and it's a relatively tall order but entirely necessary going forward. After that, however, I'm not sure. There are many more features coming, some of which are built and some of which aren't as well as lots more story but I'm not even thinking about those. I might write another one of these in July after I finish those things outlined above. In any case, enjoy the apocalypse.