An open-source learning platform disguised as a shoot 'em up game
Built with Java/FXGL and Next.js • Perfect for your first (or next) contribution
🚀 Quick Start 📋 Browse Issues 💬 Discord 🌐 Website
This isn't just a game—it's a real-world project designed for learning and collaboration. Whether you're looking to:
- ✅ Make your first open-source contribution
- ✅ Build experience with Java game development (JavaFX, FXGL)
- ✅ Work with modern web tech (Next.js, TypeScript, React)
- ✅ Practice Git workflows, CI/CD, and testing
- ✅ Join a friendly community that helps each other learn
You're in the right place! 🎉
⭐ Like what you see? Star the repo to help others discover it!
dinosaur-exploder_v2.0.0.mp4
A classic arcade shooter with:
- 🎮 Java game engine (JavaFX + FXGL)
- 🌐 Next.js website for docs, galleries, and community features
- 🔄 CI/CD pipeline with GitHub Actions
- 🧪 Unit tests and best practices
- 🔓 Open architecture for easy contributions
|
Tech: Java 21, JavaFX, FXGL, Maven Great if you want to learn:
Browse: Game issues → |
Tech: Next.js, TypeScript, React, Tailwind CSS Great if you want to learn:
Browse: Website issues → |
🎮 Java Setup (Click to expand)
- Java >=21 (Download)
- You can download the Java Open JDK 21. You can download any JDK you want, it just needs to be version 21 or greater.
- Run the command
java --versionto make sure Java >= 21 is installed. - The environment variable
JAVA_HOMEmust be set (either you're on MacOS, Windows, Linux). You can check with the commandecho $JAVA_HOME.
- Git
- IDE (IntelliJ IDEA recommended)
# 1. Fork the repo on GitHub
# 2. Clone your fork
git clone git@github.com:<your-username>/dinosaur-exploder.git
cd dinosaur-exploder
# 3. Build and run
mvn clean install
mvn javafx:run
# 4. (Optional) Install git hooks for code quality checks
./scripts/install-hooks.sh
# Or using an IDE:
# - Open project in IntelliJ
# - Run com.dinosaur.dinosaurexploder.DinosaurApp or hit the run button at the top rightmvn testmvn jpro:run
# Open http://localhost:8080📖 More details: Java Setup Guide
🌐 Website Setup (Click to expand)
- Node.js >=20 (Download)
- Git
- IDE (VS Code recommended for Next.js)
# 1. Fork the repo on GitHub
# 2. Clone your fork
git clone git@github.com:<your-username>/dinosaur-exploder.git
cd dinosaur-exploder/website
# 3. Install and run
npm install
npm run dev
# Open http://localhost:3000npm test
npm run lint📖 More details: Website Setup Guide
New to open source? Start here:
good first issue- Perfect for beginnershelp wanted- We'd love help with thesedocumentation- No coding required
Ready for more? Check:
enhancement- New featuresbug- Fix something broken
Have your own idea? Open a discussion first!
- Create a branch:
git checkout -b feature/your-feature-name - Make your changes (don't forget tests!)
- Commit:
git commit -m "Add: description of your change" - Push:
git push origin feature/your-feature-name - Open a Pull Request on GitHub
📖 Full guidelines: CONTRIBUTING.md
- 📘 Wiki - Architecture, guides, and tutorials
- 🎨 Project Website - Game info and community content
- 🤝 Code of Conduct - Our community standards
- 📋 Contributing Guide - Detailed contribution workflow
Get help, share ideas, or just hang out:
- 💬 Discord - Real-time chat with the community (most active!)
- 🗨️ GitHub Discussions - Q&A, ideas, and announcements
- 🐦 Twitter - Project updates
Stuck? Don't hesitate to ask! We're here to help you learn. 🦖
Requirements: Java 21
Download the latest release:
java -jar dinosaur-exploder-<platform>-<version>.jarControls: Arrow keys (move) • Space (shoot) • E (shield) • B (bomb) • Esc (pause)
I created this project in 2022 at Munster Technological University (MTU Cork) as a school assignment with two classmates. After the semester ended, I decided to transform it into something bigger: a welcoming space where developers can gain real-world experience through meaningful contributions.
The goal isn't perfection—it's learning by doing. Every issue is an opportunity, and every contributor makes this project better.
MIT License - see LICENSE for details.
⭐ Star us on GitHub — it helps more developers find this project!