qq_tracker_code_advanced_default

I’ve recently stumbled across a site that calls itself AppTrackr. AppTrackr has a list of apps that are released on the App Store for iPhone, iPod Touch and iPad. Yet they claim that they do not condone piracy and suggest that app piracy is at a low percentage and should not be high enough to affect income for the developer.

I will be quoting a few sections from their about us page and make some common sense comments on these and hope that someone reads them and takes action against AppTrackr. In my opinion they are just one of many sites that make it easier for people to STEAL software that they would have otherwise had to purchase.

Apptrackr is a website which makes it easy for you to download and install cracked apps on your iPhone, iPod Touch or iPad. It’s the replacement website for Appulous, which served the same purpose for over a year but became sluggish and unmaintained prior to its end.

This is from the very first sentence in the about us page. Notice that they claim to make it easy for everyone to download and install cracked apps… Does this not aid piracy and at the same time promote it?

Most people will stumble upon Apptrackr and realize its potential for being a one-stop-shop for piracy; over fifteen-thousand popular App Store applications are available on apptrackr and organized so that you can find them without a hitch. Please understand, however, that piracy is not the intention of apptrackr. While far too many people use apptrackr to this end, we do not condone their actions. Apptrackr is for application trials, and nothing else.

This is sentence number 2. Again they advertise that over 15,000 popular apps are available for download. They claim that far too many people use AppTrackr for this purpose. Well I have some suggestions for you AppTrackr. Why not control your user base? Why not make them register for an account and display a disclaimer to warn them and inform them that they are about to perform software piracy and that they are STEALING from hard working developers that are trying to support their families.

If AppTrackr is only for Trials, then how about removing app’s from your site that have trial versions available on the App Store. If an app has a trial version available in the App Store then the full version should not be available on your site.

The App Store provides no global method of testing applications before you purchase them. When far-too-many applications on the App Store are complete and utter shit, consumer money is wasted on applications that are promptly deleted by the enraged, ripped-off customer. Although it is not our place to decide, we believe that money should only be directed to developers who show an interest in creating innovative, fun and imaginative applications that are worth the price we pay.

Often we are critized for allowing our users to test applications which are cheap. 99 cent applications don’t necessarily cost a lot, but when you purchase many lousy ones, you’ve wasted quite a sum of money. Apptrackr aims to save people money, not cost developers.

It’s undeniable that a portion of our community pirates rather than tests the applications that they install. We don’t condemn these users and strictly enforce against them for two reasons: 1) it is genuinely a disadvantage toward legitimate users to focus on our pirating users, and 2) piracy loses developers very little in most cases. Listen closely: pirates who do not choose to purchase the applications they install are not lost sales. They were very, very likely never potential customers in the first place. Piracy’s conversion rate is absurdly low, and developers know that.

Here are the next 3 sentences. AppTrackr believes that the customer should not be held responsible for making bad decisions. Let me explain this a bit further. AppTrackr is stating that customers spend loads of money on apps that turn out to be horrible and useless. Has AppTrackr taken the time to try and understand why customers spend loads of money on apps that are horrible and useless? Could it be because the customer was not as informed as they should have been? or maybe the customer did not perform enough research and or reviews about the app they downloaded?

Do you go to the grocery store and say, let me try that pickle before I buy the jar? Or how about a restaurant, can I have a trial steak before you bring the real one? Better yet, go to Best Buy, Game Stop or any other store that sells games… Are you able to go and purchase a game and return it and get your money back if you didn’t like it??? or any other piece of software for that matter? I didn’t think so… The most you will get is an exchange for the exact same copy and then only if the copy you have is damaged?

Do you go to a gaming store and just start randomly purchasing games without reading up about the games you are purchasing or asking around about them or searching on google for some reviews?

Why should it be any different on the App Store. Granted there are a lot of apps that are crap and completely useless and a total waste of money, but if you are the idiot that downloads them then don’t blame the developer for making a bad app.

I’ve seen this time after time, someone goes to download an app, they don’t like it, write a bad review and move on, the next person downloads the same app even though there is already a bad review, that person doesn’t like it, leaves a bad review and moves on. Then, guess what, yup the next person downloads the app completely disregarding the bad reviews and also leaves a bad review… These people are idiots and should not blame the developer. If they would have taken the time to read the reviews and done more research before blindly purchasing an app, they probably would have come to the conclusion that this was not the kind of app they should be purchasing.

