top of page

GameStart 2016

Environment: Adobe Animate CC

GameStart 2016 is a 2D hack and slash arena survival where the player controls the GameStart's mascot, Alyse to survive waves as they interact with in-game items and purchasing stronger gears. 

 

This is my second-year client project for GameStart 2016 which I worked in a team of 5 to develop it in an approximate time of 5 months. My role in the project was a gameplay programmer. 

 

 

The game made it to the GameStart 2016 convention and was able to showcase it to its attendees at the Founders Base. 

 

http://gamestart.asia/gamestart-2016/founders-base/

 

 

 

Platform: PC

Scripting Language: ActionScript 3.0

Scope of Work: 

  • Programming the Wave System which includes the timer, level changes, enemies spawning, changes to the booth and removing enemies.

  • Programming the Scoring System which includes the multiplier, purchasing gears, and the score screen.

  • Programming the Attacking and Interactions of player and enemies which includes effects, stats changes and spawning of booth items.

  • Integrating sounds and Options into the game using script.

  • Scaling of enemy's difficulty level as it has a random spawn.

Mechanics

Mechanics
Scoring:

The game uses the high score as the main motivation and objective for the player to get the first place in the score screen. For every enemy they knocked out, it increases the multiplier which is multiplied by the score that the enemy carries and added to the total score. The score is also a currency used to purchase gears at the booths.

Wave System:

The wave of the game spawns enemies at the end of the timer regardless of whether the player has finished off the previous wave or not. This challenges the player as it requires them to fight faster before getting overwhelmed if they are not. It also increases the tension of the game as the player progresses.

Interactions and Gears:

The game has numerous weapons, consumables, wearable, and items in the level that can be interacted. Each of it has special effects such as stun, remove attraction to the player, knockback, slow and stat changes. The player who uses these items will allow them to have greater survivability. These items are bought in booths or drops from bosses. 

Random enemies and difficulty:

The enemies are spawned randomly based on its type. Each type of enemies has different stats such as speed, damage, and health which increases each wave. The certain type of enemies will gain special effects such as forming a squad and health regeneration. 

In-game screens:

Programming

Programming
Pseudo code for score screen
//In Update function,
//After the player hp reach 0, load lose screen
//send score to recordScore function(){
//In recordScore function(){
   //for every element in the profiles of players created,
   //check if there is a score in it,
   //make it to 0 (this prevent error when showing it in score screen)
 
//check if it is the profile name is same as the current name and then check if the score is higher
//make the profiles score equal to player's score
//end loop
//sort the array of profiles based on score from highest to lowest
//saved it into the swf file using the built-in saved object
}
//when lose screen finishes, call updateScore function(){
//find the smaller number of the players in the profiles and 5, the top 5 players in the game.
//for each element not bigger than the smaller number,
//get the name as set-up in animate's Instance Name, starting with 0 which is the first place and made the text equal to the player's name in the profiles array
//get the score using the same method
}
//load the score screen
Pseudo code for enemy generation
//Every time a new run starts, generateMinion() function is called. Its purpose is to generate the number of minions for each wave by adding between 1 and 3 enemies, increasing the speed and health using multipliers across the waves. In every 5 waves, make sure boss is spawned while no minions spawned. Reset the minions to 0 at every 10 waves. 
//In loadWave() function, it is called when the timer for the wave ends. It generates the minions based on probability and boss based on the current level. It handles changing the level and playing each level bgm as well. After that is calls generateEnemy() function.
//generateEnemy function handles the actual spawning of the all the enemies. It generates new movieclips and random starting positions. For each enemy, it also gives then all the default properties to allow programming effects to work as well as unique properties for special enemies and bosses which does special behaviors such as teleporting, shooting projectiles, having a squad etc. It also shows the boss health bar UI if the current wave is a boss wave.
//When they died, they are pushed to another array to remove interactions with them. It records how many are in the array and remove accordingly when it reaches the quota. For the active enemies, when it reaches the quota, the extra enemies are stored in another temporary array which waits to be spawned.

You can download the game here. (Note : This is a google share link. You can use the HTML file to start the swf.)

bottom of page