Incomplete part b

Page 1




/* Throughout the project I’ve mostly been working within Unity. What this project has taught me is how these scripts can be used in conjunction with the algorithmic sets obtained from Grasshopper. The experience has been fun and has taught me about the fundamentals of scripting which now makes code fairly understandable. Working with Unity and getting it to work with the walgorithms collected from Grasshopper has made me understand how these components relate to actual objects and how it can be used to generate some very interesting models and animations. Working between the two I have also realized the importance of animation when it comes to presentation. Animating a model gives more depth and is more engrossing to viewers. It also gives viewers the chance to experience what it is like within your fabricated landscape. Generating these objects through algorithms is a completely new way for me to think of things so beting able to grasp the outputs and interactions between each component has been very interesting to me. What is also interesting is how these datamaps can be transferred over into Unity, where other objects can affect the values of these maps just by interacting with it.

Kenny */

REFLECTION


/* Eugene Throughout this phase, I have been working primarily on the drawings and the concept for the game. My main focus was to ensure the game had visual appeal. Very often I find myself questioning the presence [or lack] of a poetic touch within many digital/parametric design work. Hence, I wanted to explore the use of a more whimsical hand-drawn type of representation mode within a digital world. Regrettably, I did not touch Unity enough to fully tweak and play around with Alex’s and Julian’s scripts, particularly with the agents’ behaviour. This caused us the problem of not having a proper working game as the agent did not interact properly with the gamescape. All in all, this was an enjoyable, albeit [needlessly] slow process.

*/ 5


INTRODUCTION

6


PART B

HIDDEN COLOURS

jingwen eugene kua 673907 kenny ken-li chong 716086

alex holland | julian rutten


System assigned: HVAC Systems The MSD building was chosen as the site for this investigation. Six levels: from basement for fourth floor, were analysed. Various types of HVAC vents were recorded onto data heat maps.


B1 MAPPING

9



HVAC System

BASEMENT

Toilet vents

62

00

0

Strip vents

Circular vents

MAPPING

60

00

0

11


HVAC System

GROUND FLOOR

Toilet vents

60000

Circular vents

62000

Strip vents

Box vents

MAPPING

12




HVAC System

FIRST FLOOR

Circular vents

60000

Strip vents

Mech. fans

62000

MAPPING

15


HVAC System

SECOND FLOOR

60000

Strip vents

Circular vents

Mech. fans 62

00

0

Wall vents

MAPPING

16




HVAC System

THIRD FLOOR

Circular vents

Toilet vents

6

2

MAPPING

0

0

6

0

0

Wall vents

0

0

19


HVAC System

600 00

FOURTH FLOOR

Circular vents

Toilet vents

620

00

Wall vents

MAPPING

20



GAMIF


FY IT! The HVAC systems proved to be rather dull and too simplistic to work with. Hence, it was decided that we would create our own “fantasised� rendition of each floor of the building, conjuring up magical realms and mystical domains based on the actual floor plans of the MSD building, in hope that it would spur us to create a more playful and evocative game.


Our Own World

MAPPING


BASEMENT || CRYSTAL KINGDOM Taking cue from being underground, the basement level is reimagined as an underground crystal kingdom, belonging to a group of ermine dwellers. The visual cue was inspired from a combination of illustrated cartoon and some slight hints of steam-punkiness.

Forgotten Sea Lecturing Field Crystal Commune Hall Akashic Vault Stargates

Living Quarters Extraction Depository

Crystal Field

25


Our Own World

GROUND FLOOR || DESERT REALM The ground floor of the MSD building is reimagined as a desert realm of Egyptian cat beings. The visual style is derived from ancient Egyptian ornaments and capital styles, as well as stylised Egyptian art.

Bathing House Projections Theatre Temple of Nourishment Storage Field Magic Workshop Lost Ruins Artisan Lab

Sewing Station

Stargates Temple of Arts And Craft

Amphitheater Officer’s Abode Oasis Temple of Knowledge

MAPPING


27


First game test: Roll-A-Ball The very fist game test involves a simple “collect and win� game mechanic. GPS was tested with this game, and it was found that there was a significant delay between the movement in real life and the movement tracked by the GPS.


B2 FIRST GAME

29


Hello World: Roll-A-Ball

DATAMAP CSV TESTS

The player has to collect “pickups” - objects spawned in game, generated based on the datamaps created in the previous section, which were first converted into CSV text files in Grasshopper.

Datamap: Strip Vents

FIRST GAME


Via scripting, the pickups generated were discriminated into two categories : “good” and “bad”. In this case, the “good” pickups were considered as datamap values that are towards a higher value, and the “bad” pickups were dvalues towards the lower end. In this way, we could set the pickup settings (size, colour etc.) for different datamap values.

Datamap: Circular Vents

