Thursday, April 09, 2009

Busy With Little Sisters

It's been a while. Haven't had spare time to forge a complete thought in the past several weeks due to a couple of factors.

Deadlines at work.

My son has a new little sister (see what I did there? ehhh?) who loathes sleep and the sanity that it breeds.

Things should level out soon, and maybe I'll be able to return to my only moderately sporadic schedule.

Tuesday, February 03, 2009

Lessons From Other Media

I've found that if I give myself time to percolate an idea, it never ends up getting posted. So here's something I started writing about the games and art thing, more focused on what we can learn about formal design elements than debating what art is or isn't. I think it comes off a bit snotty in places, so be warned. I'll probably continue this as a series exploring some parallels between different media as I come across them.

After a few years majoring in fine art in college and a few years as a game designer, my definition of art is as follows:

An idea intentionally expressed through a medium.

There. Pretty simple.

This, of course, includes games. I don't think I have to convince you, if you're reading this, that our medium is a valid form of artistic expression. You get it, and if not I'm probably not going to convince you here. The whole what is/isn't art conversation has served as pretentious lip fodder at parties well before video games came around anyway, and what interests me as a designer is what makes good art.

There are good and bad examples to be seen in every medium, from Mozart to the latest corporate spawned pop drivel, from Kandinsky to Kinkade. What separates the chaff from the wheat is the potency (and honesty) of the message combined with the skillful use of formal elements. These formal elements, like visual design principles or the interactions of game mechanics, act as amplifiers that can make the message speak louder. If they are used improperly, however, they can drown the message in white noise or negate it entirely (hello, dissonance). In some cases, this can be a fairly one sided equation. The message can be so powerful that little executive finesse is required for it to speak to an audience. On the flip-side some purely concrete works (Mondrian, Tetris) stand solely on their formal merits, where their messages are a sort of meta-expression about themselves and nothing more.


I think some tried and true lessons from the visual medium could offer us some insight in the interactive field. Let's take something like Munch's The Scream as an example.



Ripped straight from Wikipedia, Munch's inspiration for the painting:

"I was walking along a path with two friends—the sun was setting—suddenly the sky turned blood red—I paused, feeling exhausted, and leaned on the fence—there was blood and tongues of fire above the blue-black fjord and the city—my friends walked on, and I stood there trembling with anxiety—and I sensed an infinite scream passing through nature."

The article then goes on to postulate what could have made the sky red, or whether or not Munch was being literal or expressive, etc. I think this might be useful for an academic studying some sort of contextual or historical positioning of the work, but for the end user, the observer, all of this is useless. You can't expect deep resonance from a work that relies on someone standing in front of it to explain each brushstroke. The aesthetic message has to hit the viewer through the power of the image. That's why it's a painting and not a novella.

When the viewer first looks at The Scream he gets that message immediately, like a shotgun blast. Munch achieves this with several tools. The first couple of things are sort of narrative, contextual supports.

Title
First, the name itself sets up a preconceived expectation in the viewer. This seems like a pretty obvious concept, but I think it's worth noting just to be thorough. When someone says, "Let's go look at 'The Scream'", you psychologically set yourself up for something nerve wracking. The same thing goes for an interactive experience. If a game is called "Blood Dungeon" and you start out in a field full of bunnies, you're going to constantly be expecting things to go to hell at some point. This can be used to reinforce a mood or establish it prior to the user's exposure. Alternately this can be used to put the user on uneven footing by giving vague or contrary information. Part of using a formal system is knowing when to subvert it.

Subject Matter
Next is the subject matter. Again, this is narrative and contextual and not necessarily a formal element. Formality vs narrative has been a prevalent issue in fine art just as much as it has in games. Personally, I don't see the story versus gameplay debate as a rift between opposing factions as much as ludo-narrative axes that can be expressed orthogonally. In the case of The Scream, the screaming person in the foreground can't be ignored as an agent of emotional impact, a conduit of the message.

Now on to the formal elements, the properties of the work that are native to the medium.

Nervous Marks
The very nature of the gestural marks in the work depicts a nervous sense of motion, vibration almost. You can feel the artist's hand as he put down the marks with his brush. The whole thing is organic and undulating with few spaces for the eye to rest calmly. If you look at the bridge, however, you'll find more stable linear elements, but these serve mainly to make the wavy marks look even more wavy in contrast. Pushing agents like this can accentuate the qualities of contrasting elements if they're used in the right proportions.

Distortions
The figures and palette of this piece aren't very naturalistic at all. The people are recognizable enough to sort of resonate with your empathic core, but are distorted to create a great sense of unease. The contortions look terribly uncomfortable, and part of us can empathize and feel that discomfort as well. The palette is a departure from reality as well, with the reddish orange color taking a prominent role. This is not just an unusual color for the sky, but a very aggressive color as well. Add in the blues and greenish hues and more vibration is added through simultaneous contrast.

In games we have complete control over the laws of nature. If we want to empower the player, we can make him jump yards into the air or run 100 miles an hour. If we want to invoke helplessness we can slow him to a crawl or make him fragile. We are, after all, giving simulations opinions here, so our every physical formula is an expression on how we want our micro worlds to be.

Graphic Elements
By graphic I'm referring to flat 2d elements, not images on a screen In addition to the emotionally charged elements, there are forces at work to ensure the work remains graphic, flat, embedded in the picture plane. The background is a warmer color, so it advances, negating depth. The whole thing is permeated by a reddish ground color, which holds it all together. There's no modeling of shadow or highlight throughout the work. The perspective lines also fall along structural format lines, rooting them more in the 2d plane than a depiction of 3d space.

For a 2d work to effectively engage a viewer, it has to play to its strengths, the 2d plane. Graphic elements like I mentioned above can reinforce the 2d nature of a work and cause the viewer to engage it as shapes on a plane rather than illustrative simulacra. Linear perspective is an artificial system that is used to evoke space, but the sight lines can be combined with structural lines or subverted in other image-serving ways to negate space while still sort of 'referring to' it. Kind of having your cake and eating it too, but it's all a matter of knowing the rules and how to bend them.


Chuck Close: Abstract Artist

I believe this and other photo-realistic attempts at art correspond pretty closely to the holy grail of simulatory verisimilitude in games. Even at the highest fidelity of rendering, a 2d work is still abstract. The image is flat while the subject matter is three dimensional. The palette won't be 100% accurate. If you magnify the work, you won't be able to see cells, molecules, etc. Yes, this is a bit obvious but the point is that you have to stop somewhere in your depiction of reality, and that's where the designer's voice can be found. I think that you can give the player the feeling of depth and choice without trying to turn the map into the territory.



That's a rough pass on some of my thoughts about art and the interactive medium. As usual, I don't think I'm handing down some sort of gospel as much as opening a dialogue and presenting ideas to be refined through feedback. There aren't really any specific game examples in this installment, but I might revisit the concept with some examples from the interactive side of things. This might just end up being a rehash of the MDA framework with some visual art parallels, however.

Labels: ,

Sunday, January 25, 2009

Terrain Test: Part 2

I've been thinking about rivers lately. Namely, how do I generate them? My first pass is complete garbage. It's a start, however, and I have some ideas of where to go from here.
My current iteration picks random points in the terrain, places a water 'tile' there, then picks a random lower point adjacent and continues the river flow from there. There's some buffer that allows the river to go uphill a little in case of flat ground and bumps in the way. I also added a floodfill for lakes when the river has nowhere else to flow.



What I get is a jittery mess, followed by bodies of water that are either microscopic or end up filling the entire terrain.

What I'm looking for is something more like this.



Aside from fluviation indentations in the terrain that I'm going to eventually have to deal with, I think it might be useful to try a smoothed 'wander' sort of steering like implemented here: http://www.red3d.com/cwr/steer/Wander.html
The river will probably have a power setting on a per cell basis that will determine how it can overcome bumps in the terrain (smoothing them in the process) as well as dictate turn radius.

I'm still turning around some chicken/egg issues with this and other procedural features that I want to include, form following function or vice versa. Some algorithms involve rivers starting in bodies of water and creeping their way towards peaks, for instance, branching on their ascent. A lot of this will have to be looked at in terms of making the most interesting worlds possible as opposed to retaining ultimate simulational fidelity.

Labels: , ,

Thursday, January 22, 2009

Cog Part 2: Tilemap LOD prototype

Here's some brief footage of the first pass on an LOD based arbitrary scale tilemap engine. It only supports 4 zoom levels right now, since everything is being generated and stored in memory at once (resulting in a 2048x2048 tilemap, in addition to the lower size maps). Next step is making a file structure I can write/read as well as code to selectively load from that file based off of current LOD, position. Another thing I have to tackle is relative positioning and scale to keep the translation values from getting too large over the course of scaling up and down in the game.

After that I plan on making a tilemap editor that supports scaling up and down as well as loading images for tilemaps and getting something very basic in place to view in the zooming around app.


video

And I'm just now noticing how crappy the compression on the video is. Maybe I'll Vimeo or Youtube this later this evening.

Saturday, January 17, 2009

Terrain Test 1

While I've surfaced briefly, a quick blurb on another side project I've been chipping away at when given windows of opportunity. Can't really say a lot about it yet aside from the fact that it's going to involve procedural world creation. As such, here's an early prototype screenshot, showing random heightmap generation (roughly color coded) plus crude river and lake propagation.



I'm not even sure if the end result worlds are going to be as granular as this. One project I did back in college was a mix between designed and random worlds. I made a few hundred authored 'tiles', somewhat like the screens in Zelda. Each edge followed one of 8 templates, with the middles being fair game.


The tiles were then randomly drawn and assembled, Carcassonne style.



There is the potential in this project for multiplayer and world ownership, which might make designed elements like these look contrived and repetitive, as several people might have the "lake surrounded by 3 boulders" world tile.

More to come, perhaps with a proper project title.

Labels: , ,

Identity: Introduction

Here's a first draft design doc of something that came to me on the commute home tonight. I think I'll probably prototype this over a few lunches next week and see what develops.

Premise
We all have several different faces that we wear when interacting with people. Family, friends, spouses, co-workers, etc. This idea involves mechanics that allow the player to shift identities in the presence of different people through the metaphor of color. Analogous colors will work well together while complementary colors will clash. Each session will take only a few minutes, and at the end the player can see how many friends were made and how much integrity he retained.

Interface
My first thoughts are using 2d and a dual stick controller since I'll probably be mocking this up in XNA. Left stick moves while the right stick will change color. I think that mechanic is going to need instant fine tuned access, so an analogue stick would work well for this. The stick will access a radial menu around the character, perhaps requiring a button press for confirmation. I want to involve the triggers as well to set some sort of intensity or radius for the color being exhibited. It'll take some prototyping to work out.

Colors
As mentioned above, the player can change colors to represent a different personality facet he's exposing. I might include the triggers to slide the value up and down to sort of represent the introvert/extrovert continuum or chroma/purity of the facet being displayed. Closer to grey in this case means sort of wishy washy. You can play it safe and stay near grey, and everyone will sort of tolerate you, but you'll never make any true friends.

Staying close to someone with a similar color will raise their opinion of you. A high enough opinion might result in them following you around more, making it tricky to befriend people of opposite colors. If you're dragging along a deeply green friend and try to chat up the red guy, you'll either piss off the green friend by shifting to red, or go middle of the road and sort of bore them both. I'm not certain if I want to deal with interactions between the NPCs themselves.

Letters
The entire cast of characters should fit within an alphabet of letters. This allows them to be iconic and abstract, but still memorable. The player will easily be able to remember "I really pissed A off this time, while G became my best friend." Full names aren't abstract enough and edge in on a simulation threshold I don't want to cross. Unmarked shapes, however, won't allow the player to track progress as easily or project personalities and relationships into the 'NPCs'.

Each character will be a colored circle with a letter in the center. The color will represent the personality type you have to match. There will be some indicator as to the character's attitude towards the player. It might be represented in the letter on a monochrome white to black scale.

Gifts
Some letters will bear gifts like love and wealth. If the player wins them over through repeat interaction with a similar enough color, he will gain the gift from that character. Wealth accumulates in one large pile. Love could either be tallied by the number of characters that have given the gift, or it could be tracked on a per character basis as something that can be gained and lost. There may or may not be different ways these are obtained from a character.

Timeline
The timeline will direct the pace of the game. It simulates a lifetime of interacting with people. Events on the line will pass by (probably at the top of the screen, as different shapes on a line or something) and change the mix of NPCs on the screen. Big events (birthdays, funerals?) will have a larger variety of people, while everyday occurrences like school and work will offer the player repeat opportunities with the same smaller group of characters. Funerals and the ebbing of life might be a cool thing to look into as well, having letters fade away after a time, as long as it doesn't detract from the core message of the game.

Goal/Endgame
I don't think this is going to be a win/lose sort of experience. There will be trackable metrics that accumulate at the end. The player can amass love and wealth. The player will also have a color at the end that will vary in hue, chroma and value. Each of these axes will tell part of the story of how that player approached things. Once the player has checked it out a couple of times, he can set his own goals and see if he can achieve them, maybe learning a thing or two along the way about the mechanics, and by proxy his own approach to interfacing with human beings. That's a pretty lofty goal, however.

So that's the first pass. Some of the moment to moment stuff is a bit vague, but I think there are ingredients in there for an interesting experience. Posts to follow as prototyping commences.

Labels: , ,

Friday, August 22, 2008

Conversation RPG: Part 2

[part 1]

Following part 1 of this topic, a little more detail on the mechanics of conversationm, etc. I'm thinking more about integrating this mechanic into a larger game where communication is pivotal, but also a means to an end so the player has goals driving the conversations in addition to 'sandboxy' relationship building. Ultimately I want to simulate the feel of conversation without the specific details that would have to be written in natural language by someone then heuristically analyzed to make sense in the right contexts, otherwise (and probably regardless) resulting in often awkward and immersion breaking Frankenstein sentences.

Topics
Conversations will center around "topics". Pretty self-explanatory, a topic is what the conversation is about. This can be a person, place, thing etc. and the player and other NPCs will accumulate a wide variety of these over the course of the game. The idea is to provide a large variety of these to increase communication granularity while keeping them easy to organize and manage for the player. The first thing that comes to mind is categories. This will probably be a primarily meta structure only used by the player for organizational purposes rather than having much impact on the system itself. More exploration into that later.The following are the categories I've come up with. I think most conversation topics can fall into one of these groups pretty cleanly. These are pretty simple concepts and, as such, could be represented well by some iconic language for easy menu navigation.

  • Current events
    • news at varying geographic scales
    • "the weather"
  • People
    • family and friends
    • celebrities (ok, maybe not so "clean" as this could fall under entertainment below)
  • Entertainment
    • sports
    • media (music, movies and TV, games)
  • Specialties
    • jobs
    • hobbies

"Global" and "Local" could easily be modifiers for each category as well for more generic or more specific conversations. (e.g. Global weather could be about a hurricane in the Gulf of Mexico while Local weather could be about how windy it is today)

Emotes
I haven't really put much thought into the role of emotes in this system. I realize there are probably a lot of parallels between what I'm pieceing together and Crawford's work on Storytron, but I don't know if including "hit [a lot]" or "flirt [minimal]" is necessarily how I want to handle it. That might even be a different parallel system, or out of the scope of this entirely. Not sure yet.

Anatomy of a Topic
A topic itself comes with several subcomponents pertaining to the speaker as well as the subject.
  • Topic content
    The actual meat of the topic. What it's about. This can be nouns like people and places as well as verbs like events that occurred.
    • Associated topics
      These are the topics intrinsically tied to the main topic. If the main topic is an event, the sub topic could be the people that were involved or the place where it happened.
  • Emotion
    This is the character's current emotional attitude towards the topic. This could get to be complicated, but it will provide the context for discussion of one topic between 2 people. It's the opinion that can cause arguments or form bonds of common interest.
  • Passion level
    This is how strongly the character feels about the topic. The stronger they feel, the more fiercely they'll discuss a topic and the harder they'll be to sway to a different emotional stance.
  • Knowledge level
    This is how much knowledge of the topic the character has. This can be used to inform others as well as perhaps aid in leading discussions or defending with logical arguments.
Knowledge and passion sort of counter one another. If someone passionate but woefully misinformed tries to argue a point to someone of a different opinion who's much more knowledgeable, the former could potentially be converted in his opinion. If his passion is too high, though, he might not listen to reason. Knowledge levels could also tie into other aspects of gameplay where the character has to accomplish some task that requires a certain level of information. I want to explore this dichotomy more and see other mechanical ways these two could interact.

Intent
Another facet in the presentation of a topic by a character is the intent. This is the micro-goal of the current conversation. This can probably change from moment to moment, but each exchange will have a purpose to serve as a catalyst for progression. A person with more knowledge in a topic could use "Inform" with that topic to increase another person's knowledge of it. Declarations could be simple statements of one's stance on a topic emotionally or knowledge-wise.

Some potential exchange intent ideas:
  • Persuasion
  • Inquiry
  • Declaration
  • Informing
  • Interruption (? might just be a side effect of changing topics jarringly)

The next step will be discussing the game idea I'm thinking of including this in, as well as more practical implementation ideas with interface and everything. Maybe there will be more pictures to look at as well.

Coming up
  • AI and topic usage/interpretation
  • Emotional baggage
  • Creating and obtaining topics
  • Interface
  • types of conversations (arguments & debates, etc)
  • Character memory
  • Probably more thought on emotes

Labels: , ,

Friday, August 15, 2008

Link Relay: Narrative and Interactivity

Interesting trio of articles on narrative in games that all reference one another. Mostly linking these here so I remember to read them all the way through at some point soon.

Brainy Gamer: Narrative Manifesto
Vorpal Bunny Ranch: Choose your own Lover
Artful Gamer: Narratives and Interactivity Still Misunderstood

Labels: ,

Introduction to The Ferry: Short but Deep Webs of Causality

Summary
The Ferry is a brief but deep game of narrative exploration. The idea sprang up while I was playing Indigo Prophecy and I mentioned some of its founding observations in an earlier article on replayability. The space and time are both highly constrained. The setting is a ferry ride, probably across the English Channel or some other body of water large enough to support a ferry with the features I want to include. The player will be able to take on the roles of many of the passengers of the ship, each with their own goals and aspirations, each with their own impact on the events that unfold over the course of the trip.


Mission Statement

The idea behind this experiment is the exposure of gameplay depth through replayability. The time and space are restricted for two reasons. First, the constraints make it easier to develop the assets needed for all of the varying interactions and narrative options the player can explore through gameplay. The second reason for the constraint (in time, mostly) is to allow the player to quickly retread the story, taking different routes to see his impact on the narrative. This is further extrapolated by allowing the control of different characters throughout the course of play.

Multiple Personalities

Having the player inhabit multiple avatars that can coexist in a looping timeframe poses interesting design possibilities. The path I'd like to explore in The Ferry would have the player's actions 'baked' into the characters, so they behave as he did when the player takes on the role of a different character. If the player takes control of the Ship's Steward and walks from the bridge to the galley then to the garage, when he plays the second time as the Gilted Lover, he can watch the Steward travel to those places in that order, interacting with the world in whatever ways the player did.

Non-Linear Time
To accommodate the organization of different characters and the flow of time, there will be a track editor similar to non-linear video editing and animation packages. Each character will have its own track on the timeline. The timeline will be divided into 5 minute chunks. The player can jump to any 5 minute segment in control of any character he's unlocked thus far. As soon as he interacts with a character he previously controlled and disrupts its path from the way he controlled it that timeline will become locked from that point onward, with the color of the timeline reflecting this 'invalidated' state. The AI will take over from the point of invalidation, ideally trying to approximate the intentions of the player when he was in control (tech permitting).


Narrative Trajectories
The impact each character's storyline has on the others could be viewed sort of like the interactions in a particle collider. Each track intersects, and then multiple possibilities for each party involved scatter outward from the intersection. The more parties involved, the bigger the collision. The trick here is managing the outcomes in the pre-production phase by developing systems that are granular enough and potentially procedurally adaptive to accommodate the possibilities. That or examine the interactions and cull them based off of the ones with more fallout to manage than others.

Standard branching path through a narrative possibility space. NPCs have deterministic responses to player actions. Player's actions can have future repercussions, affecting choices as well as simply altering play. The meta bubbles here are pretty arbitrary scalewise and can represent anything from encounters to 'levels' to entire games in a series.

In the trajectory collision model, the inputs to an interaction can come from several directions since the actors involved can have player motivations. The outcomes for actors, likewise are non-deterministic since it can be up to the player to choose how to respond in the various roles involved. This could get quite hairy, even in the proposed limited scope of half an hour aboard a ship. I was working on a bubble-chamber like diagram for this, but it quickly got out of hand. Maybe that's telling me something...

First Steps
Aside from general brainstorming systems and spaces, the next step I plan to take is putting together a paper prototype. This will probably be nothing more than an RPG session in a fairly generic system (GURPS, bare d20). I'll throw in some of the roles I want to see included in the scenario, let people choose the characters, give them their 'motivation' and see what happens. The info from this will inform future decisions about just what affordances I want to give to players in this environment as well as if story ingredients are interesting and have flexible potential. I probably won't even include a map, but see what kind of environments the players expect and assume the boat will have.




Coming Next
  • Verbs
    What does the player do, exactly?
  • AI Considerations
    How to NPC characters react to input and alter behavior based on prior player input based on new stimuli? How can procedural behavior systems mitigate complexity?
  • Interface
    More on the track view and how the player will be expected to navigate the space-time bubble.
  • Motivations
    The character motivation system and tools for the player to decide how the character feels about others. Based on ideas from an earlier post.

Labels: ,