Thursday, July 17, 2008

reflection on a couple things Google

1) Google Lively

Soo Been, my roommate from VT, told me about this when it launched, and I just got around to checking it out yesterday. Pretty much, it's avatar based chat. You have an avatar that you design, and then you choose rooms to go into--but they're like real rooms. They look dimensional. You can walk in them, put furniture in them, sit on the chairs. When you type, text bubbles come above your head. It grabs words out of your text to show your character's emotion (type ROFL sometime, you'll see what I mean). You can also choose to interact with other characters with actions and not only words: right click and you can kiss, kick, slap, dance with, etc. someone.

I'm not a chat-roomer. I instant message my friends and don't have time to actually "chat" with people I don't know. But, from a HCI/virtual humans/virtual environments standpoint, I think it's really interesting. Here are some observations:

- Navigation is difficult in the rooms. Click and drag to move works okay, but the mouse was just not designed for dimensionality. This is a known problem that a lot of people are working on.

- The avatars are quite, well, lively. Motions are overexaggerated, and I think that's interesting. A "haha" typed in my chat bubble made my character bend at the waist laughing for at least 10 seconds. I wonder why the creators chose to do that. So that others were less likely to miss the cue? To promote a less serious chat environment?

- There is limited choice of avatars. I had two representations of female characters to choose from (although I could customize them a good bit). I'm guessing that's because it's fairly new.

- It's amazing what proximity can communicate. In a chat room, if you sign in and observe, it's hard to follow who is talking to who. In the Lively rooms, several times, someone would say "hi" to me, and I wouldn't be sure if they were talking to me, but then they moved their avatar closer to me and turned towards me and said "hi", it was immediately evident that they were speaking to me. Cliques formed in the rooms based on where people were standing. If I was sitting apart from the group, someone usually came into my area to ask if everything was all right. People would walk up and introduce themselves a lot as well.

- There are gender differences. In every room I visited, there were many more male users than female users (judging by screennames and avatars). But when I did come in, many times the guys paid more attention to me than to the other males in the room.

- For a two-person action (dancing, kissing, handshake), the consent of the second party was not required. So, if someone chooses to kiss me, my character kisses back, whether I wanted to kiss or not. I imagine this would make for some interesting social dynamic sometimes.

- How do people respond to actions towards their character? At one point, several characters came up to me and started kicking and punching me. Of course I didn't take it too seriously, but still, I wasn't very happy to have three avatars beating me up. I walked away from where they were and sat down so that they couldn't hit me any more. I wonder how others respond. I also wonder if having the possibility for violent action will serve to encourage cyberbullying and that kind of thing.

- How do people represent themselves in their avatar? Do they more or less look like themselves, or do they choose to look totally different?

- How do people use their avatars to interact with their virtual environment? What comes intuitively to them? What do they wish they could do, but they can't? How high is immersion?

2) Google Code Jam

Well, I made it through the qualifying round for Google Code Jam. Me and about 7000 others will be fighting for $10,000, 10 lunches at Google, and a whole bunch of cool points ;)

The first problem (the one I solved to qualify) was fairly straightforward; I solved it within two hours and not working on it all of that time. The second problem was within my reach, but some of my logic is wrong and I can't figure it out. After competition, I saw Chad's code (who also qualified) and he took a much better approach. I overcomplicated things by a lot. The third problem was way over my head. I could have worked for two weeks and never solved it.

Lessons learned:
- Use good variable names. REALLY. When you're trying to work quickly you don't want to have to remember whether you were using i or j for your loop iterator. Put in the couple extra keystrokes and make something readable.
- Debug little by little.
- Make sure you understand the problem first. The second problem kept confusing me, and I wrote bad code because I was misreading it over and over again.
- Plan first. It's tempting to immediately code but it's important to draw a few pictures, write a few formulas, etc.

What's cool about this competition is that I can go download everyone else's source now. I look forward to learning from it. I doubt I'll make it through the next round on the 25th, but I'm going to try my very best!

Well, that's it for now. If you want to track my work, my screenname on Code Jam is laurenelizabeth and my Lively screenname is lcairco. So...see you around!

2 comments:

monkeeboi said...

That third problem was pretty painful, I managed to get the big dataset wrong.

Interestingly I came across your post hoping to find a solution to that one on google's blog search. Guess I'll just have to keep looking.

laurenelizabeth said...

Yeah, I didn't even try with the small dataset. I drew some pictures and gathered some formulas and then decided that it would take more time for me to figure out than it was worth. These types of problems are not my strength anyhow.

You can find the solution that worked for the people who got it by looking at the scoreboard and checking the "Download source" box--then there will be little arrows where you can download their source files. Of course, these are not amazingly good for learning purposes because this is the kind of thing where you write code quickly and don't put comments, etc. When my brain's not fried, though, I plan on looking at some of that source and figuring out how to do it for myself.

Good luck in the next round!