Archive

Development

I’ve been procrastinating on writing this post, since it’s always galling to admit this: Very Little progress has been made on the project over the last month.

This is not to say I haven’t been working on it – though between a week-long trip and focusing on more immediate work to pay rent I have perhaps not been working as much on it as I ought to. The issue is more that most of the work I’ve been doing has involved slowly revising the code base to work in OpenFL, which really doesn’t give me a lot to show.

It can be discouraging sometimes when the project is in this state. In general I kind of enjoy the work of refactoring, streamlining, and optimizing that goes into revisiting an existing part of the code base like this. However, particularly when it comes to a major restructuring like this, it means there’s a long period of time where the game as a program that can be run and experimented with ceases to exist. Right now, when I want to work on EverEnding, there is precisely one part of the project available for me to work on, and that’s this programming work. Not even especially interesting programming work, at least for now – once the fundamentals are in place I’ll also have a job of making sure the drawing routines are optimal and testing/improving the replacement displacement map filter code I wrote (as it turns out shader programming wasn’t necessary to create it, but I may look into creating a version implemented that way once I have this version working).

For now, there’s not much to say. I don’t know, a lot of the time I feel like I might just be wasting my time here, like I don’t know how to access the kind of discipline and productivity to make a project of this scope feasible, at least not in my current living situation. I wonder a lot if a different project might be a faster or better way to achieve the expression I have been straining towards with EverEnding, or if there’s some way to scale back or streamline this game conceptually which would allow me to work on it in a more effective and productive fashion. It is always difficult to tell which doubts are warning signs to be taken seriously and which are just self-sabotage.

Regardless, I am nearing completion of the changes I’ve made to the Particle System to make multi-threading stuff entirely self-contained within the system itself so I don’t need to negotiate that in the game program, as well as I guess in any other games I hypothetically make with the same tool in the future. There’s definitely a hint of programmer-itis there, where I find myself creating a more general purpose and fool-proofed tool than is actually needed – after a certain point I just gotta accept that sometimes I take the long route just because I feel that it’s more proper, even if it’s less pragmatic. Within this week sometime I think I’ll be able to get back to more interesting work on the project. It sucks getting stalled, but it doesn’t last forever – and, regardless of my doubts about where all this will eventually go, I think I can pursue it with no regrets as long as I enjoy and believe in my process.

Advertisements

It hasn’t been an especially productive month for the project, but things are grinding forward. I decided I was still dissatisfied with the performance, even after all the improvements I made to the particle system a year or so ago, and so I’m working on getting the project running in OpenFL, an open-source project that emulates Flash/AIR’s API but builds in C++ and tends to be faster. This isn’t really a smooth process, since there are a few Flash features that didn’t get ported and the ways file i/o and multi-threading are approached are very different. The file system stuff is no big deal, and I believe I’ve fixed the issues emerging from that already, though since I’m still working on the other stuff I haven’t been able to build the game to test those fixes yet. The multi-threading thing is more difficult but I think I’ve got a handle on it now, and the challenging part is mostly sequestering my Flash multi-threading code away so that I can write the special cases that change from platform to platform without turning everything into a total spaghetti mess. The features that aren’t supported… might be an issue. The only one I’ve found so far that looks like a big deal is that OpenFL currently has no equivalent of the DisplacementMapFilter, the processing effect which I used to make that water effect I was so proud of and which I also would like to use for a few other special effects. I’m going to have to look into creating a replacement – which sucks, but might end up being a blessing in disguise, since this will be a fairly natural way to explore the wide worlds of shader programming and, indeed, of contributing to open source projects if my solution ends up being of sufficient quality to submit as an OpenFL component.

Aside from this, I mostly worked on building the behaviors for the Feral enemy type which I shared a few sprites for last week. These behaviors are mostly finished now, but haven’t been tested yet since I didn’t have a complete set of sprites to test with – not strictly necessary, but since most of the code is reused from existing enemy types I’m not worried about any major malfunctions. I also realized a substantial obstacle towards completing the first area of the game was that I just wasn’t really sure what the space was supposed to look like. I had some vague ideas, but I didn’t know what the area’s history was supposed to be, what really was going on there now, or what the symbolism of it was. I spent a bit of time writing out some notes on it, and I’m confident that when I get the game working again and return to develop this area I’ll have a lot to work with.

