Archive

Monthly Archives: May 2014

EveHeaderHuh, just noticed that last week’s devblog number and title were the exact same as the week before’s. I guess that’s what I get for trying to copy previous posts for convenience’s sake. Not that that stopped me from copying this one.

It’s been a weird week. Either taking a couple of days off has totally thrown my rhythm, or allergies are subtly sabotaging me, or I’m having a really hard time adjusting to a new schedule, or possible some combination of the above, but my motivation to get stuff done has been, well, not great. Since I haven’t had the precision of focus necessary to tackle any big changes, I’ve basically just been sorting through my code, rearranging it to make it more readable, and fixing things that cause problems where I find them. This actually feels pretty satisfying, like taking an editing pass on a novel you’ve been writing non-stop for a year and a half: It feels good to sort it out, take weird and overcomplicated schemes and bring them back into line with my current coding standards. Is it productive? Will it help the game? I honestly don’t know for sure, but it’s something I can focus on, and by bits and pieces shift everything towards where I need it to be before I begin work on the next major component.

The end goal of all of these changes, as well as general tidiness and readability of code, is to make it so everything is both centralized, using files to store re-used data so I can modify them in one place and have the changes represented throughout the game, and revertible, such that I can call one function and a room will revert to its initial state. The latter is fairly easy, though requires organizing data differently in many cases: The former, however, is a big change, a fundamental change, a change which I honestly should have thought of and prepared for months ago, so it’s not surprising that this is kind of a big deal.

So here’s what’s left to achieve on development of the engine, as I see it:

A) Centralize all re-used data to one file for each module (animation, entity)

B) Make it so game elements can both be reverted and have the revert-to state modified (found items, eliminated enemies, and scripted events don’t respawn)

C) Create a level detail editor

E) Entity interaction, particularly with regard to attack registration

Those should be all of the major engine components in place. From there it’s just debugging and creating behaviors for specific in-game entities. In some ways this is still a long way left to go, but in some ways it’s so close. I just need to keep working at it and, by bits and pieces, shift everything towards where I need it to be.

This isn’t a proper content update, which I guess means I’m basically taking the week off. However, that doesn’t mean that I’m not working on the blog, I’ve just decided to change my strategy. Over the last several months, I’ve drifted into an extremely extemporaneous and off-the-cuff style: Though this confers a number of advantages, allowing me to follow whatever idea excites me at the moment and access emotions very directly, it makes it difficult to form cogent and well-researched points that stand up to rigorous scrutiny. It also means I tend to repeat myself a lot, since there are only so many individual ideas which I find particularly interesting within a given span of time. I guess what I’m trying to say is that I think, for now, that this approach has run its course, and I’m not getting as much from it any more.

So it’s time to change things up again! Starting now, I’m going back to one content post a week, to be uploaded Monday at 10am. I’ll spend the entire preceding week, each week, writing out that post to go up on Monday, rather than trying to bang it out in the last few hours before I go to sleep the day before. Basically, I want to get to a place where I can spend a relatively restrained and disciplined hour or two each day and develop a piece that’s 1000-2000 words rather than spend 3 or 4 hours twice a week writing two pieces that are 500 words. More than anything else, this let’s me spend one entire day to come up with a topic and outline where I want to go with it, rather than pressure myself to scrape whatever I can find out of my brain and slap it onto the page as quickly as possible. Not only do I believe that the end product will be higher quality and more professional – though I think my recent work has many merits, being professional and well-researched are not among these – I also think this will help me to develop a schedule for writing which is healthier and more creatively sustainable than the half-assed approach I’ve embraced up until now.

I’ll be continuing to post devblog updates once a week, but I’m going to push them back to Saturday, since writing on the main piece should be done on Friday that means that there shouldn’t be much conflict between them. I’ll update the schedule page in a bit, but for now the thing to keep in mind is that Monday at 10am is when each week’s piece goes up, and Saturday at noon is the devblog.

That’s it for this week. Now I need to get to work writing the post to go up next Monday: I hope you’ll all enjoy the fruits of this new approach then!

I guess I should put something up. I took last weekend off, so no post today. I’m also thinking through some other changes for the blog, so Wednesday’s post will probably be about what those changes are rather than content per-se.

EveHeader

