Archive

Eve

Generally speaking, I want to make games. Specifically speaking, making an actual game of the sort I want to make is a nightmare proposition. Games take a tremendous amount time and of energy to create, and for many years I’ve said: That’s okay. I’ll put in the time. I’ll put in the energy. Right now, though, I’m not sure about the supplies of time and energy. Right now, on our current trajectory, time is running short. And the more I think about that, the less energy I have to work on making a game.

There is a plausible apocalypse looming. There’s no point in pretending it’s impossible. Even if we dodge the greater threat of the global ecosystem collapsing due to greenhouse gases, there’s still the global rise of nationalism and fascism, the increasingly unsustainable income inequality, the creeping capture of all political systems by malicious actors – and then there’s the old problems, stuff that has been around for a while, the racism and sexism and sundry bigotry, freehanded abuse of the socially and financially and physically disadvantaged.

It’s a lot. Not sure what to do about all that.

It feels like a blockage. Fixing this feels like a prerequisite without which no other work can commence. But this cannot be completely fixed. There are no complete solutions to these problems, only processes that can be enacted to slowly ameliorate them over time. This is a frustrating realization because honestly this is not how I work. I like to fix things once, and I like them to stay fixed. I freely admit that this is an unrealistic expectation.

So I fret. I wonder what I ought to be doing. Is it ethically acceptable to make art on the eve of Armageddon? Is it ethically acceptable not to? What could I realistically fix, out there, in the world, given my aptitudes and experience? What fundamental change would I have to enact upon myself in order to do so? How dangerous would it be to try? How dangerous would it be not to try?

And so forth, in circles.

I think sometimes maybe it would be better for me to just do small works. Just do little paintings, bits of music, write these posts. Forget games. I could, I suppose, just keep making small games, little monthly projects like I’ve been trying to do (with mixed success) – but, so far, all of my small games feel small. Some people have the knack of creating small projects that feel like little explorations of big ideas, bite-sized chunks of something huge and important. I don’t have that knack, at least not yet. So I keep thinking, then, that perhaps this isn’t a good use of my time and energy. Maybe I shouldn’t be trying to make games.

And yet. The end can only come by consensus. This world ends when we agree it ends. Maybe right now is the perfect time, actually, for a long-term art project. It’s a vote for tomorrow. It’s a leap of belief in an audience existing.

There are three reasons to do creative work, as I see it – besides making money that is, which so far remains a largely hypothetical benefit to me. Often, it’s just for practice: We play our scales, do our figure studies, write journals or bits of poetry and lyrics that never go anywhere, and hone our skills. Sometimes, it’s to express something within us, to take it out of the unspeaking back corridors of our minds and out into the world, for exorcism or for self-understanding. And, of course, sometimes it’s for each other. Sometimes it’s to say something to someone else, to make them understand a viewpoint, feel an emotion, perceive a shift.

If we don’t practice we stagnate, lose the technical capacity to say what we want to say. If we don’t create for ourselves, we lose touch and create something we don’t care about, or cease to care enough to bring a work to completion. If we don’t create for each other, we sink into silence, stop hearing from each other, learning from each other, and eventually dissolve.

I’m going to keep creating. For practice, for me, and for you. I hope you will do likewise.

If you enjoyed this essay, please consider supporting me on Patreon. Support at any level lets you read new posts one week early and adds your name to the list of supporters on the sidebar.

Advertisements

Habits are helpful. Habit is a place to nail down the flapping edges of your behavior, to train consistency in yourself. But as with all points of stability, every habit rests on something else, and those things can be shaken loose. A home, a person, a job, any one of these may seem rock-solid only to roll away, and that’s when habits tend to slip. I’ve been letting habits I’m really quite fond of slip mostly from being distracted, by projects, novelties, and significant life changes both good and bad. I haven’t been writing blog posts – I’m going to be trying to do better on that score, since I think it’s good for my brain to get those thoughts out there and these posts are also the most consistent creative work I’ve produced in my life.

But okay, what about last month’s monthly project? By which I mean the month before last’s monthly project, which then expanded to become a 2-month project? It has, I guess, now further expanded to become a ?-month project.

