Management plans

With this new project, it is clearly a good idea to try and get our project management sorted out. Looking back at our previous game, we had some pretty decent project management. Izzy was our project manager and he did quite well at keeping in touch with all of our team, including our collaborators. However, I often was unsure about what to do next, and decided to go forward and do what I thought needed to be done. However, while this was an issue, the project was still delivered on time and was working full. The only things that could have been done would have been further extensions of the game, rather than features or polish. For project 4 I would like to take this level of communication with our collaborators if I can. Because it constantly felt as though they knew what was going on and I felt like I was aware of their progress at all times. I would also like to improve the work list so I and my team can better know what is needed to be done. To do this, it is important to have a larger list of what needs to be done, and also an order of priority. This should let us create lists of what needs to be done in each day and should let us move on to more work if we run out and find ourselves needing more to do. This could be difficult though because it will require us to think about our project in a great amount of detail before it comes time to implement it. Because it is almost impossible to know all of the needed elements at the start of working, we’ll need to be able to update this list as we go. This could bring about issues because it may result in feature creep. I am a little concerned with how I will be able to implement this because I will be the sole designer on this project, so taking on that role as well as being the project manager will almost definitely be too much for me. So it will be best for another member of the team to be the project manager. This will probably result in slightly different methods of project management, but for the sake of my sanity, it will need to be done. Being the vision holder I would not do well being the project manager, because the game would definitely be wrought with feature creep. But, even with all this preparation and consideration, we will clearly run into more problems and so can only be so prepared.

Demoing VR

So, in the coming weeks I will have to demo my VR game to a public audience. What does this mean? Well, other than the sudden rush of anxiety, it means I have to introduce a lot of people to VR and set them up with the headset so they can experience the game in the best way possible. This can be more complex than it appears. Most people haven’t even experienced VR yet, so playing this game will be the first time they’ve ever experienced it. Because of this, it’s important to teach them proper care for the headset, and to overcome their urge to put the everything on at once, especially with the vive. There is a specific order to putting on and and taking off the vive headset so you can get the most comfortable experience. Often this means having someone else to help. The first step is to put on the headset, but because everyone’s head is differently shaped, it needs to be almost fully loosened, then placed eyes first with the straps loosely over the head, allowing the person wearing it to hold the headset at a comfortable position, and then tighten the straps on their own or with help. For demoing, I, or a member of my team, will need to be the person helping. So once the headset is on, the person needs to have their controllers. For anyone waiting outside the headset, it is best to hand the player their controllers by holding them upright by the base. So that the person inside the headset can easily take a hold of them without interference from the person outside. But it is important to make the player take a step toward the controllers to get their mind into the room scale experience rather than standing still for the whole time they have the headset on. Since I am going to be using someone else’s vive for this demo, it will be important to use the wrist straps for comfort of the player and the owners of the vive. To handle this, I believe it is best to hand the player the controllers one at a time so they can use both hands to put the wrist straps on, without having to juggle two controllers. Now they’ve got their controllers and the headset, they need headphones. These need to be separate to the headset initially so that putting on the headset has one less cluttering object. But when the person assisting needs to give the player their headphones, they should approach from behind, and continue to talk to the player telling them they are going to put the headphones on now. Plugging in the headphones first and then placing them on the player’s head.

So now the player is all set up with the game. But do they know what they are doing, mostly with the game, it should be set up to be self explanatory. But one thing that is important to teach them is the chaperone system. If they don’t know what this is, they might get confused or ignore it entirely. So to introduce them, it is best to let them discover it by walking forward. This can take some encouragement, so it is best to tell them to take a step at a time until they see the blue. Once they see it, then the person outside should tell them that the lines are a representation of their playspace, and that there may be people outside it. But how do you talk to them when they’ve got a headset on and are in a loud room without shouting at them? An inline mic is the solution to that problem. We can use it to talk to the payer calmly and without shouting to give small instructions if anything were to go wrong.

