Archive

Monthly Archives: January 2014

EveHeader

Phew. Okay I’m actually like super tired right now so I’ll try to make this brief.

First thing’s first, sound and music are tested and seem to work! So far at least. There’s obviously a lot of tests I’m going to need to do in the long run in terms of making sure cross-fading from track to track works as the player goes from level to level, making sure all of the sound-effects playing queues I’m going to need are there, making sure continuous looping sound-effects work correctly, and etcetera, but I’ll get to all that as I go. It’s enough for me, for now, that all of the basic framework is in place. The rest will get fixed and polished up as I test it out and notice things that need improvement, probably in a few months.

I’ve also finally gotten started on the entity editor… sort of. It’s an extremely minimal start so far, simply an interface which allows me to click on entities to select them and click and drag to move them around, but it’s a start. I’ll probably be putting a lot more effort into that a bit later this week and in weeks to come.

In point of fact, I actually got totally sidetracked off of the entity editor immediately after starting it. This time I wasn’t sidetracked by a programming task, but by a writing task. In the back story of the game, and I’ve alluded to this in earlier dev blogs, there are a group of, ah, for lack of a better term, let’s call them ‘creator angels’. These entities were made by a deity to essentially handle all of the nitty-gritty detail work of creating functional species. These characters, though many of them won’t actually appear in the game, are extremely important to the story. For the past few days, I’ve been thinking about these creatures: What were their names? What were they like? How many of them were there? I’ve been exploring these ideas, and as I go new aspects of the story are starting to reveal themselves to me as well…

EveLogo2

He wandered the Night Lands alone, and called himself Sol. It’s not known how long he wandered, for time has little meaning in the Night Lands, but it felt like an eternity for him. We call this The First Eternity, the Before Time.

This time came to an end when he found Gaea, and fell in love. He lay down next to her and warmed her, slowly, with his light. They stayed like that for a long time. Gaea began to awaken, she grew green and lush and beautiful, as he knew she would. This was The Second Eternity, the Peace Time. But eventually he grew restless: Gaea was beautiful, but she seemed, somehow, to be incomplete to him. To be not as entirely alive, as restless, as vibrant, as violent, as a world should be.

Sol didn’t know what it was that was missing, but the dreams of what might be haunted him. He dove into those dreams, and took hold of them, and shaped them. He fashioned this piece of The Dream Lands after the most beautiful gardens of Gaea, and he called it Eden. Time didn’t pass here, but for him and for us it was The Third Eternity, The Dream Time.

From the clay of the river of Eden, Sol began to create his children, The Assembly. He liked the number 12, and had decided to create that number, but on the first day, he created Ouroburous. Ouroburous was too great, too smart, and too endlessly hungry to be controlled. She took something from him and flew away into the Night Lands. None know what she took, but we fear the day she might return and we find out. She was not spoken of again, and to this day is not included in numbers of The Assembly.

First of The Assembly, he created Mote. Learning from his mistake, he made her humble, wise, and selfless.

Second of The Assembly, he created Light, flickering and inconsistent and full of joy, though she wandered she would always come back.

Third of The Assembly, he created Halfway, who never made a decision, who always wanted to make both choices, but who understood something about the world none of the others could ever comprehend, no matter how many times they asked her to explain

Fourth of The Assembly, he created Chitter, who made the others uncomfortable with her cold and alien brilliance.

Fifth of The Assembly, he created Slab, who slept all day in the heat, and whose dreams no one could guess at.

Sixth of The Assembly, he created Dominion, haughty, angry, and hungry for power. Too much like Ouroburous, but petty and greedy, she was always jealous of her sisters.

Seventh of The Assembly, he created Aerie. Clever, mischievous, and ambitious, she infuriated her sisters almost as much as she amused them. All heeded her counsel, and she became a leader of sorts among them, though Dominion resented her for it.

Eighth of The Assembly, he created Meekling. Small and afraid but eternally resourceful, few of the others understood how formidable she truly was.

Ninth of The Assembly, he created Tsunami. Vast and absentminded, she felt the pull of The Night Lands, and wished she could abandon her heavy form to go wandering amongst them. It was not to be.

Tenth of The Assembly, he created Pride. Pride wanted nothing more than recognition from her peers, wanted to be the best and brightest, and sought leadership for that reason. Aerie ceded leadership easily, but still advised Pride, and still made all of the decisions.

Eleventh of The Assembly, he created Behemoth. Though she was one of the youngest of The Assembly, she took on a role of protector. Strong and compassionate, she wanted nothing more than to protect her sisters.

