This 2D Water project is what I am currently working on to sell as an asset on the asset store. The dynamic waves are a simple implementation of Hooke's Law. The waves are calculated with a much cheaper method than the several other tutorials online. Each vertex position is modified directly without needing to include any unnecessary components in the scene. The current physics showcased in the following video is an example of quick, circle based buoyancy. Each body is defined with a series of circles and the amount of submersion of each circle is calculated with minimal cost and uses Archimedes' Principle. The buoyant objects are reactive to the waves rather than just a static collider. Another, more costly but more realistic method of 2D buoyancy is in the works which includes calculating new convex shapes from the submerged part of each body. From these shapes, we can calculate the area that is submerged along with the exact center of the buoyant force. Several techniques go into the artistic side of things as well, this includes cheap light rays, a cheap surface line which does not require any additional objects in the scene, distortion in which the intensity can be based on the depth and limited visibility based on depth. I have plans to include even more to make the prettiest water possible.
Lil Engie 2 is a complete re creation of my first game engine Lil Engie. I made several design mistakes and learned a lot from that engine that are corrected in this new engine. I built this one to be as flexable as possible and hope to work on it over the course of a long time. It curently is an incomplete engine but supports both OpenGL and Direct3D and was built to easily add more API's. Several components of the engine are in a working state but before it can run a game, it needs more work. Development has been paused for a few months to focus on other development related things but it will resume as soon as possible.
Github RepositoryThis asset was built for a friend's game but need for it was lost so now it shall remain here. It is a highly optimized, and easy to use grass deformation asset. Most grass deformation solutions online dont work well with large foliage models in the case of several vertices on the same mesh surrounding the player would get stretched. Other solutions are cpu based and expensive. I offer a bit of a creative way to get the best of both worlds. You can have complex foliage meshes and wont need to worry about odd stretching and it is extremely cheap as all deformation occurs on the vertex shader (no need to update the vertex buffer). I have plans to release this asset one day after giving it more artistic work so I will not be providing the source here. If you would like the files of anything I haven't given, feel free to ask.
Lil Engie was my first attempt at making a game engine, built in C++ using OpenGL it is an engine that could potentially run a game (although likely to have limitations and bugs). It had many features such as a custom human readable scene files, text rendering with effects, various lighting and easy shader abstraction, easy to use custom component creation, and input handling.
Github RepositoryThis was my first ever graphics programming related project. I used C++ and OpenGL with a very simple setup. This is the project where I decided to make my own math library instead of using GLM like the others. It was a great learning exercise but ended up taking about as much time as everything else. My understanding of the math at this time wasn't as good as it is now and as expected, it had some issues. I learned about various rendering techniques such as simple lighting, specularity and specular maps, and normal maps. This project was a fantastic first step to get me into the subject and made me love graphics programming.
Github RepositoryA small and fun little project to demonstrate runtime mesh deformation on impact. It relies on unity's normal recalculation to recalculate the entire model's normal after each impact, I would have loved to calculate only the effected vertices myself but I didn't want this to be a multiple day project. It is more of an effect than a simulation but is convincing enough to be used in a game.
Download SourceA Bounce Game was an Android game made in Unity3D to challenge myself and see what I could do with just a month and no assets other than my own. I had much larger hopes for this project but ran out of time so I had to scrap some features out. While this was a little disapointing it still works well as a portfolio project and showcases my experience with mobile development.
Google Play Store Download ProjectThis project was pretty simple and self explanatory. While being quite an old project with several mistakes that could have easily been fixed this project went smoothly and I was able to finish it on time. At the time I had little to no vector math knowledge and the camera movement really suffered from that. I was able to get it working in a web player in time. All art and assets were self made.
Play Online Download Project