MyFarm is a basic JavaFX-based farming simulation game where players manage a farm, plant crops, and progress through days.
A release version can be downloaded and played via the tags in the Release section.
- Farm Management: Plow, plant, water, fertilize, and harvest crops on dirt tiles
- Tool System: Use various tools including hoe, watering can, shovel, sickle, and fertilizer
- Crop Growing: Plant different seed types (root crops, flowers, fruits, trees) with varying growth times and yields
- Inventory System: Manage stackable and non-stackable items with a visual hotbar and inventory menu
- Day/Night Cycle: Experience time progression with day transitions and in-game time display
- Shop System: Buy and sell items to progress your farm
- Player Progression: Gain experience and level up as you work your farm
- Audio: Sound effects and music support for immersive gameplay
- Java 21 or higher
- Gradle (included via wrapper)
- Building the Project:
./gradlew build
To run it using a code editor: ./gradlew run
- JavaFX 21: UI framework
- Jackson: JSON parsing for data files
- JUnit 5: Testing framework
- Gradle: Build automation
The following items and configurations are loaded from JSON files:
- tools.json: Tool definitions and properties
- seeds.json: Seed types, crop data, and growth parameters
Maps are defined in XML format based on Tiled map editor conventions.