Twelfth and last of The Assembly, he created Dawn. She was clever, but withdrawn, and always seemed to be holding onto some kind of secret. Though she never sought leadership, they all listened when she spoke, and when she grew angry, infrequently, they could seldom meet her eyes.

EveLogo1

Advertisements

simpsonscouch

I spend a lot of my time in games. I work in games, I play in games. Sometimes I dream in games. When the energy it would require to actually play feels like too much, I’ll watch someone else play. It’s comforting.

There’s nothing like that with other media: We might get posters of a film to remind us of seeing it, we might post quotations from a book we love, but we don’t take pleasure in observing someone else watch or read. We may be glad that they’re sharing in this thing that we love, and we may value their reactions, but the actual activity of them partaking just isn’t that interesting.

Games provide many things, though, and one of the chief among these is that they create a virtual space to exist in. Even aside from the gameplay content itself, we become accustomed to these spaces, comfortable within them, and we sometimes miss them when we leave. Of course, we can always return, but when we do demands are placed upon us. We must rescue the princess, we must slay the evil king, we must massacre the local wildlife population, whatever. Sometimes we’re just not in the mood. Sometimes we just came for the architecture, the musical accompaniment, the friendly faces. Sometimes we would rather hang out with the hero than be the hero. It’s a lot of pressure, really, heroing.

I watch games even more than I play them these days. I feel the pressures of my own ambitions so acutely that adding play-acted ambitions on top of them sometimes feels like too much for me to handle. The expectations of an unfamiliar world with unfamiliar people, overlaid on top of my own familiar expectations of myself, are overwhelming.

Sometimes you want to be able to be in the kitchen without having to cook. Sometimes you want to be in the field without playing ball. Sometimes it’s nice to be able to spend time in the worlds of these games without having to save them.

This is a bit strange to think about, though, from the perspective of a game’s designer. Of course it’s worthwhile to try to make a game an interesting and engaging aesthetic and narrative space to occupy, but is there a way to continue to provide that passively? Is there any reason to do so, when that effect can also be achieved by watching friends and strangers play through the game? Is it okay that this huge slab of the enjoyment people glean from a game isn’t actually sold with the game and is instead experienced through a secondary source online?

There’s an idea here, waiting. A nascent form of it exists in DOTA2’s tools for viewing replays and live gameplay with commentary, but this is still a comparatively active form of game consumption since it encourages live analysis of gameplay. There are many more ways in which games could enable their audience to consume them passively as well as actively, ways which aren’t being explored at all at the moment… by game developers, that is. The exploration is being done by streaming services, such as twitch.tv, by hardware manufacturers, who seek to integrate these services, and the end-users of both.

Well – should game developers be exploring this? After all, designing a game not to be played goes against what most developers understand a game to be. But it doesn’t have to be one or the other. We can play when we wish to engage, and watch when we wish to observe. All I know is that I see one increasingly popular way in which people use games, and one which the developers of those games are almost completely cut off from, conceptually, financially, and creatively.

There is an opportunity here for someone.

colorwheel

It’s hard to know how much to expose. There is a skill to knowing how much to let through our filter. The truth and character of a piece of writing come from how honestly we express what’s in ourselves – the same way the tooth of paper under drawing pencils becomes a texture full of meaning, the same way hissing reverberations and creaking wood of a grand piano, played between the notes, bring a piece of music into life and give it character. Expose nothing and your words become stiff, artificial, and trivial. Expose everything and they become confessional, gushing, bloody, indulgent.

Even aside from matters of craft, there are bits of our minds that are likely still not ready to meet the light, beliefs and regrets and desires that could cause social or economic or even legal repercussions that we are as yet unprepared to face. It can be difficult to open the gates just a crack – to open them just far enough for the help you need to get through, without allowing them to be forced apart by the hurt you hold inside and voided heedlessly into text. There is a time for writing like that, but for most of us its time is not now, and its place is not to be before an audience.

There is also a skill to knowing which parts of ourselves to let through. A crippling fear of mortality is probably not the best emotion to bring to the table when writing musical numbers for Sesame Street, and an obsessive and perturbing rubber duck fetish likely be a distracting thing to bring up in a story about a boy attending a military funeral. Having a sense for which components of your mind to expose is something developed through practice. We write with shades of ourselves. Experiences, ideas, emotions and memories, these form the palette from which your words are painted onto the page. Knowing which to use is emotional color theory.

