Archive for July, 2007

7 strikes - The "Unwritten Vision" & Finding a Systematic Methodology for Pitching Game Ideas

If this were baseball, the team may still be hopeful, but this is a video game, which includes baseball video games, so maybe hope is alive. Our last three ideas sent to Adult Swim were rejected and may not have been our best yet, although I probably shouldn’t speak specifically about any of them, we all felt like the writing of the pitches themselves was very strong. Somehow we’re always optimistic sending off these little guys, even though we’ve been rejected and tell each other that our chances are slim, our hopes always end up high in the sky where they shouldn’t be.

“IDEAS! You are grounded!”

It’s true, we need to ground ourselves and our lofty ideas of having hope for the future, especially when you offer up the fate of that future to another party for approval or disapproval. Chances are that our notions of which ideas are good and bad have a lot more to do with the “unwritten vision” inside our heads than what the actual written idea turns out to be on paper. For me, our ideas that we pitch turn into a fantasy of sorts, and part of the fuel that feeds that fantasy is the idea of the pitch’s acceptance.

“Man, if we get to make this, it’ll look like this, this and the player can do this! It’ll be so cool!”

But this kind of thinking is counter-productive to pitching a really solid idea to a very critical audience with an even more critical target audience. By doing this we’re essentially attaching our own convoluted emotions to the game’s worth, that ultimately has nothing to do with the game itself. This ends up being a catch-22 since the hope and excitement of creating our own original game fuels us to work on it really hard, but in the same turn, it also clouds our judgment during that initial process.

“So how the hell do we see with eyes unclouded Ashitaka?”

I’m not exactly sure but I think we’ll need a more systematic approach, and I think that’s something we’re closing in on as we go through this epic journey to save the forest spirit. In my opinion, that systematic approach would be more like a venture into the marketing world as opposed to just “using our gut.” The gut is definitely more fun and better suited for our own internally-funded-games, but the marketing approach would probably lend itself to a higher success rate.

Who knows, but I’d say mix in more research, systematic methodology (pop-culture flow charts?), more criticism, emphasize character, and a lot of testing and we may just figure this thing out.

After writing this post and thinking about the nature of our pitches, and Adult Swim’s reception of said pitches, I wonder if this is just a case of a generational gap. I think it’s safe to say we believe in the web2.0 process of publishing, just getting it out there and seeing what everyone says, then re-iterating until it succeeds, however in contrast with AS’s process, they appear to be founded in a quasi-traditional publishing process with just releasing one time, and hashing it out behind closed doors until it’s up to snuff.

While that may not have a ton to do with our ideas sucking in the opinion of AS, I think it’s part of the frustration we’re experiencing.

Josh’s response (I hope you don’t mind if I add some input here)

The processes being referred to here are agile development for us and waterfall development for Adult Swim, respectively.

It’s becoming pretty clear that the waterfall method only works in video games for select cases. That’s why you are seeing a pathetic 20% success rate in video games versus the more typical 80% success rate of other media. Most people who analyze such things narrow the causes down to these:

1. The complex nature of video games creates a lot of chaos, which you simply can’t plan for. Things go wrong and there’s nothing you can do to stop it.

2. The interactive nature of video games creates a huge possibility space for events to occur. When you design a game, it’s very difficult to think of all of the possibilities of actions that can occur, all of the problems inherent in those actions, and all of the solutions to those problems.

3. The industry is still in its infancy. We don’t have a proven method for designing good games. So far it has been “guess and check.”

Agile development tries to solve this by assuming that - whether you blame chaos, limited knowledge of possibility, or lack of established methodology - problems will occur no matter what and that you’ll need to rework them to solve them. So get your product out the door as soon as possible to find out what those problems are - “release early.” Then, release your product as frequently as you can so that whenever you go to solve your problems, you have as much information as possible about your product to inform your decision - “release often.”

The problem with using this process for Adult Swim games is that it doesn’t fit well with the website, since it is currently being treated like retail space in a media specialty store like Sam Goody. A small selection of finished, polished products are being presented in a way that assumes those who come across the page will be interested enough to play one or more of the games. The waterfall method will give you a finished, polished product to sell on the “shelf.” In order to succeed here with the agile method, though, you need to be late enough in development that you have iterated a few times and came up with a polished product. The question then becomes “Who am I releasing early and often to, then?” And will Adult Swim even allow such a method?

