Topics: Propanda Lander


Propaganda Lander 1.1 Now Available!

July 23rd by Tommy Leung

We’ve got fancy press releases too! Propaganda Lander 1.1 is available on the App Store. Go Get it! Lots of new things and we are dying to compete with all of you in Survival Remix!

##

SMASHWORX Update to Propaganda Lander Offers Gamers New Ways to Play

New York CIty, USA Jul 26, 2010

New York, NY – SMASHWORX, LLC, an independent game developer, is excited to announce the release of Propaganda Lander version 1.1 for iPhone and iPod Touch devices. Propaganda Lander is an addictive adventure/arcade game that sends players out into a galaxy filled with exotic alien planets to collect converts for an evil televangelist’s cause. Each new planet features unique challenges that range from ominous sea serpents to giant lava hands that are navigated by an ingenious flight system. This highly-polished game’s hallmark is professionally voiced and produced movies that advance the hilarious plot while flushing out the entire experience.

The update contains two new modes: Easy and Survival Remix plus optimization for iOS 4.0, new high score leaderboard capabilities and new planet soundtracks. Easy Mode gives the less hardcore gamers a more relaxed way to interact with the game without watering down the experience. Survival Remix Mode uses all of the enemies of Easy or Hard Mode in a new survival version of Propaganda Lander. Players attempt to survive the barrage of attacks to try and best their friends in time and skill. Both new modes charmingly reach out to new audiences to introduce them to the world of Propaganda Lander.

Game Features:
-Fluid yet responsive motion-controlled piloting
-20 fast-paced levels that culminate in a boss battle royale
-Laugh-out-loud plot that unfolds in sleek movies
-Fully developed Achievement and High Score systems
-Multiple Modes for all types of players
-Diverse soundtrack

Device Requirements:
-Compatible with iPhone, iPod Touch and iPad
-Requires iOS 3.0 or later
-Optimized for iOS 4.0 with Fast-App Switching

Pricing and Availability:
Propaganda Lander 1.1 is $4.99 USD (or equivalent amount in other currencies) and is available worldwide exclusively through the App Store in the Games category.

SMASHWORX, LLC is an independent game developer based in New York City, US. This is the first app of many to be made available. Copyright (C) SMASHWORX, LLC. All rights Reserved. Apple, the Apple logo, iPhone, iPod and iPad are registered trademarks of Apple Inc. in the U.S. and/or other countries.

www.smashworx.com
info@smashworx.com

##

What’s New in Propaganda Lander 1.1?

July 20th by Tommy Leung

We’re going to take a look at the new features of Propaganda Lander version 1.1. We’ve put quite a few new things into this version and upped the game size by several MB. It still sits nicely under the 20MB 3G download limit.

Gotta Have Tunes

One thing that you might have noticed while playing Propaganda Lander was that there was only one soundtrack for every level. We had always intended to have music for every planet but, was unable to get all the tracks on time before our initial launch. We do have them now!

The whole game is worth playing through again just to hear the planet specific tracks. We’ve also added some more polish to the game so there’s a tad more to see.

Loading Screen

For those of you with a speedy 3GS or iPhone 4, the loading screen probably wasn’t an issue for you. Propaganda Lander would have loaded in under 7 seconds. For those with older iDevices, it would have taken about 2x as long. We have now added an animated load screen in the beginning to help make those 14 seconds more enjoyable!

Settings

There isn’t anything that new in the settings screen except that Facebook features are no longer in this screen and you can turn the vibration feature on or off. The other options for muting Music or Sound Effects are still there and the ability to auto-skip movies once you’ve already seen them.

For those using iOS 4, the movies will now play nicely with your iPod or Pandora. It used to cut off whatever music you were listening to and play the movie. iOS 4 let’s us have the movie’s soundtrack and your music at the same time so we made it happen in version 1.1.

Remix Survival, Easy, Hard Modes

The biggest part of the update is the Remix Survival mode. This is an endless mode where the goal is to survive for as long as possible while virtually every obstacle and enemy you’ve encountered in the main game makes an appearance. We think it’s loads of fun.

For those who thought the game was too hard–and it was a hard game, we’ve implemented Easy mode. The original levels are now in the Hardcore mode. Your original saved game corresponds to the Hardcore mode.

Leaderboards, Achievements, and AGON

Achievements were in the original Propaganda Lander. We’ve moved all your achievements to the AGON system where the leaderboards also reside.

We’ve added the Remix Survival Mode as well as Easy/Hard modes. These modes also come with their own leaderboards for your competing pleasure.

iOS 4 Fast-App Switching

While we originally did not intend to have Fast-App Switching, we gave in. It was convenient to be able to reply to a text you get while playing Propaganda Lander or go to Pandora or check mail that you might have gotten or whatever. We thought it was a nice touch so we put it in. The game will pause when you switch out to another app and be ready to go once you come back.

PlayHaven

We have partnered with PlayHaven to cross-promote Propaganda Lander and other games on their network. You can access PlayHaven by touching the new “More Games” button on the lower left corner of the title screen. We like other developers. :)

Other Tidbits

There are smaller changes to Propaganda Lander as well. We probably couldn’t name them all even if we wanted to. There are little touches that we added that you’ll see throughout the game including generally improved performance across the board.

For those of you with older iDevices, the best way to get the best performance is to turn off the music and the sound effects. There will be a major improvement when you do that.

We’ve tried to eliminate as many memory issues as we can and we feel pretty confident that Propaganda Lander will run on all iPhone’s and iPod Touches without crashing often or needing you to reboot your phone–although it’s always good to do that just to clear out orphans in memory.

Good luck in Remix Survival and we are dying to compete with all of you on the leaderboards! :)

Propaganda Lander 1.1 Submitted

July 20th by Tommy Leung

We’ve submitted Propaganda Lander 1.1 to Apple for approval! We’ve already talked about some of the new things in an older post. We will have a more in depth look at the new features soon. The update should hit your iPhone/iPod Touch in a week barring any rejections from Apple.

SDK 4.0 Bloated Executable

June 30th by Tommy Leung

In more SDK 4.0 learnings, we came across a file size problem with Propaganda Lander in moving to SDK 4. The Unix Executable File became twice as big as it used to be under the 3.0 SDKs. There was no rhyme or reason for this that we could see.

If you are someone who cares about keeping your app’s file size under the 3G download limit, it is important to optimize as best as you can do get it under 20MB. A lot of games really don’t care which will be an annoyance to someone who wants to buy the game but has no WiFi service nearby. Other games just can’t be that small and then there’s nothing you can do about it.

We are pretty adamant about keeping Propaganda Lander under 20MB. Even with all our wondrous musical tunes, movies with voice overs, and pretty graphics we demand to have a game that can be downloaded from anywhere there is a 3G signal. After all, we are making a game for a mobile phone first and a portable music device second.

The reason why the executable file was twice as big under SDK 4 was because it defaults to compiling for iPad as well as iPhone. I see no reason to have both binaries when most games have specific versions for iPhone and iPad. You can fix this by checking Build Active Architecture Only in the project settings.

You should enable Dead Code Stripping as well–it usually is by default. There’s also Optimization Level which defaults to [-Os] for fastest, smallest and tends to be best.

MoviePlayer in iOS 4

June 24th by Tommy Leung

In the quest to make Propaganda Lander run under iPhone SDK 4.0 and eventually utilize Game Center, I’ve run across some problems/solutions with multitasking. The most recent problem was with MPMoviePlayer. Propaganda Lander plays a movie on each planet plus a nice little video after you’ve beaten the game so movie playing had to work.

SDK 4.0 changes how the MPMoviePlayer works. I think it is now much better than it was before. You have more control over it. It will also, by default, mix with other audio as well. Right now, Propaganda Lander will kill your iPod if a movie plays. We didn’t particularly like that but, there was no choice in the matter. There is now! The iOS 4 version of Propaganda Lander will have this feature.

So, Apple has created an MPMoviePlayerViewController that you can use as a view to control the movie. MPMoviePlayerController still exists but is slightly different. In the past, creating an MPMoviePlayerController would just take over the device and play the movie. You now need to add your MPMoviePlayerController’s view to a UIView or UIWindow.

