Multiplayer Battleship
Jan 2020 - May 2020
Developed online-multiplayer clone of Battleship with fully featured graphical user interface (GUI). Honors project for CS 1113 - Computer Science I.
Project Overview
My first major exploration of large-scale software development.
Objectives:
- Fully functional implementation of Battleship - ship selection and placement, tile targeting, hit notifications, etc.
- Online multiplayer functionality - real-time chatting, rematching, ship updates, etc. Uses peer-peer network architecture.
- Graphical User Interface - develop straightforward UI to show ships, menus, chat, prompts, etc.
Implementation
- Used Java’s net libraries to establish socket-based communication between hosts.
- Custom protocol to handle gameboard updates and chats.
- Players enter IP directly to connect to hosted game.
- Java Swing and AWT libraries to manage GUI, which emulates original game board.
- Quality of life features - rematching after game, showing surviving ships upon loss, two-way chat, etc.