The analogy of the retail space continues. In order to sell units - or in this case, traffic - you need to have an eye-catching cover - or in this case, gameplay video and description. Additionally, the game itself needs to be fun enough that Adult Swim can get more traffic through word-of-mouth advertising from people who have enjoyed it. So these are even two more reasons that it would be more fitting to use the waterfall method.

Prototype This!!

Finally squared away the actual movement for the Prof himself… This was actually really agonizing and horrible more due to my lack of experience working with the trig functions of Flash than anything else, but damn this took a long time. I tried about 4 or 5 different methods for controlling the Prof both in and out of the water and I finally settled on a hybrid of vectors and degree modification. In actuality, the player is only in control of the directional vectors which move the Prof around in the gameworld, this allows for the easiest level of switching between aerial and aquatic maneuvering, though moving through the air and moving through the water are very different.

Essentially there are two modes of interaction, one for in the air and one for in the water. When the Prof is in the air, the player can “pull up” or “push down” similarly to a flight simulator. Pulling up will create a certain amount of lift, which is always less than the effect of gravity so the best you can do is glide a bit. Pushing down will increase the downward force in addition to gravity and lets you plummet to the ground more quickly. This is the simpler of the two control schemes, as you just have one acceleration vector which has both directional and magnitude. The rotation of the sprite is calculated by a simple trig function.

When the Prof is in the water, however, it gets horribly complex. First off instead of one vector there is now a scalar velocity value and a unit vector which is the Profs orientation. The rotation of the sprite is calculated with trig using the directional vector, just like above. This is the crux of what I was going for, so that the vectors controlling acceleration would be in control of the rotation of the sprite and not vice versa.

I ran into a problem, however, as previously in order to rotate the Prof in the water I could simply rotate the sprite and re-calculate the directional vector. Now that I wanted the vector to determine the rotation, I had to figure out how to change the vector to simulate an rotational object and maintain it as a unit vector. I’ve never used this kind of math before so I was fairly out of my element and I wrote about 3 different methods to attempt to change the rotation smoothly, all of which created a total clusterfuck of random rotations and what have you. I never really figured out what was wrong with those algorithms, even though I spent a few hours trying to fix them. I eventually decided to use pure math to control the vectors with a much more elegant solution.

Here it’s gonna get triggy and wavey, so bear with me. I created a new value, a 0 - 360 control value which represented the current rotation of the Prof while in the water. From this the directional vector could be calculated and from them the actual sprite could be rotated. Why this is better than simply using the rotation of the sprite as my guide I really don’t know anymore, though they seem to be essentially the same thing.

Anyway… The Y component of the vector, which is vertical movement, is determined by a sine wave with no offset. Essentially I use my new rotation control value and feed it into a sine wave every frame, and the control value determines where along a single period waveform the Y component of the vector is. Essentially this means a control value of 90 will make the Y a maximum, a value of 270 will make the Y a maximum negative value and values of 0 and 180 make it zero. The X component is determined the same way, using the same control value, except its waveform is offset by 90, so where Y is zero, X is a maximum (either positive or negative), and where Y is a maximum, X is zero. This is all pretty basic trig, but it took me a while to get up the nerve to trust myself to use it and figure it all out.

The final step was to make the transition from air to water smooth… which was more frustration, but I got it.

This was a pain in the ass, but now it’s pretty much what it needs to be. Now it’s pretty much all about tweaking for proper results.

ALSO, if you play around with the jumping out of the water, you can see that when the framerate is really low you can jump much higher than when it is high. This is ’cause I haven’t decoupled my physics from my framerate… I never had the problem well illustrated to me until this, so It’s neat to see the problem in action.

APEs, Motors and Floaters, Oh My!


So, I spent some time getting back to PP:AFAA today and worked out some hacky solutions to the floaters. Getting buoyancy to look good was actually fairly challenging for my tiny brain, however I created a fairly convoluted algorithm which should supply all the requirements for the prof. This got me thinking hard about the purpose (porpoise? haha!) of Melba Toast and what exactly I am trying to accomplish with the engine. The original intention of the engine was to create a fast, reusable codebase which I could go back to for multiple games and maybe share with other developers (though i’d probably have to start commenting…) who are trying to accomplish similar goals. This is especially important for Intuition as our goal is to create multiple games on a shorter time frame in order to iterate on lots of cool ideas, find a broad market and have fun.

