Ahsan Fayaz

I am a C++ programmer working in the games industry. Here are some projects which I have previously worked on both during my university studies and in my spare time. My latest projects are on GitHub.

Projects

2013

8-Ball Pool Physics Demo

To better understand game physics in my previous projects, I studied through the book "Introduction to Game Physics With Box2D" by Ian Parberry. I wrote this demo based on some of the example code, which is given in plain C++ and before any external libraries are introduced.

Unlike the original, which only contains the the cue ball and 8-ball, my version begins with a full set of balls. This required writing more robust collision resolution to handle the greater number of objects. It has been written from scratch in C++ and SDL2.

2012 - 2013

Platform Game / Breakout Game

I wrote a simple platform game to learn the basics of game development. It aims to be relatively simple in scope, while maintaining the essential components.

The component-based entity system and data-oriented design proved to be flexible enough to create a Breakout clone very rapidly, with changes to only the level format and the creation of new components and entities.

Features include:

It was written in C++ (with boost) and SDL 1.2 (later upgraded to SDL 2) using Visual Studio on Windows 7 and Xcode on Mac OS X

All game art is under a public domain license and can be found on OpenGameArt.org. The platformer tile set and breakout game art were both created by Kenney.nl.

2011 - 2012

Modern OpenGL Renderer and Model Viewer

I wrote this renderer using only the core profile introduced in OpenGL 3.3 to familiarise myself with the changes to the specification. I also wanted to create a framework application for loading meshes and shaders to help with experimentation in the future.

Features Include:

It was written in C++, OpenGL, and Qt4, with the help of the GLM and GLI libraries.

2010

MSc Thesis: Efficient Rendering of Human Skin

For my MSc thesis, titled "Efficient Rendering of Human Skin", I modelled the subsurface light transport in human skin while achieving real-time performance. It was based on the real-time skin shader by Eugene d'Eon combined with melanin and haemoglobin maps to determine a realistic skin tone. It was written using OpenGL, GLSL, C++ and Qt4.

2009

BSc Dissertation: C++ Ray Tracer

My dissertation in the final year of my computer science degree was the implementation of a simple ray tracer. It supports reflection, refraction, spotlights, point-lights, area-lights for soft shadows (using monte carlo methods), 4xAA, texture mapping (with bilinear filtering) and a skybox using cube map textures. It was written using C++ and Qt4.