3.6 KiB
3.6 KiB
Syntax Syndicate
Jona • Mathis • Julian • Lars
Table of Contents
About the Project
As part of the Programming Project course (CS108) for the semester FS26 at the University of Basel, we are developing a computer game implementation of the popular card game Poker.
The project's focus lies in networking and distributed systems design. Key aspect of our implementation being the development and integration of a custom protocol specifically designed for client-server communication. This protocol handles game state synchronization, player actions, lobby and global chat, and real-time updates across the network.
Repository Structure
├── src/ # Source code directory
│ ├── main/ # Application code
│ └── test/ # Unit tests
├── documents/ # Project resources and documentation
│ ├── images/ # Images for README and documentation
│ ├── docs # Directory for diary and blog files
│ │ ├── diary # Diary files for each organizational meetup
| | └── blog # Blog files covering project-related topics
│ ├── milestones/ # Milestone deliverables (6 milestones)
│ └── (Other resources) # Additional project materials
└── outreach/ # Public-facing content and marketing materials
Prerequisites
- Java Development Kit (JDK) 25
- Gradle (included via Gradle Wrapper)
Development Timeline
This project spans six milestones throughout the FS26 semester, with each milestone representing a major phase in development:
MS-1: Foundation & Design
- Game concept and rules presentation
- Networking architecture overview
- Project mockups and requirements analysis
- Detailed project plan and team organization
MS-2: Networking & Server Implementation
- Human-readable custom protocol definition and implementation
- Server implementation with multi-client support
- Client-server chat functionality
- Protocol documentation and validation
- JavaDoc code documentation and QA concepts
MS-3: Knowledge Checkpoints
- Assessment of individual technical understanding through evaluation
MS-4: Game Logic & Working Prototype
- Core game logic implementation
- Playable game demo (terminal or GUI)
- Command-line argument parsing
- Multiple lobby support with internal chats
- Whisper/private messaging functionality
- Build automation and executable JAR
MS-5: Polish & Complete User Interface
- Full GUI implementation with JavaFX
- Complete game playability through UI
- Persistent high score list
- Comprehensive unit tests
- Game rule enforcement
MS-6: Final Delivery & Public Presentation
- Bug-free final demo
- Complete GUI with all functionality
- Outreach materials and project documentation
- Game manual and usage instructions
- Team logo and promotional materials
- QA reports and lessons learned