So now the player can play and can be given instructions when things go wrong. Now they can start playing. But it is important for the demo instructor to pay attention to the player so that they know when the player is ready to finish and start the process of taking off the headset. This being to take the controllers first, then take their headphones allowing them to take the headset off themselves. Once you unplug the headphones and put both the controllers and the headphones down, you can take the headset from the player. It is important to pay attention to the player because they may want to stop playing quickly and will want to pull the headset off first. So it’s important to be ready to take things from them quickly.
My team and I will need to pay attention to these things when we are in our upcoming demonstration to create the best possible experience for our players. Here is a video explaining more about this demoing process:

Horizon post mortem

Horizon is a music video game that was created to demonstrate the works of musician Jbox. It was made to shuffle through all of his songs and have elements that responded or acted along with the music. The game was focussed on the idea of a journey rather than a destination. So it was created to be an infinite drive game, with continuous terrain to focus on the journey. Another emphasis was on colour and colour explosions as this was a key thing that Jbox wanted from the game. We made a decent effort to create this but due to scheduling, format and communication faults and limitations, we weren’t able to fully accomplish this aim.

 

Construction:

Terrain Gen

The terrain generation system was my main focus during development, since it was a key part of the game. I started by planning out how it would need to be put together. I knew that it’d need to be built out of preset pieces of terrain to create corners and bends in the road I decided these pieces would left and right turns, inward and outward S bends and a straight road. So I started by building these pieces inside of unity. I then needed to figure out how to create a system to piece them together one by one. This was done by instantiating the pieces one by one onto anchor points that were at the end of each piece and deleting the pieces after they were around for too long. This worked well but would often take the road too far from unity’s origin point and things would start to freak out graphics wize. So I needed to adjust the system to guide it back to the origin. But once it was doing that, I just needed to create more decorated versions of the terrain pieces to select when spawning and then it was done. I also had the car move along with the road through an animation, this could have been done better as the animations were quite clunky. The pieces of terrain that I created were also very clunky, I’m no 3D animator. It would have been great to have modeled terrain pieces rather than clunky pieces made from unity primitives. But our communications with our animators had problems and we weren’t able to fit the models into what we could get from them. You can read more about how I build the terrain generating system HERE

 

Time Changer

The next system I needed to create was the ability to change the time of day within the game smoothly with simple inputs. So, to start, I decided to create 3 states of time that would be used as our times of day. These were day, sunset, and night. The next step was to get predetermined positions, rotations and colours for all the elements that would change with the time. These elements being, the rotation of the sun and moon, the scale of the stars, the colour and rotation of the directional light, the offset of the skydome texture, the colour and emission of the headlights and the light level of the headlights. Once these were predetermined for each time state, all I needed to do was create lerps between the points when the time states were changed. I did this to change between songs, but also decided to make a steady transition between closer points during the songs, so it wouldn’t be so stagnant. This system worked on the most part, but at times had some issues with jumping elements. This is probably an issue with the preset values, since not all elements were doing it.

 

Shuffle Player

The shuffle player was a bit messy initially, because it wasn’t nailed down what needed to be in the script and what each song was going to need to reference. Also, initially I wasn’t working on this system, and only took over after the deadline got too close and the person working on it hadn’t completed it to the level it needed to be. So I stepped in to finish it off so we could ship it on time. The style of shuffle I aimed for was to play through all the available songs once in a random order before it plays any songs twice. This is how most shuffle systems work. The shuffle system would select a reference number to a song, that would also refer to many other variables, such as song lengths and assigned time of day. The shuffle system worked ok in the end, but because it was rushed, the coding was a bit inefficient.
Team Work:

As a team we work pretty well. We created a final product that was satisfactory to the client and ran in the formats it needed to. But at times our balance was a little bit off, and a large portion of the work was done by one person, this lead to multiple problems. The main problem was that the other members of the team didn’t know how parts of the game worked if they didn’t make it themselves, so it was difficult for others to take over and “share the load”. This was also a method of dealing with difficult schedules from some members of our team, which is what pushed us in the direction of unbalanced work loads.  We also had communication issues with some of our collaborators and so we weren’t able to get that part of our game to it’s full potential, but some of that was outside of our control.

 

How this project feels

