Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf ·...

48
Cave modelling and rendering Final Report Submitted for the BSc in Computer Science with Games Development May 2018 by Patryk Substelny Word Count: 10,554

Transcript of Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf ·...

Page 1: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

Cave modelling and rendering

Final Report

Submitted for the BSc in Computer Science with Games Development

May 2018

by

Patryk Substelny

Word Count: 10,554

Page 2: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

2

Table of Contents 1 Introduction .................................................................................................................... 3

2 Aim and Objectives ........................................................................................................ 3

3 Background .................................................................................................................... 5

4 Technical Development ................................................................................................ 12

5 Evaluation .................................................................................................................... 33

6 Conclusion ................................................................................................................... 36

Appendix A: Initial Task List ............................................................................................... 42

Appendix B: Initial Time Plan ............................................................................................ 44

Appendix C: Risk Analysis ................................................................................................. 46

References ......................................................................................................................... 47

Page 3: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

3

1 Introduction

‘’The increasing popularity of computer graphics applications in video games and movie production has resulted in a growing demand for the development of virtual environments with rich visual scene content. As such, the use of procedural content generation techniques is an attractive solution that can avoid the manual effort involved in the creation of highly complex scenes, by automating the generation of scene content. However, while there is much research on procedural content generation techniques, the procedural generation of 3D cave models is relatively unexplored.’’

(Juncheng, C., Yang-Wai, C. and Minjie Z., 2011)

This statement by Juncheng, Yang-Wai and Minjie is a good way to introduce cave modelling. Cave modelling is not simple as other type of modelling structure, makes it true for the cave models the fact that procedural generation is still out of rage. Caves are a large, naturally-occurring cavity formed underground. There are many types of caves, their length and size are very diverse, but they are linked by one common feature. Natural cave inside surface is bumpy and the cave paths are fairly irregular and filled of branches. The types of light are different due to their conditions, the material from which they are created, or the permeability of the sunlight to their interior. All these aspects make the caves unpredictable, uncharted and unmatched object worthy of attention.

The purpose of this project is to create a prototype a cave exploration game, implement elements for make it more realistic, playable and satisfactory. The project supposed to examine and develop several cave modelling techniques and create and implement a simple cave exploration game. This document will analyse the step-by-step process of development, as well as providing a detailed specification and discussion of the background material and a review of the management. The report will also review the technical development of the project, discussing the key stages and providing analysis with regards to the taken decision. This report will be an overview for the research areas that interested in. In addition to this, it will outline the scope and context of the investigation. It will also give a good understanding of cave modelling and rendering, followed by design details, and finally a review of the project so far.

2 Aim and Objectives

To develop a prototype cave exploration game, create 3D cave model as realistic as possible, investigate a certain cave modelling techniques and crate and develop a simple cave exploration game. . The project aim stated above can only be achieved by meeting a set of deliverable objectives, these basic objectives are listed below:

1. Research existing solutions 2. Design a good quality 3D cave model

2.1 Cave pattern 2.2 Light effect 2.3 Texture mapping 2.4 View camera

3. Design and implement user interface 4. Create and implement game characters (main character, enemies)

Page 4: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

4

5. Implement audio effect 6. Implement game mathematics and physics aspects

Objective 1 – Research Existing Solutions

This objective was researched existing 3D cave modelling/game techniques, focusing on two potential solutions Unity3D game engine and Open Graphics Library (OpenGL) with OpenGL Shading Language (GLSL). Also specific modelling environment was researched, for the reason of creating a realistic and complex 3D cave model. In the market place exist, many of 3D software, allows users to create such a realistic 3D model, the most popular ones were taken under observation. This along with the authentication investigation has allowed to come to a conclusion as to the scope of the graphic program, which will be further discussed in the design section of this report.

Objective 2 – 3D Cave Model

Following on from research into existing solutions and a specification for the application, decided to use alternative solution with is Unity3D for the purpose of the game prototype and Autodesk Maya for the purpose of creating a 3D model.The aim of this object is to develop a good quality cave model with bumps, quite irregular paths, full of branches and fill with different type of textures The next is to apply point, directional, spot and ambient light effect and make cave model more realistic. View camera will be also applied.

Sub-Objective 2.1 – Cave Pattern Modelling The aim of this object is to modelling 3D cave pattern with appropriate tools such as Blender or Maya using correct technique of cave modelling. The diversity of the model will be created by adding bumps, paths and branches.

Sub-Objective 2.2 –Light Effect The aim of this object is to implement light effect in to the cave model using several different kinds of light. In to the cave model point, directional, spot and ambient light effect will be applied.

Sub-Objective 2.3 – Texture Mapping The aim of this object is to implement texture into the mesh. The texture will be added by using few different techniques of mapping (high mapping, bump mapping, normal mapping and reflection mapping).

Sub-Objective 2.4 –View Camera The aim of this object is to develop projection view camera. Into the cave model different type of camera will be applied (tracking camera, interactive camera and third-person view camera).

Page 5: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

5

Objective 3 – UI Design

To develop a graphical user interface for easy and convenient navigation in the game environment. The user interface will be simple to use and it will have several basic functions as a quick start, save, load and game exit.

Objective 4 – Create Game Character

The aim of this object is to create game object characters. One of the objects will be a main character, that character will be controlled by the player using several different comments (moving, fighting and jumping).The second object is enemies, they will be a simple enemies as an insect inside a cave. AI algorithm will be applied.

Objective 5 – Implement Audio Effect

Develop and integrate audio effects into the game environment. Music effects they one of the most important things in a game environment, they make people feeling different emotions. Inside this object several audio effects will be adding one of the most important audio effect is background music.

Objective 6 – Game Physics

The aim of this object is to implement mathematic and physic equations. Many calculations, reaction between player and environment have to be done to make game playable. In this object all that calculation will be added.

3 Background

3D modelling and rendering of huge and detailed systems is a serious challenge for many computer graphics due to their complexity, inequality and size. Collection of date is difficult because of high complex detail surface of rocks, then achievable geometric data is often faintly sampled. Creating cave 3D models based on recommended methods, type of cave transition and suite cave patterns. Use a curves that represents drift of water, able to create a course of multi-level detail models for a cave passages.

Given a surface as input, it possible to create images of cave pattern, which are then used to generate a model of an entire cave system. There are several ways to develop surfaces given one or more curves as input. The curve can be rotating around an axis form a surface of revolution. Projecting a curve along a vector create a surface of the extrusion. Specifying a curve of extrusion instead of a vector makes a swept surface. (Boggus & Crawfis, 2009) The following cave patterns occur:

Page 6: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

6

Figure 1: Cave Patterns.

• branchwork patterns (top row) • maze patterns (middle row) • spongework and remiform patterns (bottom row)

There are many modelling software that allow user to create a perfect 3D cave model, the few of the most popular ones are Blender (Blender, 2002), Maya (Maya, 1998) and 3DSMax (3DSMax, 1990) Their environment is user-friendly and their graphical interface greatly simplifies modelling, due to the large selection of ready to use tools that allows users to modelling even without the prior experience.

