Skip to content

dev-ricks/Curl-2D

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Curl-2D

CI License: MIT

Curl-2D is a 2D curling simulation built with JavaFX. I use this project to practice game physics, architecture, testing, and clean code standards.

Quick Links

  • Employer summary: EMPLOYER_HIGHLIGHTS.md
  • Repo: https://github.com/dev-ricks/Curl-2D
  • Releases: https://github.com/dev-ricks/Curl-2D/releases

What It Does Today

  • Creates and launches curling stones from player input
  • Converts mouse drag into launch strength and launch angle
  • Applies pre-launch spin with keyboard controls
  • Renders a live HUD for strength, angle, and spin
  • Includes in-game help, pause/resume, and round reset

Controls

  • N: create a new launch stone (only when there is no active launch stone)
  • Mouse Press: start aiming
  • Mouse Drag: set launch strength and launch angle
  • Mouse Release: launch the active stone
  • W: move launch point up (pre-launch only)
  • S: move launch point down (pre-launch only)
  • Q: decrease spin (pre-launch only)
  • E: increase spin (pre-launch only)
  • P: pause/resume simulation
  • R: reset round (clear all stones)
  • Help button: show/hide the control panel

Current Physics Tuning

  • Launch angle cap: ±12°
  • Launch angle dead zone: 12% around center
  • Spin cap: ±3.0
  • Spin step: 0.5 per keypress (6 presses to max)

Planned Features

  • Sweeping
  • Team turn flow
  • End scoring and scoreboard
  • Switching ends
  • Sound effects and audio

Setup

Requirements:

  • JDK 17
  • Maven 3.9+

Clone:

git clone https://github.com/dev-ricks/Curl-2D.git
cd Curl-2D

Build:

mvn clean package

Run:

mvn javafx:run

Testing

Default test run:

mvn test

Run including TDD-named suites:

mvn -Ptdd-tests test

Prebuilt Bundles

The Release Bundles GitHub Actions workflow builds platform zip bundles:

  • curl-2d-linux.zip
  • curl-2d-macos.zip
  • curl-2d-windows.zip

On a published GitHub Release, these files are attached automatically.

Known Limitations

  • Sweeping is not implemented yet
  • Team turn sequencing is not implemented yet
  • Full scoring/ends flow is not implemented yet
  • Sound system is not implemented yet

Project Layout

  • src/main/java/com/curl2d/game: game loop and utilities
  • src/main/java/com/curl2d/physics: physics and vector math
  • src/main/java/com/curl2d/model: domain models and constants
  • src/main/java/com/curl2d/render: renderers and coordinate mapping
  • src/main/java/com/curl2d/ui: HUD and input normalization
  • src/test/java: unit and integration tests

License

MIT. See LICENSE.

About

A game based upon the sport of curling.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages