Matthew Vlietstra
  • Home
  • University Project
    • 3D Design
      • Bender Skateboarding Animation
      • Rat Model
    • Artificial Intelligence
      • Number Plate Recognition
    • Games
      • Drunken Walk – ICT207 Project
      • Snake Game
      • The Tavern – ICT207 Assignment
      • X2GEngine – ICT311
      • XNA Math Racing
    • Java ICT306 – GUI
    • Simulations
      • ICT312 Murdoch Tavern Simulation
      • ICT313 Coral Simulation
      • Table Tennis Simulation
    • Websites
      • ICT108 Project
  • Personal Projects
    • AoK HD Mouse Restrict
    • Google Play
      • Abstract Live Wallpaper
      • Glowing Snake Live Wallpaper
      • Retro Wave Live Wallpaper
    • Minesweeper
    • Retro Terminal Web Browser
    • Websites
      • JQuery Twitter Search
      • SimpleBlueTheme
      • StopGoogling.Me
      • Unmetered Content
  • About Me
  • Contact Me
KEEP IN TOUCH

X2GEngine – ICT311



Contents

  • 1 Source code
  • 2 Second Assignment
    • 2.1 Video
    • 2.2 New Features
    • 2.3 Awesomium Menu System
    • 2.4 Presentation Slides
  • 3 First Assignment
    • 3.1 Intro/Menu
    • 3.2 Old Trailer
    • 3.3 Unedited Video
    • 3.4 Gource Video
    • 3.5 UML Diagram
    • 3.6 Features
    • 3.7 Presentation Slides

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 :P )

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 :P ). 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

Presentation Slides

GitHub

Contagious06Contagious06 @ GitHub
  • Templated-Factory
    Templated Factory
    April 27, 2013 - 12:12 pm
  • AoK-HD-Mouse-Restrict

    April 7, 2013 - 4:51 am

Links

My Linkedin.com Profile Dropbox Youtube Google Play

EvoLve theme by Blogatize  •  Powered by WordPress Matthew Vlietstra