Contents
Source code
https://github.com/Contagious06/ICT311-X2GEngine
Second Assignment
Video
New Features
Animation
- Using Cal3D
- Bone Animation
AI
- LUA State Machine
- Waypoints
- Fire Elemental that shoots fireballs at the player
Audio
- 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.
Intro/Menu
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
Features
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
Physics
- Facaded – Bullet Physics implemented.
- Constraints
- Character
- Ray Picking
- Heightmap
- ConvexHulls
- Triangle Meshes
- Picking Up Objects
LUA
- A game can be completely created using LUA
- World builder completely coded in LUA
GameObjects
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:http://tympanus.net/codrops/2010/06/28/awesome-cufonized-fly-out-menu
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: http://www.newgrounds.com/audio/listen/480533 (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
