Giter Club home page Giter Club logo

asteroids3d's Introduction

Asteroid 3D

Description

This is a project to learn more about the Godot Enginge and Blender. The main focus is to learn how to make use of unit testing in Godot. The ideal would be to have a CI/CD pipeline that runs the unit tests and builds and deploys the game itself. The second goal is to learn how to export the game to itch.io and make it playable.

Documentation

The documentation is written in Markdown and can be found in the docs folder.

Dependencies

  • Godot 4.2.2 or later
  • Blender 4.1.0 or later

Godot Addons

Status

This project is currently in development. The first playable version will be released on Itch.io.

CI

So basically I tried setting up CI pipeline with Github and GUT as unit testing tool. I tried different Github actions.

The issue was that I couldn't get the unit tests to run. After some digging I found out that it was a common Godot issue due to the import files. There is a good description of why here: alessandrofama/fmod-for-godot#23 (comment) With Godt 4.2.2 the issue was resolved, but GUT did not work with the new version. So I decided to use GdUnit4 instead. GdUnit4 also has a CI action that works perfectly. So now the CI pipeline is set up and runs the unit tests. ๐ŸŽ‰

CD

So the CD pipeline is not set up yet, but I have a plan. I will use Github Actions to build the game and then upload it to Itch.io. Most likely I will use the Godot CI Action for this.

asteroids3d's People

Contributors

gennon avatar

Watchers

 avatar

asteroids3d's Issues

Power Up

The power-ups should have the follow features:

  • Spawned by a random enemy
  • Randomly selected from a list of power-ups
  • Power-ups should have a time limit
  • Power-ups should have different effects
  • Power-ups should have different models

Audio Manager

The audio manager should have the following features:

  • Play music
  • Play sound effects
  • Switch between music tracks
  • Play multiple sound effects at once
  • Have a music bus
  • Have a sound effects bus

Spaceship

The spaceship needs the following features:

  • A spacehip model
  • Movement
  • Shooting
  • Thrusters
  • Shields
  • Explosion on death

Asteroids

These are the requirements for the asteroids.

  • Big asteroids that break into smaller asteroids when shot
  • Small asteroids that disappear when shot
  • They should move in a random direction
  • They should move at a random speed
  • They should be different sizes within their type
  • They should have different colors within their type
  • The should signal when they are destroyed
  • They should have an explosion effect when destroyed
  • They should wrap around the screen
  • They should spawn in a random corner of the screen

Menu System

There should be a menu system allowing the player to do the following:

  • View levels
  • View highscores
  • Start level
  • View settings
  • Change audio settings
  • Change video settings
  • View credits
  • Exit game
graph LR;
    MainMenu-->Levels;
    MainMenu-->Settings;
    MainMenu-->Credits;
    MainMenu-->Exit;
    Settings-->AudioSettings;
    Settings-->VideoSettings;
    Levels-->Level1;
    Level1-->HighscoreLevel1;
    Level1-->Mode1GamePlay;
    Level1-->Mode2GamePlay;
Loading

Missiles

The missiles should have the following features:

  • Different models for different power-ups
  • Different thrusters effect for different power-ups
  • Different cooldowns for different power-ups
  • Move in a straight line for a set amount of time
  • Explosion on impact

Local Leaderboard

The Leaderboard should have the following features:

  • Show the best attempt for the local player
  • Show value for each level
  • Show value for each mode

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.