ALPHABORNE
About
This is my unique version of the venerable game Space Invaders: Alphaborne. Javascript is not my main programming language but developing AlphaBorne definitely helped my JavaScript and HTML5 programming skills.
It helped because I assembled the developed environment; made and maneuvered the player's spacecraft; created enemy invasion grids at predetermined intervals; fired projectiles; use accurate collision detection to eliminate the invaders; make bombs so all the invaders explode at once; obtained a machine gun powerup that changes my spacecraft's rate of fire; made the game harder as the invaders come close to you and made their projectiles double the size so it will be harder for my spacecraft to dodge; included particle animations; created the game's UI with HTML and CSS; added music and sound effects and coded the uniform frame rates for all display types.
Knowing my precise score after taking out each invader would be useful. so I animated in when I shoot an invader and disappear when I don't. It produces a really cool effect and makes Alphaborne stand out right away.
Adding a special weapon to Alphaborne: explosive bombs added more excitement to the game because when it detonates, they ricochet off the screen's boundaries, and instantly eliminate most invading enemies (if lucky).
To make a power-up effect that enables my spaceship to fire missiles in a rhythm akin to a machine gun. To achieve this, I made use of event listeners, object properties, timers, and randomization.
At that point, the game was too simple. Therefore, I made two strategies for making our invaders more difficult: by gradually generating them fast and expanding their projectile size. Additionally, I included a feature that enables an invader to end the game by directly touching my spacecraft.
It would be much nicer to give users a start screen where they could choose when they'd like to start playing Alphaborne rather than launching it as soon as the website loads. The ability to resume the game after a loss would also be nice. I used some external resources and directly incorporate HTML into my JavaScript to create this effect.
To include sound effects and music, I make use of a third-party JavaScript library called Howler. Howler resolves various problems with the native JavaScript audio API, such as the inability to layer one audio stream on top of another.