I should probably talk a bit about what the project is before talking about how it went/is going. I decided going in that it was going to be a 2d platformer, and that for the first time I was going to seek out collaborators instead of trying to go it alone. With input from other people interested in the project it shifted into a 2d stealth platformer with some environmental interaction – think of, perhaps, a cross between the N series of games and Spelunky. Many of these elements are still, ah, a little rough around the edges, but I think the idea still has a lot of merit.

It was and is going well, but I got kind of burned out working on it — part of the idea behind these one-month projects in the first place was that they would be projects I could work full-force on and then complete and put down right around the time my enthusiasm might start to wane. This is the first such project I’ve tried to work with other people on, and I wasn’t prepared either for how that would affect this dynamic or for how busy I would be during that time period. Everyone has their own way of working, and on a freeware-type project like this everyone has a dramatically different scope of time they can bring to bear on the work.

So, right now, I don’t see any reason to rush this project to completion. I’ll be taking the next month or two to work on other monthly projects, while picking away at the most urgent tasks on the platformer as they become necessary, and then revisit the project in a couple of months to try to wrap things up.

In the meanwhile, for this month’s project I’m going to work on creating a vector drawing tool for Unity. This is something I came up against while I was building the lighting system for the 2d platformer project: Unity has very few tools for vector drawing, and those that exist are either no longer supported or aren’t very good yet. I’d like to take this opportunity to try to create a tool for creating vector graphics based off of the Flash graphics class. I’m not sure how far I want to take that approach, how full-featured it will be or what other capabilities it will encompass, but I at least have Flash (and OpenFL, the open source Flash-inspired game dev tool) to refer to for ideas and inspiration. Next month I’ll probably return to EverEnding… sort of! I’m going to try to basically port all the work I’ve done on the project into Unity and see if I can effectively use that to streamline and improve the quality of the work. It’s mostly a feasibility study/experiment. Either way, hopefully having this vector tool available will help in that process as well!

Eh well the December project didn’t really go anywhere. I can at least put some screenshots of how far I got before I decided I’d kind of messed up:

I spent a week or two planning this building layout, figuring out Pro Builder (a tool for constructing 3d objects within Unity), and picking up the basics of other tools, such as Unity’s terrain system. In the end, I was… dissatisfied. I felt like I had just the very edges of what could be an interesting environment, but Pro Builder was becoming increasingly unfriendly the more I worked on it, and small issues with the geometry got harder and harder to fix – leaving me unable to make important changes, such as adding more windows.

I then decided that I needed to be able to work on this in a more full-featured 3d environment. I don’t know whether this was a good or a bad decision, but it was definitely the beginning of the end for this project. Originally, I’d hoped to just export the model from Pro Builder into Blender, a free and very full-featured 3d editing software. Unfortunately, all of the work I’d done in texturing and detailing the environment in Pro Builder came to work against me, with every separately textured subsurface of the object exporting as a separate element. I’d hoped to just drop my old work into Blender and immediately start work again, but this proved to be unfeasible. Over the next few days I studied the basics of Blender, and I began to reconstruct the building – but it is, after all, very difficult to be enthusiastic about doing the same work twice, and my capacity for enthusiasm is inconsistent at the best of times.

At this point we were pretty close to Christmas anyway, and my attention went away from getting game work done and towards all of the preparations that came with that. After Christmas I was mostly focused on cleaning and thinking about what the next year is going to look like. I’m still thinking a lot about those things, but it’s time to start a new project…

Well, close to it anyway! I’m actually not quite done with holiday stuff, and will be traveling for the next several days. Once that’s past I’ll have all month free, and hopefully by the time I get back home I’ll have a solid idea of what I want to work on. I do have a general plan of approach, though, for what I want the next several projects to be, based on the skills I want to pick up and practice:

January: Wizard Jam. The Idle Thumbs community runs a semiannual game jam where people spend a couple of weeks making a game, usually based on the title of one of the podcasts. This community has been a great source of support for me over the last couple of years, and though I’ve participated in the Jam a couple of times I’d like to put some work into something I can really be proud of this time. I’d also like to collaborate with at least one other person.

