A game based on the old arcade game Breakout where the player replaces blocks of dirt with tuffs of grass.
Everything will be run and compiled using an Ubuntu Desktop Image in Virtualbox.
- Download Virtualbox on Mac or Windows.
- Download the Ubuntu for desktop .iso file from source.
- Ensure that the repo folder is shareable as per these instructions and then these
- Ensure that the boot from floppy is switched off.
- To speed up the machine check this.
- 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/
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:
- Mac, Windows, Linux: Instructions
- Mac: Instructions
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:
- https://stackoverflow.com/questions/26909433/ubuntu-via-vagrant-with-gui
- https://stackoverflow.com/questions/18878117/using-vagrant-to-run-virtual-machines-with-desktop-environment
- https://stackoverflow.com/questions/31845472/how-do-i-install-a-vagrant-linux-box-that-has-a-gui-gnome-kde
- https://stackoverflow.com/questions/15243405/is-it-possible-for-vagrant-to-use-an-os-iso-install-image-directly-or-create-a
Learn the basics of C++ SDL game development (building off of Pong).
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.
- Showcase the paddle at the bottom of the screen. X
- Switch ball trajectory to up-down. X
- 2.1. Game ends when the ball hits the bottom boundary. X
- 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
- Display score at the top.
- 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).