Archive

Development

Sometimes making art is as natural as breathing or sweating or speaking and you just need to figure out a way to bottle it. Sometimes making art is like trying to hold your mind in the shape of a mold while you pour plaster into it. Sometimes making art is like putting together a puzzle, and each piece you place gives you a clue to where every other piece needs to go. Sometimes making art is like producing a pearl, where something just rubs you the wrong way for too long so you try to wrap it up nicely and present it to the world. Sometimes making art is an accident and sometimes making art is a mistake. Sometimes it’s easy, sometimes it’s hard, sometimes it’s a burden and sometimes an escape.

The art of making games is chiefly defined by how incredibly long it takes. It’s a marathon, the kind that leaves your pants pissed and your nipples bleeding. It’s carving a new piece of a miniature ship and fitting it into place in a bottle every day, and each piece is its own work of art that is itself sometimes like this, sometimes like that. It’s such a vast task that each day it presents another aspect of itself, and you have to find another way to love it enough to keep working on it. Or to hate it enough. Or to have no other choice.

Sometimes making art is a job that you just have to go to every day, or a spouse that you wake up next to and that you go to sleep next to. It shapes how you engage with the world. Sometimes making art is a country that you travel to. Sometimes making art is a therapist, an architect, an accountant. Fictional lives bleed out into real lives. Fictional characters bleed out on fictional floors, and real tears are cried for them, and something slowly shifts inside, and we walk away different than we were before.

It’s not like we have a choice. We’d be making art whether we want to or not. Ancient peoples crafted pots to piss in, and they didn’t know that they were making future valuable antiques. People cave painted before they had a word for paint. We made art before we made artists. So why should this be so hard, or be so pressing? What shifted that made this easy and natural thing such a struggle, such an imperative?

Saying something specific is much harder than saying just anything. Maybe we’re searching for the right words to say the things that need to be said, and it’s really not certain whether those words have been invented yet. Maybe it’s just hard because it feels like time is running out, that we’re sinking, and that we need to make a monument so that someday we could be rediscovered. And I know now that art isn’t actually immortality, that even the longest-lasting work on Earth will probably die with our species sooner or later, hopefully later, probably sooner. What else can we do, but try to leave a death rattle that echoes as long as possible?

Sometimes making art is as natural as breathing. You cannot stop, until one day you must.

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!

Well, it’s been a busy month. That’s putting it somewhat mildly – the last week or so has been possibly the hardest I’ve ever worked on a project, putting in anywhere from 8-12 hours every day and culminating in one last completely brutal 14 hour day on the first of February to wrap the project up. It’s still not perfect, I could definitely find plenty to do if I wanted to spend a week or so on polish and fixes, but for now I really just need to let this one go, because I’m exhausted and I want to move on to something else.

For January, I participated in Wizard Jam, the Idle Thumbs community game jam. The premise of the jam is to create a game based on the title of an Idle Thumbs network podcast, and since many of those titles tend to be weird and imaginative to start with there’s plenty to work with. I picked The Convergence Compulsion, and then later when I found out that someone else was interested in using the same title, appended the subtitle “The Satisfaction of a Job Well Done”, another podcast title. My very early conception of a game to go with this title was a fast-paced 2d puzzle game in the vein of a match-3 or Tetris where you tried to get different laser beams to line up, but the idea that eventually captured my imagination was a game where you build machines out of elements that emit power, manipulate it, and then turn it into some sort of work. Along the way, it shifted away from the idea of building complex machines and towards figuring out a solution to a puzzle made out of a few components and a number of simple humanoids, kind of like the games The Incredible Machine and Lemmings. At the end it came out pretty close to that, except most of the humanoid behavior had to be cut/simplified.

The concept of Convergence Compulsion is that you work for The Convergence Corporation installing hardware in different locations. The hardware usually consists of at least one power orb, which emits power particles, and at least one converger, which attracts them, and then using these and some other devices which focus, reflect, or split these particles you need to power different machinery. This ended up being kind of a finicky concept – Sometimes machinery ends up getting accidentally powered on just due to random chance, sometimes it takes a while to get the equipment specifically where it needs to be to focus particles, sometimes solutions I didn’t anticipate work and sometimes solutions that should work fail to because I didn’t script the levels to account for them. For the most part, though, I think I’ve managed to achieve the game I had in mind.

Here it is:

Convergence Compulsion: The Satisfaction of a Job Well Done

 

In addition to this, Wizard Jam 8 participants created a number of other great games, many of which I commend to your attention. A few standouts among those I’ve played or seen played thus far:

I’m exhausted but generally pleased with what I accomplished during January, which brings us to February. Now, I had originally planned on making another game this month, a 2d platformer project so I could better understand the capabilities and methodologies of Unity 2d development, but right now I’m really ready to just not work in Unity for a while. Thus, the 2d platformer project is getting pushed back one month to March, and for February I’m going to be focused on writing music, ideally with the end-goal of making another album. I have a few tracks floating around already, so it will really only take maybe 5 or so more to have enough for an album, but we’ll see where I end up. Even if I don’t end up having enough it’s fine, I just want to spend this month making as much music as I can and definitely not programming.

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.