February: 2d Platformer. I would like to spend a month putting together a simple but complete 2d platformer. The purpose of this is twofold: First, to create a game simple enough that I can focus on creating content for it, and second to gain an understanding of how 2d works in Unity. The latter is important because it’s going to determine if, when I return to work on EverEnding, I continue that project in Flash or reimplement it in Unity. Probably the former, but I want to be open to the latter.

March: Album. I miss writing music, and though these other projects will probably provide opportunity to do so I’d really like to make it the focus of my efforts for a while. There’s a slight chance I might swap this one to February, since I’d prefer to dedicate fewer days to it and more to the 2d game, all else being equal.

April: EverEnding, Chapter 1, Part 1. I think if I really focus for a month, I can create the introductory areas of EverEnding to a degree that is, if not finished quality, at least close enough that I can finish most of the rest of the game before I take another quality pass. If I hit this milestone, I’ll start regularly setting up work months like this. I really don’t want to abandon this project! But I don’t want to be okay with it taking forever either.

All in all, it’s hard to be upset with how this month went. I’m disappointed that the project didn’t turn into anything, but I’m hoping I can keep up the momentum I started in learning these 3d tools, which have generally been a weakness of mine for a long time. I learned a bit more about the danger of trying to do things the ‘right way’ as well – this has been a vulnerability of mine for a long time, of feeling bound to execute whatever I feel to be the ‘proper’ way of doing something. The proper approach, though, is the one that creates a game, and so far that seems to elude me.

Hopefully, in a month, this space will describe my new Wizard Jam game – or games? Until then, hopefully I can also manage to keep up on Problem Machine blog posts a little bit better than I’ve been managing the last couple of weeks.

I didn’t put up a devblog last month, and I’m not sure if anyone noticed. I’ve noticed a cyclical trend over the last couple of years: I work on EverEnding, hit a point where it’s difficult or tedious to progress, decide I need to take a break from EverEnding, I start working on another project, something goes wrong with that project or I get anxious about not making progress, and I come back to EverEnding. Throughout it all, progress gets made, and I learn. Slowly.

That’s what’s killing me now. What good is slow progress? How long is the rapidly deteriorating world going to sit and let me ‘perfect my art’? Can I sit down and write another blog post about how “it may take me five more years to finish this but so be it I’m in for the long haul!” when I know so little about what the world will look like in five years? Will there be a world in five years? Even if that weren’t the situation, though, I think I’d be coming to be less comfortable with this idea of finishing art ‘eventually’, ‘someday’. It’s tenable to put art out there which you’re not sure if anyone is going to care about, and it’s tenable to spend many years making art, but combining these, spending years creating something you have no idea if anyone is going to care about…

I’m increasingly tempted to focus more on things that aren’t making games, on trying to make art and music or trying to do more writing. They might not have any more of an audience, but at least they can be done to a reasonable level of quality within a few days – or a few weeks or months, depending on the scope. At the same time, I have a hard time seeing myself ever completely focusing on any one of these pursuits – one of the reasons I’ve always been enamored with the concept of game development is the promise of being able to explore all these different media through a unifying meta-medium. Now, though, I just feel scattered – it would be bad enough to spend my days carrying water to fill a well that might not have a bottom and that I’m unsure if anyone will drink from, but I find myself pouring into several such wells. What can this achieve?

I think I’m improving, but improving at what? I’m improving at working on making a game, but not at actually making games – after all, in all this time, how many games have I actually made? I’m getting better at being comfortable in a cycle of development that never ends, miniscule gains that never pay off. I don’t know that this is the correct skill to learn. I need to learn how to actually make things, not how to be ceaselessly in the process of making them.

So that’s the skill I’m going to try to practice. I’m going to spend some time studying the tools that are available, most notably Unity, and techniques that I’ve neglected. I’m going to set out blocks of time which I can use to make projects, and then complete them as best as I can within those time blocks – small games, primarily, but maybe I’ll also try to make an album or two or spend a month entirely on creating characters or environments. It doesn’t really matter what it is, as long as it’s something with a beginning and an end, instead of being ceaselessly borne on a current.

