Giter Club home page Giter Club logo

breakout's Introduction

Plant the Lawn

A game based on the old arcade game Breakout where the player replaces blocks of dirt with tuffs of grass.

Development

Using Virtualbox and Ubuntu Desktop

Everything will be run and compiled using an Ubuntu Desktop Image in Virtualbox.

  1. Download Virtualbox on Mac or Windows.
  2. Download the Ubuntu for desktop .iso file from source.
  3. Ensure that the repo folder is shareable as per these instructions and then these
  4. Ensure that the boot from floppy is switched off.
  5. To speed up the machine check this.
  6. Run install script in the terminal for ubuntu for desktop. sudo ./install.sh

Fix screen size: go to display settings on guest machine, change resolution to desired resolution on the Menu Bar, enable scaled mode

Finally to compile: cd src make build-linux

To run: make run

Source: https://www.instructables.com/id/How-to-Create-an-Ubuntu-Virtual-Machine-with-Virtu/

TBD - Developing on a VM on a Cloud provider

Xquartz/XServer - Deprecated

An earlier attempt involved trying to use Xquartz/Server and running a GUI-based application using Docker on Windows or MAC. This, however, ran into multiple errors on a Mac so was abandoned.

Source:

  1. Mac, Windows, Linux: Instructions
  2. Mac: Instructions

Using Vagrant and Virtualbox - Deprecated

While this mostly worked, I couldn't manage to open the desktop ubuntu using vagrant AND virtualbox, despite numerous attempts. My Stackoverflow searches are below.

Install vagrant: brew cask install vagrant Install virtualbox: brew cask install virtualbox.

(Note: If the installation fails with an error, follow the directions here.)

Install vagrant-manager: brew cask install vagrant-manager

Source: https://sourabhbajaj.com/mac-setup/Vagrant/README.html

Attempt to get ubuntu desktop working with vagrant:

  1. https://stackoverflow.com/questions/26909433/ubuntu-via-vagrant-with-gui
  2. https://stackoverflow.com/questions/18878117/using-vagrant-to-run-virtual-machines-with-desktop-environment
  3. https://stackoverflow.com/questions/31845472/how-do-i-install-a-vagrant-linux-box-that-has-a-gui-gnome-kde
  4. https://stackoverflow.com/questions/15243405/is-it-possible-for-vagrant-to-use-an-os-iso-install-image-directly-or-create-a

Goal

Learn the basics of C++ SDL game development (building off of Pong).

Basic Mechanics

https://youtu.be/AMUv8KvVt08 Player moves a paddle to hit a ball. The ball will rebound and hit blocks above the player. The game ends when the player misses the ball and it hits the bottom boundary. The score updates in real-time as the player plays. the ball speed will increase with time.

Tasks

  1. Showcase the paddle at the bottom of the screen. X
  2. Switch ball trajectory to up-down. X
    • 2.1. Game ends when the ball hits the bottom boundary. X
  3. Add a map with the breakout blocks. (Block class? Map class?) X
    • 3.1. Blocks are removed from the map as the ball hits each block. X
    • 3.1.1. Detect which side of the block was hit by the ball to determine the resulting velocity of the ball
    • 3.2. Game polls and refreshes the map. X
    • 3.3. Make Game class to tie stuff together. X
  4. Display score at the top.
  5. Add levels
    • 5.1. Display new level screen between levels.
    • 5.2. Map class member to store scores (e.g. current level, current score, best score).

breakout's People

Contributors

yct4 avatar si74 avatar

Watchers

James Cloos avatar  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.