Preparing for the end of year show

Now that the project has finished and just about ready to be submitted, myself and the rest of the team need to think about the end of year show and how we are going to attract an audience.

this can be done through either enticing people with freebies, having posters/props around to attract people and even dressing up ourselves (pilot outfits).

We will definitely need some posters to stick up and possible some badges or stickers to give out.

We also need to be vocal and interact with audiences to receive feedback, be it positive or negative.

 

The image used for the main menu screen could be used as a poster design without the buttons.

Main Menu

One of our art book ideas was to have it themed like a child’s sticker book, we can also look into having those stickers made  as a freebies.

Imagined worlds Write up – repost

I am now coming to the end of the imagined worlds project and realized i have been a it carried away in respects that I have been moving onto new things rather than documenting what I have done before moving onto anything else.work-in-progress-rubbish-recovered

This was the initial concept art of our island which was drawn up after we gathered some reference images. I helped gather some of these images mainly looking at Wumpa Island from the Crash Bandicoot series and a couple of different island from Zelda : Wind Waker, these were used as references as we had agreed on the direction of stylized over realism.

This slideshow requires JavaScript.

After we had agreed on a sense of direction and theme it was time to start discussing what we needed and where to start.

We had everyone roles picked out from the beginning which were

Aiden – Programmer

Lee – Programmer (later switched to modelling)

Robert – Concept art/VFX

Ryan – World Design/ project manager

Sam – 3D Modelling

Scott – Programming

We began by having a scrum and discussing how we could begin the project.

We decided the best way to start was to setup Trello, a shared google drive and a messenger group to help keep track and plan the project easier.

After that we began to work on our individual aspects, as follows:

Ryan started off by using creating an island mock up with the unity terrain feature.

As a lot of this project was modelling and VFX I took on making a changing skybox as my first task.

I had decided on a clock based mechanism for this which would consist of the arm and four triggers that would each have their own skybox attached and change when necessary.

I began by animating the directional lighting that was in the scene which gave me a rotating object that could act as an initial point of this task.

Island Gif

The way I chose to proceed was to download an asset pack of skybox images to use as placeholders and start getting the system working, I chose to start this  by creating a clock like mechanism which had a block with it’s mesh render disabled to ensure it was not visible. This was attached to the directional light which I had animated earlier.

Once I had the light and “arm” animated I began to add another four cubes with their mesh render disabled and placed them evenly around the arm/light so they could be used as individual triggers.

I attached a script to the arm which detected the collisions of these blocks separately with the tags Morning, MidDay, Evening and Night, then I attached the appropriate background image to each of these and began testing.

At first I had forgotten to add a rigid-body so of course the collisions did not have a trigger and could not enter an active state.

After I realized my mistake and with a bit of tweaking I had this final result.

clock

 

Storyboards and playboards – What’s the difference?

The main difference between the two is that a storyboard will  have a set direction/path/events that a character must follow as part of a the story to ensure that details are accurately represented.

A play board however will show multiple options that the character could take each leading to different circumstances or even meeting up with the original path later down the line.

 

Stretch goals

My original stretch goals were

  • Points system
  • Intractable objects

I have implemented the points system and have looked into intractable object but the models we have in scene have not really been made in a way that they can interacted with.

The types of interactive objects that were originally mentioned in the design were things like shooting the toaster and the toast would fire out of it upwards or the ice dispenser on the fridge launching an ice block across the room or even open the microwave.

 

A new stretch goal that has been mentioned to me which I am going to look into is a radar system or an arrow which will help you find the other player around the scene, there are already some things to help with this such as the character trails.

The trails match the plane color so you can distinguish them from the rocket trails.

There is also the smoke screen which while give a big advantage by making the player undetectable to the lights and turrets in scene a big cloud of colorful smoke flying around is easier for the other player to spot.

Score and game timer

The next step is to add a score system to the game which give player an additional competitive objective.

This is going to require going require creating a score manager script to keep track of the the total score gained and by which player as well as the visual representations.

For  the visual representation I will be putting the score at the top corners of the screen and they will be colored to their respective player.

Score placeholder

First off I have the text representation placeholders in their respective positions, they look a little off in this screen shot but they will adjust once the game starts due to the allocated rect transform.

 

Adding the score to each object for when it’s destroyed required a big alteration to scripts to identify if the the attack was going to kill the object or not and add a score value if it it did.

So in order of score value:

  • AA Guns = 10 points
  • Battleship = 15 points
  • Armory  = 5 points
  • player = 30 points

you will also lose 30 points when killed by a player.

Score

The next thing to add was a game timer, this required some research on how to format the timer into MM:SS.

I have placed the time in the middle of the screen

Timer.PNG

This is bigger than the score text as it is something players will need to keep track of.

 

I then needed to add some properties to trigger once the timer hits 0.

The things I wanted to add are

  • Game stops/pauses
  • Adds a new image on screen
  • recognizes who has the higher score
  • Display player with higher score wins
  • Main menu button

 

The Pause option is something that I have done previously and easily added, as is the on screen image.

The recognizing score and displaying appropriate winning message is what I was worried about but it was easier than I thought. I needed to create a win message for each player an link the score manager asking it to display either text depending on if score1 or score 2 was higher than the other.

