top of page

Project VOID

Create, explore, survive. Void is a space survival game that focuses on exploration, teamwork and construction. A multiplayer game set in the near future, Void combines elements of tactical decision making and grid-based construction with resource management and exploration to create a dynamic world for players and their enemies to inhabit. Players begin aboard a space station and are left to explore without influence or oversight. Caution is advised as life in Void never gets any easier.

Team

7 Programmers (full-time), 7 Artists (part-time/casual)

 

Time Frame

August 2013 - May 2014 (32 weeks)

 

Role

Programmer / Art Coordinator

Development Bio

Project VOID is the final-year, full-time project that I worked on with a group of seven programmers and seven artists for the last year of my degree at Media Design School. For the majority of the project we didn't have the artists to work with as they were not on the project full-time and could only work casual hours, so it was up to the programmers to design and envision the game idea.

 

For the software development methodology we chose to incorporate SCRUM. During development, I was heavily involved with the technical design for almost all of the game features & mechanics and was in charge of managing the artists schedule and asset list. Working quite closely with the artists that had been involved was a good experience for me as it allowed me to oversee the design and creation of all the art assets coming through the pipeline. It was also very fun to finally be able to collaborate with artists for a big production and have a good sense of art direction on board.

 

Although we had spent about eight weeks on pre-production, during the implementation phase we somehow managed to find ourselves in a situation where we had failed to properly design certain areas within the game - notably the "players' end goal". Unfortunately this ended up holding back a lot of technical development for a few members to revise the game design and made our development goal a little bit of a moving target which became even more problematic. Eventually we came to the decision that we needed to cut down much of the scope and focus on the main aspect and fun of the game - the multiplayer experience.

 

In the end we came out with a product that I'm very proud to have worked on, we achieved more that we could have expected in some areas, and a little less in other areas - but all in all, the game we created offers a very unique, immersive and fun multiplayer experience.

Feel free to check out the source in our GitHub repository and check out the game featured in the video below:

My Primary Technical Implementations

HDR Shaders

All shaders in-game make full use of HDR (high dynamic range) rendering passes to make those emissive lights and specular highlights look that much more awesome.

 

All shaders were written in Cg/HLSL as either Unity3D surface shaders or vertex & fragment shaders.

Multi-Purpose DNSE Shader - 1

Multi-Purpose DNSE Shader - 1

Applied to most of the materials seen in game. This includes ship interior, ship exterior exterior, modules, doors and more...

Multi-Purpose DNSE Shader - 2

Multi-Purpose DNSE Shader - 2

Takes in samplers for Diffuse, Normal, Specular, Emissive and Reflection.

Multi-Purpose DNSE Shader - 3

Multi-Purpose DNSE Shader - 3

Allows custom modification of emissive channels and power, specular power, tint, reflection power, and more!

Multi-Purpose DNSE Shader - 4

Multi-Purpose DNSE Shader - 4

Even used for the asteroids as well!

Module Precipitation Animated Shader

Module Precipitation Animated Shader

Three pass shader, consisting of a alpha cut-out pass for the solid geometry, transparent pass for the holographic portion and noise pass for animated precipitation effect. A very similar shader was created for the Ship Tiling System UI.

Simplex Noise FBM Animated Shader

Simplex Noise FBM Animated Shader

Single pass shader culminating eight octaves of Simplex Noise to create an animated "sun-like" effect.

Multi-Fractal Nebulae

Real-time rendered shader-based FBM (Fractal Brownian Motion) multi-fractal nebulae. The program is written using a vertex & fragment shader on shader model 3.0 compatible devices and uses a GPU optimised implementation of Perlin Noise. Available in three different flavours! 

 

 

Side-note: You probably guessed where all that nebulae art around here comes from!

FBM Multi-Fractal

FBM Multi-Fractal

A six octave real-time fragment shader program for this multi-fractal. In full view a single nebulae would take <1 ms to render.

Ridged FBM Multi-Fractal

Ridged FBM Multi-Fractal

A "Ridged" version of the FBM. It appears like this because the sum of noise of each fractal is abs(), which results in this ridged effect.

Turbulent FBM Multi-Fractal

Turbulent FBM Multi-Fractal

A "Turbulent" version of the FBM. With a slight modification to the parameters within the abs() found in Ridged FBM, we get this effect.

Combination of Overlapping Nebulae

Combination of Overlapping Nebulae

All FBM shaders are additive blending enabled, allowing for beautiful, harmonic combinations to be formed.

Nebulae In-Game

Nebulae In-Game

Nebulae being rendered in-game whilst piloting the ship.

Ship Tiling System

