Finally, I have uploaded the dungeon editor and it’s ready for initial use and feedback. Sort of.
What happened to the WebDungeon Grails and Dart app?
I’m not sure yet, but the short answer is that the dungeon editor does not play nice with Grails. Grails spits out all sorts of ugly errors. The kind of errors that give off a strong “Not Good” vibe. The kind of errors that make you think radical thoughts.
After spending too much time trying to fix the problem, I started to think more and more that going with Grails may have been a mistake. In retrospect, getting Dart to work with Grails was always a pain. It was clunky, overly complicated and too dependent on fancy scripting. So I mentally revisited what features Grails brought to the table. Straight up I thought of:
- The Model-View-Controller (MVC) Paradigm
- An idiot-proof mapping from groovy to the database
- Web page templates
- Tag libraries
- SSL integration
- Simple Deployment into a trusted J2EE server like Tomcat.
- For all of the above – it works really well
These are all the support functions that an online game would need. These would manage users, logins, keep track of points scores and dungeons played and so on. Not that exciting, but crucial. Applications need plumbing as much as houses do.
These are big benefits that have until now, made it fairly easy for me to build web applications with a database backend, and far superior to any other web development technology I have tried (with the exception of Ruby on Rails, which Grails is inspired by). So giving it up was always a tough sell for me.
However, due to my expertise with Grails, getting the website working has taken only a small proportion of my time so far. I spent most of time on Dart canvas programming and graphics. So ditching grails at this point would not in theory be a HUGE step back.
I had a look at Dart applications frameworks before I committed to Grails, but the documentation seemed lacking and Polymer and Angular seemed aimed at different use cases. So I went for the simplest and fastest method – plumbing in Grails, gameplay in Dart. This minimised the number of learning curves.
With a renewed sense of purpose, I revisited my earlier hunt for Dart MVC frameworks, this time with Dart experience under my belt. Once again, I looked for my top three:
- Tag libraries
- Database integration
Second time around, I found some very promising candidates and picked these to look at:
(I got these from Chris Buckett’s great List of Dart Projects on his blog)
There are many others, but these are the closest to what I am looking for. There are more prominent frameworks like Polymer, but these have not taken my fancy. AngularDart made it back on my list after a more in-depth review of the documentation. Half the problem is that there are too many to choose from. No doubt I may make another bad choice. If I do, I will not beat myself up too much. This happens a lot when building new things with bleeding edge technology. I always expected to throw the first version away anyway.
Another Detour (Sigh)
So after the dungeon editor detour, I will detour again (Forrest Gump voice) and give the four MVC musketeers a chance to show what they can do.
Rikulo, you’re up first.