The MPMoviePlayerViewController will auto rotate if the device’s orientation changes. This was not ideal for Propaganda Lander as it only plays in one orientation: OrientationLandscapeRight. In order to get around that, we had to use the UIView from the MPMoviePlayerController and transform it accordingly.

Here is some code straight out of Propaganda Lander for movie player in iOS 4 :)

You’ll need this for the degrees to radians conversion

#define degreesToRadian(x) (M_PI * (x) / 180.0)

This is the actual code:

MPMoviePlayerController * theMovie;
theMovie = [[MPMoviePlayerController alloc] initWithContentURL: movieURL];
UIView * movieView = [theMovie view];

[movieView setFrame: CGRectMake(0, 0, 480, 320)];

CGAffineTransform landscapeTransform;
landscapeTransform = CGAffineTransformMakeRotation(degreesToRadian(90));
landscapeTransform = CGAffineTransformTranslate(landscapeTransform, 80, 80);

[movieView setTransform: landscapeTransform];
theMovie.scalingMode = MPMovieScalingModeAspectFit;
theMovie.fullscreen = TRUE;
theMovie.controlStyle = MPMovieControlStyleNone;
theMovie.shouldAutoplay = TRUE;

[[[UIApplication sharedApplication] keyWindow] addSubview: movieView];

If you would like to use the MPMoviePlayerViewController that has all the auto rotation features, it would look like this:

MPMoviePlayerViewController * movieView;
movieView = [[MPMoviePlayerViewController alloc] initWithContentURL: movieURL];

MPMoviePlayerController * theMovie = [movieView moviePlayer];
theMovie.scalingMode = MPMovieScalingModeAspectFit;
theMovie.fullscreen = TRUE;
theMovie.controlStyle = MPMovieControlStyleNone;
theMovie.shouldAutoplay = TRUE;

[[[UIApplication sharedApplication] keyWindow] addSubview: movieView.view]

When you the movie is done playing, you will want to remove it. You can do so by using the NSNotificationCenter to get a callback when the movie is done.

[[NSNotificationCenter defaultCenter] addObserver: self
	selector: @selector(movieFinishedCallback:)
	name: MPMoviePlayerPlaybackDidFinishNotification
	object: theMovie];

When the movie is finished, it will call the movieFinishedCallback method which would look something like this:

- (void)movieFinishedCallback: (NSNotification*) notification;
{
	[[NSNotificationCenter defaultCenter] removeObserver: self
		name:MPMoviePlayerPlaybackDidFinishNotification
		object: [notification object]];

	MPMoviePlayerController * theMovie = [notification object];

	[theMovie.view removeFromSuperview];
	[theMovie release];
}

This ONLY works in iOS 4 devices. If you also need to target iPhone OS 3.0 or 2.0, you will need to check for the OS and then have the former MPMoviePlayer code as well. Since Propaganda Lander still targets iPhone OS 3.0, we made this function to check for the OS.

std::string getOS()
{
	UIDevice * device = [UIDevice currentDevice];
	NSString * os = [device systemVersion];

	if([os isEqualToString:@"4.0"])
		return "4.0";
	if([os isEqualToString:@"3.0"])
		return "3.0";
	if([os isEqualToString:@"3.1"])
	        return "3.1";
	if([os isEqualToString:@"3.2"])
		return "3.2";
	if([os isEqualToString:@"3.1.2"])
		return "3.1.2";
	if([os isEqualToString:@"3.1.3"])
		return "3.1.3";

	return "";
}

And for a much more robust way of determining iOS version that can be compared as numbers:

float getOSf()
{
	UIDevice * device = [UIDevice currentDevice];
	NSString * os = [device systemVersion];

	float osAsFloat = [os floatValue];
	return osAsFloat;
}

There’s some C++ and Objective-C in there as you can see. I actually wanted to return numbers but, strings will do for now. You can just as well return NSString’s exclusively if you’d like. As you can also see, we don’t care about OS’s below 3.0. OS 3.2 is the iPad OS and should have no effect for iPhone development but, I left it in there anyway. I believe 3.2 uses the same MPMoviePlayer code as iOS 4.0.

So if your movie player suddenly stops working in iOS 4.0, this is why and this is how to fix it. :)