pirates who do not choose to purchase the applications they install are not lost sales. They were very, very likely never potential customers in the first place.

And what the hell is this line about??? If the app was not cracked to begin with and sites like AppTrackr would not exist, then the person who was pirating the app would have had to purchase it in order to use it. With sites like AppTrackr making it sooooo easy to pirate apps, there is no reason for anyone to even attempt to legitimately purchase anything from the app store. If you think the numbers are low, I’ve got some facts for you to look at.

As a test there was an application that was added to the app store with Game Center enabled. Over the course of 2 days there are well over 80 people playing this game on game center and there have been 8 total downloads from the App Store… Can you do the math on this and tell what percentage you come up with?

Piracy is a huge issue and sites like AppTrackr set a bad example for the entire community. Pretty soon there will be no apps, no developers and no more iphones to hack because of all this piracy. All of these things exist only because everyone is getting paid. Would you go to work for free?? I’m sure no one would.

Feel free to comment with your thoughts on the above post. Would like to hear from developers as well as users that thing pirating is ok.

Have you ever wanted a professional looking font for your iPhone / iPod Touch / iPad or Mac game but weren’t sure how to go about it? Maybe you are just lacking the artistic talent? One way to get around this is using photoshop and just making textures of the text you want to use. If you go this route then you’ll be stuck with static text and you’ll need to have a separate texture for each variation of your text, not to mention the learning curve that comes with Photoshop.

With Glyph Designed, you can forget everything I just mentioned above. Glyph Designer is a development tool that was designed by Mike & Tom of 71squared.com, a development blog for the Mac and iOS platform. With Glyph designer you can easily choose from your pre-installed fonts and modify them to your hearts content to make them fit perfectly with your game’s theme.

In this post I am going to cover some of Glyph Designer’s features and also provide a short tutorial on how to use Glyph Designer to make custom Glyph textures that you can then import into your cocos2d game project and use for your in-game text.

If you want to follow along go ahead and download Glyph Designer from here http://glyphdesigner.71squared.com

Glyph Designer Layout:

Selecting a Font to use:

You’ll notice that in the above screen shot, looking at the left most side of the application you’ll see a font browser that has a list of all the fonts that are currently installed on your Mac. You can scroll through this list and select the font you want to use. When you click on a font you’ll notice that it shows up in the preview window. At the bottom left of the app there 2 basic font settings that allow you to adjust the currently selected font. Using these 2 settings, you can change the size and type of the font, and by type I mean; Regular, Bold, Italic, Condensed, etc… whichever the selected font supports.

Editing The Selected Font:

On the right most side of the app you will notice a lot of settings that can be modified. Most of these settings are pretty self explanatory, I will however cover them anyways. The settings that can modified are as follows:

  • Texture Atlas ( Width, Height, Color, Spacing, Auto Size )
  • Glyph Fill ( Fill Glyph, Fill Type)
  • Glyph Outline (Outline, Width, Fill Type, Color )
  • Glyph Shadow (Shadow, Type, Lightsource, Blur Radius, Color)
  • Included Glyphs

I will now cover each of these in more Detail

Texture Atlas:

The Texture Atlas Settings define the properties of the exported texture. If you are not familiar with the term Texture Atlas, think Sprite Sheet, more on that later. You can set the width and height of of the Texture Atlas. I recommend going with the smallest multiple of 2 that you can get away with, meaning: 32 x 32, 64 x64, 128 x 128, etc…

For the Color setting I just set the Opacity to 0 so it doesn’t matter what the background color is, the choice is yours on this one.

You can leave the spacing at a default of 2. Another option to setting the width and height is to check the Auto Size check box which tells Glyph Designer that you want it to determine the best size of the Texture Atlas.

Glyph Fill:

The first option in Glyph Fill is a check box called Fill Glyph. If you want your Glyph to have a fill color, then you should select this checkbox otherwise you can skip over Glyph Fill. For Fill type you have 2 options. You can chose to fill using a gradient or fill using a solid color; gradients are great and look nice but will give you problems if you want to use RGBA4444 unless you set your dithering properly. Maybe Mike or Tom can add a feature that allows you to apply filters when exporting, maybe the ability to choose from RGBA4444 and RGBA8888 as well as some dithering filters. What do you think guys?

With that being said, if you pick gradient then you can pick your start and end colors as well as the angle of the gradient. These are totally up to you and you should go with what you think looks best.

Glyph Outline:

The first option you have here is a checkbox to enable or disable an outline for your Glyph. All of the options here are pretty self explanatory. Choose if you want an outline and then set the width, the fill type, which can be a solid fill type or a gradient fill type and then set your color. The same applies to Glyph Outline with gradients as for Glyph Fill.

Glyph Shadow:

Again, just as with Glyph Fill and Glyph Outline, the first option you have here is to either turn Shadow On or Off by checking or unchecking the Shadow Box. You have quite a few options here for the Glyph Shadow setting. First lets talk about the different Shadow types that you can use.

  • Outer Shadow – This type of shadow will add a shadow to the Outside of your Glyph
  • Inner Thin Shadow – This type of shadow will add a shadow to the Inside of your Glyph. If you want to use an inner shadow, I recommend using this one on fonts that are not very thick.
  • Inner Thick Shadow – This type of shadow will add a shadow to the Inside of your Glyph. If you have a thick font you can get away with using this shadow with good results, you could also use the thin shadow for your thicker fonts for a less shadowy effect.

After you’ve decided on the type of shadow to use we need to look at the Light Source. For the most part the default location of the Light Source should be fine, but if you need your shadow somewhere else then you can drag the light source to a different location, you can also move the light source via its x and y values for more accurate control.

The Blur Radius for the shadow specifies how blurred your shadow should be; in my opinion the default value here should do for most. Last but not least we have the shadow color.. No your shadow does not have to be black, this is your choice, don’t be afraid to be creative.

Included Glyphs:

Not too much to say about the Included Glyphs section. This part of the app specifies which letters, numbers, symbols you want to have in your Texture Atlas. You can edit this to include only the ones you know you’ll use to save some space. For instance if you know you will only use numbers or if you’ll only be using upper case or lower case characters.

Export The Texture Atlas:

Now all that’s left to do before we can use our new Glyph is to export the Texture Atlas, to do this just click on the Export button at the top right corner of Glyph Designer. From the dialog that pops up, just pick a location and specify a name for the Texture Atlas and click on Save.

In the next section I will go over the basics for using our Texture Atlas with Cocos2d by showing some sample code. You’ll be amazed at how easy this is.

Using Glyph Designer Exported Texture Atlas With Cocos2d:

If you’ve exported your glyph from Glyph Designer, you should have 2 resulting files with the name you’ve specified. Both of these files need to be copied to your Xcode Project.

Start a new Xcode Project and choose the cocos2d template.

Place the 2 files that Glyph Designer generated into your Resources folder within your Xcode Project.

After you’ve added the glyph files to your resources folder, select your HelloWorldScene.m file and find the init method. Replace the following code:

CCLabelTTF *label = [CCLabelTTF labelWithString:@"Hello World" fontName:@"Marker Felt" fontSize:64];

with

CCLabelBMFont *label = [CCLabelBMFont labelWithString:@"Hello World" fntFile:@"test.fnt"];

That’s all you have to do to use the glyphs with cocos2d… See, I told you it was easy.

Thank’s to Mike & Tom, we now have a full featured tool that allows us to easily create awesome looking in-game text. Please support Glyph Designer, it will soon be available on the Mac App Store but you can get it now from the Glyph Designer site at http://glyphdesigner.71squared.com

I’ve recently released an app; iOS Icons, on the app store. The app has been doing well and a lot of people have found great use for this tool. I’ve recently started receiving reviews for iOS Icons on the Mac App Store with 2 reviews being completely inappropriate and just plain wrong. Here are some screen shots of the reviews and a link to iOS Icons on the Mac App Store:

Link to iOS Icons on the Mac App Store: http://itunes.apple.com/us/app/ios-icons/id413612688?mt=12#

Screen Shot of Review:

Here is a description as posted on the Mac App Store:

The original dev tool for creating all iOS device icons. Simple to use. Just drag your 512×512 image file into the app and click on preview to instantly see how your icons will look in all available sizes.

The reason that I made iOS icons is because I wanted an app that was similar to Icon Composer which does its job well but only generates the icon set for Mac Apps and not any of the required resolutions for any of the iOS devices.

Supports PSD, PNG, TIFF, BMP, JPEG and many other file formats.

Once your icons are saved you can import them into Xcode.

Version 1.1 has been submitted to the App Store to provide additional requested features ( Icon Names and Rounded Corners and Glass Preview )

Now I would think that if anyone took the time to read the description and maybe even looked at the screen shot of the App then it should be clear as to what the purpose of this app is. The issue I have with reviews like this is that you have no way to fight it. You can submit a concern / issue to Apple about it but there is no guarantee that they will even check into it, let alone do something about it.

That review with 1 star hurt my overall star review, I should have 4 stars but instead I have 3 1/2 stars. This will most likely discourage some people to even look at the app further. As developers we should at least have a way to comment on a review because honestly, some of these reviews are just not fair and some of them as is with this case are completely irrelevant.

I may come across as ranting here, but I needed to say something about it where people could see. Hopefully the complaint I filed with Apple will have some affect and they will consider removing the review but I’m not holding my breath.

What do you guys think? Are you  a developer that has received an unfair or blatantly irrelevant review for one of your apps? What have you done to try and correct the situation?

We thought it would be a great idea to have an installer for the cocos2d game engine to make it quick and simple for everyone to install the latest stable cocos2d build. The cocos2d installer app is a native Mac OS X app that after installation allow you to, with a click of a button, download the latest stable build of the cocos2d game engine, install it and the Xcode templates to get you up and running and making games simple and quick.

You can download Cocos2d Installer by clicking on the link below:

  cocos2d Installer (368.6 KiB, 989 hits)

As new cocos2d builds become available we will update the Cocos2d Installer app so that you can grab the latest version of cocos2d.

We were going to list this app for free on the Mac App Store but because of some of Apple’s guidelines, specifically file locations, we have had to remove it and host it here. If you find the app useful or can think of something else to add to it to make it more useful then feel free to leave a comment.

I would like to start this post by introducing some new software that will make the lives of developers much easier. When I first starting developing my new game Elementals HD for the iPhone I had no idea that loading individual PNG’s as textures for sprites would result in a final memory consumption of over 130MB on load. That’s really bad considering that the newest iPod Touch only comes with 256MB of RAM which to this day I will never understand. Apple added the hi-res display to the iPod Touch which means that images will use twice the amount of memory that they were using before. With the iPhone 4 they did it right and doubled up on the memory which helps a lot with the HD images taking up twice the amount of memory as the SD ones do. So anyway, back to the topic.

I needed some way to minimize the amount of memory utilization, so I started reading about sprite sheets and image sizes in the power of 2, etc… I found a neat utility called Zwoptex to create sprite sheets of all my images. This ended up helping me quite a bit, not only did it reduce the amount of disk space but it also reduced the amount of memory being used. At this time I was able to get my memory utilization down to about 90MB. To me, this is still quite high and I was not satisfied with the result, so I continued to look for a solution. I started reading about PVR’s and how fast they load and then I read about compressed PVR’s. Next, I needed to figure out how to use these PVR’s to lower my memory utilization and speed up my loading times.

I found an awesome app called TexturePacker which runs natively on Mac OS X. TexturePacker is a very similar tool to Zwoptex in that it creates sprite sheets from images but is very different and far more advanced when it comes to optimization. Long story short, I was able to use TexturePacker to create *.pvr.ccz sprite sheets for HD and SD images and reduced my memory utilization down to 50MB… WOW.. Now that is a lot better then the 130MB I started with. What I’d like to do now is present a tutorial on the usage of TexturePacker and walk you through step-by-step to get HD images loaded into TexturePacker, optimize them, publish them and finally write the code in Xcode to make them work. I’ll also share some best practices for memory management at the end of the tutorial.

Software you will need:

  1. Texture Packer

After you are done downloading the software above, you can follow the below steps to install TexturePacker and start up the Demo Project

Install TexturePacker:

If you haven’t downloaded Texture Packer yet, you can download it here. After the download has completed you can double click on the DMG file so that it mounts a disk image. The disk image contains the Texture Packer installer package. The screen should look like the screen shot below:

Texture Packer - Disk Image Contents

Double-Click the TexturePacker Package File and you will see the install screen, like the one below:

Texture Packer - Install

Texture Packet - Install

From there just follow all of the prompts until Texture Packer has completed the install process. You will find Texture Packer within your applications folder. Go ahead and launch Texture Packer. You will get the following screen:

Texture Packer Essential vs Texture Packer Pro

Texture Packer Essential vs Texture Packer Pro

Unless you’ve purchased a license you should choose Essential. The main difference is that with the Essential (Free Version) anything you export will be exported in red. In the next section I will give a brief overview of Texture Packer and the features we will use the most.

Note: All typos within the installer have been fixed since version 2.1.3

Importing Sprites:

Texture Packer - Import Sprites

Texture Packer - Import Sprites

Referring to the screen shot above I used the Import Sprites button to import a selection of sprites to work with. Once I imported the sprites, Texture Packer automatically adjusts the sprite sheet size to fit the 3 sprites I imported. If you look to the bottom right of the application on the status bar, Texture Packer displays the size of the resulting sprite sheet and the amount of memory it will consume. In this case with the above images, my sprite sheet will be 128×128 and consume 64 kB of memory. 64kB of memory isn’t a whole lot but lets go ahead and do some optimization anyway and see if we can cut down on memory usage.

On the left hand side of the app you will see the Texture Settings menu that is divided into 3 categories; Geometry, Layout and Output. Scroll down to Output and find the Image format setting. The default for this setting is RGBA8888 which results in a sprite sheet with the highest quality and the most memory usage. Change this setting to RGBA4444 and watch what happens to the memory usage. 32kB is what the memory usage is now… WOW we just cut memory usage in half but at the cost of quality. Why? The reduced quality comes from taking a 32-bit image and converting it to a 16-bit image. Make sense?

Ok, lets fix the quality to make it look a little better. Two fields down, you’ll see Dithering. The default Dithering setting is NearestNeighbour which makes for some ugly gradients when going from 32 to 16-bit. Go ahead and change this to FloydSteinberg+Alpha and watch in amazement as your gradients start to look like gradients again. You may notice that this results in your sprites looking a bit noisy but remember, we are working with hi-res images here and every 4 pixels will equal 1 point so the image should look pretty sharp, at least that’s what I’ve experienced.

Let’s take a minute to go over the Output Category that’s in the Texture Settings Menu:

  • Data Format – This setting is for defining in what format the sprite sheet data should be processed in. We need to select cocos2d for this. What this will do is generate a plist file that we will load into frame cache a little later.
  • Data File – This will be the output location and name of the data file (plist file for cocos2d) You don’t need to set this as it will automatically be filled when you set the Texture File
  • Texture Subpath – Not sure what this is for, I’ve never used it
  • Trim sprite names – Leave this unchecked, I’m not sure what this is used for
  • Texture Format – Here you will choose the output format of your sprite sheet. You can choose any format you like, they are all compatible with cocos2d but I recommend Compressed PVR (.pvr.ccz). This will give you the most compression and pretty quick load times.
  • Image format - This is where we will get most of our optimization from. For most of the sprite sheets we create we should choose RGBA4444 as it will give you the best result. RGBA4444 is used for sprites with transparency’s. If you have a sprite that doesn’t use any transparency you should use RGB565. If you have a sprite sheet that absolutely needs to have the highest quality then use RGBA8888 but we aware that this will result in high memory use, especially if your sprite sheet is 2048 x 2048.
  • Texture File – This is where you would set the name of your texture file. Click on the browse button to select your location and then give a name. If you are working with hi-res images be sure to add -hd at the end of the filename, you’ll see why, later.
  • Dithering – I covered this earlier but just to re-cap, if you are using RGBA4444 you should use FloydSteinberg+Alpha and if you are using RGB565 then use FloydSteinberg
  • Premultiply alpha – This is used to limit the amount of artifacts and possible thin black borders around your sprites when sprite anti aliasing is on. Also semi-transparent pixels might get too dark without this setting. If this is enabled be sure to add the following to your code:
    [CCTexture hasPremultipliedAlpha:YES]
  • AutoSD – This is one of my favorite features of TexturePacker. What this little nifty checkbox does is automatically create a low-res sprite sheet and plist file for you but you have to make sure that you named your Texture file with a -hd at the end.