My work is basically cut out for me now. Get the game building in OpenFL, handle any new bugs, rewrite the display code as necessary to take advantage of the improved performance. It’s always a bit of a drag getting railroaded into one big task that has to be done before I can make more substantial progress, but in this case there’s no way around it – particular as, in the interim, something weird has happened with my development environment to make launching the AIR version seemingly impossible. While I’m sure that will all get ironed out eventually, in the meanwhile it leaves me no avenue to working on the AIR version of the game, so really all I can do is drill in on the OpenFL port. Soon, at least, I’ll be able to take advantage of this tedious chore to tackle a field of programming I’ve been wanting to study for a while: Shaders.

 

Why don’t I make more games?

Of course, I’ve been working on EverEnding, but that’s a long term project and hardly precludes the idea of pursuing side projects. I’ve even tried to take a break of a week or a month to work on such side projects, and they haven’t gone anywhere, as I get bogged down in minutiae and lose momentum before heading back to work on the main project. This is supposed to be my medium, though: Games are supposed to be one of the ways I’m most comfortable in expressing myself, and this idea is core to my identity. Most of the independent solo developers I admire make at least a couple of projects a year, and I feel that this is within my capabilities and would probably make me feel more fulfilled than whittling incessantly away at the same project – and wouldn’t even necessarily take that much time and effort away from that project, depending on how I approached them.

So why don’t I?

I’ve heard it said that finishing games is a distinct skill in and of itself, and if that’s the case then it’s one that I clearly and sorely lack. The last time I remember perceiving this kind of lack in myself was before I learned to draw, but desperately wanted to – when I was hugely intimidated by the gap between what I could imagine and what I could achieve on the page. What it came down to was that the only way I could get past this was by letting go of the idea of creating something great and grabbing hold of the idea of creating the best thing I could – a nobler ambition at any rate, I’ve come to believe. Eventually I got comfortable with just making marks on the paper that looked very approximately like what I wanted – as time has passed, they’ve gotten closer to what I imagine. More importantly, as time has passed, I’ve refined that imagined ideal of what I want those marks to be, what they can represent and how. At this point I’d say I’m a pretty good artist: Could be better, could be worse. I guess that’s the same for everyone: It’s a place we tend to stay at for most of our artistic lives, so it’s a place we have to learn to feel okay with being in.

However, as a game developer I think I’m still Nowhere. Undefined. Maybe I’m great! Who knows? Maybe it’s the fear of finding out that I’m not that’s holding me back – that’s certainly one of the things that used to hold me back from the visual arts. Better to be silent and thought a fool than to speak up and remove all doubt, as they say.

It’s really not, though. Better to just be okay with being thought to be a fool. It has many advantages. It’s very freeing.

I’ve gotten mostly okay at sometimes being bad at art and music and writing. I just kind of assume that some ratio of the work I produce will suck big stinky butt, and hope that as I practice and develop as a creator that ratio will get smaller. It’s hard for me to get there with games, though. Even a small game takes a lot of work to make, so it’s hard to feel okay about that work going into something that’s not great. I’ve made a few games, here and there – for game jams, mostly, 3 or 4 spread across the last decade or so. These games were mostly pretty abrupt and incomplete, but, still – they were games.

I think another big obstacle has been that I tend to start game projects from a place of intellectual interest. I usually start with a theme and/or a game mechanic, and try to build out from there. This isn’t actually a bad way to design, but it’s a bad way to make a project I give a shit about. This sort of intellectual interest has a shelf-life. Eventually, if I keep thinking about the project I will end up exploring the design fairly completely in my mind, and obviate any pressing need to create the project itself. Games take long enough to make, at least for me, that this usually happens before the project is complete. Thus the reason why I’ve maintained interest in EverEnding for five years but I have trouble maintaining interest in most game jam projects for more than five days: Some games are just more fun to design than they are to create. These are not the sort I should be making. I need to start from a tone, a feeling, something unnameable to seek rather than something unnamed to build. And, since these are games, the mechanics and theme will follow, as they must, a series of intellectual challenges, puzzles to solve to figure out what this mysterious place I’ve found for myself will be.

Once I can teach myself to start and to finish smaller games, maybe I’ll be ready to start to finish EverEnding.

