My No Frills Block Breaker

Here is my No Frills Edition of Block Breaker.

3 levels of increasing difficulty with a bonus 4th for anyone game enough to make it there. Original SFX and VFX.

I plan to return to rehash this into a fuller game with more features and levels after completing the course.

CLICK HERE TO PLAY

CLICK HERE TO PLAY THE UPDATED BUILD

Thanks for taking the time to review. I appreciate feedback both technical and creative.

1 Like

Hey Jeff,

Congratulations on completing this section of the course and publishing your game, well done :slight_smile:

Some feedback as requested;

  • boing sound effect seems a little on the loud side, my ears are bleeding :wink:
  • text in all buttons looks a little bit high, could be centred vertically
    image
    image
    image
  • particle effects are nice, colourful, however I found that because of their size, I often lost where the ball was if it was travelling downwards or to the side. It wasn’t such and issue if the ball was going upwards. Reducing the size of the particle effects may help, or, using colours which contrast with the ball. You could even capture the point of collision and then rotate the particle effect so that it goes in the opposite direction, e.g. if you hit the block on the top, send the particles down, if you hit the block on the bottom, send the particles up, for the most part that would keep them out of the way of the ball.
    image
  • lives! I need more than 1 life :slight_smile:
  • ricochet sounds - its nice that these are different, not sure if this is random, or depends on which item is collided with, you could add addition variety but randomising the pitch between two values on each ricochet. That way, when the player gets into a rapid ricochet scenario, the sounds become more varied
  • ricochet - in some situations the ball bounces in a direction you wouldn’t expect, I believe this is where the corner of a collider is being caught. It’s harder to tell from taking a screenshot of the scene, but if you have gaps between the blocks this could be why.

I had quite a few games but couldn’t get passed the first level, mainly because of the particles, that said, you have included screenshots of your level designs which look great.

All in all, well done, the above are just some items for your consideration as requested :slight_smile:


Updated Tue Oct 02 2018 11:30

Just made it to level two - I didn’t last long, that bottom row of blocks with the particles made it too hard for me to see the ball, pleased I got there though :slight_smile:

1 Like

Hi Rob.

First thanks for the feedback :slight_smile:

To the items at hand;

  • Boing sound effect - I’ve reduced all SFX to 50% and the boing sound to 25%. These will definitely be replaced on second pass at this game. That boing is…

  • Text in buttons - This one is a touch messier. The text is on a TextMeshProGUI text object. It is centred vertically and horizontally but as you’ve picked up, it slightly north of vertically centred. As shown in the screenshots below. Because it’s only 3 buttons, I’ve gone in and manually adjusted to better appear vertically centred.

startButton

  • Particle effects masking ball movement - I eventually found I could scale the PE by setting scaling mode to Hierachy and setting on the transform. I also changed colours to random between a red and orange.

  • Lives - Definitely a feature I want to add. Hasn’t been covered in lectures so far so I decided to publish this early take without but will definitely be added in later. Thinking a collectible and can also be earned when score condition met.

  • Ricochet Sounds - That’s a good idea and will definitely get added. Thanks.

  • Ricochet - This could come from hitting corners but I think it’s more likely to come from the velocity offset we add to avoid the ball getting stuck going either straight horizontal or vertical.

[SerializeField] float randomFactor = 0.2f;

private void OnCollisionEnter2D(Collision2D collision)
    {
        Vector2 velocityTweak = new Vector2
            (Random.Range(0f, randomFactor),
            Random.Range(0f, randomFactor));

        if(hasStarted)
        {
            AudioClip clip = ballSounds[Random.Range(0, ballSounds.Length)];
            myAudioSource.PlayOneShot(clip, 0.5f);
            myRigidbody.velocity += velocityTweak;
        }
    }

Unfortunately the workaround isn’t full proof as I found while testing for the particle effects scaling.

I have an idea to fix this when I remake the game by having a character or laser gun appear in a corner of the screen and shoot at the ball to hit it off its course. Also player will have option to shoot it if they have ammo from a powerup. But that’s a fair way down the road at this stage.

I’m now posting an updated play link above with the changes incorporated. Thanks :slight_smile:

1 Like

I’ve just had another go…

The particles looked better in the previous version I think, but just got in the way, the little red ones you have now don’t stand out that much, so they don’t get in the way, but they aren’t that interesting either. I think the rotation approach may have worked well, e.g. if you hit the brick on the right, they fly out to the left, if you hit the brick on the left, they fly out to the right, that would potentially keep them out of the way of the player too.

A middle ground option you might consider, if you grab the colour from the sprite rendered component on the block, just before you destroy it, you could set the colour of the particles to that colour. So if I destroy blue blocks I see blue particles, red blocks I see red. That would at least allow for some variety and not raise the “Why when I destroyed that blue block did I see red bits” question :slight_smile:

Sorry, I know you will hate me for the above, but I need to keep my feedback honest.

The buttons look much better, well done, really like those now.

The boring loop issue seems more prevalent now. I hadn’t experienced in the other version, but my first game in the new version has it.

There are a few approaches you could take to resolving the issue, its been raised quite a lot of times on the forum in the passed for the original version of the course. One of the issues with the tweak is that the change on the Y axis is fairly small, when the ball is near the bottom of the player space this doesn’t matter too much, it will gradually climb its way up the screen and, probably, hit a block and off it goes again… but if the issue occurs when there isn’t anything left to hit, it flat lines as the tweak can’t cause a rebound. You might be able to fudge it by making the tweak a negative on the Y, that way all of your boring loop rebounds would be coming down the screen, and eventually make contact with the paddle, assuming nothing else was in the way first. The problem is though, it takes a lot of time and creates a really boring experience for the player.

Blasting it is one option. Something I applied was a count of the last n objects the ball had hit, this was to detect if it the ball had entered a boring loop. For example;

WALL
BLOCK
WALL
BLOCK
WALL
WALL

The above seems ok…

WALL
WALL
BLOCK
WALL
WALL
WALL
WALL

Would probably indicate an issue. Note, these would be the types of objects it had hit, so four WALLS in a row could be the left wall, the right, the left and then the right. A good ricochet would probably only have a maximum of 3 WALLS before back to the paddle, a miss, or a block. It would depend on the angle the ball was travelling on. You could experiment.

What I did, and I’ve checked but I no longer have the code this, was to then hit the ball with the tweak, but significantly. So, if the ball gets stuck in a loop, it will then suddenly fly off in a direction that was unexpected, but at least the game moves on.

Once you have the detection in place, how you handle it is then up to yourself, you could have a little robot fly across, grab the ball and return it to the paddle, would look quite cool. You could make a feature of the issue, once you detected the boring loop place a count down in the middle of the screen for a few seconds, and then once it reaches zero, blow the ball up and place it back on the paddle - perhaps don’t deduct a player life for this though, it could just be a dud ball :slight_smile:

1 Like

No frills maybe, but I think your overall game mechanics and game tuning in terms of challenge were very strong. I found playing over and over again, improving a little after each try.

2 Likes

Privacy & Terms