Rocket Jump website is live!

Categories:Announcements

Rocket Jump Logo

The Rocket Jump website is here at long last! It’s pretty bare bones at the moment I know but we’ll soon be filling it up with the latest developments here at Rocket Jump.

Get to the Chopper Video Progress 20/06/11

Play through of a level in Get to the Chopper. There are still plenty more features and visuals to go in plus all the sound is place-holder, but at least you’ll get an idea of how it plays. :)

Get To The Chopper Progress 18/06/11

Categories:Development, Get to the Chopper

Gameplay has come a long way in the last week. The addition of a simple yet compelling combo system helps that a lot. More props have been added and I’ve started the long road of building an hour or so of game content. We now have 4 levels! Here’s a peek at some of the new props, enemies and explosive red barrels!

Sounds, CPU and everything inbetween.

Categories:Uncategorized

Here’s something you Unity developers should know when developing for mobile or low end devices.

Sounds can kill!

Well actually they won’t but they can have you chasing your tail for a while and a half! You see the Unity profiler has a CPU section which is great for finding out what’s taking up all the precious CPU time right? Well… not always. Unity on the iPhone uses the Apple sound decoder which is great because it’s faster/better, sadly it does not show up in the CPU profiler. Instead the only indication of its expense is in the Audio profiler.

This may not seem like a big deal but the real problem is that when the audio thread is decoding lots of sounds at once it starves the main thread of time and what’s really bad is this appears in the CPU profiler as random spikes in random functions throughout your program. This is a big gotchya!I was scratching my head trying to figure out why functions with almost nothing in them were taking 20 milliseconds. It got to the point where I was trying random things like reducing the total number of objects in the scene, killing specific effects and assets and it was all in vain.

So just a word of warning to you all when you add your sound effects to Unity. Make sure they are set to ‘Decompress on load‘. This may give you a few more MBs of memory usage but it’s worth it as any other setting will cost you about 5-10% CPU per sound playing.

Get To The Chopper Progress 09/06/2011

Categories:Development, Get to the Chopper

I haven’t posted many screen shots recently so here are some. We just did a big overhaul of all our shaders. They are now more efficient and look better! I also found 35% more CPU through changing how sounds are done so it’s running really good (almost 100fps) on iPhone 4 now… But that’s a fail/win story for later.

Right now here’s a time-laps of our day night cycle in action! Enjoy.

Asset Store Progress?

Categories:Asset Store, Failures

So some of you might be wondering how my asset store experiment is going… Well… It’s not. There is a bug in Unity that is preventing me from submitting to the Asset Store. I’ve received a very small amount of attention from tech support, something along the lines of “try turning it off and on again” – Do you not think I’ve turned off Unity in the week it took you to reply to my support request??!?!

 

Anyway, vent over. Some day in the distant future I might be able to tell you I’m able to feed myself from the Asset Store income. But for now I’ll go back to busking while it takes them another week to reply to me.

Big Milestone!

Categories:Successes

I drank my 100th cup of tea while working ‘at’ Rocket Jump today!

 

WOOOO!

Damn Unity!

Categories:Development, Lessons learnt

Yeah so… the day had to come where Unity finally showed a weakness. Sadly for me it’s show a few all in one day which made me rage a little. So I thought I’d write a quick list of things you should be mindful of when using Unity and what limitations you may be faced with. I’ll also note a few workarounds for some of the issues.

Unity Fails At:

User Interface – Unity GUI is rubbish. It’s slow. It’s ugly. It doesn’t have a visual editor which is very un-Unity. It makes the garbage collector go mental creating giant frame spikes every so often. The only way around this is to build your own UI system within Unity or buy one of the 3 or so on the market on the Asset Store. However at $200 for just a UI system after buying Unity itself… I chose to make my own and hopefully sell it on to make back the cost. Besides, all the UI systems for sale are predominantly 2D systems that don’t support the pipeline from Maya to Unity that well. Mine will! (hopefully)

Pause and Time Control – Unity is very limited when it comes to controlling the time step. You can scale one global deltaTime through the use of a timeScale variable. Setting this to 0 is also how you pause. The limitation with this system is that everything uses the same global deltaTime and you can’t override built in Unity component’s update functions to use a different delta. The problem is that when you set the timeScale to 0 to pause the game. You pause EVERYTHING including your pause menu animations… Not ideal… My work around for this at the moment was to make a component that maintains a realtimeDelta calculated from the Time.realtimeSinceStartup variable. I then have a realtimeAnimation component that sets all animations speed to 0 on Start and updates their time and samples them manually. As I said this is just a workaround but it does the trick and now I have a nice animating pause menu. However I’m currently developing a much more in depth time system that will allow you to group objects and scale their time without effecting anything else. Great for separating menus from gameObjects or even enemies with slow time spells cast on them. It’s scale physics simulation, animation and all the user to scale any of their own components.