Datamap: Toilet Vents

31




First prototype: HVAC Dungeon The original prototype was focused on the hidden systems of HVAC systems in the MSD. The concept would revolve around the idea of a dungeon crawler with a re-skinning of the MSD map based on our created imaginary worlds. Players were required to attract these enemies to high intensity areas, where the enemies would begin dropping pickups which would add to the player’s final score. We managed to run a player health and enemy attack script within our game to achieve more of a gaming feel than just the roll-a-ball. The scripts were working but there were a few bugs regarding the actual gameplay of it, in particular the animations.


B3/4 PROTOTYPING A

35


Avoiding Monsters

Testing out pickup spawn locations by importing the 3D model of the MSD floor plan from Rhino into Unity. Adding this layer towards the map managed to create a more immersive environment than the plain flat landscape we started with. From this point, the only things left were the individual 3D game objects which we planned to model based on our conceptual sketches.

PROTOTYPING A

36


HVAC Dungeon

Chasing Monster

Pickup Collection

37


Avoiding Monsters

Player Damage

Game Over Screen

PROTOTYPING A

38


Coding Dungeon

Call out health variables

Settings of screen when being attacked by the monster

Health deduction settings

Game Over trigger settings

39


Dynamics: Agent Testing Using Alex’s and Julian’s agent scripts, we attempted to play around with the various settings available for the agent behaviour inside Unity. The agents behaviour being based on the CSV text files created in part B1.


B5 DYNAMICS

41


Agent Behaviour

Failed CSV of HVACs

Adjusted CSV of HVAC

CSV of Pickups Spawns

DYNAMICS

42


Our initial idea would have revolved around the concept of agents being the protector of these high intensity areas (defined by the locations of HVAC systems around the MSD building). The process of importing these data maps over from Grasshopper to Unity however raised much more difficulties than anticipated. The agents were concentrated on the left side of our map and therefore did not affect any of the intensity values for our pickups. This could have been due to an internal error in one of our components, but we could never pin point the source of the problem and therefore had to move on. We experimented with other CSV files we had but they also eventually followed the same path and only created circuits in a particular area. At this point, we realized that we should use a CSV that we know works and something that is fairly distributed around the site. We decided to go with our pickups CSV, which was defined using an image sample over one of our conceptual sketches of

the realms. Having agents move slowly (0.2 speed) proved to be the optimal setting for our selected CSV. This way, the agents were moving much slower than the player, giving them a fighting chance over their widespread distribution around the site. Another issue we encountered with the agents was in our scripting. Agents were moving around our map and they were successfully influencing our pickups so that they maintained a value of below 0, hence spawning a black and white drawing. The issue occurs when the player attempts to recolor these affected areas. It seems as though the intensity value locks itself once it has been changed from positive to negative or vice versa. This is definitely a strong component of our game so it makes sense to prioritize this issue when it comes to bug fixing later on. For now the established settings and selected CSV maps manage to express the game’s intention and how it would look if we were to continue on.

43


Landscape Generation Moving on from Prototype A, we decided that the concept was still lacking in actual gameplay. Even with the adjusted scripts and the health component of the game, the scene still resembled the roll-a-ball tutorial. Modelling the individual game objects was now going to take too long, so we started to explore ways in which we can use the vector drawings we had and

implement it into our virtual world. We began separating the drawn assets into individual PNGs which we then applied over a plane in Unity. A prefab was then created from that plane, which we used as a reference for the other game objects and species.


B6 PROTOTYPING B

45




Hidden Colours

GROUND FLOOR || DESERT REALM Using the world created for the ground floor of MSD as the setting of the game, discrete and unique architectural and landscape elements from the drawing were extracted and coloured. This will be used as elements/game objects for the procedural generation of the landscape/gamescape.

PROTOTYPE B

There are a total of four “species” : column, wall, landscape and machinery. Each species’ colours were derived from the vibrant art of Ancient Egyptian culture and abstracted into playful pastel-like illustration colours.

48


Procedural Landscape

SPECIES “COLUMN”

49


Hidden Colours

SPECIES “WALL”

PROTOTYPE B

50


Procedural Landscape

SPECIES “LANDSCAPE”

51


Hidden Colours

SPECIES “MACHINERY”

PROTOTYPE B

52


Procedural Landscape

SPECIES “MACHINERY”

53


Hidden Colours

SCRIPTS

To add more challenge towards our game, we decided to use the agents as a negative influencer towards the look of the landscape. Both the player and the agents would be influencing the look of the environment. We set up the randomization script so that it would spawn objects with an intensity value of 0. The agents would then force a negative change to the intensity when it passes by them and the players would cause a positive influence. This way we were able to separate

PROTOTYPE B

