Today I got to work on the power scene. I thought I should probably polish it up a bit since its had that glowing pink-orange texture on it for a while. After going back and adjusting the models and their UVs, I took the mausoleum into Substance Painter and applied a marble material to it. I baked it on to the model, then brought it in to Unity.
I'm quite pleased with the result, as the structure looks really cold and imposing. In fact, I like the vastness of this scene so much that I am now hesitant over adding the religious panels on either side of the river. I may just have an Christ/ influencer in majest at the end next to the mausoleum. Or maybe a couple of displays of power can fade in and out around the player. It is important that I maintain the connection to the influencer in this scene, but I don't want it to be too flashy.
I also went back and cleaned up the walls and floor mesh. The scene is now one solid mass and the rooms have clean joins. I also created a new mesh for the water and the floor so it is neater.
Finally, I created a skybox. I realised I had actually made a skybox when I was learning how to use the Shader graph at the start of this project so I just tweaked that shader. The shader had stars in it, but I did not like the look of them. I tweaked the parameters for the horizon to make it slighlty higher and more abrupt. I gave the horizon a yellowish tint to hint at light polution from the city.
I am trying to get an experience in which the player can get from the start to the finish of the experience. Knowing that I had a working project would be a huge weight of my shoulders and I can start to polish up the rest of the scene. I am adding more functionality with the green orbs that allow the audience to jump between positions.
I have encountered an annoying issue where moving objects interupt the raycast between the player and the selectable object, thus ending the selection process. It seems as though this is a common problem as Unity has a built in layer called "Ignore Raycast", I can chuck these annoying objects in this layer and it should solve my problem. Thankfully, it really is that simple. This seems to be one of those things that turn out to be far more simple than you'd expect.
I also added the camera that sits in the raft. It has a sphere collider that rotates the object to the most important displays in the scene when it collides with it.
I had another look into the audio mixer. I discovered you can add SFX then expose the parameters to adjust them via script. This allows me to effect the sound in certain areas of the experience. I added a box collider in the love room that gradually lowers the pitch of the sound on entry, and raises it back to normal on exit.
I want to create an influencer as my 'christ in majesty' display at the end of the power scene. I realise that the blow up doll works well in this scene, but the current model just isn't ready to be put into poses. I remodelled the the blow up doll, this time at a very high polycount so I could get in little details that made it look blown up and plasticy.
Substance painter gave me a bit of hassle but I managed to get some decent textures out of it.
I then brought the mesh back into Unity.
Now I need to rig it.
I returned to the blow up doll today, and I began to reanimated the dance. This didn't take as long as I thought it would, and the result is much better than the last animation.
I also posed the blow up doll to represent the Christ in Majesty pose in relgious art. I added a breathing animation to give the figure some life, and also replaced the gospel with a camera.
I'm going to bring some more ambient sounds into the power scene. I want the sounds of the distant city to mix with some sort of spiritual or soulful sounds. First I am going to build the city ambience. I have a recording of cars in a tunnel in London, however they sound too close to be a distant city. I found in an online forum that you can reduce the volume of high frequencies and add a slight reverb to make sounds appear distant.
I spent today working on sound. I adjusted a couple of older sounds, changing the volume and the trigger points etc. I also changed the begin ride button to make the sound of a mouse clicking upon selection. I added more traffic sounds to the power scene, and the sound of a hymn in a cathedral as the audience approach the mausoleum.
I keep getting unpredictable errors with my selection functionality, I can't really get my head around how to fix the code so I may need to write it again from scratch. However, this shouldn't take as long as it did the first time as I have a better method for interactions between different scripts and objects.
The biggest problem with fixing my selection functionality is how infrequent the errors occur. They happen every couple of playthroughs- this makes it hard to debug as it is difficult to recreate the problem. I had a suspicion that the errors are caused by interactions between different scripts happening in the wrong order or running multiple times when they should only run once. I modified the code so every function in the selection process should only run once and it seems to be running without much issue- but I don't trust that it is totally fixed.
Today I made a build on my phone and got my girlfriend to play through the experience. This is the first time I've actually had anyone play through it and I had a couple of main worries. The first being that they cannot work out how to begin, the other being that it is not obvious that this is a ride.
At the beginning of the playthrough she looked around and tried tapping on the screen to start it. She didn't figure out how to begin by looking at the orb so I think if the audience doesn't start in 15 seconds a prompt will appear at the bottom of the screen.
Then once she entered the wealth room, she began trying to interact with the falling coins. This isn't necessarily a bad thing, as the audience will quickly learn that they can't interact with objects that don't have an orb.
She also asked if she was moving when she was at the power scene, which means I either need to add more items on either side of the path to show they are moving, or increase the speed of the raft.
She did realise that she had been moved back to the beginning of the ride afterwards, and quickly worked out how to move with the orbs. This is a really good sign as this is where the audience will have most capacity for interaction.
Overall, she understood many of the themes the experience hinted at, and she said it 'was like alton towers' meaning it was obvious it was a ride. She did however, find the wealth room a little bit hard to decipher, and she suggested making the transition from consumer to producer more obvious- which I should do.
Below is a screen recording of her experience:
I also tried running the .apk on her phone and it worked with no problems- however, her phone is a very similar model to my own so it may not work so well on other devices.
I created a prompt that appears after 15 seconds of starting. The begin consumption orb deactivates the gameobject.
I wanted to create an environment that could act as the final scene where the audience chooses to start the production chapter. For now, I have had a plain dark room with nothing aside from the floating orb. I decided I would recreate the Pantheon in Rome- not exactly, but I like the circular shape and the skylight. The architecture of the building is immediately recognisable as having a spiritual purpose, and the skylight seems symbollic for god and the heavens.
The radial shape of the building translates a lot better to the interactive scene than it does in that image. I made it almost blindingly white- the features are difficult to see but not indistinguishable. I think I can chuck in a couple of arches I made earlier then this scene will be complete. The architecture of this building looks echoey, so this is a good opportunity to apply some sound effects and ramp up the reverb to increase the sense of scale.
I polished up a couple of awkward interactions in the scene and the player can now travel all the way to the end of the experience. I should now create that final scene which is the return to nature and reality. A stage light falls from the pantheon and crushes the player - ending the experience.
I just finished reading No Country for Old Men last night, and I am reminded of the character of Anton Chigurh. The character assumes a sort of ultimate natural power and kills just about anything he encounters. However, Cormac McCarthy builds an image of this character throughout the entire book only to have him involved in a random car accident that nearly kills him. I wondered why McCarthy chose to show us this, as it has little direct consequence to the plot.
I was reminded of this scene when I was considering the abruptness of the player being crushed in my project. I want it to be a reminder that although we invest ourselves into the hyperreal social economy, we are still faces by the most real and absurd force that is death.
I'm beginning to consider how to depict the smashed up light and camera. I can always manually pull apart some of the components but I discovered I can also apply a 'solid shatter' effect. This breaks up a solid mesh into a set number of parts.
I smashed up the DSLR and combined it with the fallen stage light. I don't want to have to sort out the UVs until I know that's what I want the mesh to look like so for now I have given it a really bright material.
With this new scene, I created an animation that shows the camera swirling upwards from the smashed camera.
I think I should try and come up with a name for this project now. I want to try getting this on to Google Play so I will need a title regardless.
To help come up with a title, I should consider the main themes (I'll do this in my sketchbook to avoid clogging this page up. Baudrillard has been vital for this project, and he has some strange but interesting quotes. One that has stuck with me throughout this project is "it is not normal to be dead" - in reference to the hyperreal detachment from death in postmodern society. The catch is that death is not a central theme to this - life is (which happens to prove his statement to be true). I'll have a think on that one.
In looking up other quotes from his books I found "Americans may have no identity, but they do have wonderful teeth" - this seems to better capture the phenomenon I aim to portray. "I may have no identity, but I have wonderful teeth" is more fitting. This captures the theme of superficial performance and display.
Today I got all kinds of things polished up. I mostly added sounds and adjusted timings. The experience now runs from start to end without any hiccups. There are still a couple of important things to add, like an additional display of power. But otherwise I only need to polish it up. My list of things to polish though is ever increasing but if I can add these vital pieces in the next couple of days, I can dedicate the remaining weeks to polish.
Below is a screen recording of the project running on my phone. The resolution is low because I accidentally had it set up to record in portrait but I will record it again soon in full res.
This morning I had a tutorial with Gillian and Neil, we discussed my experience of playtesting the project with my girlfriend and used that as a lens to discuss overcoming certain obstacles. My main take away is that the wealth room needs another look over. It has always felt a bit like an untidy room instead of a spectacle of consumption. Gillian also suggested consindering how to end the piece- for now I like the idea of it just ending. The same way in that the internet workers life abruptly ends, so too should the experience. It is unfortunate that I forgot to publish the video above prior to the tutorial as I could have given them a better idea of what it should look like. I cannot attend the studio support on Thursday but I'll make sure to book one on Monday so I can get more external perspective on this.
I was also encouraged to test the performance on other devices. My mum has a quite low spec Lenovo tablet running on andriod that I can use to test. After uploading the apk to the device, I found that the tablet actually doesn't have a gyroscope- I had not considered that any smart device may not have one. At least I can still use the device to benchmark it by having the animations play automatically and add a frame rate counter.
I managed to build a project that has the raft move through the scene with the camera facing forward. This runs at a steady 10fps. This isn't great but it could be a lot worse, I think this tablet is extremely low spec, and I am yet to do much optimisation. The build is also 40MBs so that seems pretty reasonable. There is also a lot of junk that can be stripped out of it and compressed so I can probably get it even smaller.
I tried a development build with the profiler attached and ran it on my phone. The app runs at the cap of 60fps with no problems which is really promising to see. I may need to try on some other devices to confirm how well it runs.
I tried uploading the game to Google Play quickly and it is actually quite easy to set up. I created an internal testing store page so I can send people the link to test it.
I am now in the process of going back into the wealth scene and cleaning things up. This was the first room I created and I now have an established atmosphere I am trying to create. I may need to rebuild some assets and shuffle things around.
I realise I have not updated the journal in a couple of days so I will quickly recap what I have been up to.
I have mostly been polishing certain aspects, and building small environmental assets like litter, ceiling vents, fire exits and mounted speakers for the ride. These are effective in both making the world more believabl but also giving the users a constant reference for the scale of objects.
I also tested the experience on my dad, he is tech literate but not so much with contemporary games. Again, like my girlfriend, he got stuck at the beginning even with the prompt that I thought explained what to do ("look at the orb to begin"). He could see the orb on screen, and so he believed that he was in fact looking at it, when really I wanted him to allign the reticle with the orb. This is interesting as I hadn't even considered this as a gaming convention, but it made little sense to him. I wanted the reticle to be a small almost unnoticable mark on the screen like it is in games like Grand Theft Auto, but he thought it was some kind of artifact on the screen.
Maybe instead of the GTA style reticle, I should go for a more obvious crosshair like Minecraft. I was also thinking of adding lights on each side of the screen that help guide towards the crosshair. I am not sure where I have seen this done before but I think it is quite common on screen.
He also discovered a bug in which the orbs break when you try and go backwards through them. I should either fix this, or I can make the orbs dissapear as you use them but I think this would mess with the idea that the player now has the free-will to move through the scene.
Yesterday I had a good think about how I can bring the title into the gameworld. I struggled with this as everything tried felt slightly off and unnatural. I settled with having the text fade in and fade away again as you moved towards them in the ride. I realised that this may be a good way to bring a narrative into the experience. I would need to keep the phrases concise but it is a good non-invasive way of bringing a focus to many of the themes this work explores.
Today I set about updating the production orb behaviour. Currently, the player teleports between them, but I discovered that I can quite easily set up a leantween function that will move the player between the orbs. I also ramped of the motion blur and added a woosh sound effect.
I had forgotten to write this down, but my dad tried to click the big red button instead of the orb above it when he played through it, this would quite obviously happen now that I think about it so I changed the button to hold the interactivity functionality.
The video above shows a complete playthrough of the experience as of this morning.
I had a group tutorial today where I showed this video, moving forward it seems like I should continue to add new assets and focus on how the users will navigate the scene. There was a particular interest towards using the 3D text as a way to split up the experience into sections which I think would a nice way to highlight the narrative.
I did not write a journal entry yesterday but I created a new interaction in which the audience becomes the tracksuit where they can interact with the picture frame, spawning the consumable items. Upon interaction, the next magenta orb appears allowing the audience to progress. I realised that the audience may not realise this orb has appeared so I added a 'reward' sound that plays when it appears, followed by a constant humming that is 3D so the audience can find it by turning to face it.
I also made a camera flash functionality. As it is difficult to directly affect a post processing volume through animation or code, I had to create a small post processing volume that is constantly 100 units under the player. I can then move this collider around the camera where the postprocessing (post exposure camera flash) can briefly appear.
Today I worked on polishing up the ending scene. The player no longer loses control to a cutscene but instead maintains control of the camera as it zooms out revealing the stage light above it. An orb appears- on interaction the stage light falls and smashing the camera in silence. Then 15 seconds later it fades to black.
Today I began to polish up the production experience of the power room. I created a line of 5 production orbs, each one slighlty higher than the last. When the audience activates one orb, the next orb ahead fades in allowing them to move towards that. At the end, the player can interact with the camera that the blow up doll is holding that would then allow them to enter to end scene.
So now I am essentially at a point where I have (for lack of a better word) a minimum viable product. The experience is complete from start to end, and it contains all the vital elements. Now it is just a case of further polishing the experience and adding text elements for a narrative. This takes a bit of weight off but I should still use the remaining time to make the experience as rich as possible.
Yesterday I revisited the ending scene and made it slightly more dramratic. The lights in the room now fade, and a light shines down from the heavens before triggering the collision. The collision is silent and theatrical.
I am now going to head back and introduce text to the scenes. I need to go back and get a feel for what each scene expressed, then consider how I can convey this through writing.
The wealth scene is concerned with contemporary conspicious consumption but it should first be considered from the consumer of these displays. Is this written from the perspective of the ride or the consumer? Maybe its a conversation between the two?
The ride - or the underlying societal codes it represents would encourage the consumer to embrace the ideals it presents. Yet the individual would never meet these ideals as they don't exist. Perhaps the ride speaks to the player as a consumer, encouraging them to look to these displays, "admire it" "look closer" "are you still watching?" things like this.
Maybe the ride expresses dissatisfaction with the player-producers perfornance, it is never quite there.
Finally, the individual raises their voice and asks, "is this all there is?" maybe they are met with silence, maybe the ride responds "that is all there was". The player's text could be a different style from the ride's text to suggest it is a different voice. Maybe it emerges from the DSLR, I'm not sure.
I think this enought to go on for now, I can start putting the text in the scene and see how it feels with the narrative where I can change it once again.
I also think now is a good time to make a build so I should get to work on that.
I have been thinking about getting this project on to iOS and the app store. There are a couple of issues that I may run into - the first being that I do not have any device running on iOS to test it on, I may run into issues when building the app that I don't have the knowledge to address, and there is an £80 upfront cost to having access to Apple's developer tools and the app store. However, I know that the majority of people in and around the art school have iPhones, and I am severely restriciting access to the app by only having it on Google Play. If I can get my hands on an iPhone to build to, I should have enough time to get the project on the app store before the degree show.
In the meantime, I've been continuing work on the project. Today I built a couple of archways that transition the audience between rooms. Then I made a little power switch asset just to add to the environment.
Today I started adding more text to the scene. These all run with the same script that fades the text in and out depending on the contact with between its box colldier component and the player. I think I may add an extra piece of text to introduce the audience to the desire room. Then I'll begin to add text for the production phase. For the production act I want the text to only be visible from specific orbs
I was considering how the player may exit the application. I noticed that the vuild is a little bit annoying in that the back button on my phone does not close the application. I began designing a pause menu with a resume, restart and quit button. I managed to get this to work quite well but I started to realise that the only necessary interaction there is the quit button, which could just be activated by the built in android quit button.
I decided that after the experience ends, a large quit button appears and a link to my socials (essentailly a digital version of a businness card). This was all pretty easy to set up. Unity has a built in button component that does all the heavy lifting and I just attach it to a function that finds a specific URL or closes the application.
This all works in the Unity editor, but I'll need to make a build to confirm that this works in Unity, and finally I'll need to run the build on my Google Play store page in case it blocks apps that have external URLs within them.
I'm having trouble with the realtime lights in my scene flickering- I'm not entirely sure what's causing it but it has remineded me that I should probably used baked lighting in this scene. The baked lighting doesn't work with my custom shaders but I can use one of the built-in shaders anyways since the baked lighting should offset the problems with performance this may cause.
As I begin baking lightmaps, I realise that this might end up being quite time consuming for two reasons, the first is that it take a long time to generate lightmaps and I need to take the light I had already baked into the textures out, and then add a normal map. This won't be difficult, it just involves a lot of moving about.
I have been making the transition to baked lighting, and it seems to be working pretty well. The only issue is that the workflow is so slow. I think it would be best if I spent some time today on tutorials so I can speed up my workflow and hopefully get better restults. Below is the new entrance room with low res lightmaps.
The mesh for the walls in my scene keeps giving me funny results. I realised I've adapted it so many times and forgotten to update the UVs. This got me thinking- this is a really big mesh, and 2048px is probably still quite a low texture resolution for this amount of surface area. I also realise that since this is one large mesh, I'm not entirely sure Unity will be able to cull the objects that aren't in view of the camera thus hurting performance. I am going back into maya to cut this mesh up, and redo the UVs so hopefully it will look and run better.
It's quite difficult to balance the light so it empahsises the key objects, whilst keeping the rest of the scene dark but light enough to make out objects. However, with certain objects, the baked lighting works extremely well like in the instance above. This is still slightly too bright, but the effect is dramatic- it's far superior to my custom shader in this case.
As I am using far less realtime lights in this scene (I think 2-3) I can afford to give certain objects more complex shader. The blow up doll and tracksuit now have a URP standard shader material attached. I can now apply normal and specular maps that allow for far more convincing materials. Compare the two pictures above, the blinn shader doesn't fail, but the specular isn't tight enough to make it look shiny, it looks slightly rough and plasticy. Whereas with the URP shader, the blow up doll looks far more convincing. There are still funny artifacts that appear in the texture, and I'm not sure why- it could be a cap on the texture resolution- but I'm hoping this is hard to notice when the postprocessing is applied.
I baked a really high quality lightmap and it revealed lots of problems. When I run the app on my phone, the quality and brightness is much higher so I need to turn the intensity of many of the lights down. I am also noticing a big hit in perfomance which isn't supposed to happen. I think it may be that all my lightmaps are at 1024x 1024x I can easily fix this in Photoshop but I'll need to look into it.
Today I went back and cleaned up some more of the lightmapping from yesterday. This mostly involved fixing some weird UVs, moving objects and changing light settings. I think the lightmaps I baked yesterday were just slighlty too large and had an effect on performance. The performance was still acceptable, but I worry that it may be worse on lower spec devices.
I had always considered light probes to be heavy on performance as they improve lighting quality, but they actually improve performance too. I surrounded the blow up doll and tracksuit with light probes as they are the only two objects that need realtime lighting.
To further optimise the scene, I reduced the texture quality of a lot of the assets in the desire room. I can get away with this because the post processing effects blur any detail anyways- there is no point rendering high detail assets only to blur them afterwards.
I have been thinking about beginning to put together my submission. When I take a step back and look at this project it seems like it is just about complete, but I feel like I'm forgetting something. I think if I begin to put together my submission, it will highlight the areas I need to finish off.
As I was waking up this morning, in a half asleep state I thought that everything that moves should have audio. It is so obvious and I am not sure why I hadn't realised that this is an easy way to find objects that should have sound.
I have given the blow up doll the sound of a balloon being twistet, and the tracksuit has the sound of fabric moving and the quiet tick of a clock.
Additionally, it was a cloudy, overcast day and it provided good lighting conditions for photographing my sketchbook. I had to tear many of the pages out in order to flatten them to properly scan them but given the fact that the sketchbook is more likely to be seen digitally over physically it was probably a good idea. The quality of the scans is mixed due to the fact I used pencil for the first half of my sketchbook and it had faded enough to not really appear in the scan, the second half does look much better, however.
I am going to make a couple of builds of the project, and as I do it, I am going to take notes of things that should be tweaked. The only major issue is that during the production scene the motion blur goes crazy as if the camera is shaking side to side. After much troubleshooting, I came to believe that this was due to a stacking of postprocessing effects. This was easily fixed by changing the global effect to a local one, meaning that it can be switched to a volume with a higher priority when it needs to.
Other than that, I found a couple of objects that could do with sound effects, some assets that were too bright or dark. I do need to make two important additions: I need more of my 3D text elements, and I need to add a moving asset to the entrance scene.
I am adding more text to make the ride communicate ideas of aesthetics and reality to the audince. The ride talks about how things are what they look like, and that it looks like the real thing. The language is slightly contradictory, but hints at the idea of simulated reality being unreal, and more real than real.