Cannot Copy and Paste Animation Curves - Don’t get me wrong, the Unity animations system is nice and all… but WTF, no copy and paste for animation curves?

Cannot Nest Prefabs – You would think you could create prefabs for objects that contain links to other prefabs. This way you could then maintain each level item individually but also have prefabs of set pieces you’d like to use over again containing these individual items… Sadly it can’t be done. Not yet anyway. I read on the Unity Feedback site that this feature is under way or at least under review.

Binary Files Means no Merging – Good luck having a large team work on a single game. We’re just two people strong and we still get conflicts all the time. Maybe our work habits aren’t in sync with Unity… But I’d rather blame the fact that all scene files and prefabs are saved in binary format meaning you simply cannot merge changes if two people happen to edit them at the same time. Good communication is the best way for this not to happen. I’ve also found that as our game gets larger the chance of conflicts is reducing. I’ve also read about someone who extended the Unity Editor to read and write  XML versions of those files so that they could merge them. This might be worth more investigation.

Extensibility of Built-in Classes – The problem above and a few others that escape my mind at this point could be easier solved if I could just inherit from their built in components and windows! The only work around I know is to duplicate their interface with a wrapper class and modify what you have to that way.

I’m sure there are more short comings of Unity but I haven’t run into them or haven’t remembered them at this moment. But for all it’s short comings I’d have to say that overall I’m still very impressed with Unity and it’s well worth the money. Why? Because Get to the Copper looks awesome, plays well and runs on PC, Mac OS X, iPad 2, iPhone 4, iPhone 3 (but it’s slow and looks terrible), and on the web and with no platform specific code or assets! I’m yet to test on an iPad 1 or iPhone 3GS but I’m assuming it should be all good but may require a bit more optimisation on the iPhone 3GS.

Unity Asset Store

For those that don’t know Unity has a feature called the Asset Store. The Asset Store allows Unity developers to place packages of art assets, sounds, scripts, tools, ect and sell them at a price to other developers. My first thought when I saw this was hey that’s a neat feature to have built right into Unity but I have been a sceptic of the content for sale there. It seems to be a big mixed bag of very useful things like 2D UI libraries for around $200-$300 and then small useful tools (that should probably just be bundled with Unity) that allow you to edit fields on multiple objects all at once for $5. Finally there are really questionable things like Ultimate Timer which seems to just be a wrapper around a C# event and a float selling for $55?!?!

This leaves me wondering how successful people can really be on the Asset Store. The only facts I know right now is that the top earner last quarter got a check for $15000 (US I assume). He sells two things on the Asset store for $150 and $200. Unity takes a 30% cut so the total amount spent was $19500 in 3 months. Divide this by the average price of his products and you get to a total of roughly 110 people. That’s not a lot to be honest. Another statistic which is in line with this is Rage Spline. This tool had been out for a week and had earned a total of $3000. Assuming the asset store follows normal online store selling trends this number should increase more slowly in following weeks. Rage Spline sells for $50 (Good price imo). Total number of people who bought this? 60. Again, not a lot of people.

This makes me wonder how many people there are in total actually purchasing items from the store? Which types of items are having the most success? What price range of items has the most success?

I’ve decided to do an experiment. I have a tool that I’ve polished up and am going to release on the Asset store for $2 (The minimum amount above free). Hopefully this will give me an indication of the number of people willing to buy things for very little as the only statistics I have are for things that are quite expensive. After that I’ve got another more useful tool I’m working on that I’ll release for around $15.

I’m going to post all my findings here. If anyone else reading this is on the Asset Store and has some numbers it’d be nice of you to share them as well!

App size

Categories:Development

So as a lot of you know there is a 20MB limit on apps you download over air (3G) on iPhone devices. I was a little bit worried that Unity would come with all sorts of bloat and there’d be trouble trying to get it to fit in the size limit. This is important because you app will be downloaded about a million times more if it is under this limit.

Anyway I thought it’d be a good idea to test and see exactly where we are in our memory usage for Get To The Chopper so we can come up with some asset budgets to work within. Seeing as our target platforms are iPhone 3GS and up as well as iPad devices this greatly improves the situation. I can remove armv6 support from our app because this is the old version that only older iOS devices use. Seeing as Get To The Chopper will probably fail to run or run very slowly on those devices there is no loss in app downloads doing this. If anything it’ll keep the review scores a little higher and hopefully encourage more users to have a blast while playing.

So anyway after removing armv6 support, dead stripping code and using micro mscorlib to save a little more room Get To The Chopper comes out at a whopping 21MB!!!

….not to worry though, the apple limit is after compression so we’re only at about 7.5MB accounting for a little extra size from the apple DRM addition as well. The next task it to figure out what to fill this mammoth compressed 14MB of spare app size with!?!?!

Any ideas?