Its finally up! (Well technically its been up since the 15th.) Now squidly adventures, involving perhaps an unparalleled amount of turning around in circles, are available on the iPhone, iPad, and iPod touch.
The last hope for humanity lies with the tired and rusting space freighter Old Jolty; decommissioned long ago but haphazardly brought back to life for one final journey. She has no weapons and she can’t turn left, but she must save the cosmos!
As you may have noticed, its now time to bring myself to the bit of this cycle i’ve been dreading the most, the shameless advertising! On that note any form of retweets, likes, reviews or brief mentions would be incredibly welcome ^^.
Ta-da! Its done! Well… mostly. If this was a just for fun project i’d probably go ahead and distribute it as is and be loyal to the deadline, but this will be going on my portfolio. Thusly it deserves a whole lot of extra scrutiny, testing etc. Still assuming nothing dramatic happens it should be live on the app store sometime this month.
If you’ll allow me to indulge my pedantic nature a moment, theres a couple of differences between the game and video I feel obliged to mention. Firstly, the mission menu has two scrolling arrow buttons not one. Secondly, the later gameplay from the footage has a return to menu button in the corner. These differences are due to me recording the game running on a Mac instead of an iPhone.
I considered using this post as my onegameamonth submission and sneakily editing in a link here later when the games on the store, but that seems a bit too cheeky. So I think i’ll just have to put Old Jolty down as an August submission.
Well it’s been a strange old month for me so far, what with close relatives getting married and my spontaneous decision to travel up to wales for networking. But regardless of this all of Old Nelty’s metaphorical cogs and gears are now sorted. The game is completely running from start to end through twenty levels using placeholder art. Which means I now have roughly two weeks left before deadline in which to sort out the graphical side of things.
I did very almost upload some videos earlier in the month, but I concluded that people probably wouldn’t take well to the game when it appears to be all about cubes spinning around other cubes until the occasional badly drawn placeholder texture zooms onto the screen.
Its pretty clear by this point that I’m not going to have time to get the game through the app store approval process before deadline, so I’m going to treat my deadline purely as a “this is when the game must be complete” deadline, and use the opportunity afterwards to squeeze in some additional testing prior to sending the game to the store.
That said I need more volunteer testers! So if you know me on facebook and have an iphone 4, ipad 1 or higher chances are I’ll be hassling you shortly.
On a side note, I’m considering changing the title of the game to Old Jolty. So if I suddenly start referring to the game as such, that’s why.
As foreshadowed a couple of days ago, I’m planning to complete a new game next month as part of one game a month.
What’s the new game about? Well…
The last hope for humanity lies with the tired and rusting space freighter Old Nelty that, until recently, was considered decommissioned. (For good reason.) She has no on board weaponry and she can’t turn left, but regardless of that, now she must save the cosmos!
Intergalactic space squid terrorize the universe blocking all trade routes and preventing all-important supplies from reaching their destinations.
Only Old Nelty can defeat the squidly hordes and carry the supplies safely to their respective destinations. But how can she defeat the squids with no weapons?
By spinning around them so fast that their heads explode.
Old Nelty (Working Title), is a…. puzzle game? Based around the perilous task of orbiting spacesquid with a ship that can only turn right. Orbiting one is easy enough, but with each squid you orbit you get faster and you’ll need to make sure you remember to dodge those asteroids on the way!
One thing I’m not sure about is the name, what do you think? Does anyone out there have a better name for a ship? Somebody already suggested Old Melty as an alternative… In which case they probably shouldn’t have parked that close to a star….
That’s right I’m still alive! (As is Mr Green line, dispute my best efforts.) Apologies for the prolonged radio silence, long story short, everyone else has had far more important things going on in their lives lately so I’ve been doing a bit of a one-man development team thing even more then usual over here.
But I’m back on the radio now, and as you’ve probably noticed, I’ve brought some progress back with me. You might also have noticed I replaced the site’s games page with a page all about lunacy with far more up to date information.
I’m doing a bit of reorganizing over here, when that’s done I should start blogging and tweeting more frequently again.
Another development video, this time with 100% extra ominous green line! Sorry about that, my video and YouTube had a falling out.
This post is about something a little different, I’ve spent a lot of time fussing with optimization during the course of Lunacy’s development and I thought I should share some of the more obscure things I’ve learnt, on the off chance I can save somebody else hassle in the future.
There’s already a lot of information on the web about the more common approaches to optimization, lowering frame rates, removing lag etc. Repeating all that information isn’t the purpose of this post, so to that end I’ll only provide links to the following webpages, which were a great help to me.
The actual purpose of this post is to highlight a few of the less well-documented potential sources of lag/lower frame rates I’ve run into so far:
1. Unity Planes
Unity planes, (the ones from game object -> create other -> plane), are not your friend. Firstly they come with mesh colliders, you’ll want to change these to box colliders, as mesh colliders are more intensive. (And as far as I can tell, completely unnecessary for a plane.) Secondly, these planes consist of a great many triangles, so you could potentially stand to gain by replacing them with simple (two triangle) planes you’ve brought in from a 3d modeling program. Doing so will make you unable to effectively use vertex lighting on the planes or things like fog. However if you’re not using fog and using baked light mapping, which you’ll probably want to do as its less intensive, then the 2 triangle planes should serve you fine.
2. Too Many Active Objects
Now this may seem ridiculously obvious, but it wasn’t for me so for the sake of any likeminded folk reading this I’m including it.
My trail of thought was that I would be able to get away with large amounts of objects as long as they weren’t within the camera’s rendering range, weren’t referred to by any active scripts and were just simple objects. I tested this with basic cubes with box colliders in Lunacy, queried Unity Answers, but ultimately came to the conclusion that I was completely wrong.
As long as the objects are toggled to active, even if they’re very simple, are not having their polygons rendered and are not interacting with anything, they will still cause a significant drain on performance in large numbers.
We had always intended to have fairly large and expansive areas in Lunacy, to compensate for us not having the manpower to produce a large variety of them. But of course large areas require lots of objects and I ran into this issue. Ultimately to counter act this issue I scripted a system in which all the environmental objects in each area are activated and deactivated in tile-marked segments as the player moves around. The cost of this is the occasional brief loading pause mid level, but it’s a price we’re willing to pay.
3. Dynamic Text
This one comes down to using a custom font set to dynamic, as they are by default. (Set under “Character” in the font import settings.) Dynamic means that Unity generates a texture for each character in the font on-the-fly the very first time that character is displayed. I’ve found in certain circumstances this can cause tiny lag spikes the first time specific characters are displayed. A simple enough solution to this issue is changing “character” in the font import settings to ASCII default set. Though this will mean you’re stuck with only one font size per font file and can’t align the font to center or right.
A Final Note
I should stress these are simply things I’ve found to be the cause my own problems via my own experiments, so they won’t necessarily be the cause of any problems you might be having or even be worth worrying about in your game.
Furthermore, this is my first time working on an iOS game, I’m still learning, so if somebody out there does have reason to disagree with any of my conclusions or can shed light on why number 2 happens, do let me know!
I should also mention that we’re developing in the free version of Unity 4, so if you have Unity Pro I imagine point number 2 could be less of an issue, as you can use static batching.