Learning Crafty.js

I used Crafty.js for the first time in April when I developed my entry for Ludum Dare 29. I felt accomplished with the framework after two days of development and I want to explore it further.

During May, I’m going to create experimental gameplay and effects to improve my understanding of the library. I’m also going to look through source code to see what I could extend in the future.

Finally, I’m going commit to improving my Photoshop skills. I want to create better sprites for use with Crafty, and the time investment appears to be worth it.

Kraken: A Ludum Dare 29 Postmortem

You are a deep sea explorer searching for treasure. As your craft descends into the murky depths large kraken will approach your ship. Fire your harpoons to kill them before they get close enough to attack your underwater vehicle. 

Press left or right to use your claw to capture treasure. Avoid hitting anchors which will damage your craft. 

Your deep sea adventure awaits!

Last weekend I created Kraken, a web game for the Ludum Dare 48 hour game development competition. “Beneath the surface” was the theme chosen for this competition and, coincidentally, the Atari 2600 ET landfill dig was also held the same weekend. I felt inspired to create Kraken as a retro Atari 2600 style game.

What Went Right

I kept the graphics simple. Creating a retro style game that could pass as an Atari 2600 cartridge meant blocky characters with few colors and limited animations. It also reduced the total number of screens to develop because many Atari 2600 games don’t have intro or game over sequences.

I sketched an outline of the game before I started development. Having a design in-hand reduced deadline stress because it gave me an idea of how long I could spend on each component. My design also held up, except for a pseudo-3d water effect I’ll mention later.

I finished on time. I think of the Ludum Dare 48 hour competition as an exercise in release management. It’s important for me to finish with something playable, and I’m proud I managed to do exactly that. I also had fun making the game and getting it out there.

What Went Wrong

I spent too much time on a pseudo-3d effect that didn’t work with the gameplay. I planned for the viewport to cycle colors around the edges as the player descended towards the kraken. The implementation was distracting and gave me a headache, so I transformed the feature into the shuttered pre-game and game over color changes.

I also didn’t prototype the graphics with the gameplay early enough. The squid were harder to draw than I expected, and ended up too small to look frightening as they approached the craft. Their small size also caused a disconnect with the harpoon collision detection. The final squid graphics didn’t take up enough space for the player to hit them directly.

Sound was planned but dropped. Atari 2600 game soundtracks are simple, but I hadn’t created sound for a web game before. I didn’t review the process before the competition started and I ran out of time during development.

Overall

I had fun creating Kraken. The Ludum Dare is a bit of a rush to get everything finished, and there’s always a moment of panic as the game comes together, sometimes unexpectedly. I’m glad I participated, and I’m looking forward to the next competition.

Play Kraken

Free GitHub Alternatives

I’ve decided to migrate my projects away from GitHub. A search for free Git alternatives produced the following:

  • BitBucket – Unlimited private repositories and free for up to 5 users. Also offers Mercurial.
  • GitLab – Unlimited private repositories and private collaborators.
  • Gitorious – Offers free public repositories.
  • Codeplex – Open source hosting for Git, Mercurial, or Team Foundation Server.

I’ve created a BitBucket account here and I’m looking forward to evaluating the service.  I’m also going to carefully review GitLab, though I don’t require more than five collaborators. I’m skipping Gitorious and Codeplex because I use private repositories.

I hope to use this migration to accomplish another goal: getting more of my free-floating code organized into repositories. This migration should be a good opportunity to do so.

Magento Developer Plus Certification Progress

I’m presently studying for the Magento Developer Plus certification. I hope to take the exam in early June and I’ve created a study plan to accomplish this.

First, I’m reading the excellent and free (with sign-up) Magento User Guide. I’m fairly new to Magento and knowing how the platform works as a shop owner and end-user is a good starting point before I map out and explore the source code.

I’ve also downloaded free The Magento Certified Developer Plus (pdf) official study guide, which is also offered here (with sign-up) along with other guides. I plan to read through it thoroughly after I’m finished with the user manual.

Finally, I found the free eBook “How to pass Magento Certification Exam in 30 days“. I’m undecided on reading it because my main goal of getting certified this year is to master the platforms I’m studying. I’m less interested in passing the test just for the sake of getting the certification.

I’m also thinking about taking Magento’s front-end certification towards the end of the year. I’m primarily focused on back-end systems, but the additional detail seems like it might be useful at some point.

Passed the Zend Framework v1 Certification Exam

