When 2 years ago I started looking for a crossplatform mobile game engine, it was really hard to find one that matched my needs, because as it turns out, I did not actually know what I needed. I was choosing them by completely different characteristic that proved to be irrelevant in the end.
For example, I wanted an engine which provided development in the language I already knew and was comfortable with. That actually put a very strict limitation and I was missing out on many great engines.
My second mistake was assuming that most popular engines would be the best. Yes, it is great if the engine has a large community and lots of resources, etc. But, in the end, those engines are overpriced, they usually force their own views and ways, and I was missing out on a lot of smaller popularity engines, that maybe did not have all the features in the world, but actually provided the ones I need.
So while searching and jumping from one engine to another, getting burnt by limitations I found, and struggling to find the one engine I wanted to work with, I started to lower my expectations and try out a couple of less popular ones, until someone on Twitter suggested me to try out Gideros (http://giderosmobile.com/).
At first, it seemed that Gideros did not have much to offer on the table comparing with lots of more popular investment backed engines, but it actually did contain all the features I needed, and even the features I did not know I needed, but now I can't live without them.
After being with Gideros more than 2 years now, I grew fond of it so much that I published a book on Gideros and even started working in team at Gideros to make the engine even better, contribute more, and add the other features I was missing for other projects.
Of course the engine should allow you try itself for free, with as little friction as possible. And Gideros does just that. You can develop and even publish your apps for free (with a small Gideros splash screen). And to try it you don't need to do anything except click on the download link, no registration, nothing. How cool is that?
One of the most awesome Gideros features is to provide different autoscaling modes. As in, you can make your images fit any screen, being either upscaled or downscaled. You can enable letterbox mode to upscale images so that they would be inside the screen with fixed aspect ratio and centered, or you can crop them and still keep the aspect ratio, or stretch by width, height or both. Lots of ways to combine with logical dimensions and experiment to find your best strategy for targeting different screen resolutions.
But sometimes when differences are too large, like between small android with 320x480 to iPad Retina, your upscaled pics will look awful, even with some antialising enabled, it won't be the same. But you can fix that using auto image resolution, which allows you to provide same images with different resolutions and then Gideros engine will pick the proper resolutions automatically based on which device your app runs. Combining this with auto scaling, there will be no problem you could not handle when targeting all from small phones to HD TVs on Ouya or GameStick.
I cannot stress enough how awesome this feature is. Basically when developing mobile games for different platforms, you would need to build apps and deploy them to try them out, or use simulators, which are usually so slow. Here, you can launch Gideros desktop player and run your app on it in an instance. Click play and it is running.
Wait that’s not all! Want to try out your app on device? Install Gideros Player on your device, and enter the player's IP into Gideros Studio on your PC. And same thing happens, you click play, and app is run on device instantly. No exporting. No building. No signing. No deploying! Instantly on device. That speeds up the development time, like 10 times or even more, especially in prototype level. This is something anyone should try out.
You just need to install Player on your device, and you can develop and test game on your iPad without Mac, through Windows PC, or vice versa.
When I was looking and different crossplatform engines, I was thinking it has to have it all. Oh boy how wrong I was. Firstly if an engine has it all, it is most probably so bloated, providing huge app files. And chances are, its API will be so fragmented, that some function would only work on one platform, others on other. It won't be developing once run anywhere anymore, it would be more like, write once adapt everywhere, which adds more work to it.
So no, Gideros does not have it all, but it came pretty close. It provides an option to write and use plugins (even for free members) to extend basically any platform specific functionality. No more road blocks, as it does not support this ad framework, or that service, etc. Just take and build it yourself, you're the king of your app's possibilities.
Game development is very difficult without a proper OOP model provided in the language/environment. It's not impossible, but when you are creating a game, there are a lot of objects there (notice word objects, already indicates the preferable development approach), and their properties overlap, so you can define them in classes, inherit properties, etc.
So when I was looking for game development in JavaScript, this is what usually provided lots of development problems - the lack of proper OOP. Although it is possible to achieve something similar in JavaScript, it usually felt unnatural.
Gideros uses Lua, which by default is also not an OOP language (while it allows lots of different OOP implementations), but Gideros also has a built in class system. And why is it good to have a one single built in class system, rather than allowing anyone to develop their own? Because then any class, any object that was developed by any Gideros developer, will be compatible with your own project, thus providing you with lots and lots of reusable code, not only between projects, but also between different developers. That has been a huge revelation to me, that it actually means a lot to a development community.
When exporting your project to platform specific app, Gideros does not compile for you an end app, but rather exports you a project meant to be used to build an end app. This feature could be arguably considered as con, because it makes you work with each native platform building workflow and learning it.
But I would want to say that learning the way it works for each platform, first makes you more engine independent, second provides more flexibility to your project, like adding an animated splash screen, and third provides the ways to create your own build workflows reusing dropbox, testflight deployments, etc.
The more I hear that engine X created specific plugin for service Y, the more I understand how awful their API must be. Because you see, it's basically all about marketing. X can announce that they created plugin for Y. Y can announce that they now support X, but in the end, the developer has another class with similar functionality but different usage he needs to learn to work with.
What I found Gideros is doing, is actually creating common interfaces for similar stuff. For example, there is a common interface for Ads that allows you to implement lots of ad frameworks, using completely same workflow. And if you want to change from one ad framework to another, it is usually a question of changing a couple of lines, without changing the usage of interface much. Same goes for In-app Purchases and Controller support. Imagine having implemented a single controller interface and automatically supporting Xbox, PS3, OUYA, IOS7, ICade, Gametel, Moga, Green Throttle, etc controllers and systems without any additional work. That is just wow.
I once saw a situation happen to a fellow developer, that someone disassembled his app and without even changing the code, simply replaced the graphics and republished multiple variations of copies of such app. Funny thing they did not even change the email address of the support form, thus the original developer was receiving in app support emails from the copied games.
Thus it is really important to not only encrypt your code, but also assets.
No matter how good you are at developing, when learning something new, it is really important to have someone to ask for help, to learn more quickly. And Gideros has an awesome community that does just that. Just visit the forum with any questions regarding Gideros you might have and see for yourself ;)
title image
For example, I wanted an engine which provided development in the language I already knew and was comfortable with. That actually put a very strict limitation and I was missing out on many great engines.
My second mistake was assuming that most popular engines would be the best. Yes, it is great if the engine has a large community and lots of resources, etc. But, in the end, those engines are overpriced, they usually force their own views and ways, and I was missing out on a lot of smaller popularity engines, that maybe did not have all the features in the world, but actually provided the ones I need.
So while searching and jumping from one engine to another, getting burnt by limitations I found, and struggling to find the one engine I wanted to work with, I started to lower my expectations and try out a couple of less popular ones, until someone on Twitter suggested me to try out Gideros (http://giderosmobile.com/).
At first, it seemed that Gideros did not have much to offer on the table comparing with lots of more popular investment backed engines, but it actually did contain all the features I needed, and even the features I did not know I needed, but now I can't live without them.
After being with Gideros more than 2 years now, I grew fond of it so much that I published a book on Gideros and even started working in team at Gideros to make the engine even better, contribute more, and add the other features I was missing for other projects.
10 Things You Didn't Know You Needed from Crossplatform Mobile Game Engines
1) It should be free to try
Of course the engine should allow you try itself for free, with as little friction as possible. And Gideros does just that. You can develop and even publish your apps for free (with a small Gideros splash screen). And to try it you don't need to do anything except click on the download link, no registration, nothing. How cool is that?
2) Auto scaling
One of the most awesome Gideros features is to provide different autoscaling modes. As in, you can make your images fit any screen, being either upscaled or downscaled. You can enable letterbox mode to upscale images so that they would be inside the screen with fixed aspect ratio and centered, or you can crop them and still keep the aspect ratio, or stretch by width, height or both. Lots of ways to combine with logical dimensions and experiment to find your best strategy for targeting different screen resolutions.
3) Auto image resolution
But sometimes when differences are too large, like between small android with 320x480 to iPad Retina, your upscaled pics will look awful, even with some antialising enabled, it won't be the same. But you can fix that using auto image resolution, which allows you to provide same images with different resolutions and then Gideros engine will pick the proper resolutions automatically based on which device your app runs. Combining this with auto scaling, there will be no problem you could not handle when targeting all from small phones to HD TVs on Ouya or GameStick.
4) Instant on device testing
I cannot stress enough how awesome this feature is. Basically when developing mobile games for different platforms, you would need to build apps and deploy them to try them out, or use simulators, which are usually so slow. Here, you can launch Gideros desktop player and run your app on it in an instance. Click play and it is running.
Wait that’s not all! Want to try out your app on device? Install Gideros Player on your device, and enter the player's IP into Gideros Studio on your PC. And same thing happens, you click play, and app is run on device instantly. No exporting. No building. No signing. No deploying! Instantly on device. That speeds up the development time, like 10 times or even more, especially in prototype level. This is something anyone should try out.
You just need to install Player on your device, and you can develop and test game on your iPad without Mac, through Windows PC, or vice versa.
5) Extending with plugins
When I was looking and different crossplatform engines, I was thinking it has to have it all. Oh boy how wrong I was. Firstly if an engine has it all, it is most probably so bloated, providing huge app files. And chances are, its API will be so fragmented, that some function would only work on one platform, others on other. It won't be developing once run anywhere anymore, it would be more like, write once adapt everywhere, which adds more work to it.
So no, Gideros does not have it all, but it came pretty close. It provides an option to write and use plugins (even for free members) to extend basically any platform specific functionality. No more road blocks, as it does not support this ad framework, or that service, etc. Just take and build it yourself, you're the king of your app's possibilities.
6) OOP
Game development is very difficult without a proper OOP model provided in the language/environment. It's not impossible, but when you are creating a game, there are a lot of objects there (notice word objects, already indicates the preferable development approach), and their properties overlap, so you can define them in classes, inherit properties, etc.
So when I was looking for game development in JavaScript, this is what usually provided lots of development problems - the lack of proper OOP. Although it is possible to achieve something similar in JavaScript, it usually felt unnatural.
Gideros uses Lua, which by default is also not an OOP language (while it allows lots of different OOP implementations), but Gideros also has a built in class system. And why is it good to have a one single built in class system, rather than allowing anyone to develop their own? Because then any class, any object that was developed by any Gideros developer, will be compatible with your own project, thus providing you with lots and lots of reusable code, not only between projects, but also between different developers. That has been a huge revelation to me, that it actually means a lot to a development community.
7) Full control of exported project
When exporting your project to platform specific app, Gideros does not compile for you an end app, but rather exports you a project meant to be used to build an end app. This feature could be arguably considered as con, because it makes you work with each native platform building workflow and learning it.
But I would want to say that learning the way it works for each platform, first makes you more engine independent, second provides more flexibility to your project, like adding an animated splash screen, and third provides the ways to create your own build workflows reusing dropbox, testflight deployments, etc.
8) Common interfaces
The more I hear that engine X created specific plugin for service Y, the more I understand how awful their API must be. Because you see, it's basically all about marketing. X can announce that they created plugin for Y. Y can announce that they now support X, but in the end, the developer has another class with similar functionality but different usage he needs to learn to work with.
What I found Gideros is doing, is actually creating common interfaces for similar stuff. For example, there is a common interface for Ads that allows you to implement lots of ad frameworks, using completely same workflow. And if you want to change from one ad framework to another, it is usually a question of changing a couple of lines, without changing the usage of interface much. Same goes for In-app Purchases and Controller support. Imagine having implemented a single controller interface and automatically supporting Xbox, PS3, OUYA, IOS7, ICade, Gametel, Moga, Green Throttle, etc controllers and systems without any additional work. That is just wow.
9) Encryption
I once saw a situation happen to a fellow developer, that someone disassembled his app and without even changing the code, simply replaced the graphics and republished multiple variations of copies of such app. Funny thing they did not even change the email address of the support form, thus the original developer was receiving in app support emails from the copied games.
Thus it is really important to not only encrypt your code, but also assets.
10) Community
No matter how good you are at developing, when learning something new, it is really important to have someone to ask for help, to learn more quickly. And Gideros has an awesome community that does just that. Just visit the forum with any questions regarding Gideros you might have and see for yourself ;)
title image