For beginners coming to JUCE, I just wanted to point out that it is entirely possible to make a colorful, entertaining action arcade game with JUCE, without having to resort to OpenGL!
My Breakout game is a modern remake of an old classic, and made entirely with JUCE, and 4000 lines of C++ in VS 2019.
Two player team mode shown just starting in above picture.
Some of the JUCE features I used are; Buttons, HighResolutionTimer, Hyperlink Buttons, Image Buttons, Listeners, MixerAudioSource, and Sliders. Discovered JUCE in late August, initially wanting to make a synthesizer, but soon realized I needed to learn more about C++, so I made this game. And even after a few hours a day since, I still only know about 1% of JUCE’s potential! Sure looking forward to my next project and to learn another 1%
Main game features;
- 3 Game Modes; 1 Player, 2 Player Team, and 2 Player One-On-One where players can try and steal each other’s ball(s)!
- Background music played between games and in main menu. Music fades out as game starts, and in as game is over, or user goes to menu. Music can be toggled on or off.
- 21 Sound effects.
- App screen size can be changed from within the game all the way up to full screen kiosk mode.
- Game speed and level speed increase can be set via sliders.
- Brick layout can be set via slider from 3 x 6 all the way up to 10 x 20 rows and columns.
- Brick styles; Regular, black hole (swallow balls and spits it out later in a random place), extra life, morph (each ball hit morphs the brick), power (ball go straight through instead of bouncing), solid (no value but randomly messes with ball direction), and spawn (spawns a new ball).
- Brick style probability/occurrence can be adjusted via sliders
- Paddle size and movement speed can be adjusted, via sliders, individually for each player.
- With precise paddle steering, player can control ball’s ricochet angle and speed
- Pause and resume option via quick ‘spacebar’ press.
- Classic pinball style score board.
- 10 Cool galaxy background images, blending in between levels.
- Automatic context help text when clicking sliders and buttons.
Over the next few days, I will publish some of the source code on my website, but in the meantime, if anyone have any questions about how it was made, please ask right here or on my website.
Without the help from various people on this forum, this project would perhaps not have been made, or perhaps be far off completion, as I must admit the JUCE tutorials, examples, and documentation, was not quite enough for me. I especially wish to thank @cpr, @daniel, @Xenakios, @tobanteAudio, @PluginPenguin