Saturday, 16 November 2013

MDS - 2nd Year

______________________________________________________________________________

Do You Even Lift?

This is a local multiplayer forklift puzzle game for two players. Forklifts must work together to solve puzzles and exit the level, while the boss robot attempts to stop their escape.
Amongst other things, I am responsible for the fork lifting mechanic, the Boss robot AI, the Level select scene and writing shaders.

This game is also made using Unity with C#. We presented this game at the December Game Developers Meetup, 2013.

Team Members
Artists: Shawn Elliot, Dean Barile, Josh Rawlings and Natanel Apfel
Programmers: Chris Johnson, Ben Carnall and Myself








______________________________________________________________________________

Magical Train Adventure

The purpose of this assignment was to give the first years their first group game experience. The game had to be a non-violent game featuring a certain constraint. Our constraint was that the game had to feature an umbrella, or an object which was used in a way other than how it's intended.

The game our team decided upon was a cooperative network multiplayer game in which the players have to work together to control a train. Each player uses an android device as a controller to interact with the train on the server, running on PC. In order to achieve this we used Unity with C#. We presented this game at the December Game Developers Meetup, 2013.

Team Members
Artists: Lena Yaroshenko, Tom Lowbridge and Terai Tauvavau
Programmers: Steve Johnson and Myself
Our team consists entirely of second year students.

The following video demonstrates a driver controlling the height of the train tracks. Once the required upgrade is unlocked they take the train to space.


Each player has two scenes on their android device.
Inventor Device
Left:Inventors upgrade bench with mixing bowl
Right: Puzzle scene for combining elements to make upgrades

Engineer Device
Left: Engineers furnace - shovel coal to give power to driver
Right - Passenger compartment - they may get set on fire in the presence of umbrellas



Driver Device
Left: Driver Scene - move handle to make train go faster
Right: Handle controls height of train tracks. Upgrades required to move to space or underwater

______________________________________________________________________________

Decap-a-Weta

This assignment is a group project. The purpose of this assignment was to produce a game prototype while closely following a chosen Software Engineering Methodology. Our team chose to follow Agile.
I acted as Team Leader for this assignment. Fortunately I had a fantastic team who managed themselves well and thus required very little leading.
The project started by our tutor going around MDS asking people to put words into a hat which they thought would be really hard to make a multiplayer game out of. We drew the word "Weta". Our initial inspiration came from games such as Joust (1982).
The programming tasks were divided equally between us and, as our team consisted entirely of programmers, Ben and I created the art for the game. 

Decap-a-Weta is a battle arena game featuring people armed with javelins riding on the backs of wetas. The characters can climb walls and jump high. The aim is to get a higher kill count than the other players within the given time period. For the prototype we created two levels, each with a unique environmental obstacle which the players had to avoid. For the forest level, a giant eagle would attack the player from one of the four corners, while in the "Goo" level the players could die by falling into a fit of goo through holes in the level.
This game is created using Unity. For most of us, this was our first experience with Unity and C#.

Team Members: Ben Carnall, Chris Johnson, Steve Johnson and Myself.

Final Grade: A-

The screenshots below don't quite do the game justice, it gets very hectic with four players and the eagle.



______________________________________________________________________________

Physics

Final Physics Grade: A-

Summative 2: Cloth Simulation

For this summative we had to make a cloth simulation. 
The cloth below features collisions with the ground, sphere and itself. It can be dragged and torn with the mouse and is blown by the wind. The scene has adjustable wind levels using the + and - keys. The pin points at the top of the cloth (similar to curtain loops) can be moved closer to each other and further apart.
For this I used C++ with OpenGL for rendering.

Curtain Ring movement
Sphere collision
Cloth Tearing
Torn Cloth

Summative 1: Grumpy Birds

The aim of this assignment was to create a game of "Grumpy Birds" using the Box2D engine.
For this I used C++ with DirectX 10.



______________________________________________________________________________

Networking & Multithreading

This assignment was to make a game called "Candy Grab" using Networking and Multithreading.
In Candy Grab, players must run around a store collecting candy. Each pickup grants the player 15 extra health, colliding with another player or wall reduces their health by 5. Once the player's health reaches 0, they are kicked out of the store. While a large number of players may join the game, only 4 players may be inside the store at any one time, after this the doors are locked (blue squares at the top-left). If a player is kicked out of the store, the doors are opened again.
I wanted all of the major calculations to take place on the server side. For this to work efficiently multi-threading is used to process the player input and collision detection. Once a player joins the server, they are each assigned a thread. Each frame the client sends the user input to the server, each server thread will process the input of the player it is assigned to and, once all input has been processed. After this it checks for collisions between their new positions and responds to these accordingly. Once all collisions have been processed the final positions of each player are sent back to the client for rendering.
This design allows the client executables to focus almost entirely on rendering alone while the server manages the rest.

For this I used C++ with DirectX 10 for rendering.

Final Artificial Intelligence Grade: A+





______________________________________________________________________________

MySQL Database Summative "Undead Moa"

This assignment was to utilise MySQL to populate a database of student, lecturer, summatives and other information. This was a group assignment. We decided we wanted to make this database interface something interesting and fun to use, so we made an interactive cube interface. The cube can be rotated across the Y-Axis only and each face of the cube acts as a separate menu. This allows the user to have four databases open at once (one for each face of the cube), each rendered to a texture and placed on the cube.
The user can click on a menu item and edit the contents, this will save it back into the MySQL database.
We named the interface "Undead Moa" in honour of the old Media Design School intranet.

Team Members: Steven Johnson, Chris Johnson, Declan Wong, Harrison Thrupp and Myself
Database Grade: A







Undead Moa with two different databases open.



______________________________________________________________________________

Artificial Intelligence

The purpose of this assignment was to demonstrate an understanding of different AI techniques. We had to chose five techniques from a list and swap between these in the same executable. Other AI summatives included behaviour trees, minmax trees, binary trees, A* Path finding and solutions to Tower of Hanoi and Connect 4.
For this I used C++ with DirectX 10 for rendering.

Final Artificial Intelligence Grade: A


1: Obstacle avoidance: They avoid fixed obstacles, other AI and the screen walls. Large circles represent fixed obstacles in the scene.

2: Seek
3: Evasion / Flee
 4: Flow Field following
 5: Path following

______________________________________________________________________________

DirectX 10 Graphics & HLSL

The purpose of this assignment was to demonstrate a graphics technique using DirectX 10's shader pipeline.
I chose shadow mapping for this assignment. This demo features soft shadow mapping, adjustable bloom, adjustable colour correction, normal maps, a skybox and diamond-square generated terrain.
The light / shadow map texture can be seen in the top-right viewport.

Final Graphics Grade: A








No comments:

Post a Comment