Over the last two decades we've witnessed explosive development in software platforms, mostly represented by the mass adoption of Linux and Mac OS, and in the last few years, Android and iOS. In this chapter we'll see what this entails and why Moai SDK is here to help us all, and that for free.
So you want to make games. You probably have this great game idea and you're planning to release it for the Web, iOS, and Android platforms, and probably if you get traction, publish it on Steam. I bet you already have some concept art, or your Game Design Document (GDD) in place. But, have you planned on how are you going to make your game in order to be able to support all those platforms?
Nowadays you have three options to handle this problem:
Build the game n times, where n is equal to the number of platforms
Forget about multi-platforms and focus on one or two
Use a library/framework designed to support multiple platforms
The first option has an advantage in that you can optimize your game for each platform, ensuring it runs smoothly. Also, you can take care of platform limitations and change how your game looks according to them. But have you thought about the implications of having, say, four different code bases? Each one with their own bugs and ways of implementing logic. Additionally, you may need to hire multiple programmers if you can't find one with in-depth knowledge of all platforms. It's a nightmare.
Forgetting about multi-platforms could be a good choice for you, but in the end, if you make a really successful game (and a probable way of making a game successful is to have it available on as many platforms as possible, since this increases awareness), you'll want to port it to different platforms at low cost, and porting is expensive if the code is extremely tied to a specific platform.
This leads us to the last option, embrace a library or framework that supports multi-platform development. The basic idea is that you detach your code from specific platforms, using a widely-spread language (such as C, C++, JavaScript, or Lua) and build your game for different platforms using a single code base.
Note
A real-life example on the benefits of multi-platform development is Zipline Games' Wolf Toss. It had a 3-month development cycle and was released simultaneously on iOS and Android. If it were to be built for each platform, it'd have taken about three months for each platform, or a team twice as big. So, by developing Wolf Toss with Moai SDK, the studio spent half of the money that it would take with a platform-specific approach.
This approach has been gaining popularity lately because of its simplicity and powerful consequences. Many game development environments and frameworks that take this approach have seen the light of day in the last few years. One of them is Moai SDK.
It's safe enough to say that almost every single platform nowadays supports C++ and some flavor of OpenGL. That's the starting point for Moai SDK.
Moai SDK is a multi-platform game development framework. It's been developed in C++ and all of its features are accessible through Lua. What does this mean? That you can build your game completely in Lua (taking advantage of the flexibility of this amazing language) and, in case you need low-level access, you can always switch to C++ and do whatever you want. You can even bind your C++ libraries to use them in your game, in Lua. It has built-in access to Moai Cloud as well, which is a cloud service that allows you to deploy server-side code written in Lua, with databases, support for push notifications, leaderboards, and other fancy stuff. Note that the language is the same for your game and for your server-side code, nice.
In short, if XYZ platform supports OpenGL and C++, Moai SDK is likely to be supported by it.
Currently Moai SDK works on Windows, Mac, Linux, iOS, Android, and Native Client.
Anyway, there are many game engines that support multi-platform development. Many of them come with flashy interfaces, others with half of your problems solved, such as one-click deployment. So, what does Moai SDK bring to this world that has not been done yet? Freedom.
It's open source, you can download the code and do whatever you want with it.
It's free, no hundreds of dollars in licenses.
It doesn't tell you how to do things. It's aimed at pro developers who want to do things their way.
It has been used by several large-scale commercial games.
So these are the main principles behind Moai SDK's philosophy. A great mix for a great game.
Nowadays, to be able to develop games it's important to take into account multi-platform development. Moai SDK is a game development framework that helps us deal with this problem in an easy way using standard technologies that are available in almost every platform. Not only that, it's free and open source.