This project has been restructured from a single-source application into a proper client-server architecture with separate applications.
java-tiktak-project/
├── tiktak-client/ # Client Application
│ ├── src/
│ │ ├── client/ # Client UI and logic
│ │ ├── req/ # Shared request classes
│ │ ├── res/ # CSS resources
│ │ └── shared/ # Shared data models
│ └── README.md # Client documentation
│
├── tiktak-server/ # Server Application
│ ├── src/
│ │ ├── server/ # Server logic
│ │ ├── db/ # Database connection
│ │ └── req/ # Shared request classes
│ └── README.md # Server documentation
│
├── src-old/ # Original combined source (preserved)
└── requests-old/ # Original requests folder (preserved)
cd tiktak-server
# Compile the server application
javac -d bin src/**/*.java
# Run the server
java -cp bin server.ServerMainAppNote: Ensure MySQL database is set up first (see tiktak-server/README.md)
cd tiktak-client
# Compile the client application
javac -d bin src/**/*.java
# Run the client
java -cp bin client.clientui.ClientMainAppYou can run multiple client instances to test multiplayer functionality.
- JavaFX-based UI for game interface
- Network layer for server communication
- Single-player mode with AI opponents
- Multiplayer mode with online matchmaking
- Socket server listening on port 5000
- Session management for multiple connected clients
- MySQL database for persistence
- Game state coordination between players
Both applications use a shared Request/RequestType system for communication:
- Serialized Java objects over TCP sockets
- Request types include: LOGIN, SIGNUP, SEND_MOVE, SEND_MSG, etc.
Each application can now be:
- Developed independently
- Deployed separately
- Tested in isolation
- Compiled with different build tools
The original combined source code has been preserved in:
src-old/- Original src directoryrequests-old/- Original requests directory
These can be safely deleted once you've verified the new structure works correctly.
- Java 8+
- JavaFX
- Java 8+
- MySQL 5.7+ or MariaDB
- MySQL Connector/J
- See
tiktak-client/README.mdfor client-specific documentation - See
tiktak-server/README.mdfor server-specific documentation and database setup