Long time no see, right? Just for fun, I wanted to write up some (initial) thoughts on the topic of Unity, the game engine. Not sure if I've mentioned it before, but I've been keeping an eye on Unity for years (since 3.x days I think), on the prospect that I might actually use it someday for my own games.
After spending way too long on making the general engine code for Jewels 2 (remember the engine consisted of 75% of all my code in J2, quite a bit of which I ended up not needing at all!) it occurred to me that maybe it's not the best use of my time if I actually want to make games. I have two kids, a day job and generally a lot less time to tinker with gamedev than I used to, so perhaps it should be spent not making engines, but games. And I don't even want to count how many times I've started building a game (engine first, of course) and actually ended up with an incomplete engine and no game!
With that in mind I decided finally to use Unity. Early this year I got back to my old day job of making learning games for children and conveniently enough we use Unity there too, so it was a great chance to actually use the thing. Before I had only tinkered with it, made a couple of very small prototypes.
Now that we've established why I wanted to use Unity, and I've actually used it for some time, I wanted to list (not necessarily in any particular order) some things I like and don't like about it. Nothing is perfect, after all. This is from an "old school" do-your-own-engines-in-C++ -perspective, so subjective stuff all around. Also goes without saying that I'm no Unity expert; I'm still learning to get into the proper Unity-mindset and finding an Unity-ish way of doing things, which often is vastly different from what I'd normally do as a coder. (Some of you may be wondering why Unity, instead of, say, Unreal Engine? Well I'll get to that in a bit.)
So there. My initial impressions of Unity. I'm sure I forgot some points I wanted to mention, but I will update this later if anything worth adding springs to mind. No doubt using Unity more will reveal new pain points, but I still believe that it is better to use an engine (be it Unity or Unreal or whatever) these days, IF your intention is to make games and not to tinker with lower level mechanisms. And for me, personally, seems that Unity is a great choice.
UPDATE on October 6th: added notes about co-routines, terrain and iOS development being shit.
Just a quick update: I made a (too long) video with some gameplay footage demonstrating the different game types in Jewels 2. It is a not-so-great promotional video, and only about 6 months too late! Take a look nevertheless, if you haven't played the game and the static screenshots just won't cut it!
Hi again, happy news this time! My wife and I had our second child on the 31st of July, a little sister to our now three years old Nella. Naturally this means less time to work on games, at least initially. Nevertheless I'm hoping to set aside some time to work on Jewels 2 soon, and try to track down the nasty saved game problem some people are experiencing.
Anyway, to keep this one short: here are some pictures. Bye!
Let's see, the bad news: it seems that I am unable to update the Jewels 2 iOS-version any further. The good news: umm, let me get back to you in some days time. It's time for another rant folks!
As you can see from my previous post, I happily announced the iOS-release of Jewels 2 — it was great to get it out and have some time off. Since that, I've been updating the Android-version occasionally, fixing bugs and adding minor things. Of course I wanted to get the same fixes out for iOS as well, and finally about a month after the initial release I had an update ready to deploy to the App Store. Business as usual, right?
I waited for a week to get to the app review, which was then rejected. First time for everything, huh? I had forgotten to add "Restore"-button to the IAP-Shop, so that was valid reason to reject it (of course it should not have been approved initially either). But another reason was also given:
Specifically, the app name and screenshots are confusingly similar to the popular app Bejeweled Blitz.
They had attached one of my screenshots showing a lightning bolt. Hmm, I thought. "Confusingly similar"? Well yeah they're both match-3 with gems, like thousands of other games out there. And yes, there seems to be lightning bolts in both games. I didn't think much of it, implemented the Restore-button for purchases, replaced that particular screenshot and resubmitted within a day.
Another week went by and the game was reviewed and of course rejected again.
Specifically, the app name and screenshots are still confusingly similar to the popular app Bejeweled Blitz.
This time they had attached three of my screenshots. I tried to figure out what it was that was so "confusingly similar" in those shots, comparing to some pictures from Bejeweled Blitz (a game I've never played; the old, 1st Bejeweled is still the only game in that series I've actually played). As for the name, I don't think it is very easy to confuse "Jewels 2" with "Bejeweled Blitz", but I guess it is possible, so I changed the name in the metadata to "Jewels 2 (Sequel to iJewels)" to avoid any confusion.
When I asked Apple about what was wrong with the screenshots and the name, I only got a reply that they scheduled a call with an Apple representative. I thought it'd be easier to handle this through email/Apple Resolution Center messages (especially considering my spoken English sucks!) but that was not an option, it seems, since they didn't reply to my comment about it.
After a couple of missed calls (my fault) I spoke very briefly with a member of the app review team. He said that the backgrounds are confusingly similar, so I just need to change those screenshots. Alright, good to know! Another week had passed by and personally I'd preferred to have that answer given when I asked about it earlier instead of insisting on calling me. Oh well, couple of weeks here and there, no matter.
Right after the phone call I then googled some screenshots of Bejeweled Blitz and indeed both these games have some nature scenery in the background (although mine are dynamic ), so I tried to select screenshots that don't have similar scenery elements in the background. Another submission for review, with changed name and not so "confusing" screenshots I expected that matter was finally settled. Took some time but not a big deal, right?
Except I got rejected again! Raise your hand if saw that coming. I have to commend them of having the decency of rejecting me sooner than a week later, though. The reason for rejection:
Specifically, the screenshots are still confusingly similar to the popular app Bejeweled Blitz. For example, the "jewels" are identical to those in the app Bejeweled Blitz. Additionally. the lightning bolts are very similar. It may be appropriate to also revise the app's content.
Well shit; thanks for telling me NOW that the whole damn artwork is "confusingly similar" — it's not like I would have liked to know that a month ago, or maybe even when the game was first approved into the App Store! Way to go Apple!
Also, this line in particular was interesting: "the "jewels" are identical to those in the app Bejeweled Blitz." Identical, really? Since English is not my first language, I went to Dictionary.com to check what they had to say about the word 'identical'.
Dictionary.com on identical: similar or alike in every way
"In every way." Sounds about right. Now let us compare those "jewels" from both games. (For the App Store review team members amongst us, Jewels 2 is on the left hand side while Bejeweled Blitz is on the right.)
Hmm. Similar shapes and colors, sure, but identical? As a side note, with just a quick search I found several games (on the App Store) that use graphics stolen from Bejeweled, I'd rather call those identical.. Apple of course replied that just because there are approved games that are non-compliant with their terms, does not mean that my game can be approved. Fair enough, it's their store after all.
Basically this means that I cannot update Jewels 2 for iOS any longer, unless I redo all of my graphics and effects. And that's not going to happen. Maybe if I stole the graphics from some other game it would be alright? To think I used hours upon hours of my development time fighting the piece-of-shit IDE that is Xcode in order to make the game work nicely on iOS, damn…
Yes yes, if you're just itching right now to make comments like "you got what you deserved by making a clone game!", well, go right ahead, this would be the perfect opportunity for such a laugh. Hilarious, even! Had your fun? Awesome, glad I could entertain. That's what games should do, right?
* * *
Back to topic at hand. Now I kinda see what they're coming from, perhaps — if you're half-blind — you could confuse these two games by their appearance; a match-3 game is a match-3 game no matter how you slice it. But the way this whole incident was handled, that just is ridiculous. Why approve the game in the first place if it's not appropriate? Why not tell me — when I clearly ask — what the problem is, from the beginning, instead of making me guess and wait for a month? Why waste time of both parties? Why state in a phone call that I only need to change the backgrounds in the screenshots if I actually need to change the whole fucking appearance of the game?
All this has left such a bad taste in my mouth, that I just might be avoiding the iOS platform in my future endeavors and Apple products in general from now on. This is coming from a guy who has an iMac, two Macbooks, an Airport Extreme, two iPads, iPod touch and four different iPhones. (Most of those are test devices for testing only.) Luckily I'm mostly a PC user (I especially hate coding on Mac, pure insanity!) and I've been a happy Android-user both in tablets and smart phones since 2011, and actually even my wife made the switch from iPhone to Android just a month ago (unrelated to this incident, believe it or not) so I think we'll manage. I also might be overreacting a little, but that's for a future me to decide. For now, it seems adequate to let off some steam. Maybe I'll watch Commando while at it.
Finally: I know I've been critical about Android in the past as well, but that platform has improved hugely in last couple of years whereas iOS has stagnated a long time ago (might change with iOS 7, but doesn't really matter to me). Plus developing for Android has none of that provisioning profile + certificate nonsense, I can just toggle USB debugging on and test on my device. Best of all: they're unlikely to pull off shit like this on the Google Play Store!
Phew! Usually I don't write posts like this, but this was such an weird experience that I just had to document it. If you made through the whole beast of a post: what do you think? Am I just a whiny asshole that should not have made the game in the first place, or do you agree that maybe this could have been handled differently? Is there a lesson to be learned here, maybe for both parties? Feel free to sound off in the comments! Cheers everyone!
PS. Quickly go and grab Jewels 2 and iJewels from the App Store before they disappear (might happen, after this venting who knows?), with the caveat of no further updates!
Tip: On some older, fill-rate limited devices such as iPhone 4 and the original iPad, you might want to go to Jewels 2 Settings -> Advanced Settings and tick the reduced resolution box, then exit and restart the game. Also turning of the "Water Effects" helps if the game feels sluggish.
Another tip: If you happen to have several devices such as a phone and a tablet, do check out the awesome game data sync feature in Jewels 2, and have your game profiles and saved games synchronized across multiple devices! Just sign in with Google+ (from the main menu) and you're good to go — it's especially cool since it works across platforms: start a game on your Android-phone and resume it on your iPad, for example.