Giter VIP home page Giter VIP logo

angry-aliens's Introduction

Angry Aliens

optimized

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.

Disclaimer

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.

Table of Contents

Branches: master, develop and video

  • 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 number X. Example:

Prerequisites

The tutorials require basic Godot understanding about Scenes, GDScript, 2D Nodes such as Sprite2D, CollisionShape2D, Area2D.

You can learn these topics by:

Tutorial Contents

1. Introduction

This tutorial series will focus on creating a simple mobile game using Godot 3.2.

I choose to make an Angry Birds clone because:

  1. it is short to recreate (without adding polish)
  2. 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).

2. Configure Godot and Android SDK

How do I configure my computer for Android development?

  • android-tools and jdk-openjdk
  • debug keystore
  • Godot configuration
  • Export templates
  • APK creation
  • APK one click installation

3. Testing performances on the smartphone

If we include all the physics elements and we create hundreds of game objects, is the game playable?

Stress test scene screen

4. Slingshot

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

5. Level (for multiple resolutions)

Image level screen

  • Mobile Layout
  • Multiple resolutions handling

6. Enemies

7. Obstacles

[EXTRA] Possible improvements / future topics

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,...)

Credits

Thanks

angry-aliens's People

Contributors

davcri avatar lucashilles avatar masmartyg avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.