A Note from the author of TexturePacker: Whenever possible, you should use Add Folder to import your sprites because this uses smart folder. Every time you add sprites to the folder and update your sprite sheet it re-scans the contents of the folder and adds all sprites. This makes sprite handling much easier than adding single sprites.

Ok, so now we have our sprites imported and have everything optimized. Next we will talk about Publishing.

Publishing Sprite Sheets:

Before you click on the Publish button be sure that you’ve got all of your settings configured the way you want them. Here’s a quick step-by-step re-cap of the steps above:

  1. Import sprites either by using the Add Sprites or the Add Folder button.
  2. Set Data Format to cocos2d
  3. Set Texture format to Compressed PVR (.pvr.ccz)
  4. Set Image format to RGBA4444
  5. Set Texture file to something-hd
  6. Set Dithering to FloydSteinberg+Alpha
  7. Check AutoSD

With all of the above completed go ahead and click on the Publish button. Texture Packer will now export your hi-res and low-res sprite sheets and associated plist data files.

You should have something similar to the following screen shot:

There isn’t too much to say about publishing, the next section will cover how to get your sprite sheets to work with cocos2d.

Writing The Code:

After publishing your sprite sheets with Texture Packer, the next and last step would be to add this into your project and get them to show up in your scene. I’ll be walking you through adding your sprite sheets to your project and showing you code examples of how to make the best use of your new sprite sheets.

Open up Xcode, create a new cocos2d Project from one of the cocos2d templates and copy the 2 sprite sheets and 2 plist files that were exported from TexturePacker into your Resources folder within your Xcode project, make sure that copy files is checked.

Copy Items

Copy Items

Once the sprite sheets and plist files have been added go ahead and click on your HelloWorldScene.m and find your init method. Once you’ve located your init method replace what’s inside the if statement with the following lines of code:

[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA4444];
CCSpriteBatchNode *spritesDemoNode;
spritesDemoNode = [CCSpriteBatchNode batchNodeWithFile:@"demosprite.pvr.ccz"];
spritesDemoNode.tag = 805;
[self addChild:spritesDemoNode];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"demosprite.plist"];

The code above does the following:

  1. Sets the current Pixel format to RGBA4444 to match that of our sprite sheet that we set in TexturePacker
  2. Creates a sprite batch node using the Compressed PVR
  3. Sets a tag ( has nothing to do with texture packer but I use tags for other reasons )
  4. Adds the node as a child to your current Layer
  5. Adds the sprite frames to cache from the plist file that was exported by Texture Packer

Next we need to create a CCSprite from the frames that are in cache, we do this with the following code:

CCSprite *spriteDemo = [CCSprite spriteWithSpriteFrameName:@"fireball.png"];
spriteDemo.position = ccp(size.width/2, size.height/2);
spriteDemo.tag = 1;
[self addChild:spriteDemo];

The above code does the following:

  1. Creates a sprite from the frames in cache. In this case I had an image named fireball.png that was one of the images that was imported into Texture Packer. When Texture Packer creates the plist file it uses the names of your sprites for the frame names, which makes it easy to use.
  2. Next I am setting the position to the center of the screen. size is a variable that I’ve setup that has the height and width of the screen as properties.
  3. Again I am setting a tag, not something you have to do
  4. Last we are adding the new sprite to our layer.

If all went well and you’ve followed all of the above directions then you should be able to build your project and see your sprite on the scene. Granted, this is more work then copying individual PNG’s into your project and just creating sprites from the PNG’s but that is a big waste of memory and will eventually crash your app. Remember, with Texture Packer I was able to reduce my memory to more then half of the original memory utilization even using Zwoptex did not make a huge improvement with memory usage. I would definitely recommend Texture Packer to anyone that is interested in optimizing memory.

If anyone has any questions or comments please feel free to leave them. If anyone has any more optimization tips, please share, I would love to hear them and I’m sure everyone else would appreciate it as well.