I’ll write about this more later, but you can expect posts around the beginning of every month detailing these projects and, hopefully, sharing some finished work. How do I know this time is going to be different? That this isn’t just another part of the cycle? I don’t, really – but these questions have begun to weigh on me more and more, and I don’t think they’re going to stop until I do something about it.

It’s time to finish something. Maybe I’ll know what it is once it’s finished.

I always hate doing these updates where there’s not a lot of progress to report. The last couple of weeks in particular have been devoid of any progress on the project, or even any work on it – at first because of a shoulder injury, which was making it particularly difficult to focus on any of the complex problems I needed to solve to work on the code part of the project, and then on a short family vacation. Before that, I was working regularly on the project – well, except for the week or so where the new meds I was trying out were making me too groggy to think straight – but, still, not making a lot of progress.

Part of the problem with working on a project the size of a game is that sometimes even the components of the project, the discrete chunks you’ve written down as tasks on a task list, come to substantial undertakings in their own right. Especially when one’s focus is split between several of these, it can be entirely possible to spend a lot of time working on them, not running into any particular roadblocks and making what feels like good progress in the moment, and look back and not see anything new actually finished. This is basically how things have been for the last month – In particular, the storytelling system has taken much much longer than I’d expected it to, leading me to do a bunch of rewriting of the music system. The reason why the music system had to be rewritten was so that I could readily sync the storytelling lines with the music when I wanted to, in a way which I didn’t have to custom code for every story and every music track. I now have a system where any music track playback can intelligently jump around – that is, once I put in a number of valid points it can jump to in a track, say if a certain section can end in three different ways, I can give it a destination range in the music and it will find the shortest path to get there. I didn’t expect to have to read up on pathfinding algorithms for my music code, but here we are.

Now that I’ve got that component of the storytelling system figured out, there’s still one major roadblock to finishing it: Text rendering. This is something that should be easy in Flash/AIR, but just due to how I have entity rendering set up is a bit tricky. At this point, I have two options: Either I modify the entity rendering system, which would be a nuisance but not too difficult, or I find a way to convert the text into graphics rendering commands that I can send to the entity draw command queue. I’ve found a library that does this, but it hasn’t been updated for 8 years, so it might not be an ideal choice. If it doesn’t work out and I don’t find an alternative, though, then I’ll just have to rewrite the entity draw command system, because writing a whole text renderer to handle this problem would be an obscene waste of time, albeit presumably an educational one. At some point, as well, I’ll have to create a typeface for the game to use, possibly several. I think that will be fun.

The other two major things I was working on last time were the health bar and the awakening animation. The awakening animation has turned out to be a bit of a quagmire as well – I had the motion of standing and grabbing the weapon looking pretty good when I realized that I hadn’t really planned out how it was actually going to fit into the level where it was supposed to happen. This was something I can only describe as an extremely foolish oversight on my part. I’ve begun reworking the animation and I think I figured out a way to do so without completely starting over (again), but it required me to redraw the tree which was the main prop in that area. Honestly, I’m glad I was forced to do so, because the previous tree looked pixelated in a way which I had thought looked okay – but, I can see now, really did not. It looks much better now.

Of course, now I have to be concerned that making this tree look better will make the rest of the game look worse in comparison, and lead to an endless cycle of revisions. For now I’ll just have to enjoy the journey I guess, because I can’t say when things will start looking ‘good enough’ to me.

As for the health bar, progress is being made on it, but the storytelling code took priority and I didn’t want to split my attention between two programming tasks. I’ve also been working here and there on music for the next area, but though I have a number of promising ideas down, most of which will probably find their way into the finished version somewhere, none of them really feel like the right place for the song to start. For now, there, too, I keep experimenting, waiting to be visited by the spirit of satisfaction.

So, for this next month, I intend to finish the storytelling system, finish the awakening animation, finish the health bar. From there I’ll probably start in on other necessary animations – though I also think it quite likely that I’ll look at the tilesets I have to bring their level of quality up to this tree asset. It’s gotta be about the pleasure of the journey, because at this point I have frankly no idea when this project is going to go anywhere. I wish I knew how to work on it faster, but at this point it seems like it’s work slowly or not at all, and hope one day to accidentally, habitually, fall into a more rapid pace.

