Category: Gameplay Prototyping Module

16 – Final Build Video

Hey guys this is the final build of the game for the submission.

Feature List

  • Mobile-focused Tap & Tilt for movement and PowerUps
  • Minimalist graphics and raycasted shadows via 2DDL plugin
  • Collectible PowerUps (the three below)
  • Tap & Hold: Parachute to slow fall
  • Colliding: Climbing Spikes to wall jump and wall drag
  • Tap & Shoot: Rope to rope swing
  • Time-limited level
  • Base Sounds (jumping, death, using powerups)
  • Base Menus (Main Menu, Pause, Win and Lose)
 

Video

15 – Playtesting Feedback Tweaks and Tutorial Level Walkthrough

Playtesting Feedback

In Entry 12 I playtested and took down some notes below. I realised I hadn’t made a post concerning my actions towards the feedback (which I had been fixing/iterating ever since) so here it is:

Wall Jumping is too hard (requiring major tilts where you can’t even see the screen)

    • This  problem was actually two-pronged, whilst I fixed the above another problem was more prevalent: the controls for Wall Jumping didn’t adhere to player expectations (the usual tactic i’ve seen is players stick to the wall, then move their character towards their jump direction then jump – but by then the player would have detatched!).
    • This took me a while to fix, I tried editing player movement speed whilst attached to the wall but that didn’t work, but eventually just changing the Polygon Collider for the attachment trigger to be more accomodating worked (essentially the player is attached for much longer)

ropeHook deployment is awkward as it requires aiming whilst others require taps anywhere

  • This was a consistent problem but after playing the game my girlfriend (who said it) and other people feel it is a good fit after all

 
Landing on platforms is hard, a simple element made much more interesting due to the accelerometer (the tutorial itself can be too hard!)

  • After playtesting more recently this is a problem with the level design, there seems to be an overall problem of difficulty which is due to me designing it for my personal skill level, i’ve since tweaked the tutorial to be more accomodating!
 

Other Gameplay Tweaks

I also implemented a crucial aspect a few days ago: Fall Damage!
This was simple enough to do, essentially if the player’s y velocity exceeds a certain amount then its a fatalFall (a boolean) which then calls the KillPlayer function. However I did have to test falling at various heights to see what was appropriate, for now a y velocity of 15 is enough to kill you.

I also had an issue with using the playerSpikes and the Fall Damage, if the player fell past y velocity of 15 (which then ticks the fatalFall boolean) but then proceeds to attach to the wall and then jump to a platform they still die as the boolean is still true. To avert this I added a fatalFall = false; to the player whenever they attach to the wall using the playerSpikes.

The other major tweak I did was to remove the spawning system (for now). As the level is short (1~ minute long) and that powerUps don’t regenerate it proved an issue when playtesting with people who died often. If I had longer levels (which I guess would go against the short-playtime ethos of the game) I would implement it back in but for now it can be shelved.

 

Tutorial Level Walkthrough

With the feedback above below is a walkthrough of my final tutorial level. The level is meant to showcase and introduce the player to the game’s core gameplay elements and mechanics.

Major changes from last time include floating tutorial text and tweaked placement of platforms and obstacles from playtesting feedback for better gameflow.

Picture

 
Level Plan
Above is the current level plan, while I initially wanted to focus on the whole ‘Down’ it was hard to showcase some other gameplay elements (namely on ways and situations you could use the PowerUps for)

My level didn’t actually have a initial plan but was something born naturally from making areas to test specific abilities as I made them as well as taking inspiration from tutorial objectives seen in my old level designs.

Picture

 
Base Movement and Hazards
This section is simple enough, straightforward text to tell the player how to move as well as an obstacle (the spikes) to move past.
 
Picture

 
Collecting PowerUp
The first PowerUp the player sees, with text to clarify to remove any sort of confusion.
 
Picture

 
Tunnel of Spikes
A test of movement for the parachute, the upper encounter highlights the dangers of avoiding walls (as it cancels the parachute) and the lower encounter focuses on moving to avoid spikes.

In other videos the upper encounter had a sideways spike but that was removed as it was to severe a punishment after playesting with newbies.

 
Picture

 
Wall Jumping
The first set of spikes teach the player to wall jump on the same wall whilst the one above teach the player how to wall jump proper (by jumping wall to wall)
 
Picture

 
Jumping Platforms
This section (right before the rope bit) is to showcase platforming jumping elements.

If you compare it to previous videos you can recall that these platforms used to be floating ones but I added pillars to the latest version to 1. change the look and add a ‘source’ for the floating platforms and 2. to allow the player to recover by climbing up by spikes if need be.

 
Picture

 
Rope Swinging
Above is the second rope swinging challenge, this one presents only a thin pillar to latch on to to highlight an aimed swing.

