Tuesday, 13 May 2014

Play testing the refined Enemy tutorial again.

Idea:

In this version I will add a an object above the player with an icon texture. This will only be visible on the mini map, so the player can tell where they are in the game world. I will also fixed various bugs and tell the player when fuel is low and when their cargo is full.

Implementation:

Player Icon Radar:

I added the player icon to the top of the player but I added it to the "mini map" layer. This means it will not be rendered by the main camera but it will only rendered by the mini map camera and show up on the radar.

Planet Icons Radar:

I noticed that the game lagged a bit when I reintroduced the mini map. Although because I know my own game well I have have just over though it. Either way, I decided that it wouldn't hurt to improve the efficiency a bit.

With the planets they are about 500 polygons each. On the mini map, only a small amount of detail an be seed on each planets texture. With this I decided to make a small circular plain on top of each planet object (not viewable by the main camera). ThenI rendered each planet with it texture from a top down orthographic view. I cropped the images so they could be applied to the circular plain correctly as a 32 by 32 texture. Not much of the detail could be seen so I kept it low resolution. I did this for each planet model.

It appeared to do it's job and people liked the aesthetic so I will keep it.

Fuel Low & Cargo Full Text:

With this I created some 3D text built into Unity, using the "Quadangle" font to maintain a consistent style in the game. Firstly when the player's Mass Storage is nearly full, text appears at the top of the screen saying "Take Mass to Trader", the font of coloured free to link up with the consistent style and so at a glance the player sees green and links it to the Mass resources. When the player's collected Mass resources drop to 2 or lower, the text disappears.

I also added another piece of text at the top of the screen that says "Mass Storage Full" when the player tried to mine a planet when their Mass Storage is full. This is because many players were wondering why they couldn't mine a planet when their Mass Storage tank was full and thought the game was broken.

With the fuel, many player in the last play test commented on how they wanted some sort of warning for when their fuel was low. This is because the player would be engrossed in the game and interacting with the enemy, then suddenly they would find they had ran out of fuel and died. To fix this, I created some text and made the font blue to link it to the fuel resources. It appears in the same place as the "Mass Storage Full" text. Again it appears when the players fuel drops to '5' of lower, and disappears when it is above '5' fuel.

Bugs encountered:

Enemy firing:

With the enemy firing I hit a few snags. Firstly I over complicated the script for it. Initially the line renderer does it's job and that is fine. Then I used a recast to hit the player and deliver damage. However some times the rayCast would miss the correct collider to hit. I.e. it would shoot thorough the player's colliders.

The reason I used a rayCast is because initially I tried giving the player damage through the enemy the wrong way. I initially used a box collider to hit the player, the collider itself was quite long. It would adjust it's length according the the rayCast "hit.distance" command. Sometimes it would also hot register the player and be frustrating and it would surpass a maximum length I had set for it.

After a few hours I reached a "Duh!" moment. I should have just set the box collider to a maximum length and if the player enters it, it delivers damage. The collider does not need to rescale it self.

Thinking about it, the number of times I have had to re-create and re-program the enemy laser code is in double figurer and I should have done the simplest approach. Oh well, I know now I shouldn't have drilled down and over complex things for myself.

Enemy explosion & Health Box Spawning:

From the last play test several players noticed that after they had destroyed an enemy, the later enemy's could not destroy the player because the players health would not drop after the first kill. Another one noticed that after they had destroyed an enemy, their health would shoot up back to full, with out touching the spawned health box.

This was a strange bug. Firstly I checked to see if the enemy was hitting the player through code and it was. I checked to see incase the player or enemy had changed layer, and it hadn't. I check incase the enemy laser damage value had changed to zero and it hadn't.

Some how when the box had spawned, it was like it was in the enemy collider and or the collier must have increased. I couldn't work out what was going wrong, but some how with the health box spawning in the place where the Enemy Ship had exploded it was carrying out it's health regeneration function for the player. I tried using a 'yield WaitForSeconds' statement during the enemy death function, but this only made the frame rate drop massively and the game lag.

I then tried making the box spawn above the enemy explosion and gently drop to the player's level falling in the 'Y' axis. When I tried this out in game, it worked quite well, also because it gently appears about a second after the enemy explodes, it gives the player time to digest what has happened, before introducing something new.

Enemy Intro:

When the player goes near the enemy (about 70 in game meters) the enemy automatically goes towards the player, text appears above the ship saying "Enemy", then the text disappears after a second. After a second the enemy starts firing at the player, the health bar is revealed to the player, after 0.7 seconds text above it says 'You have taken damage', then 2 seconds later, text appears above the player ship with instructions on how to fire their laser. After this the laser heat up gauge appears, the enemy explodes, and a health pack appears and the tutorial ends.

Another thing with the enemy. When it gets too close to the player (there are two colliders attached to the enemy) by the player entering the inner collider, the enemy stops moving forwards. When the player eaves that collider the enemy continues to move forward.

Player Reaction:

During the play tests many players found many areas the game needs polishing.

Diego:

  • Needs level completion sound
  • Need to be able to make a complete trip around solar system
  • With laser, there needs to be a second sound for when it loops - ?, maybe no need now
  • Player damaging enemy is buggy
  • Add enemy icons to mini map
  • Shooting mechanic is too stationary
  • Does not like the space bar to fire
  • Perhaps the enemy could fire bullets
  • Possibly a suicide bombers - ?
  • Possibly have a laser as a blast like bullet
  • Reduce fuel drain
  • Button click on tut level 1 needs t be the same as start menu.
  • Make first planet closer or drain fuel slower


Good points
  • He likes the bar
  • Jonathan Play test

Martin:
  • Fuel drain is too fast
Good points
  • I like the enemy. if I want it to be an actual threat, it needs to be faster

Dominic:

  • Need to tell player about kills ships for higher score
  • He can't see the planets on the radar
  • Need a Full Tank sign
  • Needs more fuel!!!
  • Doesn't know where to go after planet


Good Points

He loves the bass like thruster sound

Bradley:

  • Maybe have a battery icon above the trader
  • Need debris in the background
  • Laser background bar pulses when mining planets


Good Points

  • Sounds are cool

Next Iteration:

With how things have gone I and most other play testers feel that the planets are the correct distance away. Therefore I will slow down the fuel drain to something like 0.3 per second. Also along with this I agree the combat is a little too static. I may try creating a new node path around the player, adding ti to another array, so they enemy can automatically swap to the player path nodes and curcle around the player ship. This is because in most space sims and space shooters the enemy ships always seem to be moving around to keep the player engaged in combat.

As well as this I will slow down the new enemy tutorial since many player still thinks it explains the new shooting mechanics too quickly. After this iteration I will add more debris to the game to make it feel less empty and make the game more responsive like with giving the enemy damage from shooting it and vice versa.

My last point, I will create a new graphic for both the grader ring ship and the enemy ships for the radar mini map. This is because many players confused the purple planets on the mini map for the actual trader and quickly became lost in the level. I need to create a small graphic and add it to the game soon to make lower the difficulty barrier for the player. I need to so the same thing for the enemy ships, because many players also became confused about this and could not see them on the radar. This caught many player by surprise because they were not able to anticipate the new enemies.

No comments:

Post a Comment