noisy lets you generate fractal noise from from the command line. It's perfect for rendering smoke, fluids, and terrain. Simply install noisy with NPM and run a command to produce a png image. In the case of 3 dimensions, noisy will generate a series pngs over a range of z values.
- Supports Perlin and Worley noise
- Can generate 2D and 3D noise
- Seamless tiling in all dimensions
- Easy to use
Simple RTS is a lane-based strategy game for Unity3D. Internally, the game uses an event system to reduce interactions between game objects and simplify state management. This has a few advantages over the traditional pattern of letting game objects communicate with each other directly. Most notably, writing unit tests is a lot easier.
F is a collection of functional programming utilities for Unity3D. It can make working with collections, objects, and dictionaries more pleasant. Inspiration taken from
csvutil is a command line utility for working with CSV files. It supports
is handy for creating data snippets on GitHub Gist. Working on this gave me more exposure to
RxJS and stream programming.
Like the name suggests, react-image-timeline is an image-centric timeline component for React.js. It renders a series
of events in a vertical layout. It's lightweight, customizable, and should serve as a good starting point for
timeline UIs. I created the component to better understand
The Pennypult is a desktop trebuchet with a unique design. It's easy to construct and powered by spare pennies. On KickStarter, it was briefly featured on the front page as a staff pick. The project was funded on the first day and reached two stretch goals! All aside, it was another fun and creative Apptivus project.
GistList is a GitHub-integrated task list for iOS. It's Apptivus's second app and a welcome departure from games. It's a useful tool if you use markdown and Gist frequently. It's one of those apps that tries to do one thing well. It's free - give it a try.
Alien Hero is an endless runner for the iPhone and iPad. I founded Apptivus, a small company to build it. It features a lovable green alien and terrified human bystanders. If you like games like Jetpack Joyride, you might enjoy it. Additionally, it has some great artwork, sound, and music. I learned a great deal about the App Store and monetization making this. As of today, it is no longer available in the store.
Survive! is a simple avoider game written in 48 hours for the Ludum Dare #28 game jam. It was an opportunity to experiment with Unity's new 2D rendering engine. The talented Kris Zalameda provided the artwork and design.
This was my first submission into a Ludum Dare game competition. It's a lane-based strategy game featuring only one unit type. The contest prompt was "minimalism". I built the game in under 48 hrs and made all the art and sound from scratch. For such a simple strategy game, there is still some skill required to beat the AI.
This is an HTML5 project that simulates a battle between space ships. Each ship follows a randomly generated path while shooting missiles at enemy ships. I used this path technique in several future projects. It can be handy to generate repeating smooth paths.
This is a demo for a random path generator. It creates smooth natural curves that are great for animating particles and movement. Under the hood, it's using bezier curves to interpolate a path along a set of control points. It's proven to be useful in future game projects including Alien Hero.
This is a small utility I wrote to help me define gaussian kernels for use in graphics programs. It uses
raphael.js for the SVG rendering. It outputs an array definition of the kernel in tandem with the visualization.
Spheres is the first app I developed for the Apple iPad. The app renders a cloud of spheres with a moving light source and camera. The goal was to use the GPU to perform the ray-tracing calculations. The performance is acceptable even on a first generation device.
I spent some time trying to learn Interface Builder and Core Data. This what I made in the process. It's a simple iOS application that tracks scores between two players. I found using both Interface Builder and Core Data somewhat clumsy. Regardless, it was a good learning experience.
I put together a simple ray tracer that rendered shaded spheres for a school project. Later, I extended the renderer to support indirect illumination and lens effects. Building this improved my understanding of lighting models and lens caustics.
- Area Sources
- Refraction / Reflection
- Specular and lens caustics
- Indirect illumination and color bleeding
- Tone-mapping and bloom
- Shadow caching
- KD-Tree implemented photon maps
BubbleSnatch was my first published iOS application on the App Store. It's a physics-based puzzle game where you rescue colored sea creatures. It's an enjoyable game and was generally well received. I learned a ton from making this game and it was a good introduction to Objective-C and the iOS platform. Currently, it is no longer available on the App Store.
In college, I solved a problem related to CCD cell arrangement in digital cameras. Artifacts were found at the boundary between light and dark areas of HDR images. In most CCD arrays, there are 3 cells per pixel (one for each color channel). The cells are arranged close together in clusters of 3. The difference in position between cells introduce errors in the captured image. To deal with this, I wrote a filter that corrects the issue. See a visualization below.
This is an OpenGL game engine that I started writing in college. It's not complete, but, bits and pieces have made their way into my other projects. This project taught me the fundamentals of OpenGL and multi-pass rendering. It's written in C++ and runs on Windows.
- Per-pixel directional lighting
- Tangent space normal maps
- Per-pixel exponential fog
- Camera that can follow bezier curves
- Quaternion-based rotations
- Heightmap generated terrain
- Cube and sphere environment mapping
- Mesh subdivision and deformation support
- Particle systems and rigid body physics
- Per-triangle collision detection
This game was my most successful attempt at making a 3D shooter in Flash. Flash does not provide support for capturing the mouse so the controls feel a little weird. Temple features monsters, exploding barrels, and dynamic lighting. I wrote my own 3D renderer in the process. Writing the game definitely furthered my knowledge of 3D graphics and game design. The game was sponsored by MoFunZone.com.
This was my first attempt at making a 3D first person shooter for Flash. I used PaperVision3D for the 3D rendering. At the time, it was not well-suited for games. The performance of the game is poor and sacrifices were made on the visuals. I ended up writing a more performant 3D engine for Temple, a future game. I learned a great deal making this, but, the end result is not something I am particularly proud of. The game was sponsored by ArmorGames.com.
3000AD is a MechWarrior-inspired action game. It features tanks, giant walking robots, and lots of explosions. This was before I started working with a designer so I had to produce the artwork myself. The game was well received in the Flash game community despite the generic artwork. The game was sponsored by MoFunZone.com.
This is a game like Missile Command. It features explosions big and small, bombers planes, and many powerups. Missiles placed in a Fourth of July game contest on Kongregate and I won a small lump of money. Not bad for a few hours of coding!
This is a real-time strategy game I wrote in high school. The A* path-finding was my first introduction to search algorithms. In a sense, it was my first "big" game. I even wrote a level editor to go with it. People seemed to enjoy the game despite it's dated graphics.
This was my first Flash submission to Newgrounds. I updated it a few times and this was the end result. I built this to testbed some physics code. It inspired me to make an action game called Zombie Slayer a couple years down the road. Writing this taught me the fundamentals of particle-based animation.
Space Rocks is a clone of Asteroids written for Flash. It was one of many games I wrote on my journey to learn Flash. It features, powerups, lasers, and some simple particle effects. Writing the game taught me the skills to build more advanced games like 3000AD and Temple.
Lander was the second game I wrote for Flash. It's a remake of a classic game I used to play on Windows 3.1. I added some floating boulders as obstacles. Rescue all the astronauts and return to the landing pad to win!
Flak is the first game I wrote in Flash. It's a clone of the classic game Ack Ack with a few improvements. Coming from Visual Basic, it was great to work Flash's vector graphics APIs. ActionScript became my introduction to dynamic programming languages.