I’m skipping the back burner, and putting Project Fangorn on ice. I just pushed up the latest version to webgamesbyjosh.appspot.com. In that version the first of the general standing orders was implemented and I did a little of the work for the exploration feature, but the user just sees a message that it isn’t finished yet.
My current code base has a pretty large amount of technical debt. A good chunk of the technical debt is a result of using Google AppEngine’s ORM in the data model. This made a number of things more complicated then they would have been using just plain old python object as I now am able to after creating a space-based architecture abstraction over GAE’s datastore. That said a lot of the technical debt is simply a result of placing expediency of feature development over quality of code, which is just fine for a prototype, as its purpose is to help determine if implementing the features are actually feasible on the given platform. Now, however, the code base has grown large enough that it really needs to be brought up to production quality so that features can continue to be added in an efficient manner. That means I either need to start over from sratch and build the code base back up using the prototype as guide or I need to do extensive refactoring on the current prototype code base.
I’m not really happy with the directory structure that was created by following Pylons list of workarounds to get a Pylons project generated that will work on GAE and there is fair bit fo cruft that simply needs to be remove, so I’m leaning towards just starting over from scratch, but this isn’t the right time for me to do that. The reason why is the subject of future posts.
I’ve left my self a number of notes and todo list, so when I thaw this bakc out, I can quickly figure out where it was I had left off and getting going on the appropriate path.
I also thought about starting a new project altogether so that I could leverage what I learned from this experience to create a quality code base from the get go, and then I could use that as a model to refactor Project Fangorn’s code with. The first such project that came to mind would have been able to share some code with the desktop game project I started at the beginning of the year but has itself been in the deep freeze for the last six months; however, the potentially shared code has a dependency on numpy which is not available on GAE, so that specific idea is out for the time being.
For some time now I’ve been thinking about creating a website where I could catalog useful references, code snippets, pearls of wisdom, etc. regarding software development. An application like that fits with in GAE’s constraints a lot better then Project Fangorn does. I had actually started something along those lines probably a decade ago on my then website at heitzman.com. Unfortunately, my host for that site disappeared and my contact information on the domain registration was out of date so I wasn’t able to recover it (I can’t say I actually tried all that hard either) and it ended up getting grabbed by one of those domain squatters who wants something like $2k for it now. Anyway, in creating such a site I can leverage everything I learned thus far from Project Fangorn as well some of the code, so I believe that will be were I invest my web development time in the near future.
Update 2/23/2009: Google removed the “High CPU Requests” quota on 2/13. As this constraint is the one that made it difficult if not impossible to workaround the other GAE constraints, GAE may yet prove to be a suitable platform for Project Fangorn should it get defrosted.