Lab Blog

Canvas Element Zombie Game

Zombie ScreenshotI recently began creating an 8-bit style zombie game.  I decided to do this in JavaScript with the canvas element as a rendering surface.  I must say that I have already learned quite a bit.

Interestingly enough, I’m pretty sure that I could have completed a game like this in half the time using Flash, as a good portion of time was spent on creating a stable animation script.  This is something that Flash is inherently built to do.  In the end, I created a double-buffered mini-animation engine that really helped in reducing lag and flickering that sometimes occurred when drawing to the browser directly.

It is still pretty rough, with plenty of room for improvement, but it appears to run rather well. I would love to add a built-in capacity to run simple filmstrip animations, as they will be important for various interactions of the player and enemies.

The graphics are intentionally pixellated, and are actually a series of PNG sprites that are copied onto the canvas.

I eventually want to evolve the game quite a bit, and add far more than is shown above.  Currently though, each zombie is generated from 5 different sets of body parts and each one lurks towards the player until within biting distance. The beginnings of a level generator adds grass and dirt randomly; I aim to create mini city scenes complete with obstacles to hide behind.

Flash Audio Player

I just built a new Flash audio player, it is still in beta testing stage. I opted for a drag and drop interface to make interacting with it not only unique, but more intuitive. I just managed to get all the images to appear as CDs. The content is dynamic, and all the images, song information and music is loaded dynamically at run time. I also added a more refined visualization to it, that shows up when you play something.

This is an example of something that should be done in Flash. An HTML 5/JS version of this would not only be huge, but also the coding would be unnecessarily complicated and it definitely would not run as smoothly. I tested this on my HTC Desire with Android 2.5, and it not only works perfectly, but the touch controls map really well in this application.

Audio Player Screenshot

HTML 5 – Client Work

I am currently working on a website for a cupcake company.  I though that it would be a good time to jump into HTML 5 semantic markup with this project to make this project state-of-the-art and somewhat future-proof.  I have found that the new HTML 5 tags are great, and that I will be building it this way from now on.  I also discovered that making the site cross-browser compatible is not as daunting a task as I assumed.

Check it out on my test server:

HTML 5 Client Work Screenshot

Blu Ray Database Part 2

Blu-Ray DatabaseI managed to keep this blu ray project going, to the point that it has become a fairly developed web application.  I even registered a domain name and pointed it at my home server, which was something interesting to do.  I learned quite a bit about Apache web server installation and DNS servers in doing so.

Also there is a great website: http://www.themoviedb.org/ which is like a better designed and open-source version of imdb.   It features a great API as well as an amazing collection of movie posters, which make the selection of a movie a far more visual and interesting experience.  The API also allows you to find submitted movie trailers for chosen movies, which make my blu-ray app all the better.

Blu-Ray Database

Recently I realized that my Blu-Ray collection has become tough to manage.  Specifically, when people came over it became difficult to decide what too watch, since standing in front of the bookcase and trying to pick a movie for a group of people is not an easy task.  Also, keeping track of which movies were lended out and which movies i already have was basically a game of educated guesses.

Instead I created a web app on my home server, that does all of this for me.  All that is needed is to enter a new Blu-Ray’s title and a simple automatic lookup is done to the imdb.com website to determine all the rest of the details.  As an added bonus, since I am using IMDB’s categorization of each movie, it is easy to create a tag cloud of genres, which will hopefully make selecting a movie much quicker in the future.

WordPress Dropbox Upload Plugin

Install Flash Player

Try uploading a file.  (It will only accept zip files that are smaller than 20 Megabytes).  It is my intention to use this in combination with my own Dropbox WordPress plugin, so that assignment submission will be a smoother process for my students.

Twitter

  • RIP MCA … the Beastie Boys will always be one of my favourite groups Last Contact: 2 weeks ago