News‎ > ‎

Swift Project: Space Shooter "Asteroid Blast"

posted 14 Oct 2016, 04:39 by Alexander Wegner

I've started with Swift programming some month ago. After some simple "Hello world!" programs, I've started with a game. It's a Shoot'em Up with a space setting. The game genre is classic. You control a tiny space ship through an asteroid field. You can shoot the asteroids with your lasers and earn points for your score board. The game speed and the asteroids increase over time. The game is over when your ship is destroyed. Seeking new high scores and fulfilling achievements ist the motivation for new runs.
The game name is just a working title and there are still some game features missing. The newest version is ver. 0.40. The whole project can be found in my repository on GitHub under:
Some weeks ago, I've recorded two gameplay videos. There are massive changes in the meantime, but the core game features is shown in the videos. Enjoy them :)

Gameplay Video - Asteroid Blast ver. 0.35

Gameplay Video - Asteroid Blast ver. 0.21


- enemies
- nebulas
- Add new game features to tutorial
- Improve sprites
- Different ship sprites?
- More Shields
- Horizontal movement

ver 0.40
- Number of destroyed asteroids is tracked for achievements
- Data for achievements is saved
- 6 achievements added
- Achievements:
01: "Master Blaster"
Task: Destroy 100000 asteroids
Reward: New skin

02: "Wreck-it NAME"
Task: Get hit 30 times in one game
Reward: Shields +1

03: "Gunslinger"
Task: Hit 300 asteroids without missing in one game with standard laser
Reward: New weapon: Disruptor

04: "Dodge this!"
Task: Surviving 300s without hitting and being hit
Reward: Vertical movement enabled

05: "I'm T.N.T., I'm dynamite"
Task: Get killed by own bomb explosion
Reward: Bombs +1

06: "King of the impossible"
Task: Score 100000 points in one game
Reward: New skin

ver 0.39
- Migration to SWIFT 3.0
- Sounds added for shields being hit
- Achievements menu added
- Scrolling trough achievements

ver 0.38
- New ship sprites
- Options can be changed from "Pause" menu
- Pause layout and functions moved to TLPause
- New app icon based on new ship design

ver 0.37
- Score can be tweeted on Twitter
- Score can be tweeted on Facebook
- New sprites for power ups
- Back button texture problem solved

ver 0.36
- Controls improved

ver 0.35
- High score list added
- High score are persistently saved
- Small bug fixes

ver 0.34
- Game settings are saved to and loaded from file

ver 0.33
- Game pause added
- HUD has now icons for game pause and weapons
- Game can be quitted
- Ship inventory added
- Player can switch between weapons

ver 0.32
- Adjustment in spawning times
- Bug fixes
- Power ups added: Laser sphere and laser cone
- Weapon can be picked up and will be equipped
- Inventory class added

ver 0.31
- New weapon: Laser cone
- Laser cone implemented
- New sound effects added
- Nebula added

ver 0.30
- Laser sphere implemented
- Shooting sound added

ver 0.29
- New weapon: laser sphere
- Animation for laser sphere added
- Basic mechanics for laser sphere added

ver 0.28
- Bomb hits objects in explosion radius
- Ship can be destroyed by bomb explosion
- Shields light up when being hit by meteorite or bomb explosion

ver 0.27
- New game font for longer text passages
- Bombs added to tutorial
- Info of power ups will be displayed when picked up
- Game pauses when home button is triggered
- Touch gesture for firing bombs added
- Bombs explosion sprites added
- Bombs have now two hit boxes (bomb body and explosion radius)
- Bomb dropping and exploding sounds added

ver 0.26
- Power ups: Bombs and shield power
- Power up sound added
- Bombs added to HUD
- Minor bug fixes

ver 0.25
- Shields for the space ship
- Health points for the space ship
- Slower background scrolling speed

ver 0.24
- Tutorial menu added
- Tutorial demo added, which shows the important game functions
- Minor bug fixes

ver 0.23
- Player name input in options
- Click sounds are adjusted with sound effect options
- About menu complete
- Twitter and website added to about menu
- Highscore menu added
- Highscores are read from array
- Highscores can be switched between time or score based data

ver 0.22
- adjustable volume of sound effects
- adjustable volume of music
- sound effects and music can be muted
- laser shooting interval adjustable
- issue with rotating scores has been fixed

ver 0.21
- Sprites and fonts sizes are now dynamic to screen sizes
- Game objects sizes and positions are now dynamic to screen sizes
- Options menu added
- About menu added

ver 0.20
- Error with explosions fixed
- Sound problems fixed
- New HUD design
- Game menu with new design

ver 0.19
- Title screen added
- Menu screen added
- Hit sounds
- minor bug fixes

ver 0.18
- improve background transitions
- different backgrounds
- different textures for meteorites
- different health points for meteorites
- minor bug fixes

ver 0.17
- meteorites appear random sizes
- meteorites have now random rotation speed and direction
- meteorites spawn time and speed increase slower
- space ship size reduced

ver 0.16
- meteorite speed and spawn time increases while playing
- experimental HUD
- custom fonts added
- minor code improvements

ver 0.15
- meteorites renamed
- more meteorites
- game speed increased
- minor bugfixes
- minor code improvements

ver 0.1
- basic concept
- sprites and backgrounds
- movement of ship
- movement of backgrounds
- moving object: meteorite
- laser weapon
- collision detection
- explosions
- game score
- destroyable ship
- sound effects
- background music