Making a mobile game
Lately I have been working on a new mobile game called "Topple Toast" with my friends from ShinyPixelGames. It is inspired by games like Flappy Bird combining cute pixel graphics from the SNES era with simple gameplay and an insane level of difficulty.
What we call a mobile game nowadays is basically a game you can play on your smartphone. A smartphone, as of 2015 is anything that can run iOS or Android, or maybe possibly Windows 10. Yeah, there are other phones that are good too, but they can only play a fraction of the games out there because their platform is not "mainstream" enough.
Let's talk about Android for a second. Android is the dominating player right now with a market share of more than 70% worldwide and even more than that in China or India.
Android is also Java based crapware with no real multitasking and not really suited for games. A mid-range Android phone will easily run out of memory during a simple game, and will cause your battery to drop rapidly. Action games will usually come with micro-lags because there is always something going on in the background and apparently the game developer has no control over it. The accepted solution seems to be a better phone, leading to ridiculously overpowered Android setups with octa core CPUs and gigabytes of main memory, just because Google is not able to deliver a good operating system. I'm talking about my experience with Android 4 by the way, maybe Android 5 has more to offer but I'm not convinced yet.
I really hope things are better on iOS, as I don't have any experience with it yet. It would explain why iPhones are still big on the mobile games market, even though Android sells so many more phones.
To get a game out in the mobile world you usually have to develop for multiple platforms simultaneously. This can be a burden, but good news is that there are already some cross-platform frameworks for game development out there.
I ended up choosing Cocos2D-JS, which runs JavaScript code through an interpreter, while the underlying function calls are implemented in native code. This is worse than going all native performance-wise, but has uncanny advantages, like being able to test your game in a web browser and having a HTML5 build for free. The other cool thing about Cocos2D is that it's completely free and open source.
Other people use Unity, which also runs through an interpreter, and I don't suppose .NET bytecode executes faster than JavaScript. Mobile JS engines usually have very good optimizations.
Another interesting option I found was Phaser, but it doesn't run well enough (yet). The problem with Phaser is that it purely relies on HTML5 with no native code on the mobile phone. This leads to compatibility and performance problems.
In summary, it's still far more comfortable to develop games for PC, or even for handheld consoles like Nintendo 3DS. The main reason the mobile platforms are so intriguing right now is because literally everyone with a smartphone is a potential player. This is not so different from the Flash game market after all where anyone with a web browser could easily access your game in seconds.