As I continued with development I started thinking more and more about a name for the game. Eventually I chose Euclid’s Dream, drawing the connection between the shapes and his role as the ‘father of geometry’. This made it far easier conceptually to think of the design elements and so I chose a set of colors with the help of Adobe Kuler. I also looked at Google’s Material Design framework to see how their guidelines could help me. It turned out that they were using very simple colors in concert with flat but carefully stratified layers. The idea is that different layers are like different pieces of paper laying on top of each other. Paper is thin and maintains a distinct look to it. I tried to emulate that somewhat with the shadows which simply consisted (in the case of a rectangle) of another rectangle offset and black behind the original shape. This created the illusion of shadow and offered depth.
Playing through it at this point I was feeling as though it had become too easy to play. Thus I needed to institute a real means offering challenge. However all I could think of was creating more rectangles as aggressors or altering the speed the rectangles moved. One unexpected aspect of implementing wrapping was that it made the game actually feel quite different. It no longer felt as restrained and was somewhat illusory as it made it seem that there were more objects on the screen.
My original plan with difficulty was to add another rectangle when one circle was eaten. However this had its own set of problems as my collision code was linked to the draw function and thus registered multiple collision hits per frame. It meant that the arraylist I had made to hold the rectangles would generate a vast amount on the screen. I tried to use boolean flags to guard against this but I was not so successful. Second I attempted to simply add another rectangle following a ‘win’ by incrementing the total rectangles spawned. In the end I was able to make it work by linking it to mousepressed in a similar fashion to the vehicle code. The mousepress resulted in a single rectangle being added but then either would not stop adding more with each mousepress or would not add more with each successive winning round. So It still annoys me that that part is still so buggy.
However, the game looks and feels quite a bit better due to the more carefully considered design this time around.