Time+score

As shown in this image player one has the higher score nearinbg the end so the end screen will appear as this

 

End

This is very basic and yet to be polished.

Creating the additional UI elements

The first part of the UI that I wanted to create are the player health and Energy.

I started by creating an image of which I used a rectangle and change it’s color to red, duplicated it and put the duplicated rectangle a layer behind so it stays in plays and will never overlap so this is a backing layer to help indicate how much health is missing, then duplicated it for a third time and changed it to black with an even lower layer than the last one and expanded it a little which gives a nice boarder around the health bar.

I then duplicated and shrunk it down then turned the main layer to yellow which represents the players Energy.

 

Health and Energy

These are to be tweaked at a later date so they align correctly.

Now that the bars are visible on screen I need to link them to their respective properties and create a system to keep track of how much health and stamina is remaining represented to the image scale.

Health down

 

This requires linking the image to the health script that was already in place.

Health linked.PNG

The last part that was required for this was to find a away to have the health value scale down the the image value as the health value is 100 and the image value has a max of 1.

This required a simple line of code which tells the system that the health bar is equal to max health amount and then divided by the current health amount.

 

I then recreated this script process for the energy although I added a drain overtime for the energy as well as a reduction for each ability used/bullet fired.

Continuing the chances of inversion

Once I had created the main menus options and got them all working correctly, the next step was to make these option available during game time,  this will ensure that players have the option available to them at all times rather than having to restart the gamer to change anything.  The current options text has some scaling issued which will be polished after some additional feature work is carried out.

Ingame optios

These options work just as they do on the main menu to ovoid confusion, this task came with it’s own challenge as I believed it would be simple enough to recreate as I just had with the main menu.

This also required a few additional features to help with it being during the game time, the first change was adding an extra image layer which would tint the screen darker to indicate that it is paused, but also the pause feature itself which required linking a new control option within the input manager which would link to start start button of a control pad.

I decided to use the already made options prefab and remove the back button, this caused an issue withing itself and would not allow me to click on the inversion buttons.

I tried changing the trigger method of the buttons and how they were represented on screen but nothing would create any actually change other than visual.

I still do not know why my buttons broke in the transition (prefab issue) but to get around the issue I needed to recreate them.

Now that I have some UI elements in screen I need to create health and stamina bars, score representation and a game timer.

Invert Button

The script is setup to activate or disable a bool  which is then linked to the player control script and tells it which part of code to link to the player.

Acting on feedback and creating a menu

Although it has been a while since my last post. I will start by going over what I have done in relation to previous feedback.

 

  • Added inverted controls
  • Removed burst fire

 

Removing the burst fire from the primary fire seems to fit the game a lot nicer. There are still some things to adjust to perfect the primary fire ability, this boils down to bullet size and fire rate. While I was altering the script however, I thought now would be a good time to tidy it up a little and add headers to make it easier to identify thing in the inspector.

Attack properties

 

Adding inverted controls was a bigger challenge as it had been a controversial topic, some people wanted it inverted and others did not. This means that my best option was to create a setting and give the players an option to use inverted controls.

I first had to research how to go about this and learned that I cannot create a script to access the input manager of Unity, this leads me to altering the code which was used to control the player input. This is usually something that can be easily altered by adding a “-” to the start of that line of code which will reverse how it affects it’s attached object.

 

The additional challenge to this however was working around it to separate the option per player,  Unity can usually auto detect which player is which by attaching a number to each which is labeled as “playerNumber”. Using this method did not work the way I had hoped and gave me control of both planes (although one would be inverted and the other would not, which was the part I wanted to keep).

 

I had to change the code from Y + playerNumber to Y1/Y2 so it would only alter and give access to which one match the players number.

Input

After this I needed to create a button to enable/disable the change, this lead me to creating a main menu with an options button.

Main Menu

The options menu Consists on the inversion settings and a volume slider for the master volume.

Options

The button is white by default and turns green once pressed to give a simple indication to which one has been activated or not, the volume slider will also change color when the mouse is hovered over it to signal that it can be altered.

Survival Ace feedback

The current feedback that we have had for the project consists of:

 

  • Change attacks to triggers
  • Add an option for inverted controls
  • Add a boost ability/pickup
  • Remove burst fire
  • change primary fire – High rate of fire with a overheat/cooldown
  • Missile lock-on within radius
  • Kids pictures/stickers to stick on walls, fridges, doors etc

Upcoming MVP

What will our mvp look like?

Our Mvp will be in a playable state which will allow the player to kill or be killed by AA Guns and and other objects around the scene.

 

There will need to be some alterations to the reticle based on previous feedback, there is also adjustments needed to the players respawn system as it currently remembers which way the player was facing when they died and tries to align to that rotation on spawn rather than reseting and going forwards.

 

The main details that are required for the mvp at the moment are the ones listed above for me and maybe a changing a few of the assets as there are still some placeholders within the scene.

Capture

This is my current production scheduled which needs to be updated as there have been additional tasks handed to me which are currently not on here, some of these also need to be re-arranged as the additional multiplayer aspects will be moved to a later detail and I will focus on the pathing, pickups/drops and a Ui system which can all be updated to include additional multiplayer aspects.