5 ms·
I wonder why they chose android first over iOS, considering paid apps generally do better on iOS.
by bignoggins 15y ago
I wonder why they chose android first over iOS, considering paid apps generally do better on iOS.
- city41 15y agoBased on Notch's G+ updates, I get the impression he's pretty content and not really looking to maximize profit. So he probably went with the platform he prefers for whatever his reasons are.
- ghiculescu 15y agoProbably because Minecraft was already written in Java so this wouldn't require as much porting.
- exDM69 15y agoThis brings me to a point. I was thinking about writing a game (real time 3d graphics, etc) for desktop and mobile, as many platforms as possible. What would be the language or tool of choice to go with? My conclusion: in 2011 you should write your program in C if you want to reach the widest audience with a single code base. You'll still have to write some Obj-C for OSX/iOS but it's easier to interop Obj-C with C than any other language. With Android you go with NDK and you might have to write a little Java/Dalvik if the default launcher of NDK is not good enough. On desktop Linux you'll need a little bit of X11 programming. On iOS, OSX, Android and Linux you can do use Posix system calls pretty liberally but have to keep some portability issues in mind (e.g. epoll vs. kqueue). Of course then there is Windows, that has almost nothing in common with any other platform out there but it can still be programmed with C. I've seen products that claim to give you portability across all these platforms but my experiences with that kind of frameworks have always been negative. Some cross platform game engines may be able to deliver a bit better. Of course then there's the option of simply duplicating the code base for all platforms which seems to be popular with small apps. With a game, where the graphics and game logic are the majority of the code, you probably don't want to duplicate that part. You could also try writing some of the non-speed critical stuff (like game logic) with a scripting language like Lua (if your appstores allow you to do such a thing). I am slightly disappointed that we still have to write C to write code that's fast and portable, esp. on mobile platforms. Also the lack of any kind of standard library (apart from libc and posix) makes a cross-platform developers job a bit harder.
- ordinary 15y agoI'm curious: what made you discard C++?
- exDM69 15y agoC++ support on embedded devices and smartphones is kind of iffy. First there might be actual language features missing because of a simplified runtime system those systems use. I'm primarily talking about exception handling but also other features. Second is the standard library. The systems in question might not ship with a decent C++ standard library ("STL"). Third problem is C++0x. If I were to write C++, I would definately want to use C++0x, the language has cool features like auto and lambda and the standard library has nice additions w.r.t. C++98, especially std::thread and std::chrono. Third is the API's you have to deal with. Using C API's in C++ apps either requires you to use a wrapper layer or give up using constructors, destructors, exceptions or at least give very special attention to those and end up writing code with a bastardized C/C++ hybrid. Don't get me wrong, I like C++ but it's always a PITA to try to write something portable with it.
- NickPollard 15y agoI'm writing a game engine at the moment, specifically for PC but also potentially to experiment with on mobile platforms, and I decided to go with C, for exactly the reasons you've mentioned with.
- leon_ 15y ago> with a scripting language like Lua (if your appstores allow you to do such a thing) Which appstores forbid that?
- exDM69 15y agoI might be wrong here, but didn't Apple app store have limitations on what languages you were allowed to use. I don't know whether or not that applies to having an embedded interpreter like Lua.
- 15y ago
- watty 15y agoI'm guessing he was able to reuse some of his java code in the mobile version (as opposed to a complete rewrite). He probably spent most of his time optimizing - PC Minecraft can bring gaming machines to their knees.
- reidmain 15y agoThey actually brought on a developer specifically to work on the Android version. Notch and Jens are the only two developers who work on the PC version of Minecraft. Everyone else that has been hired at Mojang is working on their next game 'Scrolls'.
- windsurfer 15y agoProbably something to do with Minecraft being coded in Java?
- juliano_q 15y agoI think because of Java and because is easier to port Minecraft to the Xperia Play than to pure touch screen phones.
- b_disraeli 15y agoI believe it was part of some sort of deal with Sony Ericsson to get an exclusive for the Xperia Play. Mojang has said that they're working on a both a generic Android version as well as one for iOS.
- leon_ 15y agoI guess it's the user base. The 4chan/gamer kids usually have android handsets. (Also android is java too ...)
- jokermatt999 15y agoIt's also probably much, much easier to port to an interface that includes some physical controls. Minecraft uses a number of control on the PC (movement including crouching and jumping, interacting with M1/M2, inventory, menu). I can't imagine what a pain it would be to adapt that for purely touchscreen. I've tried to play console adapted games on touchscreen via emulator, and it just simply doesn't work well. Games with action are horrible (Super Mario World was what I tried), but even turn based games are annoying to control. Having buttons really makes it easier. On a completely unrelated note, that's why I bought a Droid 1 and then a Droid 2. I really wish more Android phones would include a physical keyboard; they're a much nicer experience than any touchscreen keyboard I've ever used, including the iPhone's.
- baconner 15y agoBeyond the Java point I suspect the ease of releasing frequent small updates on android fits the way they do development better.