On Saturday, April 12th, 2014, I passed the Zend Framework v1 certification exam. This is a legacy test sourced from version 1.5 of the Zend framework.

The Zend’s framework exam is a difficult test to study for because, despite its age (and unlike Zend’s PHP language certification), there isn’t as much study material available. I found Zend’s official study guide to be the most helpful along with reading through the 1.5 edition of the manual.

I used the following documents to study for the exam:

The Zend Framework is quite large and I went into the exam feeling like I could use an extra week of study. I also felt like a historian while reviewing the APIs of services from companies now out of business. Despite this legacy aspect, I’m appreciative that Zend is still offering this test and I’m happy to have taken it.

My next certification will be for Magento Developer Plus, an e-commerce platform that uses Zend Framework v1 for part of its core. I’m glad I invested my time into the framework exam because I believe it will help me learn Magento development more quickly.

I’m a Zend Certified PHP Engineer

Zend Certified PHP Engineer

I’m happy to report that, in March, I became an official Zend Certified PHP Engineer after passing Zend’s new PHP 5.5 exam. This is the first of a couple Zend certifications I hope to complete this year. I’m also looking forward to taking the Zend Framework version one exam in mid-April. It’s a bit retrospective for me, but as someone who works on legacy systems I’m glad the old framework exam is still being offered.

Zend also emailed me a perpetual license for Zend Studio four days after I passed the exam. I’m very grateful for this as it helped to justify the cost of the test and also, I genuinely need a new comprehensive IDE for PHP development. I might follow up with another blog post when I’ve had some time to dig into it.

MySQL 5.6 Developer Certification

Oracle MySQL 5.6 Developer LogoThis weekend I received word from Oracle that I passed the MySQL 5.6 developer certification exam I took in December. I am now officially an “Oracle Certified Professional, MySQL 5.6 Developer”. Hurray! Achievement unlocked!

I ended up not having time to do the 5.6 DBA exam prior to going on vacation last year,  so I’m looking forward to taking it within the next few months. It will be interesting to see what Oracle’s finished and out-of-beta exams look like.

MySQL Certification Beta Is Open

I’ve just registered as a beta tester for Oracle’s MySQL 5.6 certification exams. The beta exams are available at a significant discount ($50 each!) and award full certification if passed. The beta exams are only available until December 21, 2013 and testing center spots seem to be rapidly filling up. Exam sign-up information is available here.

There are some differences between the beta versions of the exams and the regular certification. The beta exams are longer — approximately three hours — and contain significantly more questions. I’m very happy with this because I’m using these exams as goalpost for my own ramp-up on MySQL.

I’m taking both the MySQL 5.6 DBA and Developer exams on December 14, 2013. I’ll be posting my notes and perhaps a study plan as I get closer to this date.

Installing PEAR and PHPUnit with WAMPServer 2.2 on Windows 7 (PHP 5.3.10)

These are my install notes for PEAR and PHPUnit with WAMPServer 2.2 on my Windows 7 development machine. I tried several tutorials before getting the installation right. I hope this blog post helps anyone attempting this or with a broken installation. My setup aims for ease of use in a development environment.

First, PEAR needs to be installed and working 100%.  This Stack Overflow answer was very helpful. These are my additional notes to their instructions:

1. I added my WAMP PHP folder to my PATH (ex: C:\Users\Kate\development\wamp\bin\php\php5.3.10).

2. At the prompt I used system for the install not local. This wasn’t exactly clear in the instructions.

3. The PEAR installer will show an options list for various install paths.

  • Pear suggested putting pear.ini in the Windows folder. Instead, I had it use my WAMP PHP directory (C:\Users\Kate\development\wamp\bin\php\php5.3.10).  Aside from keeping pear.ini out of the Windows folder, this change also removes the need for the command prompt to be run as administrator during install. As part of this change I also set the PHP_PEAR_SYSCONF_DIR system environment variable to the WAMP PHP directory so PEAR could find pear.ini later during the PHPUnit install.
  • I adjusted my web root directory setting which was different from the proposed default.

4. I then installed PHPUnit with the following command sequence. Note the first line will fail if pear.ini is still set to the Windows folder and the command prompt isn’t running as an administrative process OR if the location was changed and the PHP_PEAR_SYSCONF_DIR environment variable wasn’t set (see step 3).

pear config-set auto_discover 1
pear install pear.phpunit.de/PHPUnit

 

The PHPUnit install is successful when the phpunit command can be run on the command line without fuss. I’ll update this page with additional notes if I hit any other pitfalls from these methods.