About me

My name is Patrick Shaughnessy. I hold a doctorate in Computer Science from University of Massachusetts Lowell and I am open to employment opportunities in the software industry. This portfolio shows a few of the many pieces of software I have created in my free time using different languages and technologies. Most of them are Web applications you can run in a desktop browser.

I learn quickly, so if the particular technology you want me to use isn't represented here, rest assured that I will be able to hit the ground running with it.

Spacecube 2105
Desktop Web browser
2D canvas, Web Audio
A collection of minigames. To achive the look of an 80's vector game, I implemented a 3D vector engine in the Javascript 2D canvas.
Keyboard controls are displayed on the title screen and before each minigame. Games mostly use the arrows, Z, and X keys.
Desktop Web browser
A 3D platformer with level editor. Instead of saving levels on the server, the editor encodes the level data into a bookmarkable URI which is decoded entirely on the client side.
Keyboard and mouse controls are displayed in-game. Gameplay mostly uses the mouse and the W, A, S, and D keys. If using a laptop touchpad, you may need to disable "palm check" or "smart sense" in your touchpad settings to allow the browser to receive simultaneous mouse and keyboard inputs.
The Clown Firmly Grips the Battleaxe
Desktop Web browser
2D canvas, Web Audio
A very simple 2D platform game which I developed over the course of a video series explaining the basics of Javascript game creation. I include it in this portfolio for that video series, not for the game itself.
Keyboard controls are displayed on the title screen. Gameplay mostly uses the W, A, S, D, and arrow keys.
Desktop Web browser client, CGI-enabled Web server
Javascript, Python, SQL
2D canvas, Web Audio, Common Gateway Interface
A Mario Paint Composer-like music editor in which all users simultaneously edit a single lengthy score. Edits are rate-controlled to limit abuse. For ease of installation, the server side is implemented as a CGI script that can run under a standard Web server, rather than as an independent daemon process.
The browser GUI mostly uses the mouse and is similar to a paint program. Instructions for installing okayedit to your own server are included in the download package; some Web server knowledge is needed.
One-Touch Mini-Golf
Android phone or tablet
Android Java
Android canvas
A miniature golf game inspired by the Atari 2600's Miniature Golf cartridge.
Touch the circle, drag to point the arrow, and release. Controls are further explained in-game. The installer is not signed by the Google Play Store, so you may need to enable "unknown sources" on your phone before you can install it.
Corn Online
Windows desktop client, Windows or Linux server
TCP/IP, MonoGame
A multiplayer 2D shooter game. Clients synchronize their game states with the server using a state-rollback algorithm to minimize the visual effects of latency. The server can be run either on Windows using .NET or on Linux using Mono.
Installation and gameplay instructions are included in the download package. Some networking knowledge may be needed, as is the case for most multiplayer game servers.
Compilable for many, including desktop Web browser
Simon Tatham's Portable Puzzle Collection, Emscripten
A simulator for Rubik's Cube and many related puzzles. This game is implemented as a module for Simon Tatham's Portable Puzzle Collection, a cross-platform collection of puzzle games. I implemented limited 3D graphics within the Collection's 2D graphics API.
Click buttons on the cube to twist it; click and drag elsewhere to adjust the view. Full instructions are viewable as in-game help.