Archives

Engineering Lab - v0.9a

Here are some screenshots from a project I have been working on recently as part of my 3 months position as a Graduate Research Assistant.

 The purpose of this project was to create a Virtual Environment for engineering students at Birmingham University.
It has been theorised that the project would allow the students to simulate effects seen in reality without the limitations they would face otherwise, such as extreme gravity, ideal machines, frictionless movement, etc. 

The project would also serve as possible research material on game-based learning, studying whether using a 3D game engine with interesting visuals improves students' motivation.

 The lab has been developed using Unreal Development Kit with the simulations being programmed partly in UnrealScript, using PixelMine's nFringe plugin for Visual Studio 2010 to serve as the IDE, extended functionality being added using external C++ code.
The majority of 3D models were created in Autodesk 3DS Max while some were sourced from different websites as free for educational use models the textures being sourced mostly from www.cgtextures.com and edited in Adobe Photoshop to suit the purposes. Some of the textures were then modified heavily in the UDK Material Editor to create interesting and appealing materials.
The user interface which controls the different simulations was created using Autodesk's Scaleform 4.0, Adobe Flash and ActionScript 3.0.

From a design point of view, the Engineering Lab has been thought of as a futuristic science facility, inspired by architecture and level designs from popular games such as Mirror's Edge, Doom, and others. It has been theorized that by having an appealing environment which has a video game feel, the students would feel more motivated to explore and study on their own.

Visual purpose areas:
The Canteen
The canteen (above)  is one of the many areas built entirely for visual purposes, in order to bring the environment closer to the look of a video game.


Corridor to dormitories
The dormitories (above and below), again, for visual purposes.

Dorm room.


Men's bathroom


Study areas:
One of the classrooms with fully functional experiments on the tables.
Four classrooms have been created, in order to serve as a classic study environment, having the ability of displaying PowerPoint presentations on the screen (or simple text files), for students to learn how to operate each of the experiments (in this case the stability/balancing simulation of a rotating shaft). It has been thought that some research observations could be done by noting down the percent of students who choose to come to the classrooms to learn first and compare to the percent of students who go straight to the Lab and start playing with the big scale simulation straight away.

Simulation areas:
Entrance to the Lab

Overview of the Lab
 The Lab, the most important part of the Engineering Lab, serves as the main room to contain physics simulations, at the time having the Static and Dynamic Balance experiment and the Watt Governor (not present in the screenshot). An old hi-tech sci-fi lab design theme has been chosen for this area, to bring it to the feel of popular games such as Doom 3 and Fallout 3.

Simulation of static and dynamic balancing
 One of the first fully complete simulation experiments, the Static and Dynamic Balancing machine (above), allows students to test the effects of different weights on a rotating shaft, both loose rotation and motor driven rotation, very similar to a car's crankshaft. It has been observed that the current lab machine available at Birmingham University for simulating the effects of imbalance, does not expose it's effects very well, the only effect being observable being the vibration levels of the whole experiment. Through the virtual simulation above, students can observe the effects through dramatic deformation of the springs, limited on vertical axis movement, and perform a wider range of case studies than using its real-life counterpart.

Another experiment, The Centrifuge (below), is a replication of the machine used to train pilots and astronauts to support the high G forces experienced in flight. It features an arm that rotates around a point, set at one of the ends, with a seat for the player at the other end. It can be observed and controlled both from the control room or from the centrifuge room itself, either inside or outside the centrifuge. Increasing the rotation speed will extend the massive spring attached metal ball, placed inside the centrifuge to showcase the effects of the centrifugal force.
In the control room a graph is available that can plot different parameters such as extension, force, time, etc.

The transparent screen visible in the middle, is to be used for operating instructions (currently displaying Lorem Ipsum).

The screen on the right serves as a note taking station, where each student running the simulation can leave comments on his/her understanding of the experiment, which is then automatically saved to a file and displayed on the screen. This has been devised so that students can see each other's comments and possibly gain understanding of how the experiment works, based on useful comments.

Centrifuge control room

Centrifuge room overview

Inside centrifuge room

Inside centrifuge
Finally here's an overview of how the whole Engineering Lab is laid out, viewed from outside the playable area.
Overview of whole level


Road Apocalypse

Road Apocalypse is a game I have developed as part of the Advanced Multimedia Scripting module on my course at the University of Worcester. The requirements for the project were to create a highly interactive multimedia application using Adobe Flash and ActionScript 3.0 and document the process throughout the planning, development and testing phases.

The criteria based on which the game was graded were as follows:
Class Design and Implementation
Class Communication and Interaction
Appropriate Use of Events / Methods / Parameters
Appropriate User Interface / User Interaction
At least 4 key gameplay features which demonstrate your own problem solving abilities (additional receives bonus)
Appropriate Implementation of Simple and Advanced Dynamics
Documentation of feature updates and application testing.

As I'm a big fan of the battle/powered-up racing I have chosen to create a game inspired by Super Spy Hunter for the Nintendo Entertainment System and Road Apocalypse is what came out. 

The graphic assets used do not completely reflect the initial concept of the game, as the grading did not take this in account, being mostly used for showcasing purposes.

The ActionScript code resides mostly in external files, aiming for Object Orientation with little to no code in the TimeLine. 
It is organized in 12 classes, most notable being the Kernel class which changes between the game screens, the Game class which does most of the collision detection and manages the sprites on the screen, the Player class, and the Enemy class which can be controlled either by the EnemyAI or BossAI classes (both inheriting from AI).

Object Orientation was important for this game as it allows for quick expansion such as adding extra levels, extra enemies/bosses, that inherit on the behaviours of their parent class.

On the software/game development concepts side of things the following can be listed:
- Game State Management using Finite State Machines
- Arrays and array functions
- Looping
- Polymorphism
- Inheritance
- Collision detection and response (one of the most complex parts of this game)
- Heads-Up Display
- Scrolling Background
- Garbage Collection
- Rotated/Angled movement (sine/cosine)
- Random enemy generation
- Programmable enemies

Here's the game as it looked when it was submitted as part of the module's assignment:
Controls: Arrow Keys to drive, X to shoot



Currently I am considering a remake as a full game targeted mostly at mobile devices, using Unity 3D.

Source files available on request.
 
Copyright 2013 Mihai Ungureanu