Featured Contents

Engineering Lab

The Engineering Lab is a Virtual Learning Environment which makes use of game technology to provide a more attractive workshop approach for engineering students as well as provide simplified physics models for real-life counterparts. [...]

Road Apocalypse

Road Apocalypse is a top-down shoot-em up game reminiscent of games such as Super Spy Hunter for the NES, developed in Adobe Flash as part of university coursework. [...]

Latest Posts

Project codename AndroRoll

Project AndroRoll is an Android game currently in development by me (Mihai Ungureanu) and Maxim Shnyrev using Unity3D version 4 and C# as the chosen scripting language.

Try the game here: http://gamejolt.com/games/puzzle/androroll-project/16067/

The above link leads to a WIP version which includes the following functions:
- ball movement
- level progression
- level select screen
- level completion screen
- pause feature (not shown in video but usable)
- see saws
- elevators (elevator script includes many functions such as 6 move directions, editable speed, editable movement distance, editable start/stop delay, loop, return to origin, audio and will be released soon as a free script on the Unity Store)
- tubes
- accelerator blocks
- disappearing platforms
- particle effects
- level finish block

The 1st level includes most of the assets and functions developed until now. The other levels exist purely to test and show the level progression function.

3D Modelling

Mihai Ungureanu
Here are a few of my 3D models and scenes created usually in my free time using Autodesk 3DS Max or Blender.

7900GT Rim - 3ds Max - Blender Cycles Render

Volkswagen Caddy 1980 WIP - 3DS Max
Volkswagen Caddy 1980 Render test - Blender Cycles Render

Pixar's Cars fan art - DJ car - 3DS Max - Mental Ray
Pixar's Cars fan art - DJ car - 3DS Max - Mental Ray


Dining Chair - 3DS Max Scanline Render practice


Dacia Duster Concept Rim - 3DS Max - V-Ray render

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.

Space Simulator

Mihai Ungureanu , , , ,
MSpaceSim Space Simulation Game

MSpaceSim is a space simulation game I created as part of my coursework at the University of Worcester.

It was developed with the purpose of researching how elements of complex systems can be integrated in games and how these games can showcase their properties such as emergent behaviour. It can also be used to investigate the field of game based learning and specifically learning for complexity

While it is not as developed as I wanted to be due to lack of time and due to focusing on other projects, it is one that I want to work more on and ultimately turn it into a very interactive simulation game.

It was programmed in C# using Visual Studio 2010 and XNA Game Studio 4.0.

It features planetary interaction through gravity based on Newton’s Law of Universal Gravitation, calculating the velocity of each planet depending on initial velocity and gravitational pull.

I have chosen a simple collision model to fit with the available development time however I have plans to improve so that it will allow the simulation of planet forming and deforming through collision.

Source code available on request.

Y'arr finished with the Kinect


Here's a team project that went a bit away from the classic mouse and keyboard/controller that I have experienced throughout my work on game development.

This was the final project for one of my university modules at the University of Worcester, which is a volley-ball game programmed in C# using a modified XNA Framework and integrating Kinect controls with the Microsoft SDK.

I can only say that I’m more than happy on how this turned out and I had a lot of fun working on it as well as enjoying to work with relatively new technology and learn something relevant to today’s game industry.

Here’s a video demonstration of how it works, put nicely together by two of my team-mates:


As by the time me and my team-mates started working on this project we already had quite extensive knowledge of what each of us knows best in terms of game programming, we managed to split the workload in parts that would fit each of us and allows us to work simultaneously, without being slowed down in case one of us would lose pace.
My part consisted mostly in dealing with collision detection and response, the ball's physics, loading and displaying the graphics as well as occasionally helping my colleagues if they got stuck.
A fun fact about how we met the project requirements and why we have chosen the pirate theme is to do tightly with collision detection. Yes, it seems that in very odd cases, collision detection can dictate a game's direction. Or at least it did in our case.
We started initially with a plain VoleyBall theme for our game but we couldn't think about anything that would give a nice flavour to it. When we got to the point of creating the net we got slightly stuck at implementing our collision detection with a classic rectangular shaped net. This was caused by the modified XNA framework we were using, which was built to work better with physics simulation and collision between circular shaped objects. Due to this we brainstormed that making the game to be Pirate Volley we could use 3 circular shaped objects on top of each other for the net (the 3 barrels) and also have a whacky theme for our game. This way we managed to easily implement collision between the ball and the barrels which turned out to make the game more interesting that plain volleyball.


If you are interested in seeing the blogs of my team-mates, here's where to find them:

TSV to CSV Converter

Mihai Ungureanu , , ,
This is another application I made as part of my university course, aimed at experimenting with multi-threading and reading/writing text files. It has been created with C# in Visual Studio 2010 and uses Windows Forms Controls.

The application is used to convert Tab Separated Files (TSV) to Comma Separated Files (CSV), very useful for databases which require the latter but do not have an option of converting.

Programming topics used:
- Windows Forms
- String manipulation
- Threading
- Text file loading, reading and writing using StreamReader and StreamWriter objects
- Garbage collection/memory management
- Method delegation

Screenshot:

Source code available on request.
 
Copyright 2013 Mihai Ungureanu