Have you ever had to send a text message, but you just lost your cell phone. Maybe had it stolen, or just happened to drop it in the toilet one drunken night (not judging).

Anyway If you’ve ever been in one of the above situations or similar, or just want to try a cool experiment, here’s how you can send a text message for free by sending an email.

Just send your email to one of the email addresses below, substituting ‘number’ with the 10 digit US number you’re sending it to.

  • AT&T: number@txt.att.net
  • Qwest: number@qwestmp.com
  • T-Mobile: number@tmomail.net
  • Verizon: number@vtext.com
  • Sprint: number@messaging.sprintpcs.com or number@pm.sprint.com
  • Virgin Mobile: number@vmobl.com
  • Nextel: number@messaging.nextel.com
  • Alltel: number@message.alltel.com
  • Metro PCS: number@mymetropcs.com
  • Powertel: number@ptel.com
  • Suncom: number@tms.suncom.com
  • U.S. Cellular: number@email.uscc.net

Fill in the body with whatever you were going to type in your text message and hit send.

There may come a time when you need to check your Mac’s version to make sure that your Mac has compatible hardware with certain applications and games, for instance the new release of Angry Birds on the Mac App Store requires OpenGL 2.0 which is not supported on GMA 950 graphics adapters which are used in certain Mac’s. Currently the unsupported Mac’s are as follow:

  • MacBook 1,1
  • MacBook 2,1
  • Mac Mini 1,1
  • Mac Mini 2,1
  • iMac MA710xx/A

In my honest opinion Rovio Mobile failed in a big way on their part by not doing enough testing and ensuring that Angry Birds would run on all devices. Even if they couldn’t get it to run on older Mac’s they should have added specific system requirements.

To check the version of your Mac just follow the quick tutorial below or scroll down for more detailed screen Shots:

  1. Click on the Apple in the upper left part of the screen
  2. Click on About This Mac
  3. Click on More Info…
  4. Under Hardware Overview look for the Model Identifier

Screen Shots:

Let me know if anyone needs any help figuring this out.

It is the year 2275, and earth as we know it has come to an end. The last remaining survivors have sought out to restore the planets resources using their unique space crafts known as Elementals. The Elementals have set out into deep space to collect vital elements while avoiding the deathly fireballs of deep space in hopes to restore balance to the once fruitful planet.

Time is of the essence and it’s up to you to help the Elementals in their quest to save their dying planet.

Elementals features hours of gameplay, challenging physics-based world with zero gravity all controlled via the iPhone’s accelerometer. You get 30 levels in easy mode and another 30 in extreme mode that all require extreme logic, timing, skill and lots of patience to conquer. Quite possibly the hardest game that will be on the App Store.

Features a total of 60 levels (Easy / Extreme), accelerometer, Retina Display Support, leaderboards, achievements, Facebook and Twitter Integration

I’ve started development of Elementals about 5 months ago in my spare time. I’ve done all of it myself, coding, artwork, concept and design, etc…

Main Game Menu:

Options Menu:

Level Selection Menu:

Level 2

The above are just a few of the screen shots of Elementals. I am hoping to have everything done and submitted to the app store before the end of January.

Right now I’m working on memory optimization and plugging a few leaks. I encourage everyone to follow Elementals on Twitter and like it on FaceBook to stay up to date.

Facebook:  http://www.facebook.com/pages/Elementals-HD/127088354021100?v=wall”]http://www.facebook.com/pages/Elementals-HD/127088354021100?v=wall

Twitter: http://twitter.com/#!/ElementalsHD”]http://twitter.com/#!/ElementalsHD

Beta Testing Begins Soon

If you’d like to be a part of the Beta Testing Team please send an e-mail with your info to [email]chrs944@gmail.com[/email] with the subject line Elementals HD Beta Testing

Please be sure to include the following:

  • Your Name
  • Your Email
  • Your Device Type: iPhone, iPhone 3G, iPhone 3Gs, iPhone 4, iPad, iPod Touch, etc…
  • Your website or blog if you have one

Being a part of the Beta Testing Team will get your name / blog / website listed in the credits and also allow you to be among the first to write up a review.