Showing posts with label post-mortum. Show all posts
Showing posts with label post-mortum. Show all posts

Saturday, 12 March 2011

Postmortem For Idea Chimp

The concept Idea Chimp is not new. You create lists of words, select ways to combine the lists together and then lets the computer pick words at random to make a sentence. Sometimes these ideas are funny or odd but often they can give you the gem of an idea the you can use. Because the word selection is random you often get combinations you would not expect.

People used to do this with paper and dice, Idea Chimp make the whole process easy for you by providing and easy way to manage lists and generate new sentences.

The Tech.
Regular readers of this blog will know that  I am really just starting out on my journey making web applications. Idea Chimp is my first attempt at letting people log-in to a system then create and use data. It is all powered by the google appengine and it turns out much of this stuff is pretty simple. It was just unknown to me.

The server side python code is not the greatest code ever produced as it represents the learning curve I went through on this stuff.

I subscribe to the idea of pushing as much as possible to client side, this kept the server side quite simple, it basically stored/retrieved the data. My JavaScript improved over the course of creating this app. I have also written enough JavaScript to realise I don't enjoy writing it that much. I love JQuery but Javascript has become a take it or leave it language. Perhaps it is a lack of experience in it, as in am I missing something or perhaps I got fed up with typing function all the time, why they did not call abbreviate it to fn as it is such an integral part of the language :)

Overall I was happy with coding and technical aspects of the project. If I had to pick a weakness in the development process then it would be my lack of style. The sites I create lack a level of polish. I need to be aware of this as I do my next projects.

Release and after.
The tech and development phase are my safe zone. Marketing and post release are the opposite. This time made a bit of an effort. Here is the list

  • Chrome Market place
  • Twitter
  • Side bar promotion on my blogs

It was my first go at using Twitter and hash tags to promote anything. I did not want to spam places so was selective in what I did.

I also came to the realisation that many of my visitors come to this site and my other blog and only read one page. It makes sense to try and get them to try out my web apps so I added them to my side bar.

The effect of all this was approximately zero :) But at least I did it and learned next time round I need to work on this even more.

Conclusions
Again I enjoyed making this little app and learned a lot from it. I am becoming more comfortable attempting to promote/market my creations. I think that is an important thing as once I am comfortable doing this sort of thing I likely to do more of it and improve at it.

I am guilty of not having recorded my hours on this project very accurately at all. I suspect it hit the 50hr mark but am not sure. Ooops.

Number of users is pretty low and I admit to being a little disappointed with that. While Idea Shark is not earth shattering in its originality it is fairly useful to certain groups of people. I am not going to publish stats on visitors just yet. You will be able to find them in next months visitor report.

Wednesday, 2 February 2011

Working Late Post-mortem.


Working late is my first attempt at a "Choose your own adventure" and my second game created using JavaScript and web technologies.


I am an experienced programmer but not with web technologies so while it would be nice to produce a good game my main goal was that of learning and education. Writing a totally text based game has the appeal of not getting distracted trying to find/draw some graphics. 

In this article I will follow the traditional format  of discussing the bits that went right and those that did not.


The Bit That Went Right:
I was aiming for data driven game so in theory I could just change the data file and I would have a totally different game. 


The way I developed this was with a custom mark up language to describe rooms and add data about where exits go to and any global state changes. This part of the project was written in python and output a JavaScript file containing a great big structure with all the details.
I could have parsed the file via JavaScript on the fly and perhaps it is a route I may take at some point if I decide to write more choose your own adventures. A major bonus of having the compile process is I could do checks, things like are the links to different rooms valid and many other small validation checks.


Having all these checks done off line meant the JavaScript engine to run it could be very simple as it could assume the data is error free. During the development process the goal was to optimise the speed at which the game was produced rather than any runtime performance. It is a small text game so I was confident I would not hit any performance issues. This meant the code was simple and did nothing clever, I was hoping it would be easy to debug. Turns out I did not have many bugs which could be down to writing simple inefficient code or it could be the project was pretty simple in terms of code so always destined to be easy to code up.


The display side of things makes good use of CSS and JQuery. I spent some time getting it running in Internet Explorer 8 so hopefully most people will be able to play it. Roll on IE9 and the older version dying out. Every month when arstechnica report on global market share of browsers I let out a little cheer to see the slow decline of IE8. IE9 is apparently better so if all IE 8 users upgrade to that the world will be a better place!


So overall technology wise it was a good success. My JavaScript skill improoved, even if I am still a beginner, and I continues to learn more about the world of developing on the web.
The mark up language worked out quite well. It was easy to update and create rooms and did not get in the way from the point of view of game design. It had a few rough edges like having to escape quotation mark but nothing major.


The Bits That Went Wrong:
 So the execution of the Working Late went very smoothly publishing it on the website was no hassle and fixing the Internet Explorer problems took little time even if they were irritating. 
While this game was a "Gain Experience" project I would say the maketing was somewhat lacking on my part. I had not planed anything and as I completed the project I was suddenly confronted with that fact.


I spent a couple of hours attempting to find "Choose your own adventure" fan sites but my google foo failed me. I was left with submitting it to the chrome webstore and get a few visitors from there. Basically getting the word out there was a total failure.

In someways this is predictable. Marketting is outside of my safe zone. As I write this I realise that for my next project (not a game) I also do not have a solid marketing plan that extends beyond submitting it to the chrome web store.Clearly this is an area I need to work on.
Statistics:

  • Lines of Python Code: 232
  • Lines of JavaScript Code: 884
  • Lines in Other files: 559
  • Total lines of Code/Text: 1675
  • Total Development Time: 20-hrs.
  • Number of Visitors (2nd Feb 11): 85

Conclusion:
The goal was to continue my learning of web technologies and that was successful. It re-highlighted something I already knew and that is I suck at marketting. This is something I really need to work on and I will have to push myself a bit more on marketing in the next project. I may force myself to do x number of hours on marketing at the end of the project even if most of it is spent on researching the area.


Working Late will eventually be ported to Android phones. It is a natural fit for this type of device and porting should be very easy.


Overall I am happy with how Working Late turned out and am happy to see my deficiencies highlighted so I can work on them.