Singularity Engine

The Singularity engine is pretty much a combination of everything I learned while attending Full Sail University. For the last 5 months of the program our class was split into 4 small teams of 4-5 programmers with 1 artist each. Going into the final stretch of our program we knew our class was one of the best if not the best Full Sail has ever seen. We figured that if we put our heads together we could come up with an engine that the whole class could benefit from - so we did. From each of the teams the Technology lead was chosen to create, add and support certain features to the engine. The teaching staff recognized our effort and decided to set milestones for the engine team that were also graded alongside the actual game project. The milestones were set in a way that would accommodate the features required by each of the teams.

The engine handles rendering, collision detection, input, events, and object management. It uses Direct 3D 9.0C and Shader Model 2.0, and takes a deferred shading approach for lighting, with a forward rendering system used for transparent and non-lit objects such as particles.

My job as a part of the engine team was primarily handling input and managing the 3D picking system, as well as QA and support for people on the other teams by either helping them out or getting things to work in a certain way that suits them. The input system I wrote utilizes a function that hooks into the current window's message handler (wndproc) and takes input directly from the window. The system is able to buffer the input of all keys and then send them through events that get bound to the keys. The picking system supports 2 forms of picking. The first is a simple point & click, while the second is what I call a "Sub-Frustum Pick" which allows the picking to be handled by a rectangle that is drawn on screen, like you can select multiple icons on Windows' desktop.

This project, as mentioned, required us to support any features a team in our class would request, which basically meant we were constantly talking to about 16 other people about what they needed from the engine. We were also required to listen to their questions and fix problems they would encounter, whether they be in the engine code our their personal code. I'd say this was overall a huge learning experience for me from a communications stand point, and technology wise.

Sadly, one of the 4 games made by my class was canned, and only 3 made it to the final release:
Tribes of the Eternal Moon - Screen shot below

Digital Warfare - Screen shot below

Alpha Strike - Screen shot below


Jonathan Lerner
Reseda, CA
Phone: (818) 515 2130