Some people say it’s difficult working on someone else’s project, because it’s hard to find your own motivation. But with this current project, I haven’t been finding that. If anything, I’m finding it difficult to work on other things. This is probably because of a few things. Often with projects for clients, you are involved less in the construction of an idea than with a self directed project. But because our client was very loose with his plan, we as a team were able to form an idea together, which let me be influential on the idea process and have more passion for the project. Also, often people working on external clients projects find it difficult to have interest on what they’re working on, but with the need for a terrain generation system, I have always had something to focus my attention on with full interest. Ever since our client mentioned the desire for an infinite shuffle mode, I was thinking about a terrain generation system, and so I have been focussing a large amount of my attention on building the system as you can see in the previous blog. So I haven’t had to waste any time on finding motivation or passion since it was there from the start. The only difficulties in my understanding is a loose structure because of the clients broad idea from the beginning as I spoke about earlier and a confusion in the communication with our animators and our programmer, but this is most likely because I am not the project manager so it isn’t important for me to be communicating with these people, and I am just feeling stressed because I am not aware of every element of the project, which is something that I can’t do in my position (or probably will never be able to do without being the sole person working on the project). I could probably smooth this out by being in more contact with Izzy (our project manager) or to ask him to keep a better record of what our externals are doing. But I’m not sure that will fix anything because I already have a pretty good idea of what they are doing and I still feel this way. I can’t be certain, but it’s not a large amount of concern, since other than this, the project is going great.

Terrain Generation

So I’ve been working on a terrain generation system for the musicvideogame we are working on. This terrain generation is to allow the game to run for ever in it’s shuffle mode. To start with building it, I needed to have a collection of tiles that could fit together in any order and still look like a consistent road. To do this, I decided to have 5 different pieces to make up these tiles.

Road Bends

 

These pieces in order from left to right are the left turn, right turn, straight, outward S bend, and inward S bend. These pieces all needed to be oriented the same and have an anchor at the end of the road segment for the next piece. This lets me easily piece them together without any broken rotations. After the pieces were built(which took forever) I needed to create a script that would place them one after another in a general road structure. To do this I needed to have the script randomly pick a piece, and to place it at the same position as the next anchor at the end of the road. It then needed to reassign the next anchor and loop. This resulted with something like this.

Copy of terrain gen

 

But of course this wasn’t done, the road was always crossing itself and never deleted the earlier pieces. So, I decided to make the road have a limited length. To do this I made each piece be a part of a set array that cycled through. Each time a new piece was created the oldest piece was deleted to make room for it. I also created a system to limit the number of corners the road could take to prevent looping. I did this by only letting the road make a left or right turn every 10 pieces, and when it had the opportunity to create a corner, it was still only a 1 in 5 chance. This new system created a road that moved like this (sorry for the small size). 

terrain gen mkII

 

So this was now creating a road that would snake around the world all crazy like, but the car wouldn’t follow it. So I needed to make a collection of animations that would move the car along with the road. With these animations, it was extremely important to make them pass through the anchors, otherwise the car would drift away from the road over time. Also with the new animations, I was able to get the code running every time an animation ended instead of in update, meaning that the road could move along with the road. Also to have a reference to the animations names, rather than creating scripts for the pieces of road to hold the names, I added them as tags to the object, letting me reference the object’s tag as the string for which animation to play. This new update to the system let me have the car drive along with the road, meaning in some form, it was ‘done’. But, an issue with unity is that the further away from the origin you get, the less accurate the positions get, which cause shadow to flicker as the road got further and further from the origin. This was a big problem for a game that is focussing on visual pleasing scenes. To fix this, I needed to alter how the road would decide whether to use a left or right turn. To do this, I added a variable that would track the way that the road was heading (cardinal directions based off Z+ being north) and then depending on the direction it was traveling and the position on the x or z axis, it would pick a corner that would lead it back to the origin. But the problem with this system is that id would eventually just create a forever looping circle that would only ever pick left or right and never a mix of the two. So I decided to add a function that would let it randomly pick a corner or straight if the road was within 1000 units of the origin. Which resulted in this wonderful road.

