
Join James to begin creating a space shooter in Unity, explore the feedback area and discourse community, and learn how to set up Unity for the completed game.
Download and install Unity personal edition to start your space shoot 'em up project, then create a new 2-D project and set up default layouts.
Explore the Unity layout with scene view, game view, hierarchy, inspector, and project panel, and learn how transforms and components—like the main camera—shape objects.
Import the Unity assets package, set pixels per unit to 48, switch filter mode to point, and disable compression to preserve sharp, pixel art for the player ship.
Enable 2D Unity physics by adding a Rigidbody2D and turning off gravity, then create a player controller script that uses input axes to set velocity with move speed.
Keep the player on screen by defining bottom-left and top-right limits in the camera view and clamping the player's transform position within a fixed 1280 by 720 window.
Save your progress frequently using save as to create level 1 in a dedicated scene, and delete the sample scene to prevent data loss from crashes.
Add a background sprite in the scene, set sorting layers so the background sits behind the player, then test in play mode and plan a scrolling background script.
In Unity, duplicate the background and use a BG holder to scroll two images with background scroller script, moving them by scroll speed times time delta time and wrapping off-screen.
Enhance space shooter visuals with parallax depth by adding multiple scrolling backgrounds, a moving moon, planets, and a reusable moving object script that destroys off-screen objects.
Drop a meteor into the scene, attach the moving objects script at 1.5 speed, add a circle collider and rigidbody, set sorting order, and freeze rotation on the z-axis.
Create a laser shot in Unity by adding a player bullet with a 2D box collider trigger, moving it with a script and destroying on impact or when off screen.
Create and use a prefab for bullets, fire from a designated fire point, and instantiate shots in response to input, while managing layers, sorting, and laser sound effects.
Learn to implement an automatic firing system in Unity for a space shooter by using a shot counter that regulates time between shots, supporting both hold-to-fire and single-click shooting.
Create a hit impact effect by building an explosion animation from multiple sprites, convert it to a prefab, and instantiate it on bullet collisions with a destroy-over-time script.
Learn to destroy meteors in Unity by tagging space object, using trigger collisions to detect hits, destroying the hit object, and adding a particle system explosion for impact.
Learn to build a 2D Unity particle explosion using a circle burst, color and size variations, and a prefab linked to bullets for dynamic space combat visuals.
Create a new player explosion effect using the existing effects, animate it, and delete the object from the scene on detonation, preparing for next section dealing damage to the player.
Create a health manager for the player with max health, initialize current health to max, reduce health on meteor collisions, and trigger a death effect when health reaches zero.
Add an enemy with a controller script and box collider 2d to move and damage the player on contact, and create an enemies sorting layer below shots.
Configure enemy movement in a Unity space shoot 'em up by using a start direction vector to control x and y motion with move speed and delta time.
Learn to program enemy movement in Unity by guiding an enemy to a screen point and then reversing direction with a shouldChangeDirection flag, a changeDirectionXPoints threshold, and a changedDirection vector.
Create enemy shots in unity by adding a trigger collider, a dedicated enemy shot script, and firing leftward from enemies; organize with prefabs in an enemies folder.
Implement enemy firing in a Unity space shooter by adding a fire point, time-between-shots logic, visibility checks, and layer-based collision rules to prevent bullets colliding with each other.
learn how to give enemies health in a Unity space shooter by adding a health variable, a take damage function, and death effects triggered on zero health via player bullets.
Create more enemies by duplicating existing ones and turning them into prefabs, then apply different movement patterns to expand the lineup for the space shoot 'em up course.
Create and manage enemy waves in Unity using a spawn point and wave containers. Detach enemies from wave objects after spawning to prevent memory clutter and allow automatic cleanup.
Learn to spawn waves in a space shoot 'em up by creating enemy wave prefabs, a wave manager singleton, and a serializable wave object; manage timing with a waves array.
Extend the wave system by adding many more waves and integrate them into the wave manager to create varied attacks that compel the player to react in new ways.
Create a game manager to track current lives, trigger game over when zero, handle death with a respawn coroutine, reset health, and pause waves briefly.
Implement a respawn invincibility period by adding an invincible timer and sprite transparency, preventing immediate damage after respawn and visualizing invulnerability in the health manager.
Create a game over screen in Unity by building a full-screen UI canvas panel with centered game over text and restart and main menu buttons with hover states.
Activate the game over screen when lives run out by wiring a UI manager to toggle the screen and stop enemy waves, then restart the level via scene management.
Create a lives UI in Unity using a lives image and a lives text, wire them to the UI manager, update on life loss, and overlay a game over screen.
Show the player's health with a non-interactable UI slider and health bar visuals that reflect max health and current health, updated by the health manager during damage and respawn.
Create a score text in the UI, connect it to the game manager’s current score, initialize to zero, and add a function to update the score when enemies die.
Create a simple high score system in Unity by duplicating the score text for a high score display, updating the UI, and storing the high score with PlayerPrefs across sessions.
Add a player shield in Unity, wire it to the health manager with shield max power and shield power, activate it, and display a shield slider in the UI.
Create a shield power-up in the scene, use a box collider as a trigger, detect the player, activate shield via health manager, and destroy the power-up as it drifts slowly.
Create a boost power-up by duplicating the shield, adding an is boost flag, and configure the player controller to switch between normal speed and boost speed for five seconds.
Implement a double shot power-up in the space shooter by duplicating the boost, offsetting shot origins, and linking to the player controller so twin shots fire until damage.
Drop power-ups randomly when enemies are destroyed, using a public power-ups array and random range to choose between boost, double shot, and shield, with a 10% drop chance.
Set up a music system in Unity by creating a music controller, organizing level, victory, and game over tracks, and implementing play, stop, and loop controls for dynamic audio.
Create a level complete screen by duplicating the game over UI and triggering it with a full-screen collider, connected to a level end script and game manager routine.
Learn to freeze player control at level end, stop movement and reset velocity, then move the ship off-screen while playing victory music and prepare the next level.
Add end screen elements show level score, total score, and high score, update scores across levels, and reveal a new high score using the UI manager and Unity scene management.
Create a pause menu by repurposing the game over screen, adding a resume button, and controlling the pause state with the UI manager, game manager, and time scale.
reuse objects from one scene in another by creating a level pack of prefabs in Unity, including camera, player, limits, backgrounds, space objects, and UI.
Create a Unity main menu with a starry background, title image, start and quiz buttons that load the first level and quiz scene, resetting three lives and zero score.
Learn how to create and program your very own side-scrolling Space Shooter game using Unity, an industry-standard game development program used by many large gaming studios and indie developers across the world.
In this course you won’t just be learning programming concepts, but tying these concepts to real game development uses. You will have access to a course forum where you can discuss the topics covered in the course as well as the next steps to take once the course is complete.
This course has been designed to be easily understandable to everyone, so whether you’re a complete beginner, an artist looking to expand their game development range or a programmer interested in understanding game design, this course will help you gain a greater understanding of development.
At the end of this course you will have developed the ability to create such game elements as:
Full movement and firing mechanics
Scrolling Backgrounds
Enemies with multiple movement patterns
Spawning waves of enemies and space debris
Power Ups
Music & Sound Effects
A Fully-featured Boss Battle
Fully interactive menus
Tracking scores and high scores
and more...
Start learning today and let me help you become a game developer!