April 15, 2011 by Sensei
I have received feedback regarding my tests that my numbers were totally off. Michael Perry from Garage Games took time out and ran my tests…and he measured 49fps to my 1fps! Michael was able to get a couple of the people on Garage Games IRC to reproduce his results, meaning we had multiple confirmed reports of 49fps.
April 14, 2011 by ickydime
ChartBoost announced last week that they “are launching [their] first tool: cross promotion through customized boot up interstitials.”
Who is ChartBoost? And what are boot up interstitials???
We have been working on the App Store since before it was even born
That should cover the who, but what about cross promotion boot up interstitials? Luckily, I had the pleasure of chatting with Maria Alegre, co-founder of ChartBoost, a few weeks ago and she was able to explain this in further detail.
Lets start with the cross promotion bit. When I hear cross promotion I think of banners above web games that display callouts to go try some other game. Typically, publishers either have to pay for these ads or they can trade… ex: give 100 clicks away for your game in exchange for 80 back. The assumption here is that even though your players are leaving your game, they will still come back PLUS you will have 80 new users on top of the returning players. Also, there is some ‘strategery’ in who to display the banners to as some publishers only display the ads to players who are not buying in-game purchases.
In ChartBoost’s case, cross promotion is not a typical banner above the app, instead it is through ‘customized boot up interstitials’. ChartBoost’s interstitials are full screen advertisements. They are called ‘boot up’ since they get the most bang for their buck if they are shown when the apps starts; however, I am under the impression that you could display them at any time. The word ‘customized’ is key, because you can format the advertisement to mimic your game’s art style and thus make it appear more like news instead of an annoying ad.
Although I do not believe they are using ChartBoost, Maria told me to check out Miniclip. Miniclip has an example of a full screen ad (or interstitial) in their game Fragger. After a few levels you may see an ad similar to the following:
They had recently released iStunt2 and were using these full page ads in their existing titles to encourage their user base to try their latest and greatest. Click ‘Get It Now!!!’ (and yes, they did just put 3 exclamations on that button) and you will be taken to iStunt2′s app store page.
Ok, so if MiniClip did that without ChartBoost, why do we need ChartBoost?
Well, for one, you can use the cross promotion aspect and buy/sell/trade installs with other games. But secondly, and what I am most interested in, is the analytics and fine tuning that ChartBoost provides. They will handle tracking impressions, clicks, and installs. Plus, they have tools to let you tweak who sees the ads and how frequently they are shown.
Lets say our studio releases a new game: “Avian Exasperation!”.
If we have ChartBoost already installed in our previous titles we can start a campaign across those titles. We can set parameters to ensure those who are already enjoying our latest irked birds game will not see the ad at all. For everyone else, we can set how many times and how often the ad will be shown. ChartBoost will keep track of all of the impressions/clicks/installs and report back to via their web app.
And there you have it. ‘Customized boot up interstitials’ in a nutshell.
April 12, 2011 by Sensei
The performance ‘ceiling’ of a scripting language needs to be high enough to allow for a game designer to express his or her creativity. The more a designer can do in their sandbox, the better the final game. Its important to find that balance, where the big and hard stuff exists in C, and the creativity and fun is expressed in script. Ansca Mobile is a prime example of a company who’s found that balance, and shown that you can do a LOT with a scripting language!
A bit of debate occurred over on the Garage Games forum regarding the unrealistic nature of my second part of the iTorque2D vs. Cocos2D performance tests. The gist is that I shouldn’t be doing what I’m doing with TorqueScript. I should be taking anything ‘related to performance’ and re-writing them in C. I disagreed in the forum:
April 11, 2011 by Sensei
I have just completed documenting and comparing the rendering subsystems of iTorque2D and Cocos2D. What started as a complex foray into graphics performance optimization took some adventurous twists and turns.
Phase 1: Rendering
Rendering systems can’t really be that different, and as such, there isn’t anything major I can say that is different between the two. They both have scene graphs, they both sort the scenes to be displayed. Each iterates over its children and renders the objects using OpenGL. Most of the openGL calls are nearly identical.
So what causes one rendering system to run 100 sprites at 1fps, and the other at 60fps, if they are both so similar?
April 7, 2011 by Sensei
One of the more confusing areas of development for iOS a developer may come across is PowerVR Texture Compression (PVRTC).
What is it?
PowerVR Texture Compression is a great technology developed by Imagination Technologies. They make the graphics chips in Apple’s iOS devices, and the chips come with this technology along with many others. Uncompressed images are big. Images, normally, must be uncompressed to be used on your graphics card. So a 512×512 jpg on your computer may only take up 100KB on your hard drive, when you display it, it takes up about 1 Megabyte of space in your video card.
Think of PVRTC as jpg for your video card. Instead of uncompressing that jpeg and sending a megabyte over to your video card, you can take a .pvr image and send it over, and it does not need to be uncompressed. PVR compressed images have a very specific, fixed compression. They can either be 4-bit, or 2-bit. 4-bit images take up 1/8th of the space of an uncompressed image, and 2-bit images take up only 1/16th.
April 6, 2011 by Sensei
Over the past few days I have been determining the performance of iTorque2D, the game engine we are currently using to build our games. Our criteria for picking a game engine was broad, and we knew when we chose iTorque2D that performance would very possibly be an issue.
In order for me to correctly determine the potential performance on the platform, I created basic tests in both iTorque2D and Cocos2D. I chose Cocos2D because it is a good bar for performance on the iOS platform. They also already have some performance tests which are quite useful.
To put it plainly, Cocos2D blows iTorque2D out of the water when it comes to graphics performance. These tests were run on a first generation iPad.