An open-source platform for gameholics where developers(/learners) develop, deploy and share their online(/offline) multiplayer games 🕹️ in java. The idea emphasis on learn-with-fun approach.
The project is under development as a proof of concept for the JavaServerClientAPI.
- 📹 About Gameholic
- 📢 In English
- 📢 In Hindi
- 🏗️ Project tracker
- 📖 Documentation
- 🚀 Download
- 🕹️ Game Control Panel
- 🗃️ Project Structure
Download Game control panel(Windows/linux with JDK8)
Compatibility: JDK 8 with JavaFX
Connect to server from bottom pane
Enter your name -> Click Connect
Launch your game from Launcher tab(on left side).
Select Game -> Select Game Mode -> Play
# Online:
To play online, player can either create a game or join a game.
* Create game:
Click create button -> wait for server to create game session -> share the generated game session ID to opponent or invite via Gmail/WhatsApp/AskToJoin notification.
* Join game:
Get game session ID from your friend and click join button
# Offline:
Enter player names -> click start game button
Open Game Store Tab(on left side) to search and download new games
Notifications are shown in notification pane(on bottom right side)
Chat window lets you chat with your friends (only when online)
gameholic/
├── gameholic.iml
├── gameManager
│ ├── gameManager.iml
│ └── src
│ └── gameholic
│ └── gameManager
│ ├── GameManager.java
│ └── GameMode.java
├── out
│ ├── artifacts
│ │ ├── gameholic_jar
│ │ │ └── gameholic.jar
│ │ └── gameManager_jar
│ │ └── gameManager.jar
│ └── production
│ ├── gameholic
│ │ ├── gameholic
│ │ │ ├── gameConfig.properties
│ │ │ └── gameControlPanel
│ │ │ ├── GameControlEvent.class
│ │ │ ├── Main.class
│ │ │ └── res
│ │ │ ├── images
│ │ │ ├── layouts
│ │ │ │ ├── components
│ │ │ │ │ ├── ChatWindow.class
│ │ │ │ │ ├── ChatWindow.fxml
│ │ │ │ │ ├── GameStore.class
│ │ │ │ │ ├── GameStore.fxml
│ │ │ │ │ ├── GetStarted.class
│ │ │ │ │ ├── GetStarted.fxml
│ │ │ │ │ ├── GetStartedViews.fxml
│ │ │ │ │ ├── Launcher.class
│ │ │ │ │ ├── Launcher.fxml
│ │ │ │ │ └── notification
│ │ │ │ │ ├── JoinNotification.class
│ │ │ │ │ ├── JoinNotification.fxml
│ │ │ │ │ ├── NotificationBox.class
│ │ │ │ │ ├── NotificationBox.fxml
│ │ │ │ │ ├── Notifications.class
│ │ │ │ │ ├── Notifications.fxml
│ │ │ │ │ └── NotificationType.class
│ │ │ │ ├── GameControlPanel.class
│ │ │ │ └── GameControlPanel.fxml
│ │ │ └── stylesheets
│ │ │ ├── Default.css
│ │ │ ├── Light.css
│ │ │ └── PlainDark.css
│ │ └── META-INF
│ │ └── MANIFEST.MF
│ ├── gameManager
│ │ └── gameholic
│ │ └── gameManager
│ │ ├── GameManager.class
│ │ └── GameMode.class
│ └── server
│ └── gameholic
│ └── server
│ ├── GameholicServer.class
│ ├── gameSessionHandler
│ │ ├── GameSession$OpponentNotJoinedException.class
│ │ ├── GameSession.class
│ │ └── PlayerType.class
│ └── services
│ ├── GameControlEvent.class
│ ├── PlayerConnection$1.class
│ └── PlayerConnection.class
├── server
│ ├── server.iml
│ └── src
│ └── gameholic
│ └── server
│ ├── GameholicServer.java
│ ├── games
│ ├── gameSessionHandler
│ │ ├── GameSession.java
│ │ └── PlayerType.java
│ └── services
│ ├── GameControlEvent.java
│ └── PlayerConnection.java
└── src
├── gameholic
│ ├── gameConfig.properties
│ ├── gameControlPanel
│ │ ├── GameControlEvent.java
│ │ ├── Main.java
│ │ └── res
│ │ ├── images
│ │ ├── layouts
│ │ │ ├── components
│ │ │ │ ├── ChatWindow.fxml
│ │ │ │ ├── ChatWindow.java
│ │ │ │ ├── GameStore.fxml
│ │ │ │ ├── GameStore.java
│ │ │ │ ├── GetStarted.fxml
│ │ │ │ ├── GetStarted.java
│ │ │ │ ├── GetStartedViews.fxml
│ │ │ │ ├── Launcher.fxml
│ │ │ │ ├── Launcher.java
│ │ │ │ └── notification
│ │ │ │ ├── JoinNotification.fxml
│ │ │ │ ├── JoinNotification.java
│ │ │ │ ├── NotificationBox.fxml
│ │ │ │ ├── NotificationBox.java
│ │ │ │ ├── Notifications.fxml
│ │ │ │ ├── Notifications.java
│ │ │ │ └── NotificationType.java
│ │ │ ├── GameControlPanel.fxml
│ │ │ └── GameControlPanel.java
│ │ └── stylesheets
│ │ ├── Default.css
│ │ ├── Light.css
│ │ └── PlainDark.css
│ └── games
└── META-INF
└── MANIFEST.MF
45 directories, 71 files
*click any of the above highlighted file to navigate to its source code