Ball Ball prototype is underway! In the last blog I quickly pointed out some of the placeholder assets that were going to be used until I could create my own. The purple circle is the ball, which has no method of being interacted with by the player at this current point, but falls with gravity. It was supposed to be the blue rubber band looking ball, but after placing a background the blue colour of the ball and the sky seemed to conflict and make it hard to separate the two. Unity has a simple white circle sprite, that’s what the ball is but tinted purple. It’s so much easier to distinguish.
The left block is a breakable block that will destroy after the ball or one of the green block hits it. The green blocks which are dynamic blocks, are just squares or rectangles that are subject to gravity and physics. They are also simple square sprites provided by Unity but are tinted green.
The up and down arrows are pickups that will double or half the balls size for a duration. Up = double, down = halve. Only the ball can interact with these two. The physics symbol pickup will invert the current levels gravity. This only interacts with the ball.
The TNT box which originally looked like this:
But now looks like this: fits in better visually than older TNT box. It interacts with the ball and the dynamic blocks. It currently does not explode on impact, but it will. It just destroy’s itself on collision with the ball or the dynamic blocks.
The black square: is a surface for game play to take place on.
The black and red square: (which is this image tinted red) is the finish zone. When the ball enters this, the level is over.
So each and every object currently has it’s own script, with the exception of the dynamic blocks. That’s a total of 8 scripts, just for these objects, 4 of which are very simple code currently. The TNT and breakable block just destroy’s itself when it gets hit by the ball. When the gravity pickup gets hit by the ball it talks to a single game object that controls the gravity, the “GravityController” and inverts the gravity. The enlarge and shrink pickups have their own scripts that tell the ball to do things and then destroys itself. The finish zone tells a single game object the “GameController” that once it’s been hit, change the level.
Although each and every object has it’s purpose and having a script waiting for a single game object to do things might not be the best solution, it’s definitely a start. I guess that’s why Ball Ball is still a prototype. Because there is only a very short time frame in creating this Ball Ball prototype and having to learn such a large amount of things in such a small amount of time and execute said learning, It’s extremely difficult to go and write a GDD, HCD, TDD, completely flush out the design and application and actually make the game. In a previous blog post I talked about documentation and it’s usefulness. This would be precisely a perfect time to have executed some of the things I’d learnt about the TDD. Having a previously defined system of how everything will interact with everything and how, before even starting the game would completely avoid what I’m talking about. Ball Ball’s TDD wasn’t finished by the time it was actually being created. I think it’s better to have a working prototype by delivery day, rather than a perfectly designed game and nothing to show for it.
Updates to come soon.
Until next time –