Angry Aliens is an open source game made with Godot Engine 3.2.1.
Source code is MIT licensed. Feel free to read it, modify it and reuse it in your projects.
Gameplay is definitely inspired by Angry Birds.
This project is used as a base for video tutorials in Italian. All the source code and documentation is in English. If you are interested, videos are released on my Crystal Bit YouTube channel.
- Angry Aliens
develop
branch contains the complete project.Some advanced features may not be included in the master branch.master
branch will be in sync with video tutorials releases on my YouTube channel.videoX/start
branches contains the code to follow the tutorial numberX
. Example:video5/start
contains the code to follow the video tutorial 5 on YouTube.
The tutorials require basic Godot understanding about Scenes, GDScript, 2D Nodes such as Sprite2D, CollisionShape2D, Area2D.
You can learn these topics by:
- reading the official documentation
- following my video tutorial series on Godot 3 basics (only in Italian)
This tutorial series will focus on creating a simple mobile game using Godot 3.2.
I choose to make an Angry Birds clone because:
- it is short to recreate (without adding polish)
- it allows to stress Godot performances on the worst case scenario: intense game (physics based) on a low-power device (smartphone)
I'm creating these tutorials using Manjaro Linux (Arch Linux derivative), but similar steps can be done on other operating systems as well.
Currently I don't have an Apple device and I cannot develop/test iOS/OSX games. I'll try to provide instructions for other OSs, but help here is really appreciated (especially if you are a Debian, Ubuntu, Windows or OSX user).
How do I configure my computer for Android development?
android-tools
andjdk-openjdk
- debug keystore
- Godot configuration
- Export templates
- APK creation
- APK one click installation
- 🎥 YouTube - #4 - Creare il livello
- 🎥 YouTube - #5 - Creare la scena StressTest (pt1)
- 🎥 YouTube - #6 - Stress test (pt.2) - Debugger e profiler
- 🎥 YouTube - #7 - Stress test (pt.3) - Debugging su Android con Remote Debugger
If we include all the physics elements and we create hundreds of game objects, is the game playable?
- 🎥 YouTube - #8 - Lancio Proiettili (Pt.1)
- 🎥 YouTube - #9 - TouchScreen Input: Press, Release e Drag - Lancio Proiettili (Pt.2)
- 🎥 YouTube - #10 - input e unhandled_input
How to create a slingshot that reacts on touchscreen and mouse input
- Create a projectile
- Create a simple slingshot
- Input handling for mouse and touchscreen
- Projectile launch
- Load new projectile
- Mobile Layout
- Multiple resolutions handling
-
Rigid bodies with collision detection
-
Enemies destruction
-
enemy destroyed signal
-
Obstacle scene
-
Obstacle destruction
-
CollisionHandler
node to generalize collision physics
Extra topics are available in the develop
branch.
They are not tutorialized, but the code should be simple to understand.
More than that, there are still a lot of areas that can be explored like:
- Camera handling (pan, focus, zoom, ...)
- Publishing on a game store
- Fdroid
- Play Store
- Managing audio sfx
- Improve the slingshot elastic animation
- Parallax background
- Moving clouds
- Particle effects
- Android modules
- Double tap, drag 'n drop, pinch to zoom,...
- Using Sensors (GPS, accelerometer, light sensor, bluetooth,...)
- Kenney for most of the game assets - https://www.kenney.nl/
- Hanabi for the slingshot sprites
- Crystal Bit community for the continuos support
- Gameloop.it community for the Harvard CS50 gamedev course
- YouAreUto game & team
- Godot Engine Italia