The problem is that engine development is not quick, it takes a lot of work and research to find optimal algorithms for every facet of functionality, and while I can work with the unfinished engine to create quick games like PP:AFAA, I have to fill in the missing functionality with hacks which don’t take as long to research and work fine enough in the mean time. So this gets to my point, which is I am struggling with deciding whether to take a longer time to write solid code now and take a lot longer on development for negligible short term benefits (i.e. PP:AFAA don’t really NEED collision based on separation of axis theorem or a spring system) or do I just hack it up and get it out the door? I need to learn how to do it the hard way, but I’m also a lazy american who wants it and wants it now.

The obvious third option is to use an open source physics library like APE or Motor (though i’m not sure Motor is going to be freely available) though the obvious down side of third party physics solutions is that they are not tailor made to my specific problems and I don’t know their interfaces…

For now I’m hacking it, and if I need to I’ll fix up the code later. That’s generally the accepted choice of game development, from what I understand, but as a programmer I still hate writing code I know is bad and needs to be replaced.

Shiggy <3 Reggie + Martha = Game Cake

Photoshopping of the beloved Shigeru Miyamoto and Reggie Fils-Aime atop their grand cake. Martha Stewart helped and was rumored to have a hand in the couple’s initial meeting.

Another Round of Pitches to Adult Swim

Out goes another 3 pitches to Adult Swim. That comes to a total of 7 now. Although, it seems like we’ve sent way more than that. Maybe we’re just getting used to it now. I don’t want to say that we’re getting good at it, but I’m not sure how else to say it… I know, we’re starting to understand it more now. Yeah, that’s it. I don’t think any of us have pitched so much in all our lives. It’s like we’re Clark and Michael now or something.

In fact, we’ve discussed gathering all of our ideas into an official Rejected Game Ideas list. I bet we could hit 50 at this point. Of course, many of them look like this:

CULTure Shock
You play as an aspiring cult leader and must build up your membership while trying to secure the necessary inventory for the rapture. Run into normal everyday problems along the way; the store is out of kool-aid, run out of gas, rent bills piling up.

Game mechanics?
* Collecting membership and putting them to work building the future
* Devising mass suicides
* Dealing with everyday problems

So it’s not like the list would be a novel or anything. This is one of the better rejected ones; some of them are pretty tasteless. I think that’s what would make the book so entertaining.

Speaking of that, I think it would be great to compile them into a book and use an on-demand printing company like Blurb to sell the book online. Of course, this is exactly something I would say. I always seem to be looking for some crazy way to get us some money, since, you know, we’re dirt poor and all.

Hopefully, we’re getting closer to the kind of ideas Adult Swim is interested in. We can keep going, though. If we do, I just hope that we get to the point where we’re the pitch-giving equivalent of when you get really, really tired at 4am, and you start to get all delirious. Then it’s really going to get interesting.

Game Tunnel’s Stinky Top 100 Indie Games List

Derek Yu over at TIG Source has an awesome post entitled Game Tunnell’s Top 100 Indie Games List…Makes Me Sad.

“What we have here is an indie gaming news site run by a Reflexive employee, hosted by a Pop Cap studio, running a list called “The Top 100 Indie Games” that is little more than a portal front page.”

I won’t link the list directly - you can follow Derek’s article if you want to look at it. The problem isn’t necessarily the list itself, but mostly the intentions of the list, and how it’s being treated by the community. The intentions seem to be purely for the selfish interests of Game Tunnell. As Derek indicates, many links in the list have referral codes in them, and of course the games listed are only those that have been reviewed by Game Tunnell in the past.

Even worse, many people in the community are treating this as some representative list of the best indie games out there. It’s definitely NOT representative of indie games. People who think so are clearly missing out on a lot of the games discussed at TIG Source, in addition to a plethora of free Flash games. Make no mistake about it, Flash games are most definitely a part of the indie game space. I hope whoever finds that list will quickly ask “What else is out there?” Here’s another nugget from Derek’s post:

“It’s like someone farted at the dinner table and no one wants to admit that it smells. Over at the Indiegamer forums I just know that the conversation is going like this: “Honey, this chicken is delicious!”

WELL YOU KNOW WHAT IT SMELLS TERRIBLE IN HERE AND IF THINGS KEEP UP THIS WAY NO ONE IS GOING TO WANT TO EVER HAVE DINNER WITH US.”

This might be a bit brash, but it is this passion that makes me proud to be a part of the independent game community.

The Professor preys on boats