terrain gen Fixed
After this I needed to tweak the anchors and the animations to not have holes in the road or big jutting out walls. But that is all I have done to the terrain generation system so far. I still want to make the road pick a type of terrain based on some sort of curve so that we can have more than the cliff face we have right now, but I need to work on creating the tiles for those first before I can create a system to spawn them as part of the road. But that task is for later, as I also need this system to spawn decorations such as beach furniture and boats. 

Making progress

 

So we’re working with a client, as I’ve already spoken about earlier. But, how’s it going? Well that’s a good question. Like most things, it’s a mix of good and bad. So far, what we have created for the project has been received really well by our client. But this is what worries me. Because I still feel as though our scope is too unclear, so it feels like pretty much everything is good which means we have no direction. It feels like we don’t have a clear idea of the visual style of the game and the mechanics seem unclear. We know we want a car that drives down a road while the music changes elements on the road. But the movement of the car, the songs we use, what elements we change, and how the road functions all seem to be unclear. I know this is part of the project being still in development, but I feel like this is something that could cause problems on the next few days. But onto more positive things, our client is definitely happy with what we have made so far. This: drive loop w trees (8)
I need to talk to the team more to make sure that is just me who is worried about the scope. I’m sure it’s just me overreacting. If I can talk to the team we can get solutions to these unknowns that make me worried. Another thing I am worried about is what I am meant to be doing next. After I created the basics for the level, I was left with not much to do, so I went ahead and started working on a terrain generator. But I’m not sure if I’m jumping the gun or avoiding working on a more important thing that I don’t know about. I could probably talk to our project lead to figure out what I’m meant to do. So far though, he seems to be ok with me working on the terrain generating system. It’s looking like the microsoft pipes screen saver:Copy of terrain gen

How do others do music?

So when considering the fact we are working on a musicvideogame, it would probably be a good idea to look at how other audio driven games function and how they emphasise on their music. So to start this, I had a look BIT.TRIP runner 2 <insert rest of title here>. The way the game takes traditional Mario style platforming and turns it into a music driven experience. All the collectables and obstacles in the game correspond with beats or a melody of sorts. But while they are placed this way, does not make each the same tone based on what they are, even when they are played a second time if the player fails to complete the run on the first try(which happened to me a lot). This made it feel like you were composing the music every time you ran the level because each time you ran it was something new. This was a good look at something that took a game and made music with it, but the musicvideogame we are trying to make is much more focused on the music and a laid back feeling then BIT.TRIP runner 2. So i moved on to looking at Panoramical. This was so much more fitting to our goal with what our game. While it is still a live composition of the music, it is so much more laid back. So looking more into Panoramical’s methods I could see that it didn’t focus on keeping to the music with every element of the level, and often just kept the feeling with the music. This also happened most with the steady music pieces, so when the music was upbeat and fast pace it would keep with the notes. So with what we are creating, like my previous blog post about this game, it would be good for us to focus on keeping with the notes and beats. But, like with Panoramical, we should keep away from drastic changes unless we are aiming to emphasise heavily on the beats. Something else that Panoramical does really well is it’s capacity for visually pleasing combinations of elements. There are many occasions where you can combine the pieces just right to make something that is pleasing to the eye. So this is something we need to focus on when choosing our colours and where they appear in the screen.

Time to work with Music

So we’ve started a new project. This time the brief is to make a ‘musicvideogame’. But there’s a twist, this time we aren’t the ones with the vision, we are working for a client who is supplying the music track. The artist my team is working with is known as Jbox  and he creates mostly electronic dance, or EDM. Often his music has very beachy themes to it and it appears to be a running theme in both his album artwork and the pieces themselves.

 

To try and create a fitting musicvideogame for the tracks Jbox is asking for, it is important to research into some visual themes that occur within his style of music. So what themes does EDM have? Well for starters it is much too broad for our goals, so it would be much better to look more at the specific tracks by Jbox and look for his visual themes. The tracks he wants to be prioritised for the music video game are especially beachy and summer nightlife esc. One uses a lot of bends with with the guitar and bass line giving the feeling of rolling waves. At the start of each bar has deeper bass sounds in the on beats giving emphasis to the steady and calm flow of the song, and then on the off beats there is a sharper spike creating a pace and emphasising the upbeat nature of the song. The deeper on beats leave space for more playful use of the guitar and makes it so that the listener’s focus can be more on the small higher guitar bends then being taken back to the beat by the clap sound. To try and echo this in the video game, we could make larger but steadier colour changes based on the on beat bass and have bright sudden changes on the off beat but again being large. Then with the higher guitar bends we could make small but bright pinpoint changes that would make the player focus on the points rather than the entire screen, fully visualising the feeling of listening to the music.

 

