Full source code of a working iOS game, space shooter, written in Swift using SpriteKit.
Switch branches/tags
Nothing to show
Clone or download
Latest commit a45066a Jun 25, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
AssetSources Add sources of images used in the project Nov 26, 2017
Spacequest.xcodeproj Improve readability of the code Jun 24, 2018
Spacequest Refactor GameScene Jun 24, 2018
SpacequestTests Initial Commit Jun 4, 2014
.travis.yml Update TravisCI config Nov 25, 2017
LICENSE.md Add license information Nov 25, 2017
README.md Add saythanks.io badge Dec 10, 2017


Build Status CodeFactor License Platform saythanks.io

Spacequest for iOS

Full source code of a working iOS game. Yet another take on a space shooter game. The game falls into Shoot 'em up video games genre. It is written in Swift and uses SpriteKit- graphics rendering and animation infrastructure built into iOS. All vector graphics and image assets created in Inkscape and GIMP.

Interesting topics covered during the development:

  • Particle systems (e.g. jet engine burst in player's spaceship)
  • Collision detection
  • HUD, buttons + joystick
  • Sound effects and background music

Technologies used

  • Swift (Xcode)
  • SpriteKit
  • Vector graphics (Inkscape, GIMP)

What could be improved

The app was created as a multi-weekend project long time ago. It is updated to run in the latest IDEs, but couple of things could be either added or improved. Not having time to do it is the problem.

  • Adding tests
  • iPad support and better support for iPhone X
  • Internationalization
  • Moving images and colors to asset catalogs
  • Adding more abstraction for constants (now constants are spread spread among multiple source files)
  • Improving enemy creation logic to make enemies spawn faster
  • Adding new enemy types
  • More weapons
  • Scrolling background (parallax style)


Background music loop

Title: Game Space Battle Loop
Album: Corporate Uplifting Business Background Music
Artists: Plastic3


This code is distributed under the terms and conditions of the GNU GPLv3 license.

Copyright (c) 2017 Rafał Sroka