Another month has gone by, and though a short vacation, a nasty little cold, and a number of other minor distractions got in my way, I still managed to make a little bit of progress.

First, and most importantly, I put quite a few hours into writing the music for the first boss of the game. I may have gone a little bit overboard on this one: The concept I wanted to pursue was a track with multiple phases that mapped to different parts of the boss encounter, bouncing back and forth between them until finally reaching a conclusion. I’m not sure if I can possibly create a boss encounter that stays interesting long enough to accompany this track, coming in at almost 9 minutes long, but it will be fun to try once the rest of the chapter is complete.

The phases of the track are:

0:00-1:47 Intro
1:47-4:13 The Chest
4:13-6:16 The Mask
6:16-7:49 The Heart
7:49-8:40 Conclusion

This one honestly ended up getting quite a bit out of hand, and I spent quite a bit more time than I’d originally expected to on it, but I’m quite pleased with how it turned out. I also just enjoyed doing music work again! I’m going to carry on with composing the soundtrack even though I’ve effectively completed all the tracks for the first chapter of the game now, which is the part of the game I’m focused on finishing. The reasons why I’m going to continue doing music work, despite otherwise attempting to contain my efforts to this first chapter, are several-fold: first because, as mentioned, I like making music and I want to do more of it, second because if I can’t make this game in a timely fashion I can damn sure make its soundtrack, which is a discrete sub-creation that I can be proud of in its own right, and third because I find music so compelling that I think just having the soundtrack to the game will motivate me more to finish the rest of it. There’s also a fourth, more pragmatic reason: Inspired by UNDERTALE’s soundtrack, I’m really trying to integrate motifs from different characters and locations into tracks with a narrative connection to those characters and locations. It’s going to be really hard to do that until I know what those motifs, for later parts of the game, actually are! I’m not really going to be able to consider chapter 1’s soundtrack complete until I’ve written the rest of the soundtrack and know better what my overall thematic tools and goals are.

Anyway! Aside from music, I’ve been working on a few things. I’ve been feeling my way around programming the main narrative component of the game, the storyteller. This is going to be something pretty similar to what Supergiant does in their games with an ongoing narration element, except I would like to integrate these narrator lines a little bit more closely with the music, syncing the lines up with particular parts of the track and so forth. Additionally, I want to have text appear in the world synced with the audio, so it’s a bit like playing a storybook. Figuring out how I’m going to pragmatically handle the synchronization of these elements and making them play nice with a player who may or may not be interested in the narrative taking place is going to be a challenge, but I’m getting close to having a simple version ready to test so that I can iterate on it.

I’ve also been thinking a lot about what the interface of the game is going to look like. There are really only two elements that need to be displayed under normal circumstances: The player’s current health, and how many sparks you’ve collected, which also maps to your max health. I could just have a red bar along one side of the screen, but that felt inelegant. A sphere that fills and empties like the health meter in Diablo might have been a bit more thematic, since there’s some sun/moon symbolism I’m playing with in the game, but it felt like a circle would take up a lot of screen real estate for how much info it would impart and probably wouldn’t look very good. What I’ve come up with instead is an idea that’s… actually a little bit difficult to express here. It’s basically a life bar along the left side of the screen, except it looks like an engraved stone tablet. Only a small part of the tablet is visible early on, but as you gain more power the tablet expands and you can see more of it, and the engravings on it. I can actually directly tie the health meter into the narrative of the game in what I think is a pretty interesting way. However, because you don’t gain power at a constant rate, but instead end up collecting more and more as you defeat more powerful opponents, I’m going to have to figure out a curve that reveals the tablet at a rate that’s satisfying over the course of the game. I have a logarithmic function in mind that may work well, but it will have to be tested. I’ll also need to figure out how to have the tablet build up in such a way that it feels satisfying, and ensure that no matter what its interim shape is it still gives satisfactory feedback as a health meter. This will all take a bit of experimentation, but it’s an idea I’m excited about.