Sometimes it isn’t obvious what will work best. Competent writing is achieved by avoiding inconsistency, but to exceed mere competence there must be a bit of dissonance. Without this we’re just making muzak instead of playing music, without this we’re just sketching caricatures instead of drawing characters, without this we’re just burning dough instead of baking bread. Sometimes the hint of death can add something deep and true to light entertainment and elevate it, and sometimes a weird quirk of personality can add humor and humanity to an otherwise crushingly somber story. We shade the dark areas in complementary tones, blue against orange, a skill of artifice which never stops feeling wrong but which looks convincing, real, meaningful, in ways the obvious approach could never achieve.

There’s no way to teach the hard parts, it’s only possible to teach which parts are likely to be hard. There’s no way to find the right touch, the appropriate mix of honesty and artifice, of deep ugly truths and inspirational lies, of deep ugly lies and inspirational truths, beyond experimentation and experience. There is no way to know what you really sound like but to listen to yourself every day.

All you can do is listen, and create.

EveHeader

It’s been a pretty good week. At this point, I’ve got maybe 90% of my total sound code finished. As I wrote about this previously I’d developed a bunch of the foundational classes and I was just about to integrate them into the main game: I ended up basically copying the architecture I developed for playing animations for my Sound playing behavior, which means that it’s now a system every bit as flexible and powerful as the animation system – and, as well, it gave me another opportunity to look over the animation system, and catch a couple of small problems I hadn’t noticed the first time.

After that… actually, I had a really hard time for a while after that. I spent a few days looking at my requirements for a music player system, what kinds of information it would need to have access to in order to do its job. I pondered how to organize it with the same kind of command architecture that the Animation and Sound behaviors used, and frankly I just didn’t get anywhere. In the meanwhile, spurred on by the vague ideas I did have, I developed a couple of utility behaviors, such as a tag system which allowed entities to be labeled. So, for instance, a demon enemy could be tagged with “moving entity”, “enemy”, and “demon”. Entities thus tagged can be quickly retrieved… well, they can be retrieved anyway, I’m not sure how quickly, though I do have some optimization ideas should it turn out to be an issue that they aren’t retrieving quickly enough.

But I digress. The point is that, after a few days of bashing my head on the problem of a music interface, I all but gave up on a single elegant solution and resigned myself to just writing a bunch of custom code for each section of the game. It might be ugly, but it would get the job done. I started working on a simplest-case solution, a basic behavior that would play one track when you walked into an area.

For that to work, I would need an object to handle the music track’s information, so that the music behavior didn’t, for instance, accidentally play multiple instances of the same track. While I was at it, I figured, I should make this music track class able to handle fading the music in and out, so I added a couple of variables to handle that. At that point it occurred to me that if I wanted to be able to sync music tracks up to one another, this was the most logical place to store the information that handled that… and, everything started falling into place, and before I knew it I had made – well, maybe not what I’d wanted all along, but the more reasonable grounded version of it. It wasn’t a one-size-fits all system for handling music playback, but it was a music interface powerful and flexible enough that it should handle most general cases and, when it comes time to inevitably write custom code to handle level-specific interactive music needs, should be easily up to the task.

Up next, it’s time to actually test out all of the classes I’ve been developing. Within a week, barring unexpected circumstances, I should have all of the non-level-specific sound and music code functional.

I’m feeling pretty good about that. Let’s see if I can ride that good feeling long enough to get this entity editor I’ve been avoiding launched off the ground.

Play

The names we give things can be so unexpectedly revealing sometimes.

I saw a play a few days ago. It was a good play, but that’s not relevant. This was the last staging of this show, though, and as someone with a tenuous connection to the production I ended up at the small party afterwards. I didn’t have much to say, but it was interesting hearing actors talk about what made a good performance…

There are different ways of approaching creativity. I tend to pursue the creation of discrete objects, whether they be songs, novels, games, or omelets, and I view every step of the creative process in light of what it produces at the end. You could call this a results-centric approach to creativity. I think that most of the people who find themselves in the field of game development tend to value this approach. There is, though, another approach, one which I think is favored by actors and musicians, which focuses on the process over the results. That is, while the end result is important, the best way to achieve an optimal end result is to be in the moment, to serve only the needs of the performance, to wholly and unreservedly inhabit a role.

What’s peculiar about games is that while they’re almost always the product of a results-oriented approach, they just as frequently incorporate and encourage their audience to engage in process-oriented manner. When you play a game, you inhabit a role – whether it’s a role as a character, as we would in a play, or a role in a team, as we would in a band, or a role in a process, as we would in a job – and by doing so we complete the game.

The game is a system, one which is missing one component to function, and the player provides that component.

Play your part. Play a game. Play a role. Playing is being, is inhabiting a purpose, is serving something greater than oneself. When you play, you serve your team, serve your story, serve your music.

It changes you.