The second track Jbox wants to be focussed on has a lot of the same themes to do with on and off beats, but often removes the crisp beat and replaces it with a focus on bass and plays a lot more with guitar bends creating an almost reggae vibe, but not quite. So with this track it’d be important to focus on the way these play and put less emphasis on the sharper beats.
Sadly I cannot give you any examples of these tracks we are working with since they are unreleased. But I am absolutely loving them and can’t wait to see where we can take this project. However, there are still good examples of his themes in Jbox’s tracks which you can find here.

Night Spirits Post Mortem

So I just released Night Spirits, you can find it HERE. The game  was made to try and take Tracey Moffatt’s Night Spirits collection and turn it into a game. To do this I wanted to recreate the feeling that Moffatt described having while taking the photo’s as well as depict the images in a 3 dimensional space. I wanted to use audio as the main source of the fear that Moffatt described feeling during the time when she took the shots. She also wanted to deliver a sense of unseen presence with the photo collection, I wanted to take this a step further and use a physical presence that would be more subconsciously noticed than directly seen. I also had a hope to take the game to VR after getting the initial game down. There wasn’t much planned for the VR version until later because I wasn’t sure I would get the opportunity. I did, so the ideas mostly came in the moment, but the plan, when it came, was to make the player look through Tracey Moffatt’s eyes by holding a camera that shows what the standard game sees, and then being surrounded by mostly blackness except for a little light to not disorient people.

vrNightSpirits3.gif

Level

To begin the construction I built a level space that primitively replicated the visuals in 1 of the images

I then spent time with the visual effects and getting them looking right, but I will talk about that in the appropriate section. After the visual effects were fitting, I went on to make the “badMan”, the guy who acted as my subconsciously seen presence, work. But I will talk about that in it’s section. Finally, after that was done I refined the primitive layout and created two more sections in the same area to be used as the three final sections.The level worked quite well for how long I spent on it, I needed to adjust the textures of some models to fit with the photos, but it was quite clear in the end that I was recreating the images after they were done. The most disappointing thing about the level was the lack of more sections. I would have loved to recreate the river shot if I had more time to create the shape. Also the models I was able to use were lacking, but there is only so much you can do with free unity assets.

 

Bad Man

The Bad Man was what I used as my unseen presence. He is always somewhere in the level, and is always looking at the player, but when he is in the view of the player, he disappears after .5 seconds. This took a lot of tweaking to get right, and there were many points where I broke his code because of a missing tag or an incorrectly layered collision box. He initially started out as a capsule, but I quickly changed his model to a human shaped prefab from my last game because I needed to have the shape to help the mind recognise him quickly. When this change came in I decided to make the whites of his eyes emit light to try and make them stand out. This didn’t do much until I implemented VR, when it stood out really well and gave a great sense of seeing eyes in the distance. Before the standard version was done the BadMan model was updated to a proper human looking man, rather than a boxy minecraft one. I made this man hunch slightly forward to give him a more menacing look and made his eyes also emit light.

 

Visual effects

The visual effects were integral to visually recreating the photos. So I spent a lot of time early on getting this right. First up I needed to have a light working and angled correctly so that it looked like the flash of a camera so I placed the light slightly above the camera. The next thing was to add a noise and grain filter to the camera to create the photo vibe. I also needed there to be a sort of bloom or contrast to make the whiter spaces fully white and the black parts fully black, making less space for the red to show up like this image:

night-spirits

To do this I used a tonemap filter that made the image look like this. After the camera was working correctly I needed to make the dust motes and fog that appear in the photo’s. To do this I took the standard unity dust storm particle effect and adjusted it until I had two types of dust. One that looked more cloudy that acted as my fog visual equivalent and another that acted as the dust motes floating in the air. Looking like this:

night-spirits2

I also improved the monochrome look by taking a lot of the textures and turning them into greyscale so the colours didn’t clash. These effects took a bit to convert to VR, but that’s mostly because I was not applying them to the right camera.

VR

Finally, the move to VR. This was an idea that came to me early on in the development of the game, but it was not fleshed out at all when I had it. So I put the idea to the side until I knew I had time to actually work on it. Then, when the time finally came, I was suddenly left with no ideas. It wasn’t great. So I started by just throwing in the VR camera and making the Bad Man work with the head camera instead of the first person controller. I then also got the teleporting working, so that the whole vr room track rig moved. But it wasn’t quite feeling right, so I took a break and thought about what I was doing. Then I had the idea of shoving a camera in the player’s hand, and making them look through that. Great! An Idea!! But how on earth was I going to do it? Well, my first step was to create a second version of the map, and move it over 500 units so that I could light the two differently, creating the contrast between the camera’s view and the players. Then I needed to make the camera that the player would hold, to do this I made a primitive camera shape and had then added a camera and a render texture on a plane. The render texture was receiving its image from a camera in the second level space.

vrNightSpirits.gif

Then I made the camera and its duplicate keep the same relative position and rotation, so that the player could see through the render texture into the space on the other side. I used this same script to make the new Bad Man keep the same relative position. Then came adding the visual effects to the new render texture camera, moving the lights from the player to the camera in the second level, and moving the particle effects over to that side. Finally, the place where the player was actually standing was pitch black, so I added a small point light the camera rig to light up the area lightly, so that the player didn’t lose the ground. When that was done there was plenty of issues to deal with, but it eventually worked really well. I feel like the audio and the light emitting eyes really brought out the feeling I was going from at the start, and considering the time I had to create it, it was still a decent end result.

vrNightSpirits2.gif

Round Off:

This project ended really well, and I think I used the time I had to create a pretty decent product. I would have loved to find/ create some better models that could have better recreated the feeling of Australia if I could, but the result was still alright.

Night Spirits

I have chosen to create a video game adaptation of Tracey Moffatt’s ‘Night Spirits’. Tracey Moffatt is an Australian photographer and film maker born in Queensland in 1960. Her work often is concerned with the issues that indigenous Australians face such as poverty, displacement, and racism. However, she does not wish to be categorised as an aboriginal artist, as she finds the term encourages stereotypes.

Image result for tracey moffatt night spirits

Tracey Moffatt’s ‘Night Spirits’ shows strange things floating about the landscapes pictured. These things are a representation of lives and history lost in the colonisation of Australia, and is what Moffatt was hoping to depict with the work. It creates a sense of unease and illuminates the night, showing what is normally left unseen. When Moffatt was taking these images, she spent a lot of time in the dark setting up the camera and experiencing a fear that heightened her senses and made the hairs on her neck stand up. These things combined create a peaceful but unsettling environment. I hope to try and recreate this feeling.

Image result for tracey moffatt night spirits

I want to create a feeling of being inside the picture and looking through Moffatt’s eyes during the time when she was producing the collection. But I want to create the feeling like there is more than an ethereal unseen presence in the Australian countryside. I wanted there to be a real presence that could spark a sense of fear in the player. So I created a person that teleports around the place, not entirely noticeable at first but enough to create the sense of unease. To create a visual style that was similar to the photo series, I used 3 different tools, lighting and two different visual effects. These were to make the image look as though it was coming from a camera, with an of centre flash and overexposure due to the darkness. This is to tie it to Moffatt’s work more than just creating a slender clone.

nightSpirits Demo1.gif

An important part of recreating the feeling of looking at Moffatt’s ‘Night Spirits’ is the dust motes and misty clouds that she links to lives lost due to Australia’s colonisation. These are important to making the visuals look like the work and are important to delivering the same meaning as ‘Night Spirits’. So to follow this I have made an emphasis on the particles in what I have created so far.
Its not quite there yet, I feel like I need to use different colours, other than red, to get the feeling of the whole piece rather than just one image. I also feel like there needs to be something that adds to the feeling of Australia that the images clearly had. But models are so hard to find as it is.