For this checkpoint: ‘Enemies/Interactions/Puzzles’, I at first implemented some basic obstacles for players to negotiate: some blocks to jump over, and spikes to die on. ;-)
These obstacles were at first constructed in the Unity editor using the basic sprites and components, and then transformed into ‘prefabs’.
For the blocks: A square sprite with a BoxCollider2D component.
For spikes: several triangle sprites using one as a ‘parent’ of the other three triangles so I could move them all together through the parent.
The spikes used a BoxCollider2D on the parent triangle that was edited to roughly cover the most pointy bits of all four triangles. (Lately I have been exploring making using the package for ‘sprite shapes’ to make this kind of sculpted polygon shape and adding a PolygonCollider2D).
Another major ‘object’ for this checkpoint, I had already completed the draft of: the maze level from my Basic Level Blocking checkpoint. (Because it’s a puzzle, right?)
Taking a broad interpretation of the enemy category here, but the timer clock is also part of this checkpoint, because it resets the player positions when it has run down. The timer was implemented using a canvas from the GameObject menu (comes with complimentary event system), and creating 2 GameObjects as the children of the canvas: One was created as an ‘empty’ gameObject and given a UI (legacy) text component to refer to in the script. The other a (transparent) square sprite and clock. …from memory I was playing with the square - then just ditched that idea by making the sprite colour transparent. The name persisted, so the ‘square clock’ carries the TimerScript (see image below) which does the all the magic, and links to one of the playerObjects in order to call on its script methods to respawn when the clock runs down. Time can be bitter and cruel enemy. (A side note here: there was an early idea to gradually age the characters…. but that might be for another game… This timer just resets the players all spick and span, fresh, and new).
The most recent additions to the enemy category for Biscuit Run, have been:
>> The flying triangle of death (just named this second as I write this - but an accurate description of its function. This triangle-shaped enemy uses the PatrolSliderBlock script and a polygonCollider 2D - set as a trigger.
>> The bully capsule (with exagerated mass) which uses said RigidBody2D mass of 1000 artificial units to push the players off the patrolled platform, and uses the same script as the triangle.
And recently (but yet untested in a peer feedback session):
>>The Spike Dropper, which uses both trigger and non trigger colliders, and a DeadFall script for dropping down spike-side first, and then smoothly resetting.
All these three recent additions use little child objects attached to the scripts’ raycasting functions, to allow them to be dragged and dropped and AI-driven in any scene.
So far the working list of enemies/Interactions/Puzzles includes:
>>The Clock
>>Obstacles blocks, holes/gaps
>>Spikes
>>Enemies that patrol
>>Boulders that fall/roll (placed near a pit for players to shelter in)
>>Any actual puzzle/maze/challenge built into the levels
“Cool I love all the levels although some can be cheesed”
This comment lead to a discussion about cheating and cheesing, and how much I should welcome cheesing, as long as there were some kind of controls in place. It did however reveal an innocence in level design which may have (completely) overlooked the audacity of gamers to defy the common decency and go their own way (see GIF below).
“Let’s call it an early draft” I remarked feeling entertained but a little foolish.
“liking the tutorials, good introduction to the mechanics
eeey i finished it! awesome works o far”
This comment can be taken as a sign things are moving in the right direction. Especially the “eeey I finished it!” And there was much rejoicing… ;D
“the tutorials are great and i love that you immediately know not to touch the pointy. Would be nice to see a level maybe exploring one way spikes (to teach spikes wont hurt the other player) and maybe something showing the interaction between the characters themselves?”
Here was some more fantastic and useful critical feedback regarding further tutorials, that should be easy to implement with a bit of time spent on designing those levels. (See below the mentioned current tutorial level).
The intention has always been to incrementally introduce the enemies and challenges, and more in game tutorials could aid in doing this - although really only important for the obscure aspects of game design - the player will ultimately have a bit of discovering to enjoy.
“love it so far (*heart*)”
Yes. Praise. We like.
Other suggestions included:
>> Adding a third coloured wall to prevent players from too much cheating away from danger.
>> A reset button presumably if things go astray or get buggy during runtime. (I actually think a return to menu button might be equally as useful).
>> some levels where each player has different roles:
“press a switch to open a door, or kill an enemy to make the other player's life easier”
These are all great ideas. And at this stage might need to be prioritised against other things on the ever-growing “Nice-to-Haves” list. There are already plans for at least one opening door. (This is residue from the original inspiration of a (two-player) maze of coloured moving walls controlled by interactions of the other player. Although there is always the option for playing Biscuit Run as a two player co-operative, implementing this idea of having the two players-characters ‘working together’ will be more a matter of designing in the challenge of involving such triggered doors and sequences of play with an appropriate difficulty to work in with trying to out-do the ticking clock.
“I love the early draft maze… I may just love it tho because I can cheese / speedrun it”
The timer probably runs a bit long for these need-for-cheese addicts:
“I think cheese to skip areas is neat, just as long as you keep it under control”
Yes, indeed. Cheese will be an acceptable feature of the game, but cheating will not be tolerated …especially now that I am becoming more aware of the desire to cheese.
The moral of the story is to always get players to ‘penetration test’ the levels as they get built.
Lake Hopkins 2023 A shared mp4 [re-formatted into a GIF by the author]. KIT 109 Discord Server: tutorial-main-chat. Last viewed 7th May 2023.
O Nillsen 2023 A shared GIF. KIT 109 Discord Server: tutorial-main-chat. Last viewed 7th May 2023.
[The TimerScript was modified from a script sourced from:]
The Game Guy n.d, How to Create a Simple Countdown Timer in Unity. YouTube. Last viewed 7th May 2023
Did you like this post? Tell us