Archive for March, 2009

Now with video

Saturday, March 7th, 2009

To record more of life’s occurrences, for both fun and for sharing with friends and family, yesterday I bought a Canon HF20 HD video camera. I haven’t had much time to play with it but did record a few scenes last night around my neighborhood.

I used Vimeo to upload the HD video. Vimeo has a great interface and looks like a quality service. Unfortunately, unless you are a paying member you cannot embed HD video into an external webpage. You can see the full HD version by clicking the link below the video and going to Vimeo’s webpage.


Ebisu, Tokyo, Japan. from Mark Cooke on Vimeo.

Releasing violent videogames in Japan

Thursday, March 5th, 2009

You may or may not be surprised to learn that in recent years (as of 2009) violent videogames have a hard time getting released Japan. When I say “released” I mean mainstream retail distribution. Personally, I was surprised and have seen overseas developers frustrated by it so I spoke with some local Japanese developers about the issue.

The common Western view is that other media in Japan – comics and anime cartoons in particular – are often extremely violent. So why can’t violent games be released? The last violent big budget game I shipped, Conan, did receive a Japanese release but with huge concessions and changes from the US release. The core gameplay feature was the combat system and a big part of the reward system built into it for the player was seeing Conan dispose of his enemies in an over the top way. We had to tone down the violence significantly right at the end of development to appease the Japanese game rating board, CERO, to receive an unrestricted release.

Of course I understand each country has a different culture and what is acceptable to one is off limits in another. The take away lesson for me, and what hurt the game, was that this was changed fairly late in development after the violence was already a key feature. Focusing on over the top gore and violence rewards in a game you intend to release in Japan (and Germany) is not a good focus of resources as those features will have to be reduced or cut hurting the core functionality of the game in the process.

When I asked the local developers about the issue they said that the restrictions have been slowly becoming more and more strict from around 1999 onward. Slowly and surely the criteria for getting rated CERO Z (restricted release, 18 and up only) are growing wider and wider. Publishers often wont bother releasing a game if it is expected to receive a Z rating. It is not quite the kiss of death that getting an Adults Only rating in the US is, which basically guarantees not being carried by any retail stores, but understandably publishers want games to reach the widest market possible for the highest sales potential.

But still – why the disparity between games and other media? The local developers think it has to do with the scrutiny the different media sources receive. As much as Japan is known for anime, in recent times games are much more in the forefront of day to day life. Nintendo advertises prominently in Harajuku station using an extremely popular fashion model (”Ebi-chan“). I can’t even remember the last time I saw anything anime being advertised in Tokyo outside of Akihabara or during television commercial breaks during the equivalent of Saturday morning cartoons. I see a lot more people playing DS and PSP on the train than I see reading comic books.

If that is the case then it is not surprising. The more public exposure a media generates the more independent parties are interested in it and the more politics enter into the equation. The bottom line is that as developers, if you want to have a prominent and wide release in Japan, focusing on violence as a core feature of your game is illadvised.

Flash sine wave fun

Tuesday, March 3rd, 2009

Simple but periodically pleasing. Click to randomly generate a new scene.


After Pause Talk vol. 29 last night when talking with just-arrived-in-Tokyo Brian Thomas the topic of algorithmically generated art came up. I spent five minutes and cooked this up. It was definitely fun and I want to explore it more. I need to go ahead and learn the Processing language which I’ve heard is great for this kind of stuff.

Full source code is below:

package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.Matrix;

	public class SinDraw extends Sprite
	{
		private var sinWaveData:Array;

	    [SWF(width=500,height=300)]
		public function SinDraw()
		{
			sinWaveData = new Array(200);
			onClick(null);

			stage.addEventListener(MouseEvent.CLICK, onClick);
		}

		private function generateWave():void
		{
			var amplitude:Number = 100 * Math.random();
			var frequency:Number = 0.0174532925 * 2; // 2 degrees in radians
			var phase:Number = 100 * Math.random();

			// intentionally goofy
			var r:uint = (255 * Math.random()) << 16;
			var g:uint = (255 * Math.random()) << 8;
			var b:uint = (255 * Math.random()) << 24;
			var color:uint = 0xff00000000 + r + g + b;

			for (var i:int = 0; i < 200; i++)
			{
				sinWaveData[i] = amplitude * Math.sin((i * frequency) + phase);
			}

			for (i = 0; i < 200; i++)
			{
				var index:Number = i * (500 / 200);

				graphics.beginFill(color, 1);
				graphics.drawCircle(index, sinWaveData[i] + 170, Math.random() * 5);
				graphics.endFill();
			}
		}

		private function onClick(e:MouseEvent):void
		{
			graphics.clear();

			var matrix:Matrix = new Matrix();
			matrix.createGradientBox(500, 300, 90);
			trace(this.width);

			// intentionally goofy
			var r:uint = (255 * Math.random()) << 16;
			var g:uint = (255 * Math.random()) << 8;
			var b:uint = (255 * Math.random()) << 24;
			var color:uint = 0xff00000000 + r + g + b;

			graphics.beginGradientFill("linear", [color, (color - 0xff222222)], [1, 1], [0, 0xff], matrix);
			graphics.drawRect(0, 0, 500, 300);
			graphics.endFill();

			generateWave();
			generateWave();
			generateWave();
			generateWave();
			generateWave();
		}
	}
}

Designing based on instinct vs. analytics

Tuesday, March 3rd, 2009

Andrew Chen has an interesting blog post up the dangers of the over use of A/B testing in product development.

In the commercial projects I’m working on I’ve been very much a proponent of testing game features, marketing material, etc. in a scientific way. As developers close to a project it is often very hard to know if what you are working on is going to resonate with your target market or not. When making a decision on a game feature with a passionate group there are often multiple view points about what is best and without a clear way to evaluate such decisions often the strongest personality in the room gets their way. This is designing by instinct and discussion. That isn’t always going result in the best decision for the game, hence my preference to use math and analysis to decide if it can be applied.

Testing variations of a feature against a large enough audience should ideally begin to reveal data that can concretely improve a feature if the test is designed correctly. As Andrew points out though this can result in overcompensated risk aversion and is better suited for small scale decisions rather than setting high level product direction.

In terms of game features specifically, I’m starting to incorporate more metrics into my applications so this type of data can be tracked by a database and data mined at a later time. I think this kind of tracking and optimizing of individual game features is a strong way of coming to a decision on game features that have no clear “best” solution.

New Design

Monday, March 2nd, 2009

Anyone who has been to this website before can plainly see there has been a large revision. In addition to a new design, I’ve replaced the Blogger back end with Wordpress.

All of the old content has been migrated, including comments.

Comments and bug reports on the new design are welcome!