top of page

Christopher Howlett

Game Programmer

  • Facebook App Icon
  • LinkedIn App Icon
  • Blogger App Icon
  • Twitter App Icon

Bachelor of Software Engineering - Year 2

The second year consisted primarily of becoming familiar with DirectX 10 and shader pipelines, Networking, Physics, Artificial Intelligence, working with engines (Unity3D) and producing a range of small game prototypes in a team environment with artists.

L.I.F.T

L.I.F.T 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 made using Unity with C# over 8 weeks. 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. See our presentation video here: https://www.youtube.com/watch?v=g4WewAbBRzs

 

Team Members:

Artists: Lena Yaroshenko, Tom Lowbridge and Terai Tauvavau

Programmers: Steve Johnson and Myself

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. 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-

Graphics Assignment: Soft Shadows

he 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

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.

 

Final Grade: A-

Networking Assignment: Candy Grab

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.

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 Networking Grade: A+

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

 

Techniques presented:

1: Obstacle avoidance: 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

 

bottom of page