I’m always talking about the importance of showing off your work to the world, yet I forget to do adhere to my own advice sometimes.
I’ve been working on a Unity game for the last 6 months, but progress has been slow. It’s a side scrolling shmup, and I plan on releasing on mobile devices within the next few months. Most of the gameplay elements are finished, and I’m putting the finishing touches on spawning waves.
The biggest things remaining however, are adding the new features required for gaming devices today. I often look back on game development of the 80s and 90s, and at times I get jealous. On one hand, they had it far easier than we did today.
Features such as in-app purchases, push notifications, global leaderboards, and adjusting for various screen sizes were not a concern back then. They could just focus on writing for that specific platform or console at that time.
One the other hand however, developers in the 80s and 90s had a constant struggle, in that they had to often completely re-write a game to work on another platform. The website Hardcoregaming101.net illustrates this well. The art had to be redone, as did the programming, because the hardware and programming languages between devices frequently did not share any similarities. Now the dichotomy between DirectX and OpenGL don’t seem so bad….
Moreover, I can’t recommend John Szczepaniak’s book The Untold History of Japanese Game Developers enough. It gives some excellent perspective on what it was like to program for games in the 80s.
I’m using a few premium plugins from the Unity store as well
I wrote my own sound manager previously, but this one is even easier to use. It exposes a number of features to the Unity editor, and pools all of your sound effects. Fantastic for a fast paced game like mine, where I have multiple effects being fired off at once, for example, when 10 bullets hit an enemy in rapid succession. A free version is available as well.
I can’t recommend this thing enough. The performance is incredible, and I’m able to quickly create beautiful particle systems in my game. Everything is pooled and handled correctly, so I can draw thousands of things on screen at once, even on mobile devices. The documentation is detailed, examples are included, and the developer is extremely responsive in the forums, and has always gotten back to me within 12 hours.
This is the best pool manager I’ve seen yet. Nick Gravelyn of Brushfire Games had recommended it some time ago, and I haven’t looked back. My performance has gone up considerably, and it’s really easy to stay organized with their manager. I attach it to an empty object in my scene, and because it is global, it is accessible to every object in my game.
The documentation is fantastic, as are the tutorials and numerous videos that they have on the site. The team has two other plugins as well, which I’ve found to be useful for targeting (or ignoring!) specific enemies in a scene.
Hitting some snags
I’ve run into some snags along the way, such as iTween’s incompatibility with Microsoft platforms. I have a write-up coming for that, but long story short:
iTween uses hashtables. Hashtables was deprecated in .NET at some point, and were replaced with a Dictionary.
Why? “The Dictionary class has the same functionality as the Hashtable class. A Dictionary of a specific type (other than Object) has better performance than a Hashtable for value types because the elements of Hashtable are of type Object and, therefore, boxing and unboxing typically occur if storing or retrieving a value type”. Source: http://msdn.microsoft.com/en-us/library/4yh14awz(v=vs.90).aspx
The problem however, is that Unity uses an ancient version of Mono on iOS and Android, but .NET on Microsoft platforms. So iOS and Android miss out on a number of newer .NET features, but some Unity plugin are still using these older, removed, features.
Wrapping things up
I’ll have more to post in the next few days as I make more progress. I think the next thing I’m going to add is integration for Gamesparks. The more I look into it, the more I like it. I think your first 10k users are free as well, so I’ll likely tie in support for mobile services, and add things like leaderboards and push notifications.
If there’s something I should be looking at, or plugins that you recommend, let me know!