Portfolio

My main projects are the Sonata Engine, and Sonata Designer. Please check out the Sonata Engine and Sonata Designer pages which contains detailed information, and additional screenshots. Most of the projects have been created with my Game Engine which is continuously being enhanced.

 

Sonata Engine

Sonata Engine

Sonata Engine

Sonata Engine

Sonata Engine

Portable Game Engine in C++

This is my main project. The engine is designed for flexibility and extensibility in an object oriented approach. The main modules are Core, Graphics, Shaders, Physics, Input, UI and Audio. All of these modules are platform-independent.
The platform-specific implementations are in separate plugins which can either be compiled as a single binary or multiple libraries.

The engine contains several features of an adcanced game engine: math library, data streams, resource manager, scene graph, BSP/PVS, lightmaps, collisions, lighting, keyframe animation, skinning, morphing, terrain generation and rendering using quadtrees, modular particle system, user interface, effect system, post effects.
Additionaly, a custom C++ reflection/metadata system in the Core module provides dynamic type information for binary and XML serialization, and high-level object management (instantiation, properties).

Multiple APIs and file format readers are implemented.
Graphics: Direct3D9, Direct3D8, OpenGL.
Shaders: Fixed Pipeline, HLSL, Cg, GLSL, with DirectX FX and CgFX.
Physics: Software, PhysX, ODE.
Input: Win32, DirectInput8.
Audio: DirectSound8.
Formats: X, 3DS, OBJ, BSP, MD2, MD3.

Download the: sources (1.41MB)
Download the: report (4.30MB)
View the: documentation

 

Sonata Designer

Extensible Game Toolset in C#.

Game development requires flexible tools to allow the designers and artists to create good content.
The tool is a scene designer with an IDE interface similar to Visual Studio.
The application is designed with a project-based and document/view approach using a modular design. The application is based on hierarchical services et commands grouped in pluggable packages.
The main features are:
Project and document manager, undo/redo, multiple selections.
Dockable windows, customizable property panel, color picker, gradient editor.
Asset browser, multiple 3D viewports, camera navigation, object selections, object transformations, shader support.
Animation sequence editor with dopesheet editor and curve editor.

Download the: sources (1.26MB)

 

Procedural Texture Generator

Procedural Texture Generator in C++ with a custom UI.

Procedural content generation is getting more and more attention in game development. Today tree generation and road traffics are the most popular examples of content generation in games. This project is my effort in writing an editor for procedural content generation. This project allows the generatation of 2D textures from generic building blocks, in a similar approach as RenderMan. The interface is very simple and consists of a diagram and a toolbox. The user picks building blocks from the toolbox and arrange them in a diagram by linking input and output properties. Diagram-based editors allow any user to create logical content without knowing programming. Even though this project is dedicated to texture generation, the diagram editor could handle the creation of totally different assets such as motion trees or AI behaviors.

Download the: binaries (2.69MB)
Download the: sources (0.96MB)
Download the: report (0.34MB)

 

Stealth AI

Stealth AI Demo with an in-game editor in C++.

This project is a demonstration of popular AI techniques : A-star pathfinding and state-machines. The game is set in a tile-based 3D environment similar to the training missions of Metal Gear Solid. The player must reach a specific destination represented by a flag without being noticed by the patrolling guards. An in-game editor allows the creation of new levels in a very easy way by painting tiles and setting their height, and by placing the game entities. The guards are patrolling using waypoints, checking their surroundings. They have a blue field-of-view that turns red when the player is seen and being chased.

Download the: binaries (3.93MB)
Download the: sources (0.24MB)
Download the: report (1.45MB)
Download the: slides (1.15MB)

 

Terrain Demo

Terrain generation and rendering in C++.

This project is a demonstration of terrain generation and rendering. Different techniques have been implemented.
The generation of the terrain heightmap is implemented using fault formation and midpoint displacement.
The rendering is using either static geometry or a quadtree with frustum culling.
The texture is generated in software by the CPU or in hardware using Cg with 4 texture layers.

Download the: sources (0.82MB)

 

Physics Simulation

Software Physics Simulation in C++.

This project is a physics simulation of rigid bodies in software. The base of the physics system is entirely abstract, and an ODE and PhysiX implementations are also available. The software implementation can handle different 3D shapes with realistic collision responses.

Download the: binaries (6.14MB)
Download the: sources (0.22MB)
Download the: first report (0.16MB) and second report (0.72MB)

 

Software Rendering

Software Rendering in C++.

This project is a demonstration of real-time software rendering implemented with a shader approach.
The demo can render several models imported from 3DS files with multiple lights and materials.
The demo provides a simple camera navigation and the lighting is implemented with the Blinn-Phong model.

Download the: binaries (2.64MB)
Download the: sources (0.41MB)

 

CSG

CSG Editor

CSG Editor using wxWidgets in C++.

This editor is an OpenGL scene designer that allows the construction of 3D scene by using Constructive Solid Geometry (CSG).
The scene can contain shapes, and models arranged in a hierarchy. The CSG nodes have an associated operation : Union, Addition, or Substraction. The editor can render the results of CSG operations in real-time using a method published by J. Goldfeather and T.F. Wiegand.

Download the: binaries (3.84MB)
Download the: sources (0.28MB)
Download the: report (0.60MB) (French)

 

Fire of War

Fire of War

Fire of War

Action/strategy game in VB with DirectX7.

This is the first completed project that I did when I was in high school.
This is an action/strategy game with a top-down view similar to the Command & Conquer games. The player controls a commando who’s given several objectives to complete a given mission. The environment is interactive and the entities have dynamic behaviors.
An editor is provided to create new tile-based maps with an event-based scripting system.
Everything is data-driven, and every entity is customizable.
The report is highly detailed, every aspect of the code is explained.

Download the: binaries (22.50MB) (Requires VB Runtimes)
Download the: sources (0.48MB)
Download the: report (2.06MB) (French)