- This project was written in Eclipse 2022-12 and JDK 17. It's better to use an eclipse integrated JDK, so it doesn't interfere with anything installed system-wide.
- Eclipse -> Import... -> Existing Maven Project
- Set JRE System Library to JavaSE-17 in the build path
- Add
-Xmx4G -XX:+UseZGC -Dsun.java2d.d3d=false
(Windows)-Xmx4G -XX:+UseZGC -Dsun.java2d.opengl=True
(Linux) to VM arguments in the Run Configuration
- Download platform-specific JRE 17 packages (Eclipse Temurin for example) into
/target/openjdk
. Filenames need to bejre_win64.zip
,jre_mac.tar.gz
,jre_linux64.tar.gz
. - Right click pom.xml -> Run As -> Maven install
- Exported packages will be in /target/export
- JavaTutorials101 for kick-starting this project with his tutorial series
- MeanRollerCoding for the 3D to 2D projection and sphere generation algorithms
- Jorge Rodriguez for the mouse control and the awesome "Math/Code for Game Developers" series
- submissive (cubic.org) for the 3D clipping algorithm
- triszt4n for the main menu soundtrack
- hendriks73 for the FFSampledSP library
- Bresenham for the line drawing algorithm
- mikolalysenko (0fps.net) for the ambient occlusion
- Squareys for the sphere-cone intersection algorithm
- Leo Ono, FuzzyCat, ThinMatrix and Gameplicit for inspiration
- Countless anonymous StackExchange, Reddit and other users for guidance in the right direction