Here are a few applications I have written in my personal time over the years.
In addition to these, I have written some compilers, search engines, and portions of a database engine in the past.
I find game development interesting because it lends itself to exploration of a wide variety of Computer Science topics (e.g., algorithms, Artificial Intelligence, etc.).
I am a software technology enthusiast with hands on experience in team leadership, architecture and the end-to-end application life cycle management.
A few languages that I am proficient with are C#, Java, F#, C++, C, Python, HTML, JavaScript, CSS.
Maverick Checkers
This as an implementation of the classic game of checkers. The game is strong enough to challenge and beat most players.
Maverick Checkers is packed with features such as setting up board positions, saving/loading
PDN files, analyzing games, exporting games to HTML, and customizing piece sets. At the time
this game was written, it was one of the strongest and most feature rich browser based checkers
application. Try the game out and test your skills. Maverick Checkers is written in Java 1.5
and can be run as a standalone app, Web Start, or as an applet.
This is an HTML 5 diagram toolkit that I wrote built on top of my HTML 5 Canvas Library.
This customizable engine allows you to create various types diagrams. This code is 100% JavaScript.
I used Weng to develop a large and complex engineering application.
The application was primarily written with HTML 5, JavaScript (notably webworkers, canvas, and
local storage), and CSS3. I've included an older stripped down version of the final engineering
application. The production version used SVG while the earlier stripped down version used canvas.
A game I created from scratch in the early years of JavaScript before the language gained more widespread acceptance and
understanding as a language that can build complex applications. This application can run on
Internet Explorer 4 and Netscape Navigator 4. Ride around in a tank avoiding enemy fire. I've
also implemented variations of this game for Android, Java, C# WPF, and HTML 5/JavaScript.
One of the joys of game programming is that it allows you to exercise a large surface area of a programming language and
can go into non-trivial algorithims which is not always the case for the average business application
that tend to be more CRUD focused.
A realtime stock ticker application I wrote to utilize DOXTOR, which is my large-scale self-adapting publish/subscribe broker
framework. I revamped the client in 2011 from using a hand-rolled long polling AJAX implementation
to use
SignalR instead in order to easily take advantage
of Web Sockets. DOXTOR is written in C# with some heavy algorithm based portions later rewritten
in F#. Stock Doxtor has followed the early days HTML 5 and uses numerous features from it.
The game of tic-tac-toe with a time twist. No need to wait for those slow thinkers. See my F# implementation,
Fun-Tic-Tac-Toe aka fun : 'tic -> 'tac -> 'toe,
on CodePlex.
A basic HTML 5 canvas drawing library for those familiar with the java.awt.Graphics class in Java. It also comes with a JavaScript
implmentation of the game Breakout to demonstrate using the library.
Entity tracking application. Uses SQL Server database on the backend. This application monitors entities, such as patients
or packages. Various resource files are used to customize the application to specific industry
domains.
SharpPad (#Pad) is a basic text editor with several improvements over Notepad. The key features I added where the tabs and
directory tree view. This allows multiple documents to be opened in a single window. The program
is written in C# and hence the name #Pad.
A server which gathers stock information from various remote data sources and delivers the data to interested clients via
XML. This application uses push-based techniques as opposed to the traditional pull-based paradigm.
A customizable SilverLight photo album application I developed during the alpha release of SiverLight 1.1. Also written in
WPF using the MVVM pattern. I was a very early adopter of Silverlight but have
slowly become less involved with it since it does not fundamentally embrace the web like Flash and Java Applets.
Classic game of Bricks. This is a simple game to implement, yet it serves as a way to explore a language. I have implemented
this game in several languages over the years (C#, F#, Java, VB, JavaScript,...).
I originally started this game out of curiosity. How can a computer possibly compete against a human opponent in a game of
intellect like chess? I began this project before I delved into AI research.
After some thinking, I came up with a brute force algorithm that computed move scores based upon
the state of the board, piece weights, and future moves. I later learned about the mimimax algorithm during my AI research.
As it turned out, the minimax algorithm was extremely similar to the algorithm I had
came up with.