The Project - A Multiplayer Blackjack Game
During my final year at university I had to undertake a yearlong software development project. I chose to make a multiplayer Blackjack game as the topic seemed interesting but with many of the aspects being highly challenging.
This page aims to provide some information on the project and the results.
The aim of the project was to develop a substantial piece of software, following correct software engineering principles to come up with a good result.
The project started as a simple multiplayer Blackjack game but quickly evolved. As the project progressed it became clearer that a network multiplayer game, while impressive, would not stand up to the same level as some other ideas raised. This changed the course of the project into creating a local multiplayer Blackjack game - that is many players on a single PC - but with a host of extra facilities such as a tutorial mode to learn the game and card counting instructions to improve player skill.
A major consideration of the project was the GUI and making it all easy to use. The game needed to look great from the moment it was started in order to be better than the majority of existing games (at the time) which had very basic graphics. Therefore a logo and splash screen were created to show while the game loaded.
The GUI had to continue to look good as well as being highly usable throughout the game so the main display was refined over several months. The refinements were based on many things including end user testing and published data from usability experts. The final GUI is shown below, at the end of a round in a three player game.
A key part of the development was around probabilities as the 'best way' to play Blackjack well is to use these. Algorithms were developed to calculate the probabilities of each action and then used to calculate an EV or Expected Value of taking each action. It was these that formed the basis of the Tutorial Mode, as seen in the screenshot below.
The software development was however only a part of the project. A dissertation had to be written explaining the motivations behind the project, justifying and detailing decisions and the development of the project over the year including the appropriate software engineering sections and diagrams. This resulted in a 22,000 word, 59 page report detailing the above and critically evaluating the successes and drawbacks of the project outcome.
For more details on the project read the abstract and introduction by downloading an extract of the dissertation.
The project and dissertation were very well received, gaining a mark just shy of 80% with excellent feedback.
Personally the project taught me many things about the software development process including time management, prioritisation of features, software engineering practices, risk managment and reduction as well as how to critically evaluate the results.