• Blender is an open source 3D creating software, supporting the entirety of the 3D pipeline and rigging, modelling, rendering, simulation, animation, compositing and motion tracking, also video editing and game creation.

• Maya is a 3 dimensional modelling, simulation, animation and rendering software with integrated, powerful tools. Use for character creation, virtual reality, animation and motion graphic.

• 3DSMAx is a 3D modelling and rendering software, it is a helpful tool to create worlds in games, stunning scenes for design visualization and virtual reality (VR).

Using the above mentioned powerful and professional software, it is important to not forget about the techniques of cave modelling. Often used techniques are noise modifier on a sphere, cylinder or by using two terrains/plane meshes. Moreover, manual work is the key to good quality. Describing modelling software cannot be forgotten either about game environment which also will be required. Unity3D is a powerful multi-platform 3D engine (its mean that models form different software like Blender or Maya can be easily imported and edited in Unity3D) and user familiar development environment. It is quite simple for the beginner and powerful enough for the advanced users. Unity is a complete 3D environment, perfect for laying out levels, develop menu, create animation, writing many scripts and create projects. The graphical user interface is organized well and the panels can be customized by dragging and dropping. In the background of Unity3D there is always a programming environment, as with it has built-in scripts such as C# Script and JavaScript.

Caves are frequently described as the environments in films and computer games. Caves are common in old games as Metroid and Lemmings also as more popular series, including World of Warcraft, The Witcher, and Crysis. 3D caves modelling could as well be useful for training purpose simulations.

Page 7: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

7

Comparison of Technologies:

They are several ways that could be used to create this project including different languages, graphic tools, and game engines. The description below will explain exactly the advantages and disadvantages of the individuals and what technologies have been chosen for the project, comparison and justification. Shaders Languages The project could have been developed using one of few different shaders languages, but in this report only three languages been detailed. This languages was chosen from the several that are available. With the high – level shading languages, developer can directly manipulate the functional of the 3D rendering pipeline for creating ‘’custom shaders’’ that complements the fixed function vertex and fragment processing stage. These shading languages are:

Microsoft’s DirectX High Level Shading Language (HLSL), NVIDIA’s C for Graphics (Cg) OpenGL’s Shading Language (GLSL).

High Level Shading Language (HLSL) is a reserved legally shading language developed by Microsoft Company for the Direct3D 9 API to increase shader assembly. HLSL is parallel to the GLSL shading language used with the OpenGL standards, it is also very similar to the Nvidia CG shading language as it was created alongside it. HLSL shader can ensure deep speed and detail increases also as many special effects in 2D and 3D computer graphic (Wolfgang, 2004) NVIDIA’s C for Graphics (Cg) is a high level shading language created by Nvidia with collaboration with Microsoft for programming pixel and vertex shaders. Cg is based on the C language and though they share the same syntax, most features of C was changed and new date types included to make Cg proper for programming graphic processing units. Cg programming language is only appropriate for GPU programming. (Mark, Glanville, Akeley, Kilgard, 2003) OpenGL’s Shading Language (GLSL) is a high-level shading language with a syntax based on C programming language same as Cg shading language. It was developed by the OpenGL ARB to simplify developers more direct control of the graphic pipeline without using ARB assembly language. (Wolfgang, 2004)

Page 8: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

8

