It's time to start building cross platform games now!
I am pretty new to game development stuff. I have a programming background so I can code decently well but game development is obviously much more than that.
I have built three games up till now and all of them have been built using Apple's SpriteKit framework. I do know that SpriteKit is not cross-platform, hence I was limited to developing only for the Apple platform. But I still decided to go for it.
Why did I choose SpriteKit?
I got into game development about 18 months ago. I am not a great gamer myself but I love the creativity behind the games and the absolute freedom to build just about anything through games. So finally I decided to take the plunge.
At the start, I realized how overwhelming game development actually is and not exactly a piece of cake. I read a lot of stuff on the internet on how to go about it. The first thing to do was to choose a Game Engine. Again after reading a lot on the internet, I found that a lot of people use the Unity Game Engine. So I decided to start with it.
But I ran into a problem. Coming from a non-game development background, I found that the Unity docs and tutorials were a little thin for rank beginners (although there a lot of them). I found it tough and overwhelming at the beginning and constantly searching for the terminology being used in the tutorials. It probably wasn't the greatest of starts for me.
So I decided to shift to something more suited to the skills I already knew, which is programming. So I started looking for more programming based and less GUI based engines. There were quite a few but Cocos-2d seemed to be used by a lot of people. But again here, the documentation was very little and it was extremely difficult to even create a project using the docs. So I let that one go as well. Although, the cocos-2d framework has come a long way in terms of documentation and GUI tools since then. With the new Cocos-Creator, it looks like a good deal and I would like to try it out someday.
But after moving on from cocos, I tried to read through Apples's documentation on SpriteKit. I already had a bit of prior experience on iOS development. To my surprise, the documentation was awesome for someone beginning like me. There weren't that many great details but whatever there was, was explained neatly. That gave me confidence that I could actually do some game development.
But there was the downside. SpriteKit could only be used for development on the Apple ecosystem. That had me confused on whether this was a good ides or not. So again, I was back on internet reading up on it. I gained a few things from all that reading. First was that, most of the people preferred publishing to iOS anyways. Second, that it was more important to "finish" a game. Most of the people start developing but never finish it off and that is irrespective of engine they used. Third, that the engine is not the most important thing. If a game is successful, you can always spend some time porting it to other platforms.
Having gained this knowledge, I decided to stick it out with SpriteKit.
And it actually worked out quite well for me. I managed to finish three games and publish them on the AppStore! More importantly, it has given me the experience and confidence, that I can do game development.
So now I have decided to expand my skillset and move on to using the more industry-preferred engines for developing cross-platform games. And in this endeavour, I have decided to try the Unity engine again. And you know what, things are much more clearer than before! I tried out the Unity tutorials and documentation now, and all of it makes much more sense to me. I realize now that my earlier apprehension was just because of my lack of experience in game development; not knowing where to begin with and nothing else! I have already started out with the development of my next game using Unity!
Internet as usual is a wonderful place and I found these tutorials/courses really helpful.
I will post more articles about my experience with Unity which has been great so far, along with the progress of my game tentatively titled - 'Mr. Mustachio'.
This post isn't about which engine is better and which is not. I do believe that it is more upto you what you can do out of a engine. This post is more about trying to tell that it is much more important to get started and sticking it out. There is no perfect option. Find the option that you are most comfortable in learning and take it from there. Do not just take in theoretical knowledge but expand on it by actually building stuff along with it. You will run into tons of problems that will probably teach you a lot more than any book or article. And do whatever it takes to publish your game on your selected platform.
I probably know only 1% of the game development knowledge out there but atleast now I have the confidence that I can tackle different problems, learn different engines, and more importantly finish and publish my games. The learning part never stops!
Good luck to everyone beginning their gamedev journey!