DEMOS

I have made this page so that I can show rather than tell you about the kind of work I have done.

  1. ZIPTUNES (iPhone)
  2. watch video demo

    visit ZipTunesApp.com for details

    see ZipTunes in the iPhone App Store

     

    DESCRIPTION

    ZipTunes is a smart playlist creator that makes it very easy to put on a music playlist - just tell ZipTunes what you are in the mood for, and it selects your songs automatically. For example, you can give ZipTunes requests like 'give me 30 minutes of 4* or better Rock music' or 'give me music from my top 5 trance and dance artists' or 'add 30 minutes of new techno from last week that I haven't listened to yet', and it will make or change your playlist accordingly. But you still get full control over the results - at any time, you can see the entire playlist and add, remove, or rearrange songs even as the playlist is playing. This gives you the best of two worlds - you can put on a playlist in seconds like with the iPhone's Genius feature, but you still get complete control like with the iPhone's on-the-go playlist feature.

    FEATURES

    • Save playlists on your iPhone without using iTunes
    • Create custom playlists within seconds while still having full control over the results
    • View, rearrange, add, or delete any songs from your playlist while it is playing
    • Browse your songs, albums, and artists by favorites to quickly find what you are looking for
    • Built-in music player so that you can create playlists and listen to them in the same app
    • Filter songs by rating, playcount, last played date, or date added
    • Custom controls and custom animations provide a one of a kind user experience

    TECHNICALITIES

    ZipTunes is an ongoing and ambitious individual side project. The main development time was over 6 months of full time work, though I still occasionally work on updates for this app.

    The two main technical challenges in ZipTunes were managing an sqlite-based music database representing your music library ( this was necessary to browse your music library in ways the iPod cannot ) and optimizing against the excruciatingly slow speed of the iPod music API. Overall, ZipTunes was a great exercise for:

    • creating, updating, optimizing, and migrating an sqlite3 database
    • writing highly optimized SQL queries
    • making high-performance table views
    • using multithreading to enhance responsiveness

     

  3. PARTY GAME TIMER (iPhone)
  4. See Party Game Timer in the iPhone App Store

    DESCRIPTION

    I wanted to make a very simple first app to learn iPhone development but was unsure what to make. When I needed a replacement for a random timer that came with a board game and could not find one, the idea for Party Game Timer was born.

    Party Game Timer started out very simple and used a standard iPhone user interface. But then I learned how to create my own graphics and make my own custom user interface controls to give the app a richer user experience. So this app is where I originally discovered my interest in user interface development and making custom user interfaces.

    FEATURES

    • Countdown timer that can go off after a fixed or random amount of time
    • Uses iOS4 multitasking to send an alarm even after exiting the application
    • Custom user interface controls make it particularly easy to change settings
    • Choose from one of several different sound themes
    • Stop, pause, resume, or loop timer

    TECHNICALITIES

    Party Game Timer is my first iPhone app and served as an introduction to iPhone development. Some of the things I learned through this project were:

    • Introduction to XCode, Objective C, UIKit, etc
    • Creating an OpenAL-based sound engine
    • Making custom user interface controls
    • Making graphics with various vector and raster based paint programs

  5. JIGSAW PUZZLE (Windows XP)
  6. DESCRIPTION

    This is a jigsaw puzzle game prototype that I developed within a month as a research project. The task was to develop a custom algorithm that will cut an image into realistic looking jigsaw puzzle pieces, and showcase the algorithm in a single level demo. To win the demo, you may match puzzle pieces either against each other or against a semitransparent preview of the completed puzzle. I can only show screenshots for this demo, but rest assured that it plays as well as it looks.

    FEATURES

    • Realistic looking, easily distinguishable jigsaw puzzle pieces with smooth 3D looking edges
    • Choose from 5 predefined levels or create your own using a variety of parameters that determine the look of the puzzle and its pieces
    • Puzzle pieces are created randomly and on the fly, leading to a unique puzzle experience every time
    • Pieces snap together and are briefly highlighted when they match to facilitate gameplay

    TECHNICALITIES

    The Jigsaw Puzzle demo was created using a proprietary in-house game engine in addition to the SDL graphics library. It was developed within a month, with almost half of the development cycle devoted to creating a detailed 18 page technical design document, researching other puzzle games, and exploring the available in-house development tools before proceeding to the actual development process.

  7. ASTEROIDS (Windows 98)
  8. view gameplay demo

    Download Asteroids

    DESCRIPTION

    This is an Asteroids clone that I created in about a week as part of the Structure of Game Design class at Full Sail. Essentially, this game takes the classic asteroid-blasting fun of the original Asteroids and introduces new playing modes like cooperative and competitive two player mode and a deathmatch mode. You will also be able to choose from one of three ships, each with a very different feel to it.

    FEATURES

    • Fun, polished gameplay
    • Choose from three different ships that vary in size, mobility, and firepower
    • Sidestrafe or backpedal to increase your mobility
    • Team up with a friend or challenge him to a deathmatch
    • Levels increase in difficulty until they overwhelm you

    TECHNICALITIES

    Asteroids uses DirectInput, Direct3D, and fmod