Finally, I’ve been working on the game’s first animation. I mean, I’ve already built several animations, but this is the first one that will play in the game: The player character awakening, standing up, and taking her weapon at the very beginning of the game. I started creating this animation, and then had to start over after working on it for a few hours because my first take on it sucked. I think my second take on it has potential, though it’s still very rough the motion feels good to me.

The actual removing-sword part of the animation still needs to happen, and of course all of the detail and the tween frames need to be added, but I think I’m on the right track this time.

So, the plan for August is to finish working on these things, write the music for the first area of chapter 2 (I’ve already started), create more main-character animations, and maybe get some basic sound design in. Of course something else may capture my fancy and I’ll end up working on that, but as long as I stick to my big task list I think I can maintain forward progress.

Well, I’m back to working on EverEnding. That side-project ended up being exactly what I didn’t want it to be, an excuse to work on a whole bunch of tools without ever making an actual game to go with them. We’ll call it a learning experience. What did I learn? I learned that I have a habit of avoiding the scary unquantifiable parts of a project in favor of working on parts that feel like safe investments – that I feel, somewhere inside myself, that if I pour my efforts into making tools and systems that that’s a safer gamble to me than pouring them into the actual core of a game. Art is scary! The more time you have to put into making it, the scarier it gets – in the first place, making art is like putting a message in a bottle and letting it out to float on the sea, and it only gets more stressful when you spend more than a year creating that message. The solution is not, I think, to spend another year developing new bottle and paper and ink production facilities to make creating each message that tiny bit less terrifying, but it’s an appealing option to take whenever it presents itself.

Oh, also in addition to those big existential questions I guess I learned a lot about making a scripting system and working with OpenFL. So that’s good too.

Once I decided I’d basically dead-ended, it was clearly time to head back to EverEnding. However, I’d left the project in uh… not a great place. I’d completed about half of the OpenFL port, and lots of systems weren’t running and I’d left lots of bugs in the systems that were running. Eventually, after lots of debugging and deliberation, I ended up rolling back a number of the changes I’d made and reverting back to Adobe AIR… for now. The reason for this is that switching to OpenFL would not only require me completely rewriting all my rendering systems, it would also make a couple of the special effects I’m planning extremely difficult. I really want to be actually working on a game now, so I figure rather than resolving all these issues right away I can defer them for a while. A big thing that enabled that is that OpenFL now supports Adobe AIR as a target platform, so with a few checks in my code to handle cases that are unique to OpenFL (most of which I’d already implemented) I can have something that can run on that version of OpenFL with no changes and, perhaps soon after, build to other OpenFL target platforms. Even if I’m not prepared to implement OpenFL just yet, with my experimentation here and with the side-project I think I have a pretty good idea how I’ll handle it when that time comes.

So, back to working on EverEnding: There were a few big design decisions I’d been deferring, one of which was specifically how to handle the narrative of the game and the other was creating some sort of special moves the player could unlock over the course of the game. I think I figured out a good system for creating a narrative in the style of sort of a story-book, with narration synced to music and text fading in – this is probably something I’ll want to prototype, though, to make sure it actually feels right. The special moves are like 75% figured out, but only the smallest slice of that stuff will be in the first chapter of the game, which is the one I’m focusing on right now, so I can figure out the last of that later. After I got that stuff basically sorted, I created a big task-list for creating chapter 1 of the game. I already had a task-list, but I made one that was bigger and more thorough, and had accompanying time estimates for each task. I tried to overshoot every estimate, but if they’re accurate than I have something in the region of 1300 hours to put into the project before the first chapter is complete. That’s a lot. Then again, I’ve put that much time into TF2, and I didn’t even make that game.

I have my work cut out for me. I’m going to start scheduling myself a bit more strictly again, though I may only get a few days to work to that schedule before I have to leave for a family thing, but with all this down and planned out I feel – well, not exactly optimistic, but determined I guess. I just turned 35, I’m starting to get the tiniest bit of grey in my beard, I got a blood pressure monitor for my birthday. I really do need to actually finish a project.