-
Notifications
You must be signed in to change notification settings - Fork 0
Assignment 2 for COMP30019 - Graphics and Interactions, a ball rolling game made in Unity. WebGL version here:
banool/comp30019-assn2
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Rolly Mountain - a game by Daniel Porteous (696965) and Hugh Edwards (584183). It was built for the University of Melbourne subject Graphics and Interaction, and made with Unity 5.3 for the Microsoft Surface. ================================================================================ -- YouTube demonstration https://www.youtube.com/watch?v=fTZ0RdtsIEg&feature=youtu.be -- Versions Version 1 - completed 13th October 2016. The Windows Store certification report can be found in AssignmentFiles. ================================================================================ -- Description Rolly Mountain is a game where the player controls a ball with the aim of surviving for the longest period and maximising their score. The ball is rolling down a pseudo-endless slope with randomly spawning obstacles. The player controls the left and right motion of the ball, and can jump over obstacles. The game ends if the player falls into the water, or collides with an obstacle. The game has a menu from which the gameplay can be accessed. A score keeps track player performance (and the rate at which score increases is proportional to player speed). It was designed for the Microsoft Surface. -- Welcome Screen (UI) Easy to use, just a Play and Exit button, with instructions to the right. -- Controls The menu may be navigated with touch (algernatively, with mouse clicks). Horizontal movement - Tilt the device from side to side (alternatively, use the left and right arrow keys). Jump - Tap the screen (alternatively, press the space bar). -- Object Modelling -- Objects Objects are all basic, default three dimension geometric objects as sets of polygons in Unity (quads, cubes, a pseudo-sphere). -- Physics The unity physics engine is used to govern the interaction between the ball and the world. Player control is implemented via the addition of forces to the ball. -- Terrain The physical collider with which the obstacles and player interract is a really long quad. It is practically impossible to reach the end of it considering how fast you would be going, I've never gotten within even 1/100th of its length. The actual physical terrain that you see, being the textured plane and the trees, are spawned in one chunk at a time in front of the player and then deleted a safe length behind the player. The custom fog obscures the unspawned regions. -- Graphics --Shaders -- Phong Generic objects are displayed with a custom shader implementing the Phong Shader. Textures are used to enhance object presenttation. -- Bump-mapping The player's sphere is a bump-mapped sphere made to look like bricks. This is done by applying a normal map to the object as well as a texture. -- Water The water is a semi-transparent textureless shader which also implements phong components (ambient, diffuse, specular). This was achieved by alterring the alpha component of the vertex colour values, and setting the RenderType to transparent. Specularity is increased to create a shiny effect. This allows the player to see the dirt moving beneath the water. -- Shadow volumes Shadow volumes are implemented with Unity's built in shadow maps in the shaders of certain objects, such as the terrain. -- Fog Fog is implemented on certain objects (eg the slope, obstacles) to obscure those that are 'fading' into the distance. A custom fog shader is used here. These objects are also textured, so that the fog colour is blended onto the texture based on how far the object is from the camera. The attenuation factor determines how much of the original vertex colour is attenuated by the fog colour. -- Particles The Unity particle system is utilised to create dust particles when the player impacts the terrain -- Camera Motion The transform component of the camera is associated with the player such that it remains a fixed offset above and behind the player. The camera orientation is such that the 'action' is visible. -- Resources -- Textures The brick texture and normal maps are taken from workshop 7. Tree textures were taken from: here: https://goo.gl/gpJB9G here: https://goo.gl/Y2fmAl The terrain, obstacle and dirt textures are taken from the Unity Standard Assets. -- Code inspiration The shader PhongShaderTransparent is based upon a shader implemented in our Project 1 solution. Portions of the two shaders PhongShaderBumpTex and CubeShaderTex are inspired by lab code written by Alexandre Mutel, with edits by Jeremy Nicholson, Chris Ewin, and Alex Zable. PassArrayToShader: a generic script used to pass arrays to shaders. The script, and its use in TexApplier, is inspired by lab material, from http://www.alanzucconi.com/2016/01/27/arrays-shaders-heatmaps-in-unity3d -- Sound The explosion sound on player death was taken from https://www.freesoundeffects.com/free-sounds/explosion-10070/ -- Music Music was written and performed by Daniel Porteous. -- Skybox The skybox (not visible in final game, but visible on the welcome screen) was painted by Daniel Porteous.
About
Assignment 2 for COMP30019 - Graphics and Interactions, a ball rolling game made in Unity. WebGL version here:
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published