Well, I spent a big chunk of this week skirting the edge of a minor stress breakdown, but other than that it wasn’t bad. I think I got a lot done. There may actually be a connection there, I’m not sure. My memory of what exactly got accomplished is a bit hazy, but I’m pretty sure something did. Fortunately, I happen to keep a daily devblog handy for just such occasions.

Let’s see: According to this, I finished up my tools for converting Flash native graphics objects into xml and back, but I haven’t yet had an opportunity to test them to make sure they work. I added some convenient direct saving and loading functions as well, so that I wouldn’t have to duplicate that simple file I/O code elsewhere. I completely destroyed the old detail editor (goodbye, a couple of weeks of work) since it will have to be rebuilt from the ground up, and created a test particle system in the level data files so I could make sure everything works in terms of converting particle data to and from xml (it does – at least, the from does, I haven’t tested the to). Beyond that, I mostly just fixed any run-time errors that came up and made minor improvements and fixes here and there, as necessary.

Man, it has been so damn long since I did anything besides programming on this project. Not since the beginning of the year. That’s terrible. But… I’m getting so close to finishing the primary project engine. All of the major components are in place now, it’s just fixing up the editors, making a few improvements I’ve thought of, and nailing down a couple of specific processes (melee interaction, primarily). I’d set some sort of milestone deadline here, except for I honestly don’t have enough control over my life to be able to commit to that kind of timetable.

Still, it feels like the end is in sight. Maybe. In a month or two…

Well, either way, for my own health and sanity and continued productivity, I’m going to be taking this weekend off. As alluded to at the beginning of this post, accumulated stress was really catching up to me this week, and a couple of days were pretty dicey.

So, a couple of days off, then I wrap up the functional component of the particle engine and dive into the editor for it. I’ve been tossing some ideas around in the back of my head, and I think at least the basic place-and drag of different detail types should be reasonably straightforward. Going into the nitty-gritty of specific particle behaviors… will be less straightforward. Still, this feels feasible. Probably, in fact, no more difficult than the entity editor was. Hopefully, I’ll have at least a rough outline of the effects editor for next week’s dev blog post.

Well, that’s all for this week. It was a rough week, but not an unproductive one, and one which leaves me with high hopes for the future, however distant it may yet be. Until next time, then.

pawn

They’re all playing games. It’s the only explanation I can think of.

The way a game is framed, victory is the only thing that matters. Accumulate your resources, destroy your opponents, be the last one standing, survive at any cost. Any sacrifice necessary is worthwhile, if you can win. That’s how the game is played.

When you take that viewpoint, and translate it into the real world, it’s a massacre. Pointless sacrifices made for worthless gains. That’s the world we’re in right now.

Everyone’s playing for a high score, ignoring the fact that the plays they’re making reduce the value of the points they scrape up. Raising money, the abstraction and quantification of a country’s productivity, at the cost of the productivity it’s meant to represent – it’s hard not to smell the doom coming, if you’re paying attention. Capitalism is a kid in a net cafe, thrilled at winning a round of Counterstrike, ignoring the clot that is forming in his thigh, blinding himself to the slow creaking of each victory bringing him closer to a grander and more final defeat..

It’s all about what we’re willing to sacrifice. Our government has proven itself willing to sacrifice our privacy and freedom of press – supposedly to uphold our safety, though, in point of fact, their policy of freewheeling military invention for nebulous causes in distant countries tends to be the genesis of most terrorist activity. Not that it matters, since the police appear to be more than willing to cut out the middle-man and brutalize us directly, so I’m not sure where the safety they’re supposed to be providing even lies any more.

What’s sad isn’t that it’s evil. What’s sad is that it’s stupid. What’s sad is that, if the people who are ruining everything right now sat down and actually thought this shit through instead of playing the game, instead of constantly plotting each move and counter-move, instead of finding the optimal strategy, instead of finding a path to victory, if they thought for just a few minutes about what is actually in their best long-term interests, most of it would stop tomorrow.

I love games, but only when everyone knows that they’re playing. Right now, we’re all just NPCs in their elaborate game of Civilization, of Sim City, of Total War, and beholden to the whims of people trying to achieve victory, whether or not that victory happens to map to any real-world benefit. Some of them ignore this, some of them tell themselves it’s part of a greater good, a battle that must be won, and some of them just don’t care. Very few of them, though, I suspect, realize that they’re sacrificing their own future, along with everyone else’s, just for a slightly better chance of victory, just for a slightly higher score on the leaderboards.