The first of what will hopefully be many monthly projects is complete! This ended up being a little bit more along the lines of a prototype than a complete game, but I expect that most of them will – and it’s still quite playable for what it is, I think. Click this text or the above picture to download the game.

I learned a lot about how Unity works doing this. Starting from the incredibly basic Roll-A-Ball tutorial provided by the Unity team, I added a jump (which didn’t make it into the release version, but which I am quite pleased with nevertheless – if I end up creating a more complete and sellable version of the game it may find its way back in), then added an advanced camera and gravity beam. Most of the development time went into implementing and tweaking these effects, and I’m very pleased with the overall feel of it now, though certain aspects, such as the simple “X” beam cursor and the occasionally clumsy camera, could use improvement. The game is unfortunately still rather unoptimized – I’m unused to 3d optimization in general, and also more specifically unused to optimization in Unity, and also most of the few things I do know about optimization have to do with ensuring that the game doesn’t render things the player doesn’t need to see – which, in this game, is honestly not very many things, since movement speed can be so fast and can change very quickly the player really needs to be aware of where all the platforms are at all times. That’s one reason I wanted to make the player character reflective, so that you have some idea what’s around you even if you’re not looking in that direction. Unfortunately, because the character is reflective that means even the parts of the level you’re not looking at need to be rendered, so it really does affect the performance.

So, what did I learn from this project? What went right and what went wrong? About halfway through, I was imagining a game with approximately the same gameplay but set inside a giant office or other mundane room. This would have been difficult to do, because I have very little experience creating a realistic 3d space, so eventually I decided to make a more abstract “cyberspace” world. This helped me create a simple level quickly, since I could really just throw together whatever geometry seemed interesting without any concern as to creating textures or ensuring everything was to scale, and also allowed me to create a very open space where the player could do almost anything with the gravity beams. I knew early on that I wanted the player to be a glass sphere which shattered on hard impacts, partially inspired by Marble Madness. It took me quite a while to figure out how to create the shattering effect – I eventually found code to create something along the lines of what I needed, but had to modify it slightly but significantly to suit my purposes. I’m pleased with the final shattering effect, though it sometimes renders in ways I don’t expect.

I tend to think of music creation as coming fairly quickly and easily to me, but it was actually difficult under the time pressure of the last few days of the project. While I like the track I came up with well enough, it’s shorter and simpler and has less production work than I usually like to put into my musical work. I think it’s well suited to the game though, and I haven’t gotten tired of listening to it yet which is a good sign. The sound effects were mostly pulled from freesound.org, though I modified many of them quite significantly, mostly to make the glass sound a bit more musical when it struck or rolled.

All in all, I’m quite satisfied. It might not be the most ambitious project, it might not have a ton of content, but I do feel it offers something unique and that I have executed it to a reasonable level of quality. I may revisit this project sometime next year and try to develop it into a complete game, which would involve adding a bunch of new levels, leaderboards, and ideally some sort of head-to-head racing mode.

For December, I’d like to try to patch up a weakness of mine: The same way as P1aySpace ZER0 was an opportunity to learn Unity, I would like to take this opportunity to learn to create the kind of realistic 3d space I opted out of making for this project. I’m not sure yet what kind of game I would be setting in that environment, though I have a few ideas — first I want to plan out and construct this space, then I can see how much time I have left, during this very busy month, to build a game into it. Hopefully I will be as pleased with that project as I was with this one.

Oh, before I forget, since this game turned out quite a bit more difficult than I had initially expected it to, here are a few tips:

  1. Use the repulsor beam. Though going fast is fun and satisfying, you will almost certainly destroy yourself if you don’t use the repulsor to slow yourself down sometimes.
  2. Don’t worry if you miss a gate. Until you get down to the last couple of gates, missing one usually sets you on a trajectory to hit another. Every missed platform is an opportunity to swing around and fly in a different direction.
  3. Rapidfire the beam to climb. Once you’re holding yourself close to an edge with the beam it’s usually possible to climb or swing up, but getting there in the first place requires you to pull yourself up with the beam.

Happy rolling!

I always love hearing about the points in game development where a big decision was made not to do something. Every game has moments like that – cut features, changes in design focus, unused assets – and they’re always fascinating, because they show a vision of what the game could have been, what it almost was. Sometimes whatever it is sounds more appealing than what we got – and, just as often, it sounds like it would have been a disaster, and a bullet was dodged.

It’s not just games that undergo this process, this cycle of growth and pruning, though it tends to be far more visible in games because it takes so long to make a game and the process leaves more behind in the form of demo footage and unused content. Every creation is the sum of countless decisions, decisions so small and subtle that in the moment of creation we don’t even notice we’ve made them. Every choice folds in on itself, and builds outwards, in such a way that a single slightly different choice made early on might butterfly effect out and completely change the whole project.

