How to choose the right framework?
So you want to make a game? But, of course, first you have to choose the right tools.
What game do you want to make? Some frameworks are for 2D games, others for 3D, some have great physics libraries, others don't. Of course you can always look for the framework that has it all, but there is no framework with out a downside.
You do not need to have detailed plan of the game you want to make, but you need to have some ideas. It would be better if you had more than one idea so you could choose the framework that you could use more than once.
What is your target platform? Its nice to have exact target audience, but most of the time at the beginning we make the games for ourselves. So what is the main platform? Is it Android or iPhone? Is it PC or Xbox? Or maybe that new thing? In theory you can make games for all platforms, but if you are Indie it might be hard and take a lot of your time. Choose one and double down on it.
What language do you know? If there is a programming language, there is a way to make a game in that language. Maybe not all languages have frameworks. Maybe frameworks that are written in languages you know do not meet criterion for the games you want to make. You might need to learn a new language.
What should you choose if you do not know any language? Choose – Unity. It can be programmable in several languages. It was the hottest thing in past five years or so, it should be hot thing in the near future.
How good is documentation? It can have most impressive samples but if there is no documentation or documentation is only half-baked it will be hard to make games. Documentation without sample games does not work either.
How big is the community? Usually this criterion is discarded. But it is very important. Do you want to make and play your games alone or with people around the world?
The best documentation can not help you if you are stuck. Community can. Community can test your games and give you valuable feedback. Community can give you a kick in the butt which sometimes is the best thing you can get.
At first I started making web games with jQuery. It is very powerful tool and you can do whatever you like, downside – for some things to work you need to write a ton of code. Later I tried GameQuery which is extension of jQuery for games. I still got all the power and with specification for the games, so some parts became easier. But it also had downsides. I believe that it is very cool tool, but community is practically none existent, so development of the tool was very slow. Second downside – at the moment I played with it, it did not have physics implemented. Bummer.
Now I play with Phaser. First time I tried, I could not believe how limiting it is. It's like going from Ferrari to Fiat 500… Where is the power? I will tell more about my Phaser experience in the future.
If you find the right tool you can use it for the rest of you life. If you need a new tool for every new game you make, maybe you do not spend enough time looking for the right one?