There is no victory, but the players can’t leave. The grand game continues, day by day, and we are crushed under its rules.

attention

The harder I work, the more I feel the lack of impact that work produces. Pushing a boulder up a hill over and over may be pointless, but at least it’s a solid tactile sensation and at least you know basically where the rock is located. Right now it feels more like trying to blow a ping pong ball up a ramp while wearing a blindfold. Maybe I’m doing great. Maybe it rolled away a week ago. Who knows. Nothing to do but keep on blowing – a philosophy which, I gather, has served many people well in advancing in their career, but which nevertheless leaves a bitter taste.

Hard work is wonderful, but the harder you work on something the more disappointing it is when it fails to achieve the results desired. Work attains its own momentum, and the more weight put behind it the bigger the catastrophe when it crashes. Most artists start off with no one caring about their work, and that’s fine, because we all start out kind of sucking, and we aren’t trying as hard as we could be, and really, we’re not in our art, not yet. The more we improve, though, the more we try to express, the more it hurts when few people care what’s expressed (or when we perceive that to be the case, whether justly or not).

I probably sound upset right now, or bitter perhaps. That’s not really the case. I’m just wondering if there’s a kind of artistic saturation point being approached, when there’s just not enough people left to care. A point where, regardless of the merit of any work created, there just isn’t anyone left to give a shit, because all of their attention has been consumed by the work of other artists and by their own labors, hobbies, and artistic pursuits.

I guess this is similar to my post last week. We pretend our capacity for paying attention is an inexhaustible resource, when every single day I feel the exhaustion of it being tapped. Because I feel that way, I can’t blame it when people respond to my work with silence, because I can only assume many of them are as exhausted and overstimulated as I am.

Even if the ocean of audience is shrinking, we teach more artists to art, because love of art is beautiful, and because the love of art leads naturally, in many, to creation of the same. We’re comfortable in cannibalizing our own economy of attention to pass our passion forwards into the future. That which drives us to create strains the visibility of our creations by inspiring more creators to compete.

Maybe someday the world will run out of caring. Maybe someday the fabric will stretch too thin, and rip, and no one will have any time for that which you’ve poured yourself into.

Would it still be worth it? If, not just few people, but no one cared? Could you still create? Or would the difference between the stories you tell and the stories yet untold start to melt away, and you can lay content, each night, enjoying that which you never created, inside your mind, where it’s real enough for you, and good enough to entertain your audience of one?

I don’t know. Me, I might or I might not. It’s something I think about though.

EveHeader

It’s remarkable how much time one can spend on developing a game without getting into any goddamn content. I worry that maybe I’m doing this wrong, but I also kind of don’t think it matters. I’ll get better as I go, even if I end up losing lots of time to working on the wrong stuff. Patience… For now.

So, this week I tidied up the particle effect class to the point where I think it’s more or less done, but as yet remains untested. Before I can test it I need to rip out a bunch of old code for creating and displaying level details, which is a substantial undertaking in its own right, and before I tackle that I’m writing some utility functions to save and load Flash Vector Graphics drawing data to and from XML. As I work, I keep noticing other things in the code base that I should probably fix before beginning real content production…

As well as the state-reversion issue which I noted last week, and which is still outstanding as a task that needs addressing, I’ve realized that my method of saving and loading things like entity and animation data are rather backwards, in that it saves a separate copy for each entity or animation instead of reading them all from a common source. This is a bit inefficient in terms of storage space, but I don’t care about that — the real problem is that this means that if I later decide to update the animation, it will have to be updated for all the instances in which it is used. This is really shitty! This is another problem which I believe had occurred to me before, but I put it off and forgot about it until now, and is a fairly severe one.

Once I finish up the particle stuff and test it out, along with all of the supporting functions I’ve been developing, I’m going to have to go through my code base and revamp the whole thing to handle both the level-reversion issue and the shared-resource issue, now that I’ve identified them. I don’t think either of these are huge problems, in terms of the amount of work that it will take to fix them, but it will be a finicky process that could introduce errors elsewhere, so I definitely want to make sure everything else works before I get into it. Once all that is done, then I can get back into the particle/detail editor, the final outstanding major component to be developed in the game engine.