They performance it is quietly similar, this is proven by the test made by Lovesey who in his test of a C++-based test framework used to appliance configurations of all three languages investigate execution time differences in one unique vertex processing bound shaders tests case and one unique fragment processing bound shaders test case. The results of these simple tests indicate that the real execution time of shaders is dependent on the capability of the graphical hardware drivers and the language’s compilers. Result of this test showed that, with HLSL is executing the test pixel shader up to 10% faster than Cg and GLSL. (Lovesey, 2005) For the purpose of the project Cg and GLSL shader’s languages will be using even when they are slightly slower than HLSL. The main reason of this choice is that the developer is more similar with above mentioned languages, it will make it increase of project performance (not necessarily the program's performance) because of the good knowledge of these languages. 3D Modelling and Rendering Software 3D modelling is the process of creation of three-dimensional model of an object in order to create, modify, analyse or optimize the design of the objects using the appropriate software/tool. 3D modelling and rendering software is using to develop a not real but virtual model of an object, which takes into the edge dimensions, materials, tolerances and stresses which affecting the objects. The first 3D modelling and rendering software appeared in the 1960s, however the leap forward occurred in the 1990s, when computer technology has become huge and became available to not only for an extraordinary users. Realization of 3D modelling and rendering software did open up wide opportunities for developing models with high complex forms, maked easier the design and planning process, it was an opportunity to identify and eliminate errors at the design stage, which allowed users to take a step forward and bring the design and production process to a new highest level of 3D modelling and rendering. (Bobylev, 2017) Due to many factors these three main ones were selected, tested and compare:

Figure 2: Blender. Figure 3: Autodesk Maya.

Figure 4: Autodesk 3ds Max.

Page 9: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

9

In order to familiarize with them, the 3D modelling and rendering software were tested by develop a small and simple graphic concept. The software was discovered by following tutorials and exploring the menus provide additional support to the last and final decision of choosing the best solution for the project. Also the function and function resource has been examined, the table below shows a comparison of these functions with each other

Figure 1: Software Comparison Table

Autodesk 3ds Max

Autodesk Maya

Blender

First market Viz-Game Games-Film Viz-realtime

Interface

CAD style, Clean and powerful

Like a Forge, flexible and powerful, intuitive

Not as CG industries standard , fast workflow intuitive

Documentation Good Excellent Good

Rendering

Rendering Internal, Mentalray

Internal, Mentalray

Internal

Quality Excellent Excellent Good

Render plugin Vray Vray Yafray/Indigo

Quality w/plugin

Excellent

Excellent Very good

Textures Baker Very good Very good Good

Top base package for industrial need

Animation tools

Very good Excellent Good

UV tools Very good Excellent Excellent

Modelling Excellent Excellent Good

NURBS Low Very good Low

CG Shader/Games

Excellent Excellent Low

ScriptingDev Maxscript MEL, Python Python

Page 10: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

10

Summarizing these comparison table the final conclusion is that the most appropriate 3D modelling and rendering software for this project is Maya. The fact is it that Autodesk Maya have the best documentation of these three software’s, which is a big advantage for the developer, due to the high probability of getting the help needed. Another advantage of Autodesk software are scripting languages, developer can choose between Maya Embedded Language (MEL) and one of the most common scripting language Python. The last and the most important benefits of Autodesk Maya is the high quality of rendering and modelling, what is required to a high degree for the project's needs. One and very important disadvantage is the fact that Autodesk Maya is not a free to use software, user have to pay a very expensive price for a monthly or annual subscription where Blender is the type of free to use software. However Maya achieved more advantages than disadvantages which makes the software suitable for the project requirements, moreover Maya has a free subscription for students which makes the above software disadvantage insufficient. 3D Game Engines Game engines are, a way to go to perfectly develop a game and have full control over it flow. They do it require advanced developers and experience, as they are highly customizable and the possibilities are endless. Moreover, they save a lot of time by offering many pre-set modules, libraries, effects, and tools so that user does not have to create everything from scratch. As advanced like they are, it is fairly easy to gain knowledge about how to use them over time because of complex documentations, guides, and tutorials available online. However, using a game engine will be a lot harder for a single person to create a decent game on their own, and that is why it is probably better suited for teams or large projects. The project does not require a high level of use the game engine, but due researched the current topic it is a high possibility of creating a larger project than was planned. For the purpose of the project one of the described below two game engines will be used:

Figure 5: Unreal Engine User Interface

The one of the most popular common game engine in the world and most successful video game engine winner of many awards. It is definitely the best engine for a purpose of large , sophisticated game and it required a strong 3D game engine. The size of the games will be relatively larger and needed high-end devices to run. (Unreal Engine, 1998)

Page 11: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

11

Figure 6: Unity3D Engine User Interface

Another popular used engine. Currently 34% from the top 1,000 free to play mobile games are developed with Unity. It is a platform for designers, artists and developers to create and collaborate on stunning cinematic content and gameplay sequences, using 2D or 3D design tolls, instant paly mode for editing and interaction, and powerful animation system. It is ‘’friendly to use ‘’ game engine with a lot of tutorials available and perfect documentation, quaintly recommended for the beginners.

Unity Unreal Engine

Console target

Xbox 360, Xbox One, Wii U, PlayStation 3, PlayStation 4, PlayStation Vita, Nintendo Switch, Nintendo 3DS

PlayStation 4, Xbox One, Nintendo Switch

Desktop target Windows, OSX, Linux

Windows, Mac OS X, Linux, SteamOS,

HTML5

Dev platforms Windows; OSX Windows, Mac OS X, Linux

Languages C#

C++, Blueprints (Visual Scripting)

Mobile target

Windows Phone; iOS; Android; BlackBerry 10; Tizen

iOS, Android

VR target

Oculus Rift,

Gear VR, Google Daydream, Cardboard, SteamVR/HTC Vive

SteamVR/HTC Vive,

Oculus Rift, OSVR,

Google VR/Daydream, Samsung Gear

VR

Graphic API DirectX, OpenGL. Cg

DirectX Versions: 10, 11, Vulkan SM5, OpenGL

Table 2: Game Engine Comparison Table

Page 12: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

12

As the table above shows the game engine with greater possibilities for the console and mobile platform is without a doubt Unity3D, it is significantly more popular on the game market than Unreal Engine. The rest of the features are relatively on the same level used in both game engines, they have a wide appliance on graphic capabilities and VR technology. The most significant feature is that they are using a different programming languages Unreal Engine using C++ /Blueprints and Unity3D using C#, this fact decided to choose Unity to participate in the project.

4 Technical Development

This section we investigate the development implementation of our cave model. It begin with looking at the initial experimentation done at the entrance stage, continue with detail of the actual implementation.

System Design The initial prototype is composed of several classes, the most important of that they are shown in UML class diagram in Figure 7 and Figure 8. These diagrams will provide a main menu and player basic functionality that will be implemented in the future stage of the project.

Figure 7: Main Menu class diagram

A basic shape of the compute cycle is provided in activity diagram showed in Figure 9. After the process of initialization of the window context and all required instantiations, the software

Page 13: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

13

steps into a user assigned simulation loops apprehending input from peripheral devices with are using to interface user with player functionality. After necessary inputs are inserted for the section, the game is stopped by the user determine time step.

Figure 9: UML Activity diagram

Hardware Development and testing is doing on Windows Personal Computer with the following specification:

Intel® Six Core i7-3960X , 3.30 GHz, Sandy Bridge-E Architecture Nvidia GeForce ZOTAC GTX 780 Ti AMP! 6GB GDDR5 AOC G27770PF 27 inch 144Hz refresh rate

Player The player will be created as a first person controller in that case player controller will be developed as a capsule in Unity with all necessary physic like collision detection, gravity and speed. First person camera will be added to the player controller and simple light effect to imitation flashlight. The basic audio effect will be also added. The player will be also able to jump and run.

Figure 8: Player Class Diagram

Page 14: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

14

3D World Design The graphical appearance of the 3D world design will be a simple and elastic to allow for easy changes making .The theme of 3D world will be a shining, blue sky with several clouds for the reason of the effect of infiltrate of sunlight into the interior of the cave, this will contribute to the attempt to achieve natural light into the project. Although the graphical representation of the world is not prioritised in this project, an effort will be made to create a scene that will appeal to the user. The number of 3D scenes will be created, also number of dynamic and static objects.

Cave Model Design For the modelling the cave a polygonal modelling technique will be used. The 3D cave model has been designed in the Autodesk Maya environment, model will created a several stages and used a couple of techniques to achieve an expected effect. Modelling First of all form the cave patterns branchwork patterns, maze patterns, spongework and remiform, branchwork pattern will be chosen and designed. Using the plane and cube technique cave will be created, the shape of the cave will be in regular, bumpy and branched. Mesh editing and randomises will be necessary to achieve a quality effect of the current model. Using 2D plane the basic shape of the cave will be created and at the next the 2D plane will be expanded by extruded the basic plane mesh to the 3D space. At the next stage of the modelling cave the edges and vertexes will be randomised by the randomise algorithm. In the final stage of the cave mesh modelling sculpting is a necessary action. Texturing Texturing 3D object is a very important action, it is making a 3D model full of details. First of all UV mapping will be added to the cave model, the UV mapping will be done in Maya. Ready 3D object with UV mapping will be exported to the Unity environment. Bump, Normal and Reflection mapping will be used. The texture will be prepared and adapted to the 3D model, also textures will be a handmade, texture with only the ready base to paint. Rendering Rendering will be a procedural operation during the stages of the modelling. During a texturing rendering will be a basic operations to checking textures quality and general design. Final render will be operation in Unity with shaders applied into objects.

Environment The environment will be designed based on the natural cave environment it will include a several different models designed in the realistic way. Environment elements will be modelled and sculpting in Maya and Mudbox and rendered in Unity 3D. There will be a couple of rocks and stalactites models and filled with textures and rendering with an environment shader. Rocks will be designed using a box modelling technique and mesh editing technique, stalactites will be created using a cube modelling technique mesh editing technique.

Page 15: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

15

At the central of the cave will be an old tree, high quality modelled and rendered, it will be the main scene. Tree will be designed by NURBS modelling technique it will construct a polygonal geometry of the tree. Tree will be positioned on small a hill in the central of the cave, water will be around to make it more realistic. On the lower level of the cave different kind of water will be added.

User Interface Design

User interface will contain a few control panels allowing the user to monitor and set various of number and interact with the game. As a first person exploration style game, it is not necessary to create a complex UI for the player. Only main function will be required, such like:

Main menu

Settings

Single player

New game

Player name

Play

Pause

End Game

Figure 10: User Interface design

During the development of the Main Menu section, the main concept of the main menu

changed. As the game is not a complex environment with a many aspect and interaction

expect the user to interrupt, the main menu was simplified as it possible to the only a few

options to choose. User do not need to input a player name and choosing a single player

Page 16: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

16

option, because game is creating only in single player mode. That fact will change an

additional

Game HUD The HUD is a simple head up display or status bar to visually relayed information to the player, it is also part of game user interface. It will be an exploration game with simple HUD, the user will see time in the top right corner, arrow radar at the top middle of the screen and the map in the right bottom corner.

Testing Design A several of experiments testing will be created to assess the effectiveness and efficiency of the graphic quality, CPU usage, GPU usage in different graphic quality settings to achieve the best quality of the game in less use of the graphic card and processor units. The independent tested variable will include:

Size of the world space Amount of the light environment Texturing size Resolution of the application Elements in scene

The performance of the application will be tested along above criteria and all solution will be covered.

System Implementation System implementation paragraph covered all necessary implementation to the project it will describe the technique used to create current project. In this section stage by stage the activities will be described.

Models Implementation As the Autodesk Maya software was used for designed models, there was a need to focus on the modelling technique in modelling process. Modelling technique was the most important in the develop stage of the project from the very beginning, when to achieve a high quality graphic and good look design was a main point.

Page 17: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

17

The Cave To designed a cave model polygonal techniques were used, the first one of the cave pattern was chosen and modelled on its similarity. Plane technique has been used due to its all-purpose and flexible model creation, it is allowed to create a perfect shape with angles, connectors and high.

Figure 16: Basic plane mesh On the next stage of the developmental process cube technique was used and Extrude function to extrude plane mesh into the 3D cube model and modelled a cave like shape. Using 2D plane the basic shape of the cave was created and 2D plane was expanded by extruding the basic plane mesh to the 3D space.

Figure 17: Cave like shape

The cave 3D model was a randomise edges and vertexes by randomise algorithm in Maya.

Figure 18: Random script

Page 18: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

18

At the final stage of designed the cave 3D model was sculpted and smoothing 3D model. To achieve this Autodesk Mudbox (Mudbox, 2014) was used to high level sculpting tools and detailed sculpted to make a model looks cave like. After all procedures the cave 3D model becomes a high poly model reach in lot's details, then 3D cave model was splinted into two separate pieces, for the purpose of best texture quality. Final cave model contains:

Vertexes = 161689 Edges = 322124 Faces = 160432 Triangles = 320864 UV = 164261

Figure 18: Final cave model

The Tree To design a Tree model polygonal techniques was used. Cylinder modelling technique was matching a criteria. During the modelling necessary was used also different modelling technique, a Nurbs/spline modelling in that case it was necessary to achieve a perfect looking branch. This technique it could be also good solution in the cave model, will simplify create process,and save a huge amount of time with the modelling process. This problem context will be deeply considered in the next section. The Tree 3D object was sculpting and smoothing in Mudbox software. The Final product of above procedures was a high poly tree with a several amount of branches and not conventional shape.

Figure 19: Tree model

The Rocks

Page 19: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

19

The rocks were designed with a polygonal technique all type of rocks were developed form geometric primitive in this case it was a cube and then refines its shape until the desired appearance was achieved. Sculpting was a next step to achieve a rock like design of each rock. Rocks are also high poly modelled.

Figure 20: Rock Figure 21: Rocks

The Stalactites The stalactites were designed with a polygonal technique all type of stalactites were developed from geometric primitive cylinder and then refines its shape until the desired appearance was achieved. Models was then sculpted to adding a details to a model and realistic shape. Stalactites are also high poly modelled with high details. Application contains a few kinds of stalactites models and they differ from each other in detail.

Figure 23: Stalactites

Page 20: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

20

Textures Implementation Most of the textures applied are based on high quality 4k textures and customised in Substance Painter (Substance Painter, 2010). They are prepared to correct models and high performance. 3D models been imported to the software and textures was changed depends of object needed, object was rendered for the purpose of quality check and textured was saved and imported to the Unity Game Engine and then applied to the demanding object. Each imported package contains texture for a reflection mapping, normal mapping, bump mapping and occlusion mapping.

Figure 24: Cave Render (Substance Painter)

Texturing models were a challenge for this project, developer used a 4K textures which they are reach in many small details. To create a perfect texture with expected size and detail a huge amount of time was dedicated. During the texturing process developer found a difficulty with the procedures. Difficulty started when it came to the UV unwrapping, all models was created in a huge scale with made a problem with unwrapping a huge number of face came out. Another problem with the UV unwrapping was when it came to apply UV textures to the huge 3D model. Doing this at once was an impossible operation and in this case model had to be divided in a couple of separate pieces and unwrapping one by one. This problem context will be scope deeper in another section. Texture implementation to the project was mostly by using a standard unity texturing function, several custom shader material was created for the project needed and texture applied.

Page 21: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

21

Figure 25: Applied textures to the object

Graphic Implementation As the Unity3D engine was used to develop the application, there was no necessary to focus on lower level aspects of graphic programming. A number of several different scenes were developed in to develop and test the software.

Figure 26: Example 3D world with a statics tree and several lights effects

Models used in scene included: o The cave model o Several different types of rocks o Few types of stalactites o Capsule model for a player perspective

Page 22: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

22

Figure 27: The Cave Model Figure 28: Rocks Models

Figure 29: Stalactites Models Figure 30: Player Control Model

Skybox used: o Full moon skybox made for this project by its author and implement be the

simple skybox.

Figure 31: Custom skybox shader

Textures used:

o All of the textured showed in the application was made by the project author. Only base mountains 4k textures was used as a base for custom textures to mix them all for a perfect result.

Sounds used: o Footsteps asset was recorded for the purpose of this project by the author o Echo sounds were used from the standard unity assets in reverb zone

Page 23: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

23

o Ambient sounds were from the free sounds website and mixed using a control mixer script in Unity

Lights used: o Directional light was used and emitted from the skybox colour I depend on the

skybox a small custom shader was created in this case. This light is a base for the application

o Spot light was from the standard shader in Unity Game Engine is a high quality shader and was appropriate for the project purpose, this light type is rendered in real time

o Point light was also from the standard shader in Unity Game Engine it quality is enough for the project needed. Rendering I real time as well.

Water Effect:

o The Basic water effect was created by the author using shaders programming and the Advanced water obtained from unity asset store and it was tailored for specific needs of this game by the author

Figure 32: Water Shader

UI Implementation

During the development of the Main Menu section, the main concept of the main menu

changed. As game is not a complex environment with a many aspect and interaction expect

user to interrupt, the main menu was simplified as it possible to the only a few options to

choose. User do not need to input a player name and choosing a single player option,

because game is creating only in single player mode. That fact will change an additional

feature for the later development process and it will be not included a current project time

schedule. The current Main menu contains only a basic function such like:

Page 24: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

24

Play

Options

Exit

Figure 33: Main Menu To create a main menu scene in Unity 3D, game object Canvas was used. Game object Canvas allows user to create menu options or game HUD on simple and quick way, by adding and editing game elements like button, text or sliders like in current scene only buttons and text was used. Background picture was also used and added by Canvas. To make a main menu functional, appropriate script had to be added.

Figure 34: Main Menu script The Script contains a several different functions. PlayGame method created to start the game by accessing to the SceneManagar firstly then by defining element by index a call a appropriate element to active stage. QuitGame function instantly closing application by calling Aplication.Quit().

Page 25: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

25

Resume Menu was developed in a similar way to the main menu, just functionally worked in a quite a bit different direction .Element like slider was also added for a setting purpose. Slider bar has an access to the master volume of a the game environment, with make user accessible to the main volume settings of the game.

Figure 35: Resume Menu For a main functionality of this menu C# script was also created. In that case script had to contain a several different functionality which makes it more complex.

Figure 36: Pause Menu script Current script functionally is more complex by the fact that it has more functions then main menu script. Main menu script functionality covered only Play and Quit functions, the pause menu script cover methods as a Update ,Resume , Pause, LoadMenu and QuitGame. QuitGame method its exactly same like in previous script so focus at the other functions. In the Update method input was defined and when a player will press the button Escape the function will be called. Resume and Pause functions are similar just defined by different operators in the game stage one is for Pause and another for Resume stage. Also above

Page 26: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

26

two functions contains lines of code “Time.timeSacale = 0f/1f” this line of code accessing to the Time class scaling time in the game depend of inserting values. In Pause function value is set to 0 with mean Time = 0 with means our game will freeze and the user will not able to play when menu will appear, then if input will be Escape and Time value will be 1 again game will unfreeze and user will be able to play. HUD Updating the game HUD since a first stage of the project, few elements were changed. HUD include only 2 elements which are minimap/ radar location and user health. Game is a type of exploration game, the user has unlimited time to explore then timer was unnecessary, game level is quit a big space to explore, so there was no need to disturb the user during the game and to set the time for explorations. Health is shown in as a hearth object on the screen on the bottom left of the screen, the screen including three hearths on the screen. Simplify a HUD was way to make a game more comfortable to play.

Figure 37: HUD

Health component is created on canvas in Unity. Simply a player health is represented by red heart shown on the left bottom corner. The one red heart is equal to the one live, another two grey heart are represented also live but they are inactive at the moment. To makes a player health system works the current heart have to represent a current live. On the screenshot below C# script exactly showing that heart are assigned to the player live.

Figure 38: Health Monitoring

Page 27: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

27

Figure 35 is a script which contains a few functions. PlayGame method initialize HealthValue and assigned 1 by default, at the game start point one available live to use. On the top of the script three GameObject were created, they are represented an each live. Point from 1 to 3 represented a current live point. In Update method a HealthValue is assigned and SetActive for the appropriate action. For the Health System work the main functionally of colleting heart was added .In the script below it show that the collect script is crate for a collect event. The script also contains transform functions and audio source object. In Update function RotateSpeed is set to two by default and transform.Rotate function is called. In this case rotate by Y axis will be executed to make this rotation happen an appropriate equation have to be done . To rotate by Y axis

Given solution of matrix equation rotates by Y axis will work in this order (X -axis, Y -axis, Z -axis, SpacereletiveTo). The rotate function then give a solution of rotating an element by y axis. Function OnTriggerEnter it’s an action for current event, the event will happen when the player will go across the object collider then function will be called. In order sound will be activated when the player will collect heart then form the HealthMinit class function HealthValue will change it will add a 1 to current monitor.Result of the action will be increasing a player health adding 1 point live then in the final stage will call the current hearth object to deactivate by return bool SetActive to false.

Figure 39: Health Collect

Minimap component on the Canvas in Unity. The minimap was created by building in Unity standard functions. Render the texture component was using to create real time rendered textures for the minimap to truck player position. Camera also from the standard function of unity was also used and set to an expected position, a made as a secondary camera for the environment. The next step to developing minimap was created a script to calculate a player position, camera position and rotate them in an appropriate way.

Page 28: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

28

Figure 40: Minimap script

In the very beginning of the script reference to the player had to call by transform player. Then the LateUpdate method will be called, this function was created in the case of updating the scene after the player will move. This operation makes a minimap more efficient. Inside the method a mathematic equation had to be done. First of all created Vector3 and assigned a new minimap position by xyz coordinates and then equal to the player current position. To more specific function used only position by Y axis and then transformed position set to the new position. In that case a fixed camera will follow a player position in Y axis coordinates. On the final stage of minimap rotation Quaternion function will be called and referrer to the Euler equation.

Figure 41: Quaternions (Diabel, J., 2006)

At the very last stage of the equation three parameters were added depending on the axis by xyz order. First parameter it is by 90 degree, second using EulerAngles by Y axis equation and 0 by z axis.

Figure 42: Euler Rotation Angles

Page 29: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

29

Player Implementation The player first person controller structure distinguishes following elements: First Person Controller Class First Person Controller Class is an element of the player controller which contains a several functions different functions responsible for player movement, rotation, gravity or collision. The first person controller script is written in C# language and provided any mathematical operation assigned to the player side. Start method starting an application and assigned value by default, at the start point first person controller setting up a character controller, camera and the position of the camera, input, audio source and mouse look direction. Jumping function is also applied by simply changing position in Y axis multiply by the gravity source. Collision detection is also present factor and is created using a Ray casting. Function working by identifying and transform the character position and getting a normal for the surface that was touched and move along it RaycastHit hitInfo; Physics.SphereCast(transform.position, m_CharacterController.radius, Vector3.down, out hitInfo, m_CharacterController.height/2f, Physics.AllLayers, QueryTriggerInteraction.Ignore); desiredMove = Vector3.ProjectOnPlane(desiredMove, hitInfo.normal).normalized; Mouse Look Class Mouse Look Class is a camera based class attached to the main camera in application. The camera look function was created interact player with a game environment. Mouse Look Class based on matrix transformation in camera and player side, from the very beginning script assigned a basic mouse options to the default value: public float XSensitivity = 2f; public float YSensitivity = 2f; public bool clampVerticalRotation = true; public bool smooth; public float smoothTime = 5f; public bool lock Cursor = true; In the next stage transform operation between character and camera was applied, transformation are based on the above explained mathematic equation using xyz rotation matrixes and quaternion and euler equations. In that case rotation and transform along x and y axis was needed. public void LookRotation(Transform character, Transform camera) { float yRot = CrossPlatformInputManager.GetAxis("Mouse X") * XSensitivity; float xRot = CrossPlatformInputManager.GetAxis("Mouse Y") * YSensitivity; m_CharacterTargetRot *= Quaternion.Euler (0f, yRot, 0f); m_CameraTargetRot *= Quaternion.Euler (-xRot, 0f, 0f); if(clampVerticalRotation)

Page 30: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

30

m_CameraTargetRot = ClampRotationAroundXAxis (m_CameraTargetRot); if(smooth) { character.localRotation = Quaternion.Slerp (character.localRotation, m_CharacterTargetRot, smoothTime * Time.deltaTime); camera.localRotation = Quaternion.Slerp (camera.localRotation, m_CameraTargetRot, smoothTime * Time.deltaTime); } else { character.localRotation = m_CharacterTargetRot; camera.localRotation = m_CameraTargetRot; } UpdateCursorLock(); }

