I am about to embark on a bit of a sidetrack here on GameFromScratch.com, hopefully a few of you find it interesting.
Basically I am going to start looking at developing game tools using HTML5. Tooling is a massive part of the game development process and traditionally i’ve used RAD client only tools like C# + WinForms in this capacity, but HTML5 is becoming increasingly appealing. I have done a great deal of traditional web development, but nothing really like this.
My first project is going to be a dry run on a level editing tool. I have NO intentions of actually using the end result in a production environment, it is as much a learning experience for me as anything else. This unshackles me from spending time on stuff like… design, as I intend to throw away everything anyways ( famous last words? ). Besides, until you have a solid grasp of what you are doing and what problems you are going to face, it’s pretty hard to create much of a design anyways. Now, if I enjoy the experience and the results, I will put a great deal of thought into the design of the finished product. But when just trying things out, design mostly just gets in the way.
This is not the first time I have gone down this road, I’ve started a number of times and run in to the same problem over and over. Too much choice, not enough knowledge to make the decision. I always end up looking at frameworks, design patterns, libraries, toolkits etc, and always end up getting nowhere. Even picking a client side JS library can consume weeks of your life, throw in a persistence framework, MVC or MVVM framework and months of your life are gone.
In the past I went down this road, I looked in to technologies ( such as YUI, Kendo, jQuery, Backbone, Moustache, Dojo, etc… ) and found strengths and faults with all of them. What I didn’t find is success… This is an area that is anathema to me. I like to research things, know my options going in and make a decision from a position of some knowledge. Problem is, there are just too damned many frameworks and options.
So I am doing something I never do. I am picking the technologies up front, and come hell or high water, I am sticking with them until the end. Therefore for my upcoming project I am going to work with:
– YUI 3 for UI, controls, data, program flow, etc…
– EaselJS for graphics.
Why YUI 3? Well because it is pretty much an all encompassing framework, it does about everything, taking decisions away from me. I don’t need to pick a client side technology like jQuery, nor a mobile suite like jQueryMobile, nor a back end like Backbone or ember, package system like require, etc… YUI pretty much has it all out of the box.
Why EaselJS instead of a plethora of game/animation HTML5 libraries? God knows there are enough of them! Well, because I haven’t used it and I intended to look in to it.
So, I am not saying either of these technologies are better than their alternatives, I simply don’t have the experience yet to make such a judgement. I am going with them because, well, they are there.
Hope you find the process interesting.