We were both right.
Framing the Question
To better understand my decision, you should understand my goals.
Being a side project, I always make sure that I am learning something new along the way. Chris has the same perspective, outside of "making a game" we both have these learning goals:
- To learn how to draw using Canvas element
- To learn more about making games and game development
Me, being a professional application developer, I also had the goal of:
- Learning to apply my application development skills to the game development world
This last goal is really important to me and is framed as a goal rather than a problem. Everything I understand about game development demonstrates that it's quite different from regular application development. In the past, I've gotten stuck thinking of a game like it's a regular application. Hopefully with this goal in mind, I'll be able to push through my tendency to build an app rather than a game.
Let's start with the good stuff, shall we?
Support Network & Productivity
As with any popular framework, you're going to get other experts who have already implemented things with the framework. This way, I'm not re-inventing the wheel when it comes to finding a way to implement a feature. Rather, I can learn from what others have asked, done, and documented, and apply that to my game quickly, rather than having to come up with my own solution every time something comes up.
Plus, if there is an issue with one of the many functions of the framework, the community can rally behind it and push out a fix rather than just having myself to rely on for fixing any and all issues.
Even with all that good, there are some shortcomings that I should note alongside the pros.
For every Phaser, there are at least another dozen frameworks that do the same thing, just in a different way. When it comes to picking one, there is a good chance that in a few years (or a few months in some cases) all my knowledge of the framework will be deprecated knowledge as the industry will have moved to the "next new thing", along with the support network I mentioned earlier.
I heard the term "Fast Food frameworks" for the first time from Chris Love. Now that I've gone with Phaser, my game now requires this framework to run, and its performance and compatibility with different platforms is dependent on the framework. So far, I have no issues, but as things get more complicated, I could find myself tightly coupled to the performance limitations of the framework, whatever they may be.
On top of that, even though I'm not using all of the parts of Phaser, I'll need to include the whole library, which can lead to slower load times, especially when we're talking about playing the game on the web.