Testing Implementation A number of experimental testes was run to assess the efficiency of the application scenes. The testes was run on two different machines with following parameters:

o Machine one Intel® Six Core i7-3960X , 3.30 GHz, Sandy Bridge-E Architecture Nvidia GeForce ZOTAC GTX 780 Ti AMP! 6GB GDDR5 AOC G27770PF 27 inch 144Hz refresh rate

o Machine two

Intel Core i7 7700K, S1151, Kaby Lake, Quad Core, 8 Thread,

4.2GHz, 4.5GHz Turbo, Nvidia GeForce Asus Strix GTX 960 3GB GDDR5 AOC G27770QF 21 inch 60Hz refresh rate

Each of this testes will be now discussed in order.

Figure 41: Test Table

Figure 42: Test Result Table Machine 1

Page 31: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

31

Figure 43: Test Result Table Machine 2

As on the Figure 41 showed the four tests was taken to the application. Tests was divided by the settings preferences, depend of the individual activists. Graphic quality settings were four settings preferences:

o Ultra Quality o High Quality o Medium Quality o Low Quality

The quality tests contain a game mode in a couple of different settings and compare by:

o Resolution (default resolution 1920 x 1080) o FPS (frame per second) o Texture Size o Light Amount o Element Rendered o CPU Usage o GPU Usage

Ultra Quality Settings were a target settings for the application developer archived the realistic cave using a high quality property. The ultra quality settings test was run on the highest parameters that application can run, test used a default screen resolution of 1980 x 1080, textures rendering on 4K quality, rendering 35 light emitters in environment, rendered a whole scene based on elements in the environment (rocks and stalactites). The current test achieved a satisfactory effect, in result of the ultra quality settings application was playable on the ultra high level of graphic quality. FPS counter was on the level of 65 frames per second, CPU usage at the level of 28 % and GPU usage at the level between 60 and 75 %. Application was tested also at different machine, tests was not that extremely high like in current test but also at the playable level which is 40 frames per second, CPU usage 40% and GPU usage at the level of 70- 85%. High Quality Settings were a testing setting with decreased the amount of light emitters. The high quality settings test was run on the high parameters that application can run, test used a default screen resolution of 1980 x 1080, textures rendering on 4K quality, rendering 30 light emitters in environment, rendered a whole scene based on elements in the environment (rocks and stalactites). Test showed a small bit of drop graphic quality, but was not it a serious disadvantage The current test achieved a quit satisfactory effect, on the high quality settings game was playable on the still high level of graphic quality. FPS counter was on the level of 85 frames per second, CPU usage at the level of 25 % and GPU usage at the level between 35 and 50%. Application was tested also at machine two, test on the high level but not that specular like at machine .1 high like in current test but also at the playable level which is 65 frames per second, CPU usage 40% and GPU usage at the level of 55- 70%. Medium Quality Settings were a testing setting with decreased the amount of light emitters and properties elements in environment also decrease the textures settings to 2K. The Medium quality settings test was run on the medium parameters that application can run, test used a default screen resolution of 1980 x 1080, textures rendering on 2K quality,

Page 32: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

32

rendering 20 light emitters in environment, rendered a scene based on elements in the environment (rocks and stalactites), but decreasing their amount . Test showed noticeable differences in graphics quality, texture quality draped down to a quality that did not satisfy the developer. The Medium quality is recommended only in case when the higher possibility of the graphic quality are not supported. The test achieved a not satisfactory effect, but still acceptable, on the medium quality settings game was playable on the low level of graphic quality. FPS counter was on the level of 180 frames per second, CPU usage at the level of 13 % and GPU usage at the level between 20 and 35%. Software was tested also at machine two, test at the playable level with 160 frames per second, CPU usage 13% and GPU usage at the level of 35- 50%. Low Quality Settings were testing setting with decreased the amount of light emitters and properties elements in environment also decrease the textures settings to 1k. The Low quality settings test was run on the low parameters that application can run, test used a default screen resolution of 1980 x 1080, textures rendering on 1K quality, rendering 15 light emitters in the environment, rendered a scene based on elements in the environment (rocks and stalactites), but decreasing there amount . Test showed huge differences between previous settings of the graphics quality, texture quality draped suddenly down to a quality that was not acceptable for the developer. The low quality is recommended only in case when the higher possibility of the graphic quality are not supported. The test achieved a completely not satisfactory effect and not acceptable quality, on the low quality settings game was not playable on the low level of graphic quality. FPS counter was on the level of 250 frames per second, CPU usage at the level of 10 % and GPU usage at the level between 25 and 35%. Software was tested also at machine two, test at the playable level with 230 frames per second, CPU usage 10% and GPU usage at the level of 35- 45%. Summarised above four testes is recommended for the future use to use Ultra settings, for the purpose of the highest realism and graphic quality settings. User can fully enjoy the exploration game with no graphic lack, noise or drops. The next two graphic quality settings are also playable but in some case they do not fully show the potential of playability and the functionality of the application. Low quality settings are not recommended in any case, low quality settings are created by default in Unity and was used only for the testing purpose.

Page 33: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

33

5 Evaluation

Project Achievements The aim of this project was to develop a prototype cave exploration game, create a 3D cave model as realistic as possible, and investigate a certain cave modelling technique and create and implement a simple gameplay. Since all objective and most of sub-objective has been developed, the project can be considered as a success. The section below describes in details how each objective and sub objective has been fulfilled and how each technical challenge was achieved. Section for improvement that it could be deliberate for the future work are also defined and disused. Objective 1 – Research Existing Solutions The aim of this objective was to research an existing work for the future background inspection. To that point research was included a several different area of development. Mainly this objective was contained an area of creating a cave environment and natural cave appearance, also natural cave existence had to be investigated for the realistic concept of the cave develop. Different type of technologies was researched in the area of modelling techniques and tools, shading languages was deeply considered and game engine environments area in high details. Objective 2 – Cave Modelling The aim of this objective was to design a high quality cave model with, bumpy surface, irregular paths, branched 3D model and filled with textures. This objective was divided on four sub objective. This objective has been fully met as follows. Firstly the 3D cave model was created using banchwork cave patter and the polygonal modelling technique was used. Based on the information from the background research the cave model was designed and successfully implemented to the unity world. Secondly texture mapping was created and applied to the 3D cave model followed texture mapping was added: bump, normal, occlusion and reflection. Textures were also painted and rendered. This sub objective was the one of the most challenging in the project. Developer was struggling with the perfection of the textured details, as an aim of this project was to develop a realistic high quality cave textured had to be added with a special accuracy. The next sub objective was to add a light effect to the cave environment light, mainly developer planned to add a custom shader for the all kinds of light effect, developer struggled with achieving the quality good effect and achieved only for directional light. The point, ambient and spot light was used by unity standard shaders. The aim of the last sub objective was to develop a view camera, the aim was fully achieved by adding a first player controller camera and tracking camera to a minimap component. Third person camera was not implement, developer decide to change the concept of the game from third person to first person camera. This change was made for the reason of the details in the application first person camera is zoomed to the environment and making a scene more realistic. Objective 3 – User Interface Design

Page 34: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

34

The aim of this objective was to develop a simple UI. The objective was achieved by creating basic functions. Following functions was created, play and exit game, options to allow user to change new value of the volume in game and pause and resume menu. It was no needs for creating more functions to the UI, developer refused to implement save and load function. In that case functions save and load are unnecessary at this stage of the project, the reason is that, the cave model in not that huge for user to save and load functions. User interface objective contains also a HUD element, and it was developed and implemented. Objective 4 - Create Game Character The aim of this objective was to develop a game character. This objective was not fully achieved. Player character was developed by capsule, adding to the unity and filed up with functionality. The user has a full ability to control a player character. Player character is able to move, jump, run and rotating in x and y axis ,fixed camera is also applied .In the additional function player is able to use a flashlight and it was implemented by assigned spot light to the player camera and interfered with user input. Second object in this objective was an enemy character, the enemy character was not implement in the application, they was no need to implement a enemies character. The cave is an exploration game, then player can explore game with no necessary interruption. In previous stage developer found a difficulty with time management and some objective had to be change is the main reason of no implementing an enemy player. In the future work enemy player will be implemented. Objective 5 – Implement Audio Effect The aim of this objective was to develop an audio effect for the game prototype. This objective was fully implemented to the project, several audio effects for the footsteps and collecting items was implemented. Ambient sounds were also added to the User interface and the game environment. Audio effect was implemented by unity and played in the custom mixer wrote by C#. Objective 6 – Game Physics The aim of this object was to implement physics to the game environment. Calculation for the gravity, collision detection, rotation, transformation was done. Level is fully playable no any strange things happen to the player of environment. This objective fully filled.

Future Work There are still a many way, in which a developer can to improve the cave and extended it. Some optimizations could improve graphic quality settings and minimize the cost of the GPU and CPU used.

The entire level could be divide on small pieces and occlusion culling could be added, it will definitely reduce the cost to the GPU and CPU usage

Write a more custom shaders to avoid unnecessary operation calling from the standard shaders by not used functions.

Page 35: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

35

For the future of the application necessary will be implementation of more functionality to the level to make it more interesting and make a player for attention focus. Firstly the main think I will be to implement a more advance gameplay, at his stage player can only interrupt with environment by walking, jumping and colleting items. The future work will improve gameplay on, combat action, some event happened with a game like animation. Application will be also improve a next levels for the game and questions to make the game more interesting for the use. Also an idea for the open world is considered. Implementing an enemy player is a next action that will be taken, the enemy player will be based on the pathfinding algorithm to an enemy’s moving to the player position. The Cave is based on the visualization cave environment at the moment it is mainly focused on this aspect, secondary aspect is a game aspect with only contains a few elements from the game. This is the main reason to improve a gameplay instantly.

Time Management Important and inseparable part of this whole project, not only this but every project is ‘’project management’’. In the composition of each project they are located, task list and time plan. The task of project management is achieve specific goals and meet specific success criteria at the specified time. This section of the report will show clearly the current progress of the main project any problems connected with it, changes in tasks or delays in the objective terms, also a description of the reason will be given. Current Task List and Time Plan it changed to a small extent due to the problem with the modelling of the cave. At the beginning of the project, an inappropriate modelling technique was used. Developer used modelling techniques using a cylinder and NURBS instead of using other modelling techniques. As a result of the situation, it was not possible to create more branches than one which was an unacceptable effect, which had to be changed immediately. Therefore, the entire model that has been modelled so far has been removed. Summarizing the current task list has changed due to the addition between the stages of creating a cave one task that is research for the creation of branches in the cave model and the time plan that due to the addition of one task and the removal of the initial model created by using the wrong technique and start creating a new model the appropriate technique was extended to 12 days. The rest of the planned tasks went or going according to an earlier plans. Due to the expansion of the task list and time plan, the old plans have been updated and redesigned.

Figure 9: Branches using cylinder and NURBS.

Page 36: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

36

Figure 10: Branches using plane

6 Conclusion

This project presented a cave modelling and rendering procedures instructions based on 3 dimensions world space, and based on 3D models prototype of game. The Cave game works by adding player to the game environment and exploring the current level. When player exploring the world game, game aspect occurred and player is able to experience the appearance of the visualization by light effect, 3D shapes and it physic functionally. Although opportunities for future improvement have been discussed, the test results have shown its flexibility under a variety of circumstances, making it a valuable addition to the graphic settings for the future game evoluation.

Page 37: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

Current Task List

# Description Task Name

Duration

(days)

1 Initial report Write the initial report deliverable. 28

2 Topic research Quick topic research (how caves are crated, how their interior looks like) 2

3 Tools research Research for tools and choose the most suitable 5

4 Develop 3D cave model Create main object in project using Unity 3D and Maya 30

4.1 Create main tunnel Develop main tunnel of the cave model using appreciate tool/software 6

4.1.1 Branches modelling research Deep research about branches modelling 2

4.2 Develop cave paths Implement branches going through main cave tunnel 7

4.3 Implement cave bumps Create cave surface, full of bumps 7

4.4 Create cave natural

environment

Implement cave natural environment such as branches or trees 10

5 Implement light Implement different types of light in to model (point, ambient, directional and spot) 12

5.1 Create ambient light Implement ambient light to cave model 3

5.2 Develop spot light Implement spot light to cave model 3

5.3 Create directional light Implement directional light to cave model 3

5.4 Develop point light Implement point light to cave model 3

6 Create textures Create interior of the cave and fill it with textures

6.1 Implement high mapping Add textures using high mapping technique 5

6.2 Implement bump mapping Add textures using bump mapping technique 5

6.3 Implement normal mapping Add textures using normal mapping technique 3

6.4 Implement reflection mapping Add textures using reflection mapping technique 5

7 Interim report Write the interim report deliverable 20

8 Implement camera Implement camera view with different directions

8.1 Develop tracking camera Create tracking camera to cave model 2

8.2 Create interactive camera Implement tracking camera to cave model 4

Page 38: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

38

8.3 Implement third-person view

camera

Develop third-person view camera to cave mode 3

9 Create UI Design user interface and implement to the game play 7

10 Develop main character/object Create and implement to the game play an object or graphic character 10

11 Develop an enemies Create an enemies and implement to the game 5

12 Create audio effect Implement audio effect in to the game play 7

13 Implement game physics Implement physics of objects to make game playable 10

14 Create additional features Develop some features and implement to the game 14

15 Final report Write the final report deliverable 30

Updated Task List - task 4.1.1 has been added to the task list, the task is mainly about branches research from different sources. The main problem was about connect branches together.

Page 39: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

39

Current Time Plan

University Calendar Weeks

# Task Name 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

1 Initial report D

2 Topic research

3 Tools research

4 Develop 3D

cave model

4.1 Create main

tunnel

4.1.1 Branches

modelling

research

4.2 Develop cave

paths

4.3 Implement cave

bumps

4.4 Create cave

environment

5 Implement light

effects

5.1 Create ambient light

5.2 Develop spot light

5.3 Create directional light

Page 40: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

40

5.4 Develop point light

6 Implement

textures

6.1 Implement high

mapping

6.2 Implement

bump mapping

6.3 Implement

normal

mapping

6.4 Implement

reflection

mapping

7 Interim report D

8 Implement

camera

8.1 Develop

tracking camera

8.2 Create

interactive

camera

8.3 Implement

third-person

view camera

9 Create UI

10 Develop main

character/object

11 Develop an

enemies

Page 41: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

41

12 Create audio

effect

13 Implement

game physics

14 Create

additional

features

15 Final report D

RED SQUARE - Deadline Week GREY SQUARE- Initial Time Plan BLUE SQUARE – Schedule changed to the Time Plan

Page 42: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

42

Appendix A: Initial Task List

# Description Task Name

Duration

(days)

1 Initial report Write the initial report deliverable. 28

2 Topic research Quick topic research (how caves are crated, how their interior looks like) 2

3 Tools research Research for tools and choose the most suitable 5

4 Develop 3D cave model Create main object in project using Unity 3D and Maya 30

4.1 Create main tunnel Develop main tunnel of the cave model using appreciate tool/software. 6

4.2 Develop cave paths Implement branches going through main cave tunnel 7

4.3 Implement cave bumps Create cave surface, full of bumps 7

4.4 Create cave natural

environment

Implement cave natural environment such as branches or trees 10

5 Implement light Implement different types of light in to model (point, ambient, directional and spot) 12

5.1 Create ambient light Implement ambient light to cave model 3

5.2 Develop spot light Implement spot light to cave model 3

5.3 Create directional light Implement directional light to cave model 3

5.4 Develop point light Implement point light to cave model 3

6 Create textures Create interior of the cave and fill it with textures

6.1 Implement high mapping Add textures using high mapping technique 5

6.2 Implement bump mapping Add textures using bump mapping technique 5

6.3 Implement normal mapping Add textures using normal mapping technique 3

6.4 Implement reflection mapping Add textures using reflection mapping technique 5

7 Interim report Write the interim report deliverable 20

8 Implement camera Implement camera view with different directions

8.1 Develop tracking camera Create tracking camera to cave model 2

8.2 Create interactive camera Implement tracking camera to cave model 4

Page 43: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

43

8.3 Implement third-person view

camera

Develop third-person view camera to cave mode 3

9 Create UI Design user interface and implement to the game play 7

10 Develop main character/object Create and implement to the game play an object or graphic character 10

11 Develop an enemies Create an enemies and implement to the game 5

12 Create audio effect Implement audio effect in to the game play 7

13 Implement game physics Implement physics of objects to make game playable 10

14 Create additional features Develop some features and implement to the game 14

15 Final report Write the final report deliverable 30

Page 44: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

44

Appendix B: Initial Time Plan

University Calendar Weeks

# Task Name 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

1 Initial report D

2 Topic research

3 Tools research

4 Develop 3D

cave model

4.1 Create main

tunnel

4.2 Develop cave

paths

4.3 Implement cave

bumps

4.4 Create cave

environment

5 Implement light

effects

5.1 Create ambient light

5.2 Develop spot light

5.3 Create directional light

5.4 Develop point light

6 Implement

textures

Page 45: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

45

6.1 Implement high

mapping

6.2 Implement

bump mapping

6.3 Implement

normal

mapping

6.4 Implement

reflection

mapping

7 Interim report D

8 Implement

camera

8.1 Develop

tracking camera

8.2 Create

interactive

camera

8.3 Implement

third-person

view camera

9 Create UI

10 Develop main

character/object

11 Develop an

enemies

12 Create audio

effect

13 Implement

game physics

Page 46: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

46

14 Create

additional

features

15 Final report D

Appendix C: Risk Analysis

Risk Severity

(L/M/H)

Likelihood

(L/M/H)

Significance

(Sev. x Like.)

How to Avoid How to Recover

Data loss H H HH Regularly Backups Reinstate from backups

Loss of

backups

H L HL Multiple Backups Use alternate technologies for backups (for

example SVN)

Device Failure M M MM Sufficient care of devices

and personal computer

Use alternate hardware

Bad time

management

L M LM Logical time plan

evaluations

Set a new time plan

Software errors L M LM Testing software Find appropriate fault and fix

Health issues H

M HM

Healthy food ,exercise Visit Doctor if necessary

Slow program

performance

M M MM Developed code need to be

efficient as possible

Optimize software

Other

coursework

deadlines

H H HH Good time management

and planning,

Create new time plan, change priorities of coursework

Page 47: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai

References

Creighton, R. H., 2010. Unity 3D Game Development by Example. Pocket Publishing Ltd.

Boggus, M. and Crawfis, R., 2009. Procedural Creation of 3D Solution Cave Models. The Ohio State University.

Blender, 2002. Open Source 3D Creation. [Online] Available at: https://www.blender.org/about [Accessed 10 October 2017].

Maya, 1998. Make it with Maya computer animation software. [Online] Available at: https://www.autodesk.co.uk/products/maya/overview [Accessed 10 October 2017].

3DSMax, 1990. 3D design software for modelling animation and rendering. [Online] Available at: https://www.autodesk.co.uk/products/3ds-max/overview [Accessed 10 October 2017].

Juncheng, C., Yang-Wai, C. and Minjie Z., 2011. Procedural Generation of 3D Cave Models with Stalactites and Stalagmites. School of Computer Science and Software Engineering, University of Wollongong.

Lovesey, A., 2005. A Comparison of Real Time Graphical Shading Languages. Faculty of Computer Science, University of New Brunswick.

Bobylev, D., 2017. Comparison of 3D Modelling software. Saimaa University of Applied Sciences.

Wolfgang, E., 2004. ShaderX3: Advanced Rendering with DirectX and OpenGL. Charles River Media, Inc. Rockland.

Mark, W., R., Glanville, R., S., Akeley, K., Kilgard, M., J., 2003. Cg: A system for programming graphics hardware in a C-like language. The University of Texas at Austin. Unreal Engine, 1998. Unreal Engine for Enterprise. [Online] Available at: https://www.unrealengine.com/en-US/enterprise [Accessed 21 January 2018]. Unity3D Engine, 2005. Unity 3D Game Engine. [Online] Available at: https://unity3d.com/ [Accessed 10 February 2018]. Mudbox, 2014. 3D digital sculpting and painting software. [Online] Available at: https://www.autodesk.co.uk/products/mudbox/overview [Accessed 25 April 2018].

Substance Painter, 2010. 3D Texture Painting Software. [Online] Available at: https://www.allegorithmic.com/products/substance-painter [Accessed 29 April 2018].

Diabel, J., 2006. Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors. Faculty of Computer Science, Stanford University.

Page 48: Cave modelling and rendering Final Reportpatryksubstelny.com/doc/The Cave Game Design Report.pdf · (Juncheng, C., Yang-Wai, C. and Minjie Z., 2011) This statement by Juncheng, Yang-Wai