Left arrow and right arrow to turn the ship canon
Up arrow to accelerate the ship forward
X or O to fire the ship canon
When X or O are held down the canon will autofire; however, the canon will rotate faster when not firing
- Drifting of the ship can be toggled on and off in the Pause Menu
In Blasteroids you control a space ship with the objective of shooting asteroids into smaller chunks until nuggets of Zytonium ore are revealed and can be harvested. To harvest ore you must move your ship over it and it will be collected. After enough chunks of ore have been harvested you will move on to the next objective.
Maneuvering your ship through the asteroid field is very dangerous; however, you are equipped with a shield that will break apart an asteroid if it gets too close. Once this happens the shield needs time to recharge and you are vulnerable to asteroid collisions and can take damage. If your ship takes too much damage then it is destroyed and you must restart your objective.
Hostile drones will also appear and shoot at you. They are sturdy enemies and will take a number of shots to destroy with your canon, but most will leave the area shortly after firing at your ship.
Behind The Scenes:
Blasteroids is my attempt to create an Asteroids clone which I had heard is common for new game developers to do. Due to the rotation of the ship as well as the ship and asteroids moving at any angle it wasn't obvious at first how this would be accomplished in Pico-8 but after mulling it over for some time and brushing up on some Trigonometry and I figured out how to create the basic movement that would drive the entire game.
For simplicity and stylishness I decided to use mostly circle based elements with some sprite work to add more detail. This made collision detection a matter of calculating the distance between center points and determining if that meant two elements were overlapping. It was a little ways into development that I decided to give the color scheme a more neon look.
After getting the basic gameplay loop of Asteroids working I wanted to add something more to make it my own so I worked on adding different shot types to both your ship and to the drones. The Oscillating shot and the Rebound shot were the most challenging and took some time to figure out the trigonometry to make these work. There were also multiple cases to check for depending on the angle at which a shot was made.
Finally there was the challenge of figuring out how to end the game as I wanted it to end on a high note. It's pretty standard in a lot of games but it took me a while to decide to go with a boss fight. This decision was largely inspired by watching the shmup tutorial by Lazy Devs Academy (along with a bunch of other elements) but I didn't want to just throw in some random random enemy that didn't tie with the rest of the game. At some point it dawned on me to just use the drones I had already been using but instead attack in a group and in a different movement pattern than is seen previously in the game.
Blasteroids was developed by myself with a lot of inspiration by Lazy Devs Academy.
I can be reached on Twitter at senorbaub
Version 1.2 Release Notes:
- Added a toggle in the Pause Menu to turn on/turn off the drifting of the space ship
Nicely done vectors, circles and bullet trails.
I really like the regenerating shield, so a single mistake doesn't carry a permanent cost, but two mistakes close together are serious. I had fun playing through the levels the first time and unlocking the oscillating gun. Gold star.
From there, the different gun types added some interesting variety to play, but it got a little tedious repeating the same levels and waiting for each zytonium to spawn. Could you make it so that destroying a buzz drone also spawns zytonium? I found dodging them safer than trying to shoot them down, but having them spawn zytonium would give the player a risk/reward choice.
Thanks for the feedback, @Cowirrie! Very much appreciated.
You make a very good point about better utilizing the buzz drones so they offer a risk-reward challenge. I mulled over giving the player an incentive for destroying buzz drones but didn't come up with anything that I liked and got focused on other things. I've got some potential ideas brewing though so at some point I'd like to come back to this project and implement something for that as well as add some gameplay enhancements for multiple playthroughs.
Going to ask the obvious, is there a save-game function between levels, @Senorbaub ?
Also the player starts out in motion. Could you please add an option of starting in the middle with no motion and perhaps the ability to coast to a stop if you are not pushing on your accelerator in a direction.
If you want effects as this is zero-G it could be retro rockets to stabilize and cease your drifting.
[Please log in to post a comment]