Then again, it might not. Because a decision made early on has so many later decisions stacked up after it, it is in some ways less important than a decision made later on in the creative process. For example, so many artists set out to create something new, to break their creative habits, and set out a sketch in a bold new style – only to find that, as they fill it out and polish it, it begins to look more and more like their previous work, the many intervening tiny choices of detail acting together to overwhelm the few big bold choices they meant to define the piece.

With all this in mind, it becomes increasingly difficult to see whether a given decision in the process is a good or a bad one, because what determines whether an artistic choice work or not work is entirely whether the future choices built on top of it make it work. So, what I’m saying is that every choice you make early on in building a work of art is simultaneously incredibly important and defines everything about what it will be – and also completely irrelevant because it will be outweighed by every future choice you make.

Okay. How does that make any sense?

Because art, and the decisions that go into it, are context. Every creative action you can take is only within your vocabulary because of the context of the life you live and have lived, and every choice you put into a work of art only has meaning in the context of its relationship to the preceding and succeeding choices. The specific analogy that comes to mind is, once again, playing a game of XCOM – because I’ve been playing so much XCOM and watching so much more that these analogies are coming to me very readily right now. When you move your units around the map, the early moves don’t directly bring you victory or disaster, but they do affect how likely your later moves are to be useful. The beginning of the combat is both incredibly important, because it sets the stage for all your other moves, but also largely irrelevant, since under most circumstances you have ample opportunity to course correct. Every decision matters, but even in a difficult encounter there are usually many potential paths to victory: As long as the moves you take still are contained somewhere within that victory possibility-space, you’re doing okay. This is actually all pretty much true of any tactical game, so if it makes more sense to you then feel free to substitute Chess or Go in the preceding analogy.

The point of all this is that there’s no benefit or reason to stressing over early decisions. The point of all this is that if you’re waiting to figure out where to start before you begin a project, you’re wasting your time. Begin anywhere. You can get anywhere from anywhere. Yes, I’ve made a blog post arguing pretty much the exact opposite of this as well, and yes I actually still agree with that blog post too. The first choice you make will define everything about your project, but so will all the other choices. Everything matters, but nothing matters so much, in art, that it’s worth being scared about. Just keep making choices. Just don’t run away. Eventually, somehow, you’ll have something worth being proud of.

ripxcom2.jpg

This week my first attempt at a legendary difficulty campaign of the XCOM 2 expansion, War of the Chosen, went down in flames. Also this week, I started my first real and persistent attempts at learning Unity and building a game in its toolset. It’s been a week of exploration, unfamiliarity, and uncertainty.

I’ve learned something about challenge, this week. I learned that you can either give yourself a difficult task or an unfamiliar task, and either of those might go poorly, but if you give yourself a task that is both difficult and unfamiliar you are really asking for trouble. When I started the War of the Chosen campaign, I assumed it was mostly the same as XCOM 2 with a few additions. It turned out that almost every mission type was completely different than before. It turned out that many of the things I’d learned about how to play the game from playing before the expansion either were no longer relevant or came with new caveats I wasn’t aware of. It turned out I shouldn’t position a soldier on a fire escape attached to a building that was slowly caving in on itself. It was very educational.

Not only does War of the Chosen introduce a lot of new mechanics to the game, the mechanics it introduces are comparatively opaque, driven more by narrative than mostly systems-determined missions of XCOM 2. This isn’t a bad thing, but it is a thing that will completely destroy an unprepared player who has reduced their margin for error to close to nil by playing on the hardest difficulty.

But what about Unity? Fortunately, in that case I was smart enough to not try to overlap two kinds of difficulty, and I set myself an easy task to do in an unfamiliar environment: Make some sort of game or game-like experience by the end of the month. Of course, my approach to doing that still makes things characteristically difficult for myself, such as by getting deep into the specifics of the physics system to get a jump animation to work just the way I want it to or to make a cursor in 3d space lock onto the closest available surface, but I’m getting somewhere and I’m learning a lot.

It’s important sometimes to be able to embrace ignorance. Having an appreciation of learning is only possible when you have an understanding of just how much you don’t know – the reason why so many people resent education and expertise is not resentment at the knowledge and skill people accumulate, but resentment at the implication, by having knowledge and skill, that those who do not have it are ignorant and unskilled. Learning becomes an insult, training becomes a prank. Everyone has this seed in them, a part of them that hates their limitations so much that they can’t stand to see anyone excel. Only by accepting our ignorance can we learn to move past it. It’s not like Socrates’ knowing enough to know that he knew nothing: It’s knowing that you know nothing so that you are able to replace the nothing with something.

Sometimes it helps to take a dive into the unfamiliar. Not only is it a necessary prerequisite to making the unfamiliar familiar, old assumptions and habits start to be cast into a new light and questioned anew. Scraping away superficial layers of knowledge sometimes helps one to attain a more complete, clarified knowledge.

Or, at least, these are pleasant things to tell oneself while one is being reborn, unaccustomedly ignorant, weakened, and infantilized.