This project is a C++ implementation of Bees and Bombs's Cube Wave using raylib! Inspired by The Coding Train's video: Coding Challenge 86: Cube Wave by Bees and Bombs.
- Bees and Bombs original Twitter/X post (here is their Bluesky account)
- The Coding Train's video
- The Coding Train's website's post
-
✅ Use/learn the basics of raylib's 3D capabilities
-
✅ Use CMake to create a standalone executable that will run Cube Wave
-
⚠️ Have a 2D GUI that tells the user about the controls of the program (manipulate the frequency of the wave, cube size, color pallets, etc.) -
❌ EXTRA: Allow the user to click and drag to rotate the camera + have a camera reset button
- ❌ Because the project is in orthographic view. Changing perspectives would "ruin" the visual design
- Clone this repo or Download the file "cube-wave.exe" in this repo's root directory
- Run the file "cube-wave.exe"
- A console window may appear before and after the application runs. This is raylib's doing, I believe, and don't know if I can stop it from flashing a console window. Sorry, I know it looks weird.
Try the Windows version. If it doesn't work, I'm unsure. Apologies.
Try the Windows version. If it doesn't work, I'm unsure. Apologies.
Press the "ESC" key to exit the program
I achieved the main goals of this project, save for a 2D GUI to tell the "player" the controls of the program. There are no controls other than quiting the program.
This project, as a whole, was fun. It was a good introduction to raylib's 3D functionality. Quick and simple.
- Raylib 3D mode
- Cube drawing
- Generating 3D vector positions
- Sometimes the simple way is the best way (Occam's Razor)
- How to create my own map() function
- 3D (in general)
- Look for other learning resources (not ones I am currently using) when I get frustrated
- Generating 3D points based on a center point
- Add a list of controls the player can show/hide
- Add controls to increase/decrease the speed at which the wave oscillates
- Add controls to increase/decrease the frequence of the wave
- Add controls to zoom the camera in/out
- Change colors, user set & color based on cube height