Source code

Second Assignment


New Features

– Using Cal3D
– Bone Animation

–  LUA State Machine
– Waypoints
– Fire Elemental that shoots fireballs at the player

– Using FMOD

Added support for VBO streaming (for the animation)

Awesomium Menu System

A Demo of the menu system can be found here – May take a bit to load the audio/ images

The credits screen can be found here – May take a bit to load the audio/ images)

The original menu source can be found here  (Took me ages to find a HTML based menu system that resembled a game menu – thought I would have to make one myself 😛 )

The menu system took a fair bit to time to get together, mainly because I was jumping between Awesomium versions because we wanted video support (Hatef demanded a intro screen 😛 ). I concluded that implementing video support with flash mainly because I would either have to hope the person had flash install or distribute our engine/game with the flash .dll – which is against there terms of agreement (read that somewhere). So after research, I found that there was an Awesomium Apha version that supported html 5 video. However it lacked a majority of the features, including documentation, so I went in blind and succeeded in implementing it.

There were some issues, i.e. how was I going to determine what button the player clicked on (initially figured I would use java script, however I found out that it wasn’t implemented). I then realized that I could just do it the old fashioned way – by getting the arguments of the specific page i.e. mainMenu.html?page=startGame. It was a hack and slash way – but it was easy to implement and worked fairly well.

Presentation Slides

First Assignment

The engine was designed & coded in 30 days.


Old Trailer

Unedited Video

Gource Video

UML Diagram

The diagram was done before the project started. It wasn’t completely completed however it did serve as a solid foundation for our game engine. The diagram was done by me in Star UML, it does share a few similarities with the XNA framework i.e. SpriteBatch, Content Loader, etc


Interfaced Renderer
– VBO Support (Triangles, Triangle strips, quads, etc etc), using the IndexBufffer & VertexBuffer classes
– 2D Rendering using a Rectangle
– bitmap font rendering (Loaded from .fnt)
– Texture2D, Texture3D & TextureCube
– SpriteBatch (Not part of IRenderer.)
Shaders (GLSL) — Interfaced
Interfaced Window
– Currently implemented using GLFW
– Facaded – Bullet Physics implemented.
– Constraints
– Character
– Ray Picking
– Heightmap
– ConvexHulls
– Triangle Meshes
– Picking Up Objects
– A game can be completely created using LUA
– World builder completely coded in LUA
Resource loader
– Support for adding different loaders
– Interfaced asset
– Interfaced loader
Interfaced input loader
Awesomium 1.7 Alpha (HTML5 Support) – Last minute implementation

Physics: Bullet
Sound: Currrently not implemented, going to use FMOD though.
Texture Loading: Devil
Majority of the models: YoFrankie – The assignment was focused on the game engine not the game. Although we did model a fair bit.

Awesome HTML Menu System:
Took ages to find, well worth it. It was been slightly modified and a slideshow background has been added. The same font and blue hover is also used for the credits screen.

Menu Music: (Author: Andersson187)

Joe Skelton
– Abstract Renderer, Shaders, Particles etc

Hatef Tadayon
– Physics, Input Manager, Audio, Modelling etc

Matthew Vlietstra
– Resource Manager, Engine Core, Game Objects, LUA, Heightmap, Game,
– Awesomium, Some of the Renderer, Some Physics, Bitmap fonts, Shaders,
– Heightmap, HTML, Interfaced Window, Modelling, Worldbuilder
– High Level Engine Design + Misc

Presentation Slides