Well this is probably going to be a short one, since for 20 of the 30 days since the last DevBlog I’ve been busy with writing and for the other 10 I’ve been trying to catch up with all the other stuff I didn’t get done while I was doing all that writing. The two avenues I’ve made progress on are in developing the Feral enemy type and in improving the camera system.

I posted the concept art for the Feral a little while back, and I’ve since been poking and prodding at getting some sprites done for it to add to the game.

I’m not thrilled with these at this point: The look of them is good, but the animation still feels extremely stiff for the most part. I’m having difficulty with handling the sorts of subtle motions I want this creature to make when it’s not being aggressive, and making them read on a fairly low-res sprite. I ended up tabling that work when I returned to the project since, as I’ve discussed in the past, I tend to find animation frequently turns into a demoralizing slog for me. So, to get myself back into the project and to build up a bit of momentum, I’ve gone back to programming work.

After a few days, I have most of what I think should be a functioning behavior set for the Feral, but I haven’t tested it yet – mostly, honestly, I just wanted to get the code to build so I could work on other parts of the project for a bit. Still, it means I’ll probably be able to get the Feral up and running in fairly short order, and that hopefully will increase my enthusiasm for creating and polishing the necessary animations.

More recently (ie just now) I’ve been working on the camera system. I went back and read a rather interesting Gamasutra article that exhaustively explored the different approaches to 2d camera systems and, while doing so, revised mine. In fact, I revised my camera system several times over, trying out different ways to move the camera or to determine where I was moving the camera to. I’ve mostly settled on a system where it offsets the camera based on the character’s facing enough to see what’s ahead and moves the camera faster based on how far it is from it’s desired position (without modeling acceleration), but there are a few instances where the camera jumps around in a rather unappealing way left to be dealt with.

I’m still getting used to working on the project again, and of course there’s holidays coming up to be a distraction, but spending a little while away from EverEnding has given me enough perspective to know that it’s not force of habit, or some inane belief that just finishing this one thing will make me rich, or certainty that it will somehow change the world, or some other bad reason that keeps me working on this game. I still love the version of it I have built in my mind, and I still want to try as hard as possible to bring that vision to fruition, and especially to see what it slowly shapes itself into along the way.

 

Worked on the game very little over October since I’ve been busy with other stuff – character designs, learning 3d modeling/sculpting, picking Reason back up and trying to get the ball rolling again on music composition, and streaming more. I’ve poked here and there at getting sprites and behaviors set up for the Feral enemy type which I posted character art for last month, but made no substantial progress there. And, with pushing myself to make daily blog posts this month and keeping up on the streaming, I probably won’t have a ton of energy left over to work on the game, but I’ll be trying to schedule bits and pieces here and there so I can keep my momentum rolling a bit, ready for when I’m prepared to work on the game with a bit more focus. In the meanwhile, I’m still slowly picking away at the huge concept painting I mentioned last month, which I’ve decided to regard as a work in its own right, since it’s going to take me an absurd amount of time to finish. Still, I think it could look kind of amazing when it’s done, so I’m sticking with it.

The one major bit of EverEnding related work I’ve finished is a character design I’ve been tossing around in my head. This character doesn’t even appear in the first act, but is very important in the second. I’m pleased to have taken some time to figure out the design, since some of the ideas I was playing around with originally absolutely did not work when I actually drew the character. I think I’m pretty pleased with how this design turned out, though future revisions are still likely.

Next month will probably be more minor updates and changes. I’ll probably have the game a bit more backburnered for the near future, as I try to set up alternate revenue streams to support myself, but still fully intend on finishing this project – after all’s said and done, I still really like this idea, and want to see it come to fruition.

 

If there’s a saying that’s haunted me over the years, it’s “Jack of all trades, master of none.” There’s a sense of causality implied here, suggesting that being a jack of all trades necessarily implies being a master of none – which makes a certain amount of consequential sense, given that we only have so much time to dedicate to practice, and that practicing one thing must necessarily take time that could be used practicing another. And yet… well, I really would like to be a master of, if not all, then several trades.

