GithubHelp home page GithubHelp logo

godotoid's Introduction

Godotoid

GodotoidLogo

About

BreakOut Style Game ported from Penjinoid by BZar

image

I'm trying to get more cofortable with Godot engine again and this is a "practice" project to try and make a complete and functional game based on Penjinoid which was a example game created for my C++ Game Engine PenjinTwo

Completed Features

  • Paddle movement within play area.
  • Ball collision with bricks paddle and walls.
  • Brick destruction.
  • Gradual ball and paddle acceleration.
  • Score counter.
  • Hi-Score tracking and saving.
  • Lives counter.
  • Level counter.
  • Win condition.
  • Lose condition.
  • Angled rebound from edges of paddle.
  • Sound effects for collision, win and lose.
  • Collision sound effect changes with ball height and left/right position.
  • Simple Title/Menu
  • Pause/Resume menu.

Building

The project is targetting Godot 3.2 using GLES2.0 and is supported by any platform that Godot supports.

  • Install Godot Engine
  • Grab the Godotoid code via git or zip.
  • Import the project.godot file via the Godot project window.
  • Click on Edit.
  • Hit the run button.

godotoid's People

Contributors

pokeparadox avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

boyquotes

godotoid's Issues

Sometimes death condition is delayed

Description

I've seen it can take a while for the lost ball to be detected. Several seconds can pass.

Workaround

No workaround when it happens, just have to wait.

Possible solutions

  • This might be when the ball velocity is near horizontal. It takes longer for it to reach the kill trigger since it's bouncing side to side. When the vertical position is below the visible screen force the ball to travel directly down.

Ball can breakout out of the play area

breakout_of_layarea

I'm not sure exact recreation scenario. This was reported via web export. The ball bounced off a brick and then up and out of the play area.

Ideas for fix:

  • Make the collision rectangles thicker.
  • May be connected to the side collision code that moves the ball upwards if it will get stuck - add a limit to only do this at the bottom of the screen.

Bricks sometimes don't break

Description

Occasionally the ball will rebound off a brick without it breaking

Workaround

You have to hit the brick again.

Possible solutions

  • Unsure about the cause of this. Some disconnect in signals or bad logic?

Pause Menu only resumes with mouse

When pausing the game with the start button (Enter)
Ideally you should be able to resume by again pressing enter (Continue already selected)
And active selection should be controlled by DPad or arrow keys.

Currently this is not possible and instead the mouse must be used to resume.

Ball can stick to walls

Description

When the paddle is moved into the ball sideways, sometimes this causes the ball to stick to the wall, repeatedly colliding the ball gradually moves around the play area.
Points repeatedly accumulate and will even overflow the font.

Workaround

The effect can be broken by placing the bat,such that, it prevents the ball descending below the level.

Possible solutions

  • Adjust collision shapes to try and avoid the occurrence.
  • Move ball out of the way if it collides with the side of the bat when the paddle is moving, i.e. pretend it collided with the top of the bat.
  • Disable point accumulation after a brief interval and keep the "feature".
  • Disable points on paddle collisions.

Ball can get stuck to paddle

Description

When the paddle is moved into the ball sideways, sometimes this causes the ball to stick to the paddle, repeatedly colliding.
The effect will end if you quickly move the paddle away from the ball.

Points repeatedly accumulate and will even overflow the font.

Possible solutions

  • Adjust collision shapes to try and avoid the occurance.
  • Move ball out of the way if it collides with the side of the bat when the paddle is moving, i.e. pretend it collided with the top of the bat.
  • Disable point accumulation after a brief interval and keep the "feature".
  • Disable points on paddle collisions.

Game speed broken

It turns out that borked graphics driver meant the game only ran sensibly on my specific system.

I need to rebalance the game to run at a sensible speed and move physics so that it's not bound to the drawing.

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.