After some playtesting the pillar was widened a bit to be more forgiving.

 
Picture

 
Ending
I added a little flag sprite to help identify the ending better as some people noted they didn’t know that tunnel ended the level (with the blue colouring to represent ‘good’ or the ‘right way’).

14 – Timer and Menus

For the past few days i’ve just been cleaning up and polishing the game, a part of that is a simple Menu and Pause system.

Changes/Tweaks

  • Timer system
  • UI: Main Menu, Pause and Win/Death menus
 

Timer System

This was my first foray into Unity UI so it took much longer than expected to do this – what I wanted was a system that allowed me to showcase the elapsed time in the current level which would be used for Time Challenge levels as stated in the GDD.

After following tutorials I had an initial version that essentially just showed the elapsed time, but today I revised that to be an actual timeLimit that counts down instead.

Picture

 
A thing of note is the timerOn boolean which I use to determine if the game is a Time Challenge level or not, as well as to determine if certain text shows or not which i’ll talk about further in the UI Menus section below.
 

UI: Main Menu, Pause and Win/Death Menus

This was also my first experience in doing menus in Unity or any other engine, I was surprised on how simple creating buttons was and how easy it was to just link them to existing code.
Picture

 
The buttons above simply called to functions within uiScript (which also contains the code for the timer seen above).

The biggest issue came from doing a Pause Menu, for that I had to look up how to stop time which is done via Time.timeScale.

Picture

 
Picture

 
Another issue I had was to determine how to make certain menus appear (for example only the Paused Menu appears and not the Death Menu).

The tutorial I followed used a tag based system where all objects for the Paused Menu were under the tag “UI_Pause” and it would just activate/deactivate all objects in an array of that tag (akin to me activating/deactivating powerup gameobjects seen in Entry 11).

This didn’t work for me for some reason so I ended up doing a workaround – the UI objects relating to Pause would be instead be stored as children to a ‘Pause’ gameobject which would be activated/deactivated instead.

 

Integrating Timer System into Menus

Picture

 
Building off the whole children UI elements idea I decided to do the same with the timer elements by using the timerOn boolean as a condition.
Picture

 
This is most prevalent in the winMenu: if the timerOn is true then the player’s elapsed time is shown in the winMenu otherwise it’s not.
Picture

 
 

Video

No video this time round, the next video will be of the final build for this module!

13 – Minor Tweaks & Sounds

New Parachute Graphics

I decided to revamp the parachute graphics a bit so that all PowerUps have an active sprite that shows the change at all times (for example the spikes on the player or the belt for the rope). Our current version had the entire graphic appearing and disappearing so I decided to rectify that.

Now the backpack and the parachute are independent, with the backpack appearing at all times and the chute itself only when used as expected.

I also decided to modify the height of the parachute, now being a head taller  as the previous version was too close to the player in my opinion (chutes are often a distance away, after all).

Picture

 
 

Killbox Spike Graphics

I also replaced the red placeholder killbox with spiked variants. Spikes are a typical hazard seen in many platformers so why change it? Even though spikes are easily identifiable without the colour I opted to keep with the “red = bad” aesthetic like before as it’s something thats really ingrained for both gamers and casual players.
Picture

 
There’s two current variants, the top thin spikes and the standard ones below.

Sounds

I also implemented some base sounds to the game by creating an Audio Manager in the _GM from the Brackeys tutorial here. The Brackeys tutorial was very helpful as the Audio Manager allowed me to have a more organized sound system, simply using functions to play sounds from across all scripts.
Linking with the Audio Manager was done in the same way as I linked other scripts to each other which I had recently learned during this project.

Sounds done:

  • Jumping
  • Landing
  • Throwing Rope
  • Getting Damaged
  • PowerUp Collection
  • Respawning
  • Deploying Parachute

The sounds I chose were simplistic and mostly from an 8-bit format which fits the overall art style, each sound was chosen to be noticable so that the player will subconsciously attach certain sounds to certain actions, hopefully making them feel more immersed and in-tune with player movement (which is key for platformers).

All sounds below were sourced sounds and will be referenced in the appropriate documentation.

Picture

 
I also discovered an issue that due to the modular platforms some issues can occur at the intersect where the two platforms meet:

  • Spikes sound will play every time it touches a new platform making it seem like it plays the sound twice
  • If the player is attached to the wall and continues moving against it they some sometimes stop completely and not drag down

There’s not much to do to solve this other than to replace long wall sections made up of multiple objects into a singular one.

 

Video

I’m not so sure on some of the sounds I found (namely the Parachute) but it’ll have to do for now: the important aspect is the feedback the player now gets: the player should know exactly when they are performing an action, and audio is a part of that.