I began by helping Alex with the graphics. I created a single metal level, in Gimp. It includes a bolt as a sample obstacle. Although this level was originally the default for our game, it is not actually used in the final product.
Learning to use the TGB GUI Builder was a real pain. I intend to trick someone else into building the one for my next game. There was definitely a serious learning curve. At the beginning, I was begging poor Bruce to help me with everything but by the end I was debugging and fixing things with only a few questions here and there.
The most complicated GUI was the one I developed for the splash screen. This splash screen was very complicated on its own--made significantly worse by my inexperience with TGB. The background, bowl, noodles, spoon, and tank appear in a game level while the buttons are in a separate GUI. On loadup, it is thus necessary to load both parts and ensure that there is a scene window object included in the GUI that allows the viewer to see through the default black backround to the level graphics.
To make the pasta fade in, I had to write my own function. Each letter fade-in is a scheduled event. The tank's movement is also made up by a series of scheduled moveTo events. This was a pain because I needed to test different variables for each point on the tank's path. The point coordinates weren't very intuitive. There was a lot of trial and error. Additionally, the tank's position is updated relative to its direction of movement every 32 milliseconds. This is necessary for the tank to point in the direction it is moving.
There was a lot more that my group wanted to do with the splash screen that I simply didn't have time for:
- Make the turret follow the mouse and shoot at buttons when clicked
- Make the letters bob, after surfacing in the soup
- Send ripples across the soup
- Make the tank crash into the spoon and move it
- Have the tank shoot at the bowl as it goes by
- Have the tank drive all the way around the bowl
However, even without these features, I think that the splash screen clearly communicates our child-like vision for the game.
The rules and game over screens were very easy to set up. They are a simple GUI interface with a single bitmap in the background. Although it is only visible in the rules page screenshot, both screens have play buttons that calls a function to start gameplay. This function is universal to all play buttons and not unique to the rules page.
The upgrades screen was challenging simply because it had so much to it and because it came between levels. Each time the upgrade buttons are pressed, money has to be subtracted and updated from the money counter. Additionally, armor, speed, ricochet levels, and bullet power must be updated and maintained using global variables. All of these variables needed to be modified again, when it became apparent that the location of the upgrade bars also needed to be tracked in global variables--otherwise they would not load where they had been left.
It was a very TGB-educational semester. I am looking forward to another semester of game design (my CS friends from other schools are so jealous, haha).