It’s something I had never thought of. Playing a role in an experience is something entirely apart from merely observing it, and it can be far more rewarding, or at least provide rewards not attainable in other ways. We play games in order to inhabit characters who we find interesting and admirable – how is that, beyond the fidelity and mode of the experience, different from acting?

To me, this style of process-focused creativity is a foreign country. It is something completely outside of everything I know and understand about how creativity works, and I find myself both intimidated and intrigued. I think it is a necessary step in my creative development to explore that territory someday, to be in the moment, to cede my pride and serve a role rather than, as I am accustomed, slowly creating a work, like a pearl crafted of a piece of grit in my mind, and presenting it in my own time.

I want to understand.

As I’ve been maintaining this blog, the focus of my posts seem to have shifted a bit. I’ve been drifting further and further away from the study of what games express, how they express it, and the limitations of our approaches to achieving those expressions, and further towards personal diatribes about how I’m feeling at the time or about systemic problems of the world we live in. I have mixed feelings about this: On one side, these recent posts aren’t really what I had intended this blog to be about, and I worry that they may seem uninteresting and self-indulgent to the audience I had originally hoped to hold – and, on the opposing side, I still believe them to be genuine, reasonably well-written and insightful, and of interest to some audience, if not necessarily the one I had originally perceived myself to have.

Reflecting more on these posts, though, I am beginning to see them as a natural progression from where I started. I began by examining the systems we implement in games and how those affect the player experience, how we as players are in turn affected by the systems design decisions of others: Is it at all strange, really, that at some point the posts stopped being about games? That, after a certain point, it became inevitable that I would begin to explore how we design real-world systems to affect others, and how we in turn are affected by those systems?

We are all part of the machine.

But wanting to see the forest is no justification for losing sight of the trees. Wanting to see the ocean is no reason to get carried away by the river. I still care about games – if anything, the realization that exploring games critically has lead me naturally into dissecting other systems, those which oversee and regulate our lives, leaves me more convinced than ever that there is worth in exploring what and how games express. I also have no desire to stop writing about systemic interactions in our waking world and how they affect me and others: Not only are these fun, interesting, and challenging ideas to explore, but, as trite and self-important as it may sound, I believe that doing something, however insignificant, to spread understanding and empathy, may contribute to a better world for everyone.

This is not a dilemma. I will not choose one or the other. I have never been interested in being only one entity, but prefer to shatter, to fall into the cracks like water, to soak into the world bit by bit and find, as I spread out and evaporate, places that no one else has touched. A fork in the road doesn’t mean having to choose between left or right: There is still an infinite set of available paths, radiating out from where you stand, roads waiting to be made and paved. The existing roads are fine, they have their place – but they are only useful for as long as they’re taking you where you want to go.

Therefore: On Monday, I will post these philosophical ramblings, exploring our lives, the systems which contribute to and comprise them, and on Wednesday I will explore games, the miniature sub-lives we craft to explore lives otherwise inaccessible to us. I will walk both paths, and likely many more. I hope we can find something new and something meaningful.

Together.

We are all part of the Problem Machine.

EveHeader

I’m getting really distressed at my overall lack of progress here. I mean, this week is one thing, since I spent much of it deep in the throes of caffeine withdrawal anyway, but it doesn’t seem like I’ve gotten any substantial progress done over the last month or so. There have been minor victories, like putting the finishing touches on the map editor, and incremental progress, as I get the collision detection closer and closer to where I want it to be, but none of the rapid sweeping changes I need to be making if I’m going to finish this project, like, ever. It feels like I fell out of my groove sometime a bit before Christmas and have yet to really settle back into a routine.

Well, I start caffeine again tomorrow. Hopefully that will help.

This week I basically worked on collision code until I was sick of it. After becoming sick of it, and feeling a bit too off my game to tackle the entity editor, I began developing the code for sound effects and music: This is still very much a work in progress, but having worked on it for the past few days I’m starting to get a feel for what I’m going to need to be able to do with my sound code and how to arrange it in order to achieve that.

Over the next week I’m going to finish up the sound components I began working on over the last few days, and then create the actual interfaces between those components and the gameplay code itself. It shouldn’t take too much work, in fact, to make entities emit sounds, with panning and volume appropriate to their position relative to the player character or camera. It shouldn’t even be too tricky to make entities able to play music tracks appropriately, once I lay the groundwork.

After that, I’ll probably be either tackling the entity editor, revising and adding to the set of animations, or polishing up the damn collision detection again, depending on my mood. Or, you know, maybe something else. We’ll see! Whatever I do, I shall do it augmented by a cup of coffee, or strong iced tea, or some kind of ludicrous neon energy drink. It will be fantastic.