3D grid-based tiling system used to plan out and build the entire ship that boards the players along their journey. Tiles are defined using a local neighbourhood tile masking technique, and is designed to be scalable and re-usable. 

 

Here is a technical write up I did for my capstone assignment regarding this feature if you are interested to read it :)

Planning the Ship - 1

Planning the Ship - 1

Placing the interior tiles - uses a quick automatic tile definition algorithm. The interior tiles are composed of walls, ceilings and flooring objects.

Planning the Ship - 2

Planning the Ship - 2

All interior tiles are automatically surrounded by exterior tiles if facing to space. These are composed of hull wall, upper and lower objects.

Planning the Ship - 3

Planning the Ship - 3

Multiple levels are added and then partitioning the interior space with interior walls commences. A modification to how wall tiles define themselves is how this is made possible.

Planning the Ship - 4

Planning the Ship - 4

Adding in wall modifications to the tile pieces for doors and windows. Interior - Interior modifications are treated slightly differently to Interior - Exterior modifications, but behave in the same way.

Planning the Ship - 5

Planning the Ship - 5

A way of combining partitioned spaces between different floors is by a similar mechanism to how interior walls partitioning is done. Allows for open multi-stored levels!

Final Ship Exported

Final Ship Exported

The final created ship after being deployed within the user interface.

Volumetric Partitioning - 1

Volumetric Partitioning - 1

Volumetric partitioning is possible due to the nature of the tiling system's design. Each colour represents an isolated space within the ship allowing for accurate volumetric pressurization and air mass flow between rooms.

Volumetric Partitioning - 2

Volumetric Partitioning - 2

Same as the latter, with the tile objects visible.

User Interface & HUD

Fully featured DUI (diegetic user interface) for in-game user interface. 3D HUD (heads up display) and visor which allows for Oculus Rift VR integration. Ship Operating System User Interface created for ship status' and player ship, facility and module control.

 

The NGUI package was used to enable most of the User Interface functionality. I modified the system to allow for diegetic control.

HUD & Visor

HUD & Visor

Heads up display featured within the player's animated visor. Shows levels for O2, warning status', health indicators and reticule.

Diegetic User Interface

Diegetic User Interface

DUI system allows for 3D world interactions with monitors and screens within the game.

Ship OS User Interface - 1

Ship OS User Interface - 1

Designed to be integrated with all of the ship systems using a very clean and intuitive Widget-style interface.

Ship OS User Interface - 2

Ship OS User Interface - 2

Widgets get initialised from the dock menu and can be customized to show any information required.

Ship OS User Interface - 3

Ship OS User Interface - 3

The widgets themselves have a lot of flexibility for moving, resizing, maximizing with nice animations to go with it :) Sad story is... none of the OS made it into the final build due to time constraints.

Oculus VR Integration

Oculus VR Integration

All HUD elements are 3D to enable proper viewing with VR. Reticule gets projected onto the object that you are looking at to keep it in the same place for both eyes. Unfortunately I didn't have an OVR kit here so that I could properly enable the lens correction image effect!

Dual Physics Spaces

The dual physics spaces to allow for a seperation between the physics of the space vessel and the outside enviroment, and the inside of the space vessel and its inhabbitants. This provided full control over the physics reactions that would occur to rigidbodies onboard the ship. The transition between getting in and out of the ship is seamless - smoke and mirrors!

 

We couldn't have them bouncing off the walls with every movement/rotation the ship made :S

Exterior Perspective 1

Exterior Perspective 1

The ship physics space as you can see is far off in the distance, even outside of the bounds of the background geometry. This ship never moves from this place as to allow simulation of custom physics effects on-board the ship.

Exterior Perspective 2

Exterior Perspective 2

From the players perspective, flying outside of the space vessel, there is only reference of position for the physics geometry of where the exterior of the ship would be - this geometry is what collides with the outside world.

Exterior Perspective Composition

Exterior Perspective Composition

A composition of both camera renders is made for the final render which shows the ship and the galaxy around it. To the player, they would have no idea any of this is happening.

Interior Perspective 1

Interior Perspective 1

Same case as before however the camera that is rendering the ship is within the players head.

Interior Perspective 2

Interior Perspective 2

The camera rendering the galaxy is projected into the scene where the player would be in the galaxy relative to the ship.

Interior Perspective Composition

Interior Perspective Composition

Again a composition is made and the final render comes out something like this.

© Website Layout by EK. Modified by Martin Ponichtera. Proudly created with Wix.com

  • w-facebook
  • LinkedIn Clean
  • github_icon.png
  • Google+ Clean
bottom of page