Reflective Presentation – Studio 3

Ray Tracer Optimisation


  • Threading

Learned how to use OpenMP and some of the issues of threading/need for thread safety. Also how altering the order of loops can increase/decrease render times.

Continue reading “Reflective Presentation – Studio 3”


Silhoutte Shader, Adding Health Bars to Get Kraken

I’ve continued working through shaders tutorials over the last few days and came to the Silhouette Shader. This shader simulates the way that transparent objects become more opaque near their edges. It determines the opacity of each vector by calculating the surface normal and comparing it to the cameras view. Vectors with normals closer to parallel with the camera view will appear transparent. They then become more opaque the further from parallel they become. This is one of the coolest looking shaders I’ve been able to make so far and I wanted to put it to use straight away.

Continue reading “Silhoutte Shader, Adding Health Bars to Get Kraken”

Adding controller support to title menus

There were a number of issues that came up over the course of our work on Pinch! because we initially tried to support both XB360 and PS3 controllers. We ran into a lot of issues with our user interface and accurately relaying information to the player (Press X to pick up was actually A on the XB360 controller). In the end we removed the PS3 controller support and focused on XB360 as it was the most readily available controllers at uni.

Another issue that we didn’t get much feedback on during testing, but that had annoyed me for a while, was that you had to use the mouse to navigate the title screen menus of the game despite the fact that the game itself was controller only and could not support a mouse. During our second pass of the game I spent a bit of time working on a couple of solutions to this. The first was to simply add mouse support to the player controls. This had already existed early on, but Chris had chosen to remove it as it was very twitchy and made for a poor play experience. Because some of the animators that were apart of the team didn’t have access to XB360 controllers at home we decided it would be worthwhile to add mouse control back in as a backup for those without controllers.

The flip side of the issue took a lot more work however. The menu buttons script was as follows:

Continue reading “Adding controller support to title menus”

RTS Controller (WIP)

Before starting on the third game project for Studio 1 I spent some time working on a controller script for an RTS game. I didn’t get very far into the project but did find some nice tutorials that ran through the basics for camera and mouse controls.

So I started off with a script to move the camera when the mouse cursor is near the edge of the game window. I tried to create a generic function that would take an axis to move along, a float value to move by, and a bool for whether it was moving in world or local space. The result was fairly successful, though I had no way to check the boundaries of the level. The code also became very messy as I had added the option to turn off the mouse scrolling. This version also had camera zoom (again with no constraints) and camera rotation. I ran into a lot of issues with the rotation at first, trying to rotate the Y and X axis (allowing the camera to turn left/right as well as tilt forward/back) led to them combining and tilting the camera in weird ways.

Continue reading “RTS Controller (WIP)”

Showing the player their score without using numbers

So one of the restrictions for our current project is that no text can be used within the game (start menus excluded). This presents an interesting problem for our game Get Kraken as the main method of progressing through the game is catching fish to accumulate score. We decided early on that we could display the score using a series of icons. To avoid confusion and overwhelming numbers (the player needs upwards of 100 fish for some upgrades) we elected to use different symbols to denote different value points of fish, in the same way some games use gold, silver, and copper/bronze coins to compress currency (100 copper = 1 silver, 100 silver = 1 gold, etc).


Continue reading “Showing the player their score without using numbers”

Roll-a-ball V2

I’ve been pretty busy working on our second group project for studio 1 the last couple weeks so I hadn’t gotten adding my extra features to Roll-a-ball, but I finally got some time tonight. It didn’t end up taking that long.

Download Link: Roll-a-ball_v02

To recap the additions that I wanted to make:

  • Title scene
  • Height variation in the level
  • Varied level layout
  • Jump ability
  • Powerup to increase speed
  • Colour

Just some basic things that I thought would be interesting at the time. As I had put it off for a while I decided to just get what I could done tonight and work on the next tutorial.

  • The title scene was easy enough (and I’ve had more practice with scene transitions on the current studio project).
  • Using planes and rotating them to make ramps was very straightforward, as long as the ramp isn’t too steep the ball can roll up them without any changes.
  • I didn’t want to spend too much more time on this, but it would just be a matter of adding more ramps/wall to create a more varied level.
  • I didn’t end up implementing the jump. Couldn’t think of an easy way to implement it in a few minutes, and it would create issues with the walls and keeping the player inside the level if it was added.
  • All I did for a powerup was add a simple increment to the speed value of the player whenever they collect a box.
  • Colour was easy. Make a Material object, add a colour and apply it to the object in the scene. Being able to add the colour to a prefab and have it add to all copies in the level saved some time.

Now that this project is finished I’ll work on the Space Shooter tutorial next.