Archive for November, 2008
Why Can’t I Stick to One Subject?
Friday, November 21st, 2008
I don’t know why I can’t stick to one subject in these posts. Today I have two things to talk about:
First of all, I got a class implemented that allows me to do texture animations. I can put all my frames into one giant texture and animated it by changing what part of the texture is visible each frame. It was surprisingly easy to get working and made me very happy about my decision to use OpenGL for the game. The next step in this is creating a sample texture animation for my “match” animation and dropping that into the game.
The second thing I wanted to talk about is Jonathan Blow’s talk at the Montreal Games Summit:
- How To Make Games That Touch People (www.gamasutra.com) – Jonathan Blow (the creator of Braid) talks about the way games are made today and why that limits how much they can touch people.
I found the article fascinating, as Blow talks about games and art (a subject that has been dear to me for a number of years now) in a way that makes sense to me. The thing that most grabbed me was the last quote of the article:
“Perhaps the problem is that we so deeply rely on reference points like film, which require stories progressing over time, when we could be referring to things like sculpture or painting, which require no timescale and people find just as moving.”
This really hit home, because I’ve been saying this for a long time (not that I consider myself in the same league as Blow, but still). In the games industry we often compare ourselves to the film industry. Many of the comparisons are warranted, as the processes for creating them are often quite similar: pre-production, production, post-production, distribution. Games often have stories and are often presented to players like movies are presented to viewers: linear narrative that tells a story from start to end.
The problem I’ve always had with this is that the way in which a player interacts with a game is completely different from how a viewer watches a film. Viewing a film is passive; every viewer sees the same film (assuming you ignore Goddard’s 1968 experimental film Un Film comme les autres, in which he asked the theaters to randomly reorder the film’s two reels every time the film was shown). However, a game is different for everyone who plays it. Each person who plays a game will play it in a slightly different way. This means that it’s nearly impossible to guarantee any kind of consistent pacing to the story and makes it extremely difficult to set up dramatic, meaningful events.
When you get into open-world “sandbox” games, like the GTA series, it becomes even more difficult. You can’t guarantee that the player is going to care about a particular character because they might not have spent any time with them. All of this poses a very difficult situation to a game designer.
Now, I’ll say it right now: I don’t know what the solution is. However, I think the first step is to stop thinking about telling stories in games like you do in movies. The game that manages to tell a story solely through the player’s interaction with the world is one that will be extremely successful, from an art standpoint, anyway. I don’t know how it would be done, as I’m sure it will require a whole new way of thinking about story. Instead of a narrative, it will be about discovery. Instead of the game forcing a player along a path with cut-scenes to move the story along, it will allow the player to make their own discoveries and choose their own path. Perhaps it will even allow the player to choose their own goals. The problem becomes: how on earth does one build a game like that and how on earth do you make the experience meaningful to the player?
Owen
Updates on the Game
Thursday, November 20th, 2008
I got all of my wireframe mockups finished and sent off to the artist I’m working with. That was good to get done. I was going to post an example from the Main Menu wireframe, but I can’t figure out why WordPress won’t let me post an image. All in all, I’m having a crappy week when it comes to my web server. I’ve decided to just give up and forget about posting the image for now.
Today was quite productive, game-wise. This morning I made a pretty major decision about the game’s code architecture. When I refactored the code a while back I had left a big chunk of the game logic untouched with a plan to go back and change the way the algorithms worked. I was going to build lists of data objects that I could pass around to various events. For example, when the player touches the play area, I do a search to find out if they made a valid move. What I was planning to do was store the results of the search as a list of pieces that were part of the match. Then I could pass that list into animation classes and other things. The idea was to decouple the data from the play area logic a bit more.
My plan for today was to start implementing that system. But then I started thinking about it in detail. I grabbed my whiteboard and started diagramming out a bunch of cases. What I discovered was that I was just going to end up adding complexity for the most part (not to mention memory overhead) and in the case of determining when to activate special items, made things incredibly difficult to handle.
So I took a step back and made a realisation: what I’ve got already does what I need it to do, and I’ve already debugged it. Why was I trying to make things harder for myself? So I scrapped that plan. Time saved! Hooray!
Instead, since I now had the day freed up, I decided to tackle an animation I’ve put off handling for a long time: falling blocks. I’m writing a “match-N” puzzle game, so players interact with the board, pieces disappear, and new ones drop in from the top. Until today, pieces instantly dropped into their new positions. I was concerned that the falling animation would be complicated. Luckily I’d been thinking about this animation for so long, that all the data structures already had the hooks I needed in place. Four hours later and I’ve got all my pieces dropping into place with a nice, tunable animation! Fantastic!
I’m amazed at what a difference it makes to the feel of the game. It was quite a shock at first. I’ve been playing this game for months now with no falling animation, learning how to “visualize” where the pieces were falling in my head. To see it all happen in front of me is exciting.
Next up: sprite animations!
Owen
Good News
Tuesday, November 18th, 2008
Good news, everyone! (Mandatory Futurama quote)
I have found an artist! Hooray! Now I’m trying to assembly all the random notes I have on art and layout into some cohesive wireframe mockups so that the artist can start working. This was the last big piece of the puzzle in terms of people needed to complete the game. Onward and upward!
In other good news, I fixed a few crash bugs this week and also fixed a battery drain issue I was seeing if you put your iPhone to sleep while my game was running. I also learned a few new techniques for tracking down memory issues on the iPhone, as I’m still getting used to the way the iPhone frameworks handle garbage collection. I’m finding the new Apple iPhone forums to be extremely useful in that regard. The people on there seem very friendly and willing to help out. I’m also trying to post my own suggestions to people in need of help.
Today I’ll be working on those wireframes I mentioned earlier as well as adding a “Game Over” screen to the game. Right now the game ends and you just can’t do anything anymore. You have to shut the game down and boot it back up to play again. I want to get a Game Over screen in that will allow the player to easily restart the game without reloading the game. I’ve got a few people testing the game in its early stages and this is something that’s frustrating them.
Owen
Goodbye, Power of 2!
Monday, November 17th, 2008
Sad news last week, Power of 2 Games is closing its doors:
- Brave New iPhone World (gamesfromwithin.com) – This is the blog of Noel, one of two developers who made up Power of 2 Games. This is his post about shutting down Po2G and how he is now going to try to make an iPhone App.
Power of 2 posted some great technical articles that really helped me get going when I first set up my business. I hope that Noel will continue to post his great technical articles on his blog.
There’s much going on with Streaming Colour this week. I’ll post about it probably tomorrow. For now, I must get back to work.
Owen