I’m proud of the progress I’ve made, but the better I get at anything the more I see how much I have yet to learn, and the more time passes the more I’m scared that I don’t have enough time or energy to learn anything to the extent that I would like to. Every bit of pleasure I take in seeing my art improve drips into the gap I perceive between that improvement and what it is possible to achieve with the medium. And yet, can I give up on anything? Can I stop writing, stop drawing, stop making games, stop making music – how can I stop, when I’ve already come so far? I don’t feel okay with stopping – I don’t even feel okay with the idea of stopping starting, since there are other skills still I want to pick up and improve at, and I also want to push my abilities along new avenues – to write different kinds of words and music, make different kinds of art. I just started streaming games on Twitch a while ago, which is developing a whole new set of verbal performative skills, a category of art I’ve barely approached before in my life but have felt a subtle yearning for.

Yet I also don’t feel okay about being broke, though that seems to be where I’ve gotten with these trades and practices and skills thus far – either because I’m not confident enough to sell the products of my labor or because the products of my labor are of insufficient quality or breadth of appeal to find purchase. I’m trying to work on both of those right now as well, but it’s slow going and in the meanwhile, as I chew through my monetary reserves, I feel quite broke and somewhat worried.

There’s no good way I can see besides the way I’m doing it. If I try to raise money through more traditional venues (IE get a job selling coffee or burgers) I have dramatically less time and energy to develop my abilities and create new works, further reducing my capacity for self-improvement and self-sufficiency – though, I suppose, I might gain some additional and unexpected skills through the work itself.

Maybe I’m greedy. I just can’t let anything go. It’s a privileged position to be in, still. Most people don’t get a chance to make this choice. Sometimes I wonder if I’m making the most of it, but all I can do is my best, and it’s also an opportunity I can’t let pass – though I know that, as with everything, this, too, shall pass. I just have to be ready before that happens.

Another weird month! They’re all weird months, now. I suppose that makes them normal, in a way. In an actual for real way, though, they remain weird.

Last month I mentioned that I was going to be working less on the game and more on building a portfolio – and so I am, but it turns out these goals aren’t quite as much in conflict as I was thinking they would be last month. EverEnding still requires a ton of design work, concept work for enemies and areas that have yet to be added to the game. Now, if I was solely focused on the game I’d probably just design all of these as I built the actual assets for the game, and I’ll probably still be doing that a fair bit, but this will allow me to iron out some of the trickier areas in my head while also making art that will be useful both for promoting myself and the game.

So let’s start with the EverEnding stuff and then I’ll move on to some of the other stuff I’ve been working on. The big thing I’ve been trying to do is develop a concept painting of one of the late game areas, but I’ve hit a snag – or maybe a lot of snags. I’m not used to environmental art so I’m having to figure out a lot of things as I go along, and I’m not really sure what the scope or precision of one of these paintings should be. As things stand, I’ve started a HUGE painting which is taking me a long time to finish, and which I’m unsure of the quality of since I’m having to learn so much as I go. The good news is that if I can execute I think this could be really something, and perhaps even be a cover painting or other very front-facing promotional material. It’s a bit discouraging having to spend this much time on something, but I hope to have this painting done for the next monthly update.

In terms of stuff that’s actually finished, I did a concept drawing of one of the early game enemies, the Feral:

I’ve started in on the sprite work as well, but haven’t gotten very far yet (this is something else that will probably be ready for next month’s update). I was going for something a bit in between a rat and a chimpanzee with some human-like aspects, and I think I hit that mark pretty well.

I came up with another enemy design for the game, but it turned out to be rather boring so I’m not going to bother to include it – it’s just a gray silhouette of a man, which isn’t interesting to look at but drawing out the design helped me figure out some specifics of pose and outline which will probably make the character a lot more interesting when i add it to the game. Additionally, there’s a character design for an important character in the second chapter, but I think that design as well is a couple of revisions away from being ready to show. I’ve also finished some minor sprite work for the project, making all of the mask enemies in the first two parts of chapter 1 pretty much animation-complete.

Aside from EverEnding stuff I’m working on learning Unity and building a prototype in there. I won’t go too much into that until I have something I have confidence in, but I came up with this ‘character’ design today for use in the project:

So I guess if the prototype turns out well I’ll have to actually model that, which will be an interesting challenge as well.

I’ve also been practicing 3d sculpting a bit, and… I don’t know, miscellaneous other things. My main goal is to try to take this wide reach of things that I’m trying to do all at once and try to bake some discipline into my approach, because I’m getting a bit overwhelmed just trying now to remember all the things I’m working on. I’ll probably try to work out a somewhat more regimented schedule than I’m generally used to tonight so that I can more effectively avoid driving myself insane over the coming weeks.