Recently we nicknamed Prof. Porpoise, “The Professor” due to his extreme agility on the court as well as his radical dissertation on The Crossover: An Application of Metafluid Dynamics and Quantum Mechanics Subsystems to Underwater Basketballs. The Professor isn’t all sneakers and snow globes. When he’s not drainin’ half-court PS-triples he’s sinking sea-faring vessels in the name of the Almighty’s Reckoning.

So I drew a few of those ships that he’ll be snacking on. I’m going to illustrate them fairly soon based on these drawings. Right now we’re just gathering ideas on the different types of boats and which would be funnier and more effective. For now this is a pretty good smattering of boats, ranging from early level rafts, to millionaire customized yachts. When I draw I use a ballpoint pen, preferably a Bic Cristal but normally it’s just whatever is lying around. If enough people want tips, I’ll post something about the technique in greater detail later on.

PP: AFAA Progress Update 1

The official work has begun on PP: AFAA! This project is so important to Intuition, that we’ve decided to use our secret weapon, a creative think-tank known as Team Yesss (that’s yes with three s’s). Team Yesss was able to choose a preliminary color scheme, get the professor made based on Ted’s design, and get him into Melba Toast swimming around. Great work guys! Some excellent concept art has been sketched up for the boats, too. That should be posted soon. [Update: Greg has a post with the concept art] The next steps are putting in gravity, damping for swimming, buoyancy (a first for a Flash game as far as we can tell), and boats and humans for content. Intuition is confident that Team Yesss can pull this off with no problem. Here’s a screenshot of Professor Porpoise in action, enjoying a swim before he partakes in his duties of bringing on the apocalypse.

Waves and Toasty Stuff

We’ve been working full steam on PP:AFAA tonight, and I’ve finally gotten back on track with Melba Toast and breaking out teh codez. I actually started out on prototyping water yesterday and thought I’d have an easy time of getting some wave action going… Boy was I wrong.

Actually in theory, it would have been pretty simple to just throw a line on the screen and use a sine wave to do some nice wave effects and the just move on. However, I have decided to use Melba Toast in the most responsible manner possible and that means avoiding shitty shortcuts and hacks. I determined that I wanted my water to be a tile, which means it has to be subjected to all the culling algorithms I wrote for my MelbaTiles. This set me right in the face of one of the two problems my tile engine currently has, the other of which is I have no faculty for actors which are able to move across the tile sectors (see Tile engine tutorial to get an idea of how the tile system works), and I only register tiles with the sector that contains their registration point, i.e. the upper left corner. This second issue is a problem for any tile which overlaps two sectors or especially tiles which are larger than a sector. I decided that the water shouldn’t be split up into multiple objects, a decision I may change later for efficiency, which forced me to solve the problem of super sized tiles before I could even make my water show up on the screen.

So anyway, I came up with 14 different cases of tile orientation on a single sector and was about to write up a massive nested if() clusterfuck when I remembered the collision lessons the Metanet Software crew (makers of N, check it out) released. Using their “Maths”, I was able to reduce the statement to about 8 lines of code and was very pleased with myself.

Long story short, there is no longer a limit to the size of tiles Melba Toast can support, and we got neato water effects, though it’s not too dynamic at the moment. You can use the arrow keys to scroll around, but you can get lost quick.

Also, tilde brings down the console, though the only command right now is fps.

Professor Porpoise: Adjunct Faculty Advisor to the Apocalypse

It has been over two months since we all decided to get together and start something up and we still haven’t worked on any actual games, until now. I don’t think any of us envisioned the process of actually starting taking so long, but it has, and it seems to be a necessary evil of looking for funding our development. While nothing has been approved for sponsorship, we have decided to just go ahead and make a game already, something simple, fun and humorous. The idea is to build our brand and portfolio while still searching for a place to lie our creative heads at night.

Enter… “Professor Porpoise: Adjunct Faculty Advisor to the Apocalypse”

He’s the smartest dolphin (Porpoise is just his Christian name) in all of the seas. Since retired from the rigorous research of university life, he now looks after a small school of gifted younglings who call him Papa ‘Poise. But he has a secret, as a babe he was branded as part of a holy order, and now he must take action in his role as one quarter of the Four Horsemen. The Professor suits up with super-cop spear helmets and magick horn blades, cutting class to take care of business, fire & brimstone style!

We’re currently using Mike’s Melba Toast engine to make a simple prototype that we will hopefully have within a week or two. The logo above is something I whipped up this evening, and while I’m not thrilled with it, I think it gets our concept across well enough. We’ll post more images, concept work, demos, and assets as they get pumped out, but for now I think we’re all pumped to make something fun.



-->