Since I saw a lot of review(ish) posts in here, I decided to add my thoughts as a user of Grey Alien's framework.
The good
First of all, I think by far the best thing about the framework is the way it wraps some of the annoying minutiae inherent in game development. Specifically, it makes adding and properly applying music a breeze. Also, the built-in menu functions take a real load off when building an interface. It's nice to be able to just Super.Logic() away things like mouseover effects and button click sounds.
The organization of the framework was very hard for me to get used to. Pretty much everything about the structure used by Grey Alien's framework is different from my own style of organization. However, once I figured it out, I found that I liked it. The framework structure makes it easy to keep your logic and drawing seperate without much effort. One step back from that, the framework makes it easy to organize your program by treating each piece as a "Screen", which was a bit foreign to my experience but which, in the end, I think is a great way to approach game development.
I also like the built-in sprite functions. It's a snap to make things spin and zoom around.
The less good
I don't find the code to be nearly as "heavily commented" as claimed. 90% of the commenting seems to be version updates: "v 0.8.1 - Added BlahWhatever() function". I think the documentation in general is very lacking. The sample program is nice but it seems to assume you already understand the organizational structure used by the framework. Personally, I did not understand it at all when I first started to use Grey Alien's framework and it was a big hurdle to overcome; I found myself following the tedious process of deleting lines one at a time to figure out what the hell they did.
I really don't like how a lot of the functions make assumptions about what I want. When you add a menu item, it is centered whether you like it or not (as far as I can tell). Yes, you can change that later, but why should you have to? it is not hard to add an option to the function parameters or add a Game.MenuOrientation flag that can be set by the user. Instead, I have to execute a findbutton and then set the the new values. I bump into that sort of thing a lot in the framework. Another example is the hardcoded "MO" for mouseover states. It's not a big deal, but why hardcode any string into the functions? Again, prefix and suffix function parameters or TMenu fields that could be set would do the trick.
Another small issue is that some functions I would expect to find just don't exist. Grey Alien included a nice "AddPair()" method for menu building and has a "SetPairX()" function, but no "SetPairY()". Yes, the AddXXX() functions automatically y-position buttons relative to each other, but that's no reason not to have a function that lets me override the y axis just like I can do for x.
Conclusion
I found a lot of small annoyances when experimenting with the framework, but they are only small annoyances. It is also possible that some of the annoyances stem from my lack of experience with the framework, but I am sure that is not the case for all of them. The framework's functionality seems to be everything that it is claimed to be. I think Grey Alien's game framework is definitely suitable for commercial games as well as hobby projects but I think it could use some internal reworking to make it more comfortable and flexible from a development standpoint.
SpaceAce
The good
First of all, I think by far the best thing about the framework is the way it wraps some of the annoying minutiae inherent in game development. Specifically, it makes adding and properly applying music a breeze. Also, the built-in menu functions take a real load off when building an interface. It's nice to be able to just Super.Logic() away things like mouseover effects and button click sounds.
The organization of the framework was very hard for me to get used to. Pretty much everything about the structure used by Grey Alien's framework is different from my own style of organization. However, once I figured it out, I found that I liked it. The framework structure makes it easy to keep your logic and drawing seperate without much effort. One step back from that, the framework makes it easy to organize your program by treating each piece as a "Screen", which was a bit foreign to my experience but which, in the end, I think is a great way to approach game development.
I also like the built-in sprite functions. It's a snap to make things spin and zoom around.
The less good
I don't find the code to be nearly as "heavily commented" as claimed. 90% of the commenting seems to be version updates: "v 0.8.1 - Added BlahWhatever() function". I think the documentation in general is very lacking. The sample program is nice but it seems to assume you already understand the organizational structure used by the framework. Personally, I did not understand it at all when I first started to use Grey Alien's framework and it was a big hurdle to overcome; I found myself following the tedious process of deleting lines one at a time to figure out what the hell they did.
I really don't like how a lot of the functions make assumptions about what I want. When you add a menu item, it is centered whether you like it or not (as far as I can tell). Yes, you can change that later, but why should you have to? it is not hard to add an option to the function parameters or add a Game.MenuOrientation flag that can be set by the user. Instead, I have to execute a findbutton and then set the the new values. I bump into that sort of thing a lot in the framework. Another example is the hardcoded "MO" for mouseover states. It's not a big deal, but why hardcode any string into the functions? Again, prefix and suffix function parameters or TMenu fields that could be set would do the trick.
Another small issue is that some functions I would expect to find just don't exist. Grey Alien included a nice "AddPair()" method for menu building and has a "SetPairX()" function, but no "SetPairY()". Yes, the AddXXX() functions automatically y-position buttons relative to each other, but that's no reason not to have a function that lets me override the y axis just like I can do for x.
Conclusion
I found a lot of small annoyances when experimenting with the framework, but they are only small annoyances. It is also possible that some of the annoyances stem from my lack of experience with the framework, but I am sure that is not the case for all of them. The framework's functionality seems to be everything that it is claimed to be. I think Grey Alien's game framework is definitely suitable for commercial games as well as hobby projects but I think it could use some internal reworking to make it more comfortable and flexible from a development standpoint.
SpaceAce