Showing posts with label communication. Show all posts
Showing posts with label communication. Show all posts

2011/11/24

The Hug Initiation Protocol


When I read Steve Pavlina's blog post Just Frakkin Hug Me, I was inspired. I like hugs! Why couldn't I just hug people more often instead of being all shy and inhibited?

Well, for one, I'm shy and inhibited. Also, hugs are unusual, at least among guys, and so people might read more into my actions than I really intend. But mostly, I just don't know how to go about it in the first place. How do you give someone a hug, especially if they're not used to it?

So naturally, I did some research, and put together this handy Hug Initiation Protocol that breaks the process down into clear, concrete steps. You might think that this is a bit much, but socially awkward nerds like me need all the help we can get. I'm sure I'm not alone in this. ;) You tell me.

Hug Initiation Protocol

1. Make eye contact with your intended hug recipient.

2. Stand still. Do not rush at your intended hug recipient.

3. Hold your arms out, in front or to the side, palms open and up, in an inviting gesture that clearly signals your intent to hug.

4. Keep a neutral or positive facial expression. Do not scowl at your intended hug recipient, unless you are a little kid who looks particularly cute and huggable while scowling.

5. If your intended hug recipient does not respond, you may either abort your hug attempt or verbally offer a hug in case your intended hug recipient did not recognize your intent to hug.

6. If your intended hug recipient responds by hugging you, then congratulations! You have successfully initiated a hug.

7. Attempt to sustain the hug for at least one full inhalation and exhalation of breath. A quick hug indicates that you are hugging out of a sense of obligation rather than a sincere desire to connect.

8. But if your hug recipient attempts to disengage, you must respond with immediate disengagement as well.

9. While hugging, do not rub or pat your hug recipient on the back. Patting is a sign of insecurity, and rubbing is just awkward. Don't do it.

10. That's it!

Yes, I know I'm silly. :p

Have fun putting it into practice. And I hope you have a happy Thanksgiving today! :)

2010/09/19

How Artists Want to Make Games


On the notgames forum, MichaĆ«l Samyn posted this thread:

Programming in code is counter-productive for people with art-sided brains. The solution to this problem exists: graphical programming. But the people who need to implement this solution happen to be its worst enemies. Because to engineers, code-based programming beats everything.

Until somebody somewhere starts believing artists when they say they want to program in a visual language, or starts realizing that giving access to artists is the best way for a creative technology to continue evolving, I find myself settling with inferior designs. Because I cannot express myself adequately in code, I need to change my ideas, I need to talk about simpler things in a simple way.

It's like someone is forcing me to write poetry in French. French is a great language. And people who are familiar with it can write beautiful poetry. But I speak Dutch. My Dutch poems are subtle and sublime. In French, however, all I can write are nursery rhymes.

So I've been thinking about this a lot over the last several days. Actually I've been obsessively thinking about it non-stop and reading everything I can on related topics online.

I tend to do that for a different thing every week. This week, it's been this.

So there are a few pieces I've been focusing on, that seem most crucial to the success of a programming or game development tool for artists. There are probably others, but I thought I'd share what I've been thinking about so far.

One is readability through R-mode perception.

First of all, a disclaimer: When I say "R-mode" versus "L-mode", as in "Right brain" or "Relational" or "Rtistic" versus "Left brain" or "Logical" or "Linear", I don't mean to suggest that the brain is really divided into strict differences between its physical right and left halves. That is an outdated belief. But I find the terminology to be a useful shorthand.

Thinking on Michael's comments about visual flowcharts being easier for him to read than linguistic code, and looking back on my own experience, I think there really is something significant about how the code is presented and perceived, even when the underlying logic is the same.

When I am reading code (or a book!) I am usually using what I call "L-mode" perception - going through in a linear, linguistic way, and building up my mental model one step, one line of code at a time, following the logic that is expressed symbolically, in sequences like that.

However, sometimes my mind is in an "R-mode" of all-at-once, spatial perception like you'd use for looking at a painting or trying to find a certain LEGO piece in a big box of pieces. When I am in that state of mind, and I look at code (or to a lesser extent, written language) I see all the words at once and perceive the spatial relationships between them, and the underlying logic of the code is utterly incomprehensible to me. Obviously not the "right" way to read code.

But maybe it could be.

Ha, that would be a good tagline. "The right way to code." :P

The thing about R-mode perception is that it's a lot easier to be creative when you're in it. The other thing about R-mode perception is that artists are usually a lot more skilled at functioning in R-mode than they are in L-mode.

Therefore, if you had a tool that let you do programming while in R-mode rather than L-mode, it might be slightly easier to do creative things with it. At the least, there would be less inefficiency caused by switching between R-mode and L-mode whenever you think about what you want to change and then have to dive into the code to actually change it.

However, this may not even be possible.

All the visual programming editors I've seen, all the examples that have been posted here, require an uncomfortable mix of L-mode and R-mode perception in order to use. What I tend to see is a bunch of visually identical boxes connected by lines, and differentiated by text.

What you see in R-mode is the set of relationships between the boxes. But you can't tell what each of the boxes does. To do that, you must read the text and think symbolically, in L-mode. Really, very little information is conveyed through spatial relationships, through R-mode. Most of it is still sequential and symbolic.

For that reason, I find that pure written code, all L-mode, is much easier for me to deal with, since I don't need to switch around multiple times a second just to figure out what everything means. However, I suspect that there may be a way to create a pure R-mode method of programming too. But I'm not confident that it's actually possible. Just intrigued enough to try.

There are some programmers who hate the idea of visual programming, and say that it's a waste of time to use spatial relationships to convey the meaning of code. If you are one of those people and you use syntax coloring or indentation, you are a hypocrite.

So there's one aspect. Make sure your tool is R-mode accessible, if you want artists to be able to use it.

The second thing is building with functional pieces in real (or almost real) time.

Artists tend to appreciate tools where "what you see is what you get" - you're manipulating the end result, so you can immediately see the results of your actions. The process becomes more like sculpting.

Programmers tend to discount such tools as nice but unnecessary. They are used to typing in code for an hour, hitting a button, and waiting a minute for everything to compile and show up on the screen.

These are two fundamentally different mindsets, as different as a slideshow and an animation.

When you operate in the slow, "slideshow" approach, development and creativity tends to happen in an architected, "top-down" way. You have a plan, which is in your head, and then you put in a bunch of time and hard work to mold reality into the shape of that plan.

There is a fundamental shift that occurs as you decrease the time between action and result. It's as real as the shift that occurs when you hit 24 frames per second - from slideshow to animation. To your brain, it's alive, it's moving.

When you operate in the immediate, "animation" way, development tends to operate in a more exploratory, "bottom-up" process. You don't have to have an entire plan in your head. You see the results of your actions immediately, and if they are surprising or unexpected, you can adjust your plan. You can try random things and follow them if they prove to be interesting.

In the area of game design, innovation is much more likely to come out of an exploratory process than an architected one. As Jonathan Blow said earlier. It's hard to do things that haven't been done before if you have to plan it all out in your head first.

So we want a tool that allows us to sculpt the end result, with immediate feedback.

Part of this is that everything you can make should work. It may not work in the way you desire or expect, but it should still do something.

If you are painting with pixels in an art program, no matter how you put those pixels down on the screen, it will always be a functional, viewable image. It might not be pretty, but you can still see it. You are never going to run into a error message that says, "Invalid pixels at position 55, 46. Image cannot be displayed."

But if you are writing the code for a program, this sort of thing happens all the time. Most of the things you can type won't work at all. They won't turn into a program, even a broken one. There are right ways to write code, and wrong ways to write it.

I would say that this also makes a big difference. Perhaps the biggest difference is that writing code has a much higher barrier to entry, more learning how to do things at all before you can start learning how to do them well. But it also makes experimentation so much more difficult. You can't throw a bunch of random stuff together just to see what happens. Because what happens is nothing. It just won't do anything at all.

So if you can build only with pieces that work, and immediately see what changes, this would make truly artistic interactive art much easier to create.

The last thing is expressing general logic through specific examples.

This is probably the most impossible and most revolutionary but least important of the three. If you just had a tool that you'd use in R-mode, that let you shape the end results with immediate feedback, that could be awesome, and probably enough to make a huge difference.

But at the same time I am intrigued by this further vision I have of providing specific examples, which the system will extrapolate to create possible general rules for creating those examples, which you will then provide feedback on and refine in order to guide the system's hypotheses toward the end you have in mind.

Because I don't see how to actually avoid symbols when describing logic, or how to directly manipulate end results in a general way. Because games are systems, and the end results happen when you take the rules that you have set up and run them through their paces.

So maybe this is the only way to achieve those first two goals in their entirety.

What am I talking about?

You know how you draw diagrams and mockups for different things that happen in different situations in a game? Like this. It's a pretty common way to organize your thoughts when you're designing. The thing about those is they're all organized around specific examples, not general rules. So you might draw a diagram with a guy hitting a wall, showing how he bounces off or breaks through it or whatever. It's not completely specific, as you might have an abstract line standing in for any kind of wall, and a stick figure representing any kind of guy, but at the same time it's very concrete. And you can add general connotations by writing in little notes, to explain the rules behind the example more clearly.

The reason that we don't just stop there is that our game development tools require everything to be spelled out exactly - they cannot extrapolate from these examples, because there is so much ambiguity. It could mean this or it could mean that.

However, we run into a similar problem when trying to communicate our ideas to other people who are helping us make them into a reality. Especially if we are designers and we are telling programmers what to do. How do we solve this problem with other people?

Part of this is by clarifying with more examples when an area is unclear. Kind of starting at the highest level and breaking it down into more specific situations when necessary. Another part is through conversation, asking "It sounds like you're describing this... Is that right?" and responding "Yes, exactly!" or "No, I was thinking something more like this..."

Both of these could be accomplished with a special computer program instead of a human programmer. Maybe not as well, especially in terms of accuracy of translation, but in some ways better - particularly, in the time between your description of a design and seeing something on the screen. And this increase in speed could make up for the lack of accuracy, since you can adjust and correct much more quickly. And as a result, make use of exploratory design instead of architecture.

Break dynamics down into stories instead of rules. A playthrough of the entire game could be an example story, and you could create example stories of successively smaller and smaller pieces of the game until you have specified it completely. Or completely enough.

The tool generates possible rules that could create the situations you specify, and presents several for you to try out. Most likely none of them work the way you want. Pick the one that's closest, and let it generate more possibilities based on that. It's an evolutionary search. Like Biomorphs.

And stories don't always have to be specific stories about specific instances. They can be more or less abstract and universal. Like Raven, with a capital "R", who is both the character Raven and all ravens and all tricksters at once. Or the princess in the tower, or the wise old man, or the dragon in the cave. Or the stick figure on the crosswalk sign who represents all pedestrians who could ever walk this way. There is a continuum between the specific and the symbol.

I am particularly inspired by the concept of the Dreamtime. The translation of this name is misleading, as it does not refer to a time in history. It is like a parallel slice of the world running alongside and underneath the specific, physical world, where the gods and heroes walk, creating and personifying the dynamics and processes that underlie everything we see in reality.

I want a tool where I can not only shape the world as a level designer, but also shift into the Dreamtime and shape the dynamics of that world as concretely I would shape the placement of coins and mushrooms.

When this happens, we will get our interactive art.

2009/09/28

Communicating with Prototypes

For the last month, as I've detailed on this blog, I've been working on a project with the artist brontosaurus.

Both of us are very new at this whole indie game development thing, and we have made plenty of mistakes. And we will make plenty more. But we are learning.

I thought I'd share some of our latest mistakes, and what we've learned from them.

First of all, we've switched game ideas almost every week for the past several weeks. This in itself is not the problem. We change direction because we find problems with our old ideas that prompt us to start anew.

Here's a quick overview of the journey our ideas have taken:

We started with a game based on this picture.

Then we switched over to procedural aliens.

But we couldn't turn it into a game.
We tried to find a game here.

Then we decided to simplify.
We thought climbing would be easier.

But we couldn't make it fun.
So we switched over to suburbia.

And now, we're still in suburbia, but reconsidering.

Why have we had to switch ideas so frequently? What mistakes made it so difficult for us to just stick to one idea and finish it?

It has been a progression of mistakes. We started off trying to randomly doodle a game into a existence. Then we realized that we need to start with actions and gameplay before we start doodling interesting worlds and characters.

Now I'm beginning to see that our process for coming up with gameplay has been flawed.

My specialty is in game design, and programming. I choose to work with brontosaurus because his skills complement mine - his specialty is in world design, and art.

The way it usually works is that someone like me comes up with an idea for a game, and then finds an artist who is interested in making the art for that game idea. But we did it differently. Since I didn't have a particular idea in mind, and I like talking with brontosaurus about game design, we thought we'd just come up with an idea together.

This was not our mistake. The problem started because we were both communicating our ideas in words.

When I try to explain a game idea to brontosaurus, he has trouble understanding how it would look or feel. But the ideas I come up with usually have interesting game mechanics that I could prototype.

When brontosaurus explains a game idea to me, it's always very evocative and visually interesting, and he's ready to create all sorts of cool concept art for it. But I have no idea how to start prototyping it, since the mechanics are too vague.

Because I've been impatient to agree on an idea and get going, I always go with the ideas that brontosaurus comes up with, even though I don't know what the gameplay will look like. But sooner or later the vagueness of the design catches up to us, and we reluctantly decide to come up with a new, more feasible game idea. This is how the cycle continues.

Brainstorming may be fine in text. But when it comes to choosing ideas to work on, it's not really fair to evaluate our ideas until we have experienced them in either a visual or procedural form. I will express my ideas through prototypes, and brontosaurus will express his ideas through concept art.

If my prototypes inspire brontosaurus to come up with a world and an art style, then we can make them into full games. If brontosaurus' concept art inspires me to invent mechanics and gameplay, then we can turn those into games, too. But our starting point must be tangible. Words are not enough.

Let the game designers come up with gameplay, in the form of prototypes. Let the world designers come up with worlds, in the form of concept art. Don't force one to do the other's job.

It may take longer at first, but it's the only way we'll make something that we're both satisfied with.

Let's hope it will work in time for the contest. ;)

Update:
In other words, Less Talk More Rock.

2009/08/06

Zero Punctuation Interactive

I've been watching Zero Punctuation reviews. What are those? "A short experimental film in which I attempt to make a video using only recorded speech and static images." Like this.

I saw that a Zero Punctuation contest has been announced, with really poor terms - basically, they own everything you submit, and you get nothing, except maybe some publicity, if you happen to be the one winner.

However, I am inexplicably intrigued by Zero Punctuation, and would really like to come up with a way to combine its "static images" and "recorded speech" in an interactive format. Like a game. Recorded speech wouldn't make sense directly in a game, but the still images, as conceptual, pictographic communication kind of like comics, could have a lot of interesting potential.

I just don't know how. A game where you compose images for a review? A game where you are a character inside a review? How do you translate the experience from the linear format into something interactive? Magic crayons? Miniature gardens?

The recorded speech is what you create in your head, your train of thought, while interacting with the static images. Static images are to animation as what is to games? Animation is essentially many still images strung together in sequence, but Zero Punctuation slows it way down, down to the bare minimum. Hmm.

You put those images together in space, rather than time, and you have comics. Instead of recorded speech, you have text. But you also have the reader's mind filling in the gaps. You have the viewer filling in the gaps in Zero Punctuation, too. And the way the images play off the speech, and the way the mind bounces between them gives it a certain flavor that is very interesting. How do you describe that dynamic? How do you recreate it in a game?

Back to animation and static images. What are games made of, if animations are made of static images? Choices? "A series of interesting choices." But what happens if you slow those down - are we back to text adventures here? Whatever happened to information density?

But in Zero Punctuation, it's all about the timing. Comedy is about timing, animation is about timing, and Zero Punctuation is about comedy. The images in Zero Punctuation aren't slower versions of normal animations - in fact, they feel faster. They cut out the slow stuff, the stuff that makes things feel detailed and coherent, and it still feels good. It feels unique, it has its own style.

It suggests, connotes, implies detail like digital speedpainting. It does not elaborate. What is the equivalent for games? In terms of pace I'm thinking WarioWare or any number of Flash clones. But what would it look like to have these compressed choices, only the important or amusing stuff, maybe random and incoherent, but always contributing to the pace and feel if not the plot or the main goal?

What would it look like? How could you make a game like that?

2009/06/07

Twitter is Good for You

And it might be good for me too.

I just read an article in Time magazine about Twitter and how it is becoming the next big thing, the next big platform for information on the web, on par with Facebook or even Google. Naturally, I had to give it a try and see what the hype is all about.

And here I am. I also added a little feed on the side here with my latest tweets. Nifty.

So what's the big deal? Well, according to Steven Johnson, the new way of sharing and filtering information made possible by Twitter, with its networks of followers and tiny status updates, is transforming a number of important information channels:

News and Opinion
  • The links passed by people on Twitter function as a sort of customized newspaper. News we read may be more diverse, but also more insulated.
Searching
  • Finding info through your network on Twitter will be an alternative to Google. Instead of a generic PageRank guiding our search, we have direct recommendations from friends.
Advertising
  • Businesses will be highly motivated to attract Twitter followers. This necessitates a new form of customer interaction, to keep people following the feed.
I've found a few other articles along similar lines. This one had some interesting points to make. Even more intriguing is this article on bit.ly, one of the link shorteners often seen on Twitter. Just like Twitter could be the next Google, bit.ly or one of its competitors could be the next Digg. It all seems to point to "the complete disaggregation of the web in parallel with the slow decline of the destination web."

It's enough for me to get an account and try it out for myself. So far it's been pretty fun. :) I'm eager to really get into this and hone my tweeting skills.

What makes me really excited about Twitter is that I think it could really fit into my process, better than blogging, even. See, I have several layers through which I filter and organize my thoughts. At the most immediate level is my notebook, which I started a couple months ago at the prompting of this blog post. There I write thoughts, lists, notes, ideas, and basically anything that I want to remember later or get down on paper, and it has been very helpful. It's like freewriting, except for life instead of, well, writing.

The next level is my idea notebook, which I write in every day, choosing one or two worthwhile ideas or observations to explain more fully. And my retroactive planner, in which I summarize the events of the day in order to reflect and realize how much time I wasted doing unimportant things.

And after that is my blog, this thing you're reading. I use this blog to finalize my thoughts, to make them public and therefore solid and defined. The problem is that it usually takes me multiple hours to craft a decent post, and I can go for weeks without finding the time to do so. Even now I've had one post sitting around, unfinished, for almost three weeks and I'm still not sure when I'll be done with it.

So to me, Twitter looks like a good intermediary step between my rough notebook and my idea notebook. I can write more or less the same sort of thoughts I would record in my notebook, but with a bit more attention paid to clarity of expression and relevance to other people. And it's so much easier for me to write these short little tweets than it is to write these excruciatingly long blog posts.

Hope you like tweets. You'll probably be seeing a lot more of them!

And look, I've already found some cool stuff through Twitter. Here's a fascinating interview with Jenova Chen, where he really goes into detail on what he wants to do with games. We're getting there! :) Social play, emotion, thoughtful fun - these are all new areas to explore. I can hardly wait to get going.

2005/11/22

Wittgenstein and Language

Commentary on Wittgenstein's Philosophical Investigations
First off, I find Wittgenstein's use of multiple voices easy to read because I myself use multiple voices all the time when I am thinking. I may think a thought, then respond to it from another perspective. It is like hearing two people talk, except you identify as both of them at the same time. And that is what passes for my stream of consciousness. Actually, I do have voices that I consider to be myself, and those which I consider to be my impressions of other people. And of course not all my thought is verbal!

Wittgenstein seemed to be saying that language (and by extension, logic and thought) are all very relative. The meaning of language depends on the context. There always must be a context. For example, wondering what the parts are of some object only makes sense if you have some context within which to ask the question. The fundamental parts of, say, a tree, are different depending on what kind of answer you want. You might say that the basic parts are the branches, or maybe the cells, or the atoms that constitute the tree. Another situation where meaning depends on context is in the case of metaphors and words with multiple meanings. You can only know what the word refers to from the context. There is not a special essence for each word to refer to. So there is no perfectly exact language which is free from the necessity of an arbitrary environment to give it meaning.

The implication of this is that language is not so special as is commonly believed. Language can not be understood as a perfectly exact mathematical manipulation of symbols. Instead it is rather chaotically interpreted based on preconceptions and context, obeying no particular law. In this way it is similar to the other activities of the brain - chaotic and messy, but also creative. Another interesting point is that the brain can learn a language without having any prior understanding of it. What Wittgenstein tries to show in the beginning of his Philosophical Investigations is that it is not possible to explain in a purely algorithmic way how language is learned. Discussing language requires understanding of self-organizing and evolving systems, and not of sequential, logical systems. So then language becomes not the vehicle for an ultimate truth, or something with which to distinguish between rational and irrational beings, but just another technique of evolutionary systems. Language has a role to play, but it does not live separately from a natural understanding of the world.

2005/10/10

Reaction to Google Bomb Paper

Deconstructing Google Bombs
Google bombing is a cool idea that I would like to try once I think of a worthy subject. But the purpose of this paper is to determine whether Google bombing can be considered a "social movement." Apparently some cases are social movements, but some are not. The miserable failure Google bomb is not a social movement because it arose from a general dissatisfaction and not specifically to put Bush's biography at the top of a search for "miserable failure." But the Jew Google bomb was specifically organized in response to the appearance of an anti-Semitic website as the first result of a search for "Jew." I'm not sure if the distinction is so clear-cut though. Is "miserable failure" not a social movement because it reflects an existing state of mind, while "Jew" is because it was a new creation?

The issue of who controls media and reality reminded me of The Third Wave, a book which predicts and describes the fall of industrial society and the rise of a new, decentralized society. One interesting topic in the book is the distinction between producer and consumer that industrialism created, which the third wave is supposed to reunite. The Internet is part of that change. Instead of monolithic television stations controlling our representations of reality, media is splitting up into a more democratic form.

Blogs are a relatively new way to bring production back to the people. And Google bombing is a way for groups of loosely connected people to influence the Internet's equivalent of monolithic media producers. That's not necessarily a bad thing. The danger lies in tipping the balance too far from conformity to the side of diversity, where search engines are no longer trusted to provide objective results. Google bombing is an agent of diversity because it increases the number of viewpoints in what makes an objective result. When Google is upholding the objectivity of their search, this underlying conformity enhances the effectiveness of communication; it is a common language. Hopefully Google will remain balanced.

A similar concept is Douglas Adams' idea about communication and the fourth "age of sand" from his speech Is there an Artificial God? There is the conversational one-to-one communication, the hierarchical one-to-many, the democratic many-to-one, and finally the chaotic many-to-many. This many-to-many flavor of communication is now being made possible on a large scale by the Internet. We are still dominated by an industrial one-to-many format by newspapers, television and public education. This separation of production and consumption is unhealthy and stressful. We can't easily do much about the disasters we hear about or the policies of our centralized government. Fixing this problem is the promise of the third wave and the fourth age of sand.