Michael Mohan
The project for this module was a simple first person shooter computer game, developed with 1 other student using Adobe Director 11.5 and Lingo. We created a first person shooting game with multiple levels and an interface with a timer and a high scores table. This game was embedded onto a website and could remember a player’s previous scores. I provided art for the characters and the music for the game as well as the high scores table and game state functionality. I also, provided functionality for various aspects of the gameplay itself. The game can be downloaded here and played on a web browser with the Shockwave player (open "GameKiller.html" to start).
































Game Killer
This project used Adobe Director to embed a game into a html page. The aim of the game is to use the cursor to shoot at characters as they move across the screen. There are 4 levels in the game, each lasting 30 seconds, with an increasing level of difficulty. Depending on the amount of different characters that are hit throughout the gameplay, there will be a score at the end of the game. In the main menu, there is a high score table to store the scores each time the game is played. The high score table will store not only the overall score in the game, but also the amount of shots fired, as well as the scores for each individual character and the amount of time each character was hit. The score can be affected by numerous things. If you hit a character, you gain 10 points. However, if a character gets from one end of the screen to the other without being hit, you will lose 5 points. Likewise, if you shoot at and miss a character, you will lose 5 points. Due to this, it’s fairly easy to end up with a negative score by the end of the game, in which case the score will not be stored in the high score table. Not only this, but there are also obstacles scattered throughout each level that the characters will run in front of and behind, making it harder to hit them.
On the other hand, to assist the player, there is also a clock that appears somewhere on the screen within each level for 5 seconds. If this is hit, it will freeze any characters currently on the screen for 5 seconds. If you miss a character during this time, or if the 5 seconds pass, the characters will slowly begin to move again with their speed gradually increasing to what it was. Although the speed of each character is changes throughout, their speed is generally lower through the first level, whereas they speed up a bit in the second level. In level 3, one of the characters will be friendly, so if you hit them, you will lose 10 points. In level 4, not only will 1 of the characters be friendly, but they will also be moving faster.
As part of the game, I introduced sound by recording a set of sounds for when each character is hit. I also provided voiceovers for the instructions screens before each level and the help screen within the main menu. I also added music to the main menu and each level, appropriate to the setting. I created animations for each of the characters as they ran across the screen and art for when they were hit, as well as art to represent the gun that runs across the bottom of the screen as you move the mouse. I also created each level using the art assets to place obstacles throughout and to give a certain aesthetic to each level. To store the player name and the scores to each play through of the game. Cookies in the web browser were used. The player can submit their name through a text box within the web page. Then this name will be displayed at the end of the game when the results are shown and within the high score table.
To set up the game itself, I wrote scripts within Director using the language Lingo. There were 35 scripts written and attached to the objects within the game in order to allow the game to work. You can view the pseudocode for each script here, in the “Pseudocode.txt” file. The scripts were used to handle numerous aspects, such as allowing the speeds of the characters to be randomly set within a certain range in each level so they move at different speeds each time. They also set the obstacles to move from the right towards the left of the screen while the background stayed static to introduce the illusion of movement within the screen. They were used to score details about the game such as the amount of shots fired and the score, and display them on the screen, along with a timer to show the amount of time left for each level. The scripts also scored specific information about the amount of hits and score on each character. They allowed the gun art asset at the bottom of the screen to follow the x location of the mouse, and change the mouse cursor to look like a hair trigger during gameplay. The scripts also handled the behaviour when clicking the buttons to play a sound and trigger screen transitions, as well as switching the mouse cursor to a hand when it hovers over the buttons. They handled the behaviour when hitting or missing characters during gameplay. If the shot missed a character, the speeds of the characters on the screen would increase. If a character was hit, it would stop and the animation would change to a sprite of the character being hit. The character would then slowly fade away and a sound would be played for that character that would randomly choice between 3 different death sounds for the character.
The scripts handled the clock that freezes the characters on the screen. The clock would be set to appear on screen at a random location at a random time within the level. It would then stay on the screen for 5 seconds and, if hit, would transition to a different art asset to indicate it had been hit. If hit, the characters on the screen would stay still for 5 seconds, but if a shot missed at this time, or the time would pass, then the character’s speeds would slowly increase again. After this, other characters would start to appear from the left of the screen again. The scripts handled transition between levels when the timer ended and also displayed the scores for each game onto the screen at the end. It also displayed the player’s name if one was entered, and displayed the name of the friendly characters for levels 3 and 4, which would be chosen at random. The scripts, handled decreasing the score if the friendly character was hit, and stopped the score from decreasing if the friendly character made it to the other side of the screen. Finally, the Lingo scripts were used to handle the display of the scores on the high score table. The score would be compared against the scores already stored on the high score table, and placed in whatever position was relevant, all the existing scores below it would be placed at a lower position in the table, starting with the lowest entry.