As of today’s morning, Railyard: Match-3 Evolved is finally published on 5 platforms – Android, iOS, Windows, OS X and Linux.
Last week was a fucking blur. Launched Android version on 23th, got no attention, proceeded to build a desktop version, released yesterday, at the same time receiving the message from Apple that iOS version got approved.
If you’re gamedev going to publish your first game, here’s some advice.
Prepare your audience, build your brand recognition, round up some press people, rally your fans – all before release.
Don’t rely on your Facebook friends and Twitter followers, they will not like, repost or retweet. It’s not like they’re being total dicks, it’s just what people are – you can be drink buddies, schoolmates, colleagues, but they don’t give a fuck about work of your life if it’s outside the sphere you two interact in.
A video is worth a hundred screenshots. Make at least one trailer and at least one gameplay video.
Post everywhere and every day. Get used to post into #gamedev and #indiedev on Twitter, /r/gamedev and /r/indiegaming on Reddit. Get included in all the indie databases. Never forget to link back to your game’s official page/site.
And may the gods of indie gamedev watch upon you with a smile, because if they’re not, you’re fucked.
I’m too busy finishing Railyard, hopefully will push it to App Store and Google Play tonight. One more tutorial, shop system, couple of textures, credits (me, me, me again), screenshots and press-kit. Still not much to write about, but I’m planning a post about non-physics uses of physics engine in Unity3D. Meanwhile, here’s some random dev stuff you might find helpful.
I went on and bought Galaxy S3 for tests and deployment. Had to launch the game on it a single time to start optimizing everything.
First, dynamic lighting and shadows – had to drop those, apparently a huge performance hit. There goes my dynamic day/night system (still plan on returning it for PC/Mac/Linux versions). As for right now – I made sure the general picture is not flat with lightmaps and some fake shadows. Android – 12FPS.
Second, had to cut on geometry with LODs. If you’re on Unity’s free licence with no LODs, just cut your models, don’t let a scene have more than 50K tris on Android. iOS can handle much more, btw, especially my precious iPhone 5S. After LODs, performance on iOS skyrocketed, 30FPS on iPad 2 and Mini. Android – not so much, 15-17FPS.
Third, don’t use Unity’s built-in mobile shaders. Better grab a copy of Kenny Lammers’ shader cookbook and write your own. I completely replaced standard shaders with my own, which wasn’t really a big perf boost, but gained me 3-4 FPS on Android, which is an OK result. It’s now 20-21FPS on Galaxy S3, which is probably good, because the device is pretty old.
Fourth has nothing to do with performance, but. If you want to draw an object in front of others and achieve that with shaders, don’t use Offset instruction. On Android, it will fuck you up. Better solve that with render queue order, like, “Transparent-10” or “Geometry-20”.