Bricks
This game was built primarily as a game dev learning project for myself. I focused on the technical aspects of creating a Unity game and less so on game design, hence the unoriginal game.
Control the paddle with your mouse (or finger on mobile). Move side to side as you reflect the ball upwards to clear all the bricks on the screen. There are special bricks with useful gameplay effects. The ball will move faster over time. Don't let the ball fall to the bottom of the screen. There are only a handful of stages, but I might add more later.
Things I learned:
- Composite Colliders can be useful to combine the colliders of each brick. This fixed an issue where the ball can hit two bricks at the same time and reflect in an unnatural manner.
- Using Unity's rigid body physics caused the ball to do some odd things like when the ball hit the vertical side wall at a non-vertical angle, the ball would reflect perfectly vertically. Took some research and found that there is a project setting that needs to be modified to fix this. In the project settings window, within the Physics 2D page, the Velocity Threshold needs to be set to a very low value. The default value is 1 and for this game, it was set to 0.0001.
- The Edge Collider seemed like a good idea for the top surface of the paddle, but the paddle and ball could pass by each other without creating a collision event. I learned more about how the colliders and the rigid body systems worked and changed the paddle's collider to a Polygon Collider.
- There was a lot more work/time required to configure the GameObject components than I expected. A lot of time was spent learning about how some of the intricacies of each components and what their limitations were. I thought using the built-in physics system, would make things easy, but there were a number of things I didn't expect. I wanted the ball to only reflect on a vertical or horizontal plane when it hit a brick, but I couldn't make that work right. I do not like how the ball reflects off the corner of a brick as it makes the player feel uncertain where the ball will go. If I were to do something like this again, I would look into doing my own simple physics system.
- I built a VB.Net Windows Form as a simple stage editor tool that updates a JSON file. The Unity project loads all the stages from that file. I learned a lot about using Json.NET (Newtonsoft.Json) for serializing/deserializing simple C# objects.
- Regarding creating stages, I left that to the end. Maybe it's because I was ready to finish this project, but I don't think I have the patience or mindset for level design. Maybe it's simply a skill I need to work on or maybe I need to work with something more interesting than bricks. Maybe procedural level creation might be better for me.
Unresolved issues:
- If the ball strikes the very inside corner of an arrangement of bricks, it only breaks a single brick, though it seems like it should break the two bricks that make that corner. This is due to how I am using the Composite Collider and finding out which brick to break. Not sure how best to resolve that without rebuilding how the brick breaking system works.
Ultimately, this project has been a good experience. Took longer to build than expected due to all the research and trying things out. But that's why I'm doing this, to learn and build better/faster for the next game..
Leave a comment
Log in with itch.io to leave a comment.