out colors and black and white game objects, so that the black and white images only appeared when the intensity value in that area is less than 0 and a color image would appear at the intensity value higher than 0. There are 3 unique scripting changes made to our game: 1. DrawRandom script, InfluenceIntensity script, and SpawnPickups script.

54


Procedural Landscape

DRAWRANDOM.CS

DrawRandom.cs gives the pickups the ability to spawn a coloured one/ B&W one according to intensity values of the data map.

Creates two options: Black & White objects, Coloured objects

If intensity values are positive, generate Coloured objects

If intensity values are negative, generate Coloured objects

55


Hidden Colours

INFLUENCEINTENSITY.CS

InfluenceIntensity.cs changes the “stroke” size of the player and the agent, i.e. the radius of influence.

PROTOTYPE B

56


Procedural Landscape

SPAWNPICKUPS.CS SpawnPickups.cs was modified with multiple ‘If’ statements to enable discriminate spawning of pickups at specific locations. This is to allow for each ‘species’ of game objects to spawn at their respective areas to allow the game environment to look legible.

An image sampler was used to read the datamap, giving a range of values from high to low depending on the brightness of the drawing. In this case, the high intensity values correspond to the brighter shade of the drawing, and the low intensity values to the darker shade of the drawing. The higher intensity values are assigned to the “column” and “ wall” species. The lower intensity values are assigned to the “landscape” and “machinery” species.

57


Hidden Colours

FIRST ATTEMPT In our first attempt to generate the landscape, we encountered issues with the CSV datamap file generated from part B1. In Unity, agents were only moving about in one direction, thus creating a sort of linear weaving mesh pattern. This issue remained unresolved despite having tried using different CSV

PROTOTYPE B

datamaps. Given this issue, the game could not be operated as the agents did not interact with the gamescape in our intended way.

58


Procedural Landscape

Interesting Failure: Datamap Mesh Generating An Intriguing Pattern

59


Hidden Colours

COLOURING Testing out the “DrawRandom” script function allowing the player to turn a game object into its coloured version whenever in collision with it.

t= 0

t= 20

t= 60

Game Scene 1

PROTOTYPE B

60


Procedural Landscape

Game Scene 2

Game Scene 3

61


Hidden Colours Using an image sampler gave us more control over what would appear where and would therefore create a drawing that didn’t look completely random. Testing out the varying landscapes our intensity maps could produce, the effect appeared more random than expected. The game was now looking more like a collage rather than a landscape. If we were to continue on with this game, the species we used would be broken down into smaller subsections where we can assign very specific game objects to particular areas. The landscape generated could also be improved by adding more constant spawn elements, e.g. a river or pond that would always spawn within a specific area. This can later be used to draw players towards more important elements of our virtual world and could potentially be used to create a more uniform experience


B7 PROPOSAL + TESTING

63


Generated Landscape



Hidden Colours

ITERATIONS

Sample iterations of the gamescape. In general, there is a high amount of iterations possible with this procedural process.

TESTING

66


ITERATIONS

Procedural Landscape

67


Hidden Colours

COLOUR EXPERIMENTS

VARIANT 1

VARIANT 2

VARIANT 3 TESTING

68


Procedural Landscape

COLOUR EXPERIMENTS

VARIANT 4

VARIANT 5

VARIANT 6 69


Hidden Colours

IN-GAME SCREENSHOTS

TESTING

70


Procedural Landscape

IN-GAME SCREENSHOTS

71


Hidden Colours

WHOLE LANDSCAPE 1

Obelisk

River of mountains

TESTING

72


Procedural Landscape

Mixture of landscape and wall species

73


Hidden Colours

WHOLE LANDSCAPE 2

TESTING

Mountainscape and wallscape

74


Procedural Landscape

More obelisks

75


Hidden Colours

WHOLE LANDSCAPE 3

Palm tree appears

Temple compound formation

TESTING

76


Procedural Landscape

Colonnade

77


Hidden Colours

WHOLE LANDSCAPE 4

TESTING

Cat head appears

78


Procedural Landscape

More landscape species

79


Hidden Colours

WHOLE LANDSCAPE 5

TESTING

Giant boulder appears

80


Procedural Landscape

Scattered wall and column species appears

81



Hidden Colours

IMAGE BREAKDOWN

1. Base “Render” of game scene from Unity3D

2. Into Photoshopland. Creation of shadows layer and sky layer.

3. Creation of text and “drop shadow” layer.

4. Creation of drawing “sparkles”/”confetti” via Mixer Brush tool.

5. Vignetting

TESTING

83


Credits Journal design and layout: Eugene B1: Eugene B2: Eugene B3/4: Eugene and Kenny B5: Eugene and Kenny B6: Eugene and Kenny B7: Eugene and Kenny